diff --git a/.github/workflows/javascript.sarif.expected b/.github/workflows/javascript.sarif.expected
index c64f1dd3b..4de945ef4 100644
--- a/.github/workflows/javascript.sarif.expected
+++ b/.github/workflows/javascript.sarif.expected
@@ -1 +1 @@
-{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"CodeQL","organization":"GitHub","semanticVersion":"2.20.4","notifications":[{"id":"cli/expected-extracted-files/javascript","name":"cli/expected-extracted-files/javascript","shortDescription":{"text":"Expected extracted files"},"fullDescription":{"text":"Files appearing in the source archive that are expected to be extracted."},"defaultConfiguration":{"enabled":true},"properties":{"tags":["expected-extracted-files","telemetry"],"languageDisplayName":"JavaScript"}},{"id":"cli/expected-extracted-files/typescript","name":"cli/expected-extracted-files/typescript","shortDescription":{"text":"Expected extracted files"},"fullDescription":{"text":"Files appearing in the source archive that are expected to be extracted."},"defaultConfiguration":{"enabled":true},"properties":{"tags":["expected-extracted-files","telemetry"],"languageDisplayName":"TypeScript"}},{"id":"cli/expected-extracted-files/python","name":"cli/expected-extracted-files/python","shortDescription":{"text":"Expected extracted files"},"fullDescription":{"text":"Files appearing in the source archive that are expected to be extracted."},"defaultConfiguration":{"enabled":true},"properties":{"tags":["expected-extracted-files","telemetry"],"languageDisplayName":"Python"}},{"id":"codeql-action/bundle-download-telemetry","name":"codeql-action/bundle-download-telemetry","shortDescription":{"text":"CodeQL bundle download telemetry"},"fullDescription":{"text":"CodeQL bundle download telemetry"},"defaultConfiguration":{"enabled":true}},{"id":"cds/dependency-failure","name":"cds/dependency-failure","shortDescription":{"text":"Failure to install SAP CAP CDS dependencies"},"fullDescription":{"text":"Failure to install SAP CAP CDS dependencies"},"defaultConfiguration":{"enabled":true}}],"rules":[]},"extensions":[{"name":"generated/extension-pack","semanticVersion":"0.0.0","locations":[{"uri":"file:///home/runner/work/_temp/codeql-database/javascript/temp/extension-pack/","description":{"text":"The QL pack root directory."},"properties":{"tags":["CodeQL/LocalPackRoot"]}},{"uri":"file:///home/runner/work/_temp/codeql-database/javascript/temp/extension-pack/codeql-pack.yml","description":{"text":"The QL pack definition file."},"properties":{"tags":["CodeQL/LocalPackDefinitionFile"]}}],"properties":{"isCodeQLModelPack":true}},{"name":"codeql/javascript-queries","semanticVersion":"1.4.0+c524a98eb91c769cb2994b8373181c2ebd27c20f","notifications":[{"id":"js/diagnostics/successfully-extracted-files","name":"js/diagnostics/successfully-extracted-files","shortDescription":{"text":"Extracted files"},"fullDescription":{"text":"Lists all files in the source code directory that were extracted."},"defaultConfiguration":{"enabled":true},"properties":{"tags":["successfully-extracted-files"],"description":"Lists all files in the source code directory that were extracted.","id":"js/diagnostics/successfully-extracted-files","kind":"diagnostic","name":"Extracted files"}},{"id":"js/diagnostics/extraction-errors","name":"js/diagnostics/extraction-errors","shortDescription":{"text":"Extraction errors"},"fullDescription":{"text":"List all extraction errors for files in the source code directory."},"defaultConfiguration":{"enabled":true},"properties":{"description":"List all extraction errors for files in the source code directory.","id":"js/diagnostics/extraction-errors","kind":"diagnostic","name":"Extraction errors"}}],"rules":[{"id":"js/angular/double-compilation","name":"js/angular/double-compilation","shortDescription":{"text":"Double compilation"},"fullDescription":{"text":"Recompiling an already compiled part of the DOM can lead to unexpected behavior of directives, performance problems, and memory leaks."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Double compilation\nThe AngularJS compiler processes (parts of) the DOM, determining which directives match which DOM elements, and then applies the directives to the elements. Each DOM element should only be compiled once, otherwise unexpected behavior may result.\n\n\n## Recommendation\nOnly compile new DOM elements.\n\n\n## Example\nThe following example (adapted from the AngularJS developer guide) shows a directive that adds a tooltip to a DOM element, and then compiles the entire element to apply nested directives.\n\n\n```javascript\nangular.module('myapp')\n .directive('addToolTip', function($compile) {\n return {\n link: function(scope, element, attrs) {\n var tooltip = angular.element('A tooltip');\n tooltip.on('mouseenter mouseleave', function() {\n scope.$apply('showToolTip = !showToolTip');\n });\n element.append(tooltip);\n $compile(element)(scope); // NOT OK\n }\n };\n});\n\n```\nThis is problematic, since it will recompile all of `element`, including parts that have already been compiled.\n\nInstead, only the new element should be compiled:\n\n\n```javascript\nangular.module('myapp')\n .directive('addToolTip', function($compile) {\n return {\n link: function(scope, element, attrs) {\n var tooltip = angular.element('A tooltip');\n tooltip.on('mouseenter mouseleave', function() {\n scope.$apply('showToolTip = !showToolTip');\n });\n element.append(tooltip);\n $compile(tooltip)(scope); // OK\n }\n };\n});\n\n```\n\n## References\n* AngularJS Developer Guide: [Double Compilation, and how to avoid it](https://docs.angularjs.org/guide/compiler#double-compilation-and-how-to-avoid-it).\n* Common Weakness Enumeration: [CWE-1176](https://cwe.mitre.org/data/definitions/1176.html).\n","markdown":"# Double compilation\nThe AngularJS compiler processes (parts of) the DOM, determining which directives match which DOM elements, and then applies the directives to the elements. Each DOM element should only be compiled once, otherwise unexpected behavior may result.\n\n\n## Recommendation\nOnly compile new DOM elements.\n\n\n## Example\nThe following example (adapted from the AngularJS developer guide) shows a directive that adds a tooltip to a DOM element, and then compiles the entire element to apply nested directives.\n\n\n```javascript\nangular.module('myapp')\n .directive('addToolTip', function($compile) {\n return {\n link: function(scope, element, attrs) {\n var tooltip = angular.element('A tooltip');\n tooltip.on('mouseenter mouseleave', function() {\n scope.$apply('showToolTip = !showToolTip');\n });\n element.append(tooltip);\n $compile(element)(scope); // NOT OK\n }\n };\n});\n\n```\nThis is problematic, since it will recompile all of `element`, including parts that have already been compiled.\n\nInstead, only the new element should be compiled:\n\n\n```javascript\nangular.module('myapp')\n .directive('addToolTip', function($compile) {\n return {\n link: function(scope, element, attrs) {\n var tooltip = angular.element('A tooltip');\n tooltip.on('mouseenter mouseleave', function() {\n scope.$apply('showToolTip = !showToolTip');\n });\n element.append(tooltip);\n $compile(tooltip)(scope); // OK\n }\n };\n});\n\n```\n\n## References\n* AngularJS Developer Guide: [Double Compilation, and how to avoid it](https://docs.angularjs.org/guide/compiler#double-compilation-and-how-to-avoid-it).\n* Common Weakness Enumeration: [CWE-1176](https://cwe.mitre.org/data/definitions/1176.html).\n"},"properties":{"tags":["reliability","frameworks/angularjs","security","external/cwe/cwe-1176"],"description":"Recompiling an already compiled part of the DOM can lead to\n unexpected behavior of directives, performance problems, and memory leaks.","id":"js/angular/double-compilation","kind":"problem","name":"Double compilation","precision":"very-high","problem.severity":"warning","security-severity":"8.8"}},{"id":"js/angular/disabling-sce","name":"js/angular/disabling-sce","shortDescription":{"text":"Disabling SCE"},"fullDescription":{"text":"Disabling strict contextual escaping (SCE) can cause security vulnerabilities."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Disabling SCE\nAngularJS is secure by default through automated sanitization and filtering of untrusted values that could cause vulnerabilities such as XSS. Strict Contextual Escaping (SCE) is an execution mode in AngularJS that provides this security mechanism.\n\nDisabling SCE in an AngularJS application is strongly discouraged. It is even more discouraged to disable SCE in a library, since it is an application-wide setting.\n\n\n## Recommendation\nDo not disable SCE.\n\n\n## Example\nThe following example shows an AngularJS application that disables SCE in order to dynamically construct an HTML fragment, which is later inserted into the DOM through `$scope.html`.\n\n\n```javascript\nangular.module('app', [])\n .config(function($sceProvider) {\n $sceProvider.enabled(false); // BAD\n }).controller('controller', function($scope) {\n // ...\n $scope.html = '
' + item.toString() + '
';\n });\n\n```\nThis is problematic, since it disables SCE for the entire AngularJS application.\n\nInstead, just mark the dynamically constructed HTML fragment as safe using `$sce.trustAsHtml`, before assigning it to `$scope.html`:\n\n\n```javascript\nangular.module('app', [])\n .controller('controller', function($scope, $sce) {\n // ...\n // GOOD (but should use the templating system instead)\n $scope.html = $sce.trustAsHtml('
' + item.toString() + '
'); \n });\n\n```\nPlease note that this example is for illustrative purposes only; use the AngularJS templating system to dynamically construct HTML when possible.\n\n\n## References\n* AngularJS Developer Guide: [Strict Contextual Escaping](https://docs.angularjs.org/api/ng/service/$sce)\n* AngularJS Developer Guide: [Can I disable SCE completely?](https://docs.angularjs.org/api/ng/service/$sce#can-i-disable-sce-completely-).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n","markdown":"# Disabling SCE\nAngularJS is secure by default through automated sanitization and filtering of untrusted values that could cause vulnerabilities such as XSS. Strict Contextual Escaping (SCE) is an execution mode in AngularJS that provides this security mechanism.\n\nDisabling SCE in an AngularJS application is strongly discouraged. It is even more discouraged to disable SCE in a library, since it is an application-wide setting.\n\n\n## Recommendation\nDo not disable SCE.\n\n\n## Example\nThe following example shows an AngularJS application that disables SCE in order to dynamically construct an HTML fragment, which is later inserted into the DOM through `$scope.html`.\n\n\n```javascript\nangular.module('app', [])\n .config(function($sceProvider) {\n $sceProvider.enabled(false); // BAD\n }).controller('controller', function($scope) {\n // ...\n $scope.html = '
' + item.toString() + '
';\n });\n\n```\nThis is problematic, since it disables SCE for the entire AngularJS application.\n\nInstead, just mark the dynamically constructed HTML fragment as safe using `$sce.trustAsHtml`, before assigning it to `$scope.html`:\n\n\n```javascript\nangular.module('app', [])\n .controller('controller', function($scope, $sce) {\n // ...\n // GOOD (but should use the templating system instead)\n $scope.html = $sce.trustAsHtml('
' + item.toString() + '
'); \n });\n\n```\nPlease note that this example is for illustrative purposes only; use the AngularJS templating system to dynamically construct HTML when possible.\n\n\n## References\n* AngularJS Developer Guide: [Strict Contextual Escaping](https://docs.angularjs.org/api/ng/service/$sce)\n* AngularJS Developer Guide: [Can I disable SCE completely?](https://docs.angularjs.org/api/ng/service/$sce#can-i-disable-sce-completely-).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n"},"properties":{"tags":["security","maintainability","frameworks/angularjs","external/cwe/cwe-116"],"description":"Disabling strict contextual escaping (SCE) can cause security vulnerabilities.","id":"js/angular/disabling-sce","kind":"problem","name":"Disabling SCE","precision":"very-high","problem.severity":"warning","security-severity":"7.8"}},{"id":"js/angular/insecure-url-whitelist","name":"js/angular/insecure-url-whitelist","shortDescription":{"text":"Insecure URL whitelist"},"fullDescription":{"text":"URL whitelists that are too permissive can cause security vulnerabilities."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Insecure URL whitelist\nAngularJS uses filters to ensure that the URLs used for sourcing AngularJS templates and other script-running URLs are safe. One such filter is a whitelist of URL patterns to allow.\n\nA URL pattern that is too permissive can cause security vulnerabilities.\n\n\n## Recommendation\nMake the whitelist URL patterns as restrictive as possible.\n\n\n## Example\nThe following example shows an AngularJS application with whitelist URL patterns that all are too permissive.\n\n\n```javascript\nangular.module('myApp', [])\n .config(function($sceDelegateProvider) {\n $sceDelegateProvider.resourceUrlWhitelist([\n \"*://example.org/*\", // BAD\n \"https://**.example.com/*\", // BAD\n \"https://example.**\", // BAD\n \"https://example.*\" // BAD\n ]);\n });\n\n```\nThis is problematic, since the four patterns match the following malicious URLs, respectively:\n\n* `javascript://example.org/a%0A%0Dalert(1)` (`%0A%0D` is a linebreak)\n* `https://evil.com/?ignore=://example.com/a`\n* `https://example.evil.com`\n* `https://example.evilTld`\n\n## References\n* OWASP/Google presentation: [Securing AngularJS Applications](https://www.owasp.org/images/6/6e/Benelus_day_20161125_S_Lekies_Securing_AngularJS_Applications.pdf)\n* AngularJS Developer Guide: [Format of items in resourceUrlWhitelist/Blacklist](https://docs.angularjs.org/api/ng/service/$sce#resourceUrlPatternItem).\n* Common Weakness Enumeration: [CWE-183](https://cwe.mitre.org/data/definitions/183.html).\n* Common Weakness Enumeration: [CWE-625](https://cwe.mitre.org/data/definitions/625.html).\n","markdown":"# Insecure URL whitelist\nAngularJS uses filters to ensure that the URLs used for sourcing AngularJS templates and other script-running URLs are safe. One such filter is a whitelist of URL patterns to allow.\n\nA URL pattern that is too permissive can cause security vulnerabilities.\n\n\n## Recommendation\nMake the whitelist URL patterns as restrictive as possible.\n\n\n## Example\nThe following example shows an AngularJS application with whitelist URL patterns that all are too permissive.\n\n\n```javascript\nangular.module('myApp', [])\n .config(function($sceDelegateProvider) {\n $sceDelegateProvider.resourceUrlWhitelist([\n \"*://example.org/*\", // BAD\n \"https://**.example.com/*\", // BAD\n \"https://example.**\", // BAD\n \"https://example.*\" // BAD\n ]);\n });\n\n```\nThis is problematic, since the four patterns match the following malicious URLs, respectively:\n\n* `javascript://example.org/a%0A%0Dalert(1)` (`%0A%0D` is a linebreak)\n* `https://evil.com/?ignore=://example.com/a`\n* `https://example.evil.com`\n* `https://example.evilTld`\n\n## References\n* OWASP/Google presentation: [Securing AngularJS Applications](https://www.owasp.org/images/6/6e/Benelus_day_20161125_S_Lekies_Securing_AngularJS_Applications.pdf)\n* AngularJS Developer Guide: [Format of items in resourceUrlWhitelist/Blacklist](https://docs.angularjs.org/api/ng/service/$sce#resourceUrlPatternItem).\n* Common Weakness Enumeration: [CWE-183](https://cwe.mitre.org/data/definitions/183.html).\n* Common Weakness Enumeration: [CWE-625](https://cwe.mitre.org/data/definitions/625.html).\n"},"properties":{"tags":["security","frameworks/angularjs","external/cwe/cwe-183","external/cwe/cwe-625"],"description":"URL whitelists that are too permissive can cause security vulnerabilities.","id":"js/angular/insecure-url-whitelist","kind":"problem","name":"Insecure URL whitelist","precision":"very-high","problem.severity":"warning","security-severity":"7.5"}},{"id":"js/redos","name":"js/redos","shortDescription":{"text":"Inefficient regular expression"},"fullDescription":{"text":"A regular expression that requires exponential time to match certain inputs can be a performance bottleneck, and may be vulnerable to denial-of-service attacks."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Inefficient regular expression\nSome regular expressions take a long time to match certain input strings to the point where the time it takes to match a string of length *n* is proportional to *nk* or even *2n*. Such regular expressions can negatively affect performance, or even allow a malicious user to perform a Denial of Service (\"DoS\") attack by crafting an expensive input string for the regular expression to match.\n\nThe regular expression engines provided by many popular JavaScript platforms use backtracking non-deterministic finite automata to implement regular expression matching. While this approach is space-efficient and allows supporting advanced features like capture groups, it is not time-efficient in general. The worst-case time complexity of such an automaton can be polynomial or even exponential, meaning that for strings of a certain shape, increasing the input length by ten characters may make the automaton about 1000 times slower.\n\nTypically, a regular expression is affected by this problem if it contains a repetition of the form `r*` or `r+` where the sub-expression `r` is ambiguous in the sense that it can match some string in multiple ways. More information about the precise circumstances can be found in the references.\n\n\n## Recommendation\nModify the regular expression to remove the ambiguity, or ensure that the strings matched with the regular expression are short enough that the time-complexity does not matter.\n\n\n## Example\nConsider this regular expression:\n\n```javascript\n\n/^_(__|.)+_$/\n```\nIts sub-expression `\"(__|.)+?\"` can match the string `\"__\"` either by the first alternative `\"__\"` to the left of the `\"|\"` operator, or by two repetitions of the second alternative `\".\"` to the right. Thus, a string consisting of an odd number of underscores followed by some other character will cause the regular expression engine to run for an exponential amount of time before rejecting the input.\n\nThis problem can be avoided by rewriting the regular expression to remove the ambiguity between the two branches of the alternative inside the repetition:\n\n```javascript\n\n/^_(__|[^_])+_$/\n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Wikipedia: [Time complexity](https://en.wikipedia.org/wiki/Time_complexity).\n* James Kirrage, Asiri Rathnayake, Hayo Thielecke: [Static Analysis for Regular Expression Denial-of-Service Attack](https://arxiv.org/abs/1301.0849).\n* Common Weakness Enumeration: [CWE-1333](https://cwe.mitre.org/data/definitions/1333.html).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n","markdown":"# Inefficient regular expression\nSome regular expressions take a long time to match certain input strings to the point where the time it takes to match a string of length *n* is proportional to *nk* or even *2n*. Such regular expressions can negatively affect performance, or even allow a malicious user to perform a Denial of Service (\"DoS\") attack by crafting an expensive input string for the regular expression to match.\n\nThe regular expression engines provided by many popular JavaScript platforms use backtracking non-deterministic finite automata to implement regular expression matching. While this approach is space-efficient and allows supporting advanced features like capture groups, it is not time-efficient in general. The worst-case time complexity of such an automaton can be polynomial or even exponential, meaning that for strings of a certain shape, increasing the input length by ten characters may make the automaton about 1000 times slower.\n\nTypically, a regular expression is affected by this problem if it contains a repetition of the form `r*` or `r+` where the sub-expression `r` is ambiguous in the sense that it can match some string in multiple ways. More information about the precise circumstances can be found in the references.\n\n\n## Recommendation\nModify the regular expression to remove the ambiguity, or ensure that the strings matched with the regular expression are short enough that the time-complexity does not matter.\n\n\n## Example\nConsider this regular expression:\n\n```javascript\n\n/^_(__|.)+_$/\n```\nIts sub-expression `\"(__|.)+?\"` can match the string `\"__\"` either by the first alternative `\"__\"` to the left of the `\"|\"` operator, or by two repetitions of the second alternative `\".\"` to the right. Thus, a string consisting of an odd number of underscores followed by some other character will cause the regular expression engine to run for an exponential amount of time before rejecting the input.\n\nThis problem can be avoided by rewriting the regular expression to remove the ambiguity between the two branches of the alternative inside the repetition:\n\n```javascript\n\n/^_(__|[^_])+_$/\n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Wikipedia: [Time complexity](https://en.wikipedia.org/wiki/Time_complexity).\n* James Kirrage, Asiri Rathnayake, Hayo Thielecke: [Static Analysis for Regular Expression Denial-of-Service Attack](https://arxiv.org/abs/1301.0849).\n* Common Weakness Enumeration: [CWE-1333](https://cwe.mitre.org/data/definitions/1333.html).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n"},"properties":{"tags":["security","external/cwe/cwe-1333","external/cwe/cwe-730","external/cwe/cwe-400"],"description":"A regular expression that requires exponential time to match certain inputs\n can be a performance bottleneck, and may be vulnerable to denial-of-service\n attacks.","id":"js/redos","kind":"problem","name":"Inefficient regular expression","precision":"high","problem.severity":"error","security-severity":"7.5"}},{"id":"js/polynomial-redos","name":"js/polynomial-redos","shortDescription":{"text":"Polynomial regular expression used on uncontrolled data"},"fullDescription":{"text":"A regular expression that can require polynomial time to match may be vulnerable to denial-of-service attacks."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Polynomial regular expression used on uncontrolled data\nSome regular expressions take a long time to match certain input strings to the point where the time it takes to match a string of length *n* is proportional to *nk* or even *2n*. Such regular expressions can negatively affect performance, or even allow a malicious user to perform a Denial of Service (\"DoS\") attack by crafting an expensive input string for the regular expression to match.\n\nThe regular expression engines provided by many popular JavaScript platforms use backtracking non-deterministic finite automata to implement regular expression matching. While this approach is space-efficient and allows supporting advanced features like capture groups, it is not time-efficient in general. The worst-case time complexity of such an automaton can be polynomial or even exponential, meaning that for strings of a certain shape, increasing the input length by ten characters may make the automaton about 1000 times slower.\n\nTypically, a regular expression is affected by this problem if it contains a repetition of the form `r*` or `r+` where the sub-expression `r` is ambiguous in the sense that it can match some string in multiple ways. More information about the precise circumstances can be found in the references.\n\n\n## Recommendation\nModify the regular expression to remove the ambiguity, or ensure that the strings matched with the regular expression are short enough that the time-complexity does not matter.\n\n\n## Example\nConsider this use of a regular expression, which removes all leading and trailing whitespace in a string:\n\n```javascript\n\ntext.replace(/^\\s+|\\s+$/g, ''); // BAD\n```\nThe sub-expression `\"\\s+$\"` will match the whitespace characters in `text` from left to right, but it can start matching anywhere within a whitespace sequence. This is problematic for strings that do **not** end with a whitespace character. Such a string will force the regular expression engine to process each whitespace sequence once per whitespace character in the sequence.\n\nThis ultimately means that the time cost of trimming a string is quadratic in the length of the string. So a string like `\"a b\"` will take milliseconds to process, but a similar string with a million spaces instead of just one will take several minutes.\n\nAvoid this problem by rewriting the regular expression to not contain the ambiguity about when to start matching whitespace sequences. For instance, by using a negative look-behind (`/^\\s+|(? 1000) {\n throw new Error(\"Input too long\");\n}\n\n/^(\\+|-)?(\\d+|(\\d*\\.\\d*))?(E|e)?([-+])?(\\d+)?$/.test(str)\n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Wikipedia: [Time complexity](https://en.wikipedia.org/wiki/Time_complexity).\n* James Kirrage, Asiri Rathnayake, Hayo Thielecke: [Static Analysis for Regular Expression Denial-of-Service Attack](https://arxiv.org/abs/1301.0849).\n* Common Weakness Enumeration: [CWE-1333](https://cwe.mitre.org/data/definitions/1333.html).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n","markdown":"# Polynomial regular expression used on uncontrolled data\nSome regular expressions take a long time to match certain input strings to the point where the time it takes to match a string of length *n* is proportional to *nk* or even *2n*. Such regular expressions can negatively affect performance, or even allow a malicious user to perform a Denial of Service (\"DoS\") attack by crafting an expensive input string for the regular expression to match.\n\nThe regular expression engines provided by many popular JavaScript platforms use backtracking non-deterministic finite automata to implement regular expression matching. While this approach is space-efficient and allows supporting advanced features like capture groups, it is not time-efficient in general. The worst-case time complexity of such an automaton can be polynomial or even exponential, meaning that for strings of a certain shape, increasing the input length by ten characters may make the automaton about 1000 times slower.\n\nTypically, a regular expression is affected by this problem if it contains a repetition of the form `r*` or `r+` where the sub-expression `r` is ambiguous in the sense that it can match some string in multiple ways. More information about the precise circumstances can be found in the references.\n\n\n## Recommendation\nModify the regular expression to remove the ambiguity, or ensure that the strings matched with the regular expression are short enough that the time-complexity does not matter.\n\n\n## Example\nConsider this use of a regular expression, which removes all leading and trailing whitespace in a string:\n\n```javascript\n\ntext.replace(/^\\s+|\\s+$/g, ''); // BAD\n```\nThe sub-expression `\"\\s+$\"` will match the whitespace characters in `text` from left to right, but it can start matching anywhere within a whitespace sequence. This is problematic for strings that do **not** end with a whitespace character. Such a string will force the regular expression engine to process each whitespace sequence once per whitespace character in the sequence.\n\nThis ultimately means that the time cost of trimming a string is quadratic in the length of the string. So a string like `\"a b\"` will take milliseconds to process, but a similar string with a million spaces instead of just one will take several minutes.\n\nAvoid this problem by rewriting the regular expression to not contain the ambiguity about when to start matching whitespace sequences. For instance, by using a negative look-behind (`/^\\s+|(? 1000) {\n throw new Error(\"Input too long\");\n}\n\n/^(\\+|-)?(\\d+|(\\d*\\.\\d*))?(E|e)?([-+])?(\\d+)?$/.test(str)\n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Wikipedia: [Time complexity](https://en.wikipedia.org/wiki/Time_complexity).\n* James Kirrage, Asiri Rathnayake, Hayo Thielecke: [Static Analysis for Regular Expression Denial-of-Service Attack](https://arxiv.org/abs/1301.0849).\n* Common Weakness Enumeration: [CWE-1333](https://cwe.mitre.org/data/definitions/1333.html).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n"},"properties":{"tags":["security","external/cwe/cwe-1333","external/cwe/cwe-730","external/cwe/cwe-400"],"description":"A regular expression that can require polynomial time\n to match may be vulnerable to denial-of-service attacks.","id":"js/polynomial-redos","kind":"path-problem","name":"Polynomial regular expression used on uncontrolled data","precision":"high","problem.severity":"warning","security-severity":"7.5"}},{"id":"js/enabling-electron-insecure-content","name":"js/enabling-electron-insecure-content","shortDescription":{"text":"Enabling Electron allowRunningInsecureContent"},"fullDescription":{"text":"Enabling allowRunningInsecureContent can allow remote code execution."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Enabling Electron allowRunningInsecureContent\nElectron is secure by default through a policy banning the execution of content loaded over HTTP. Setting the `allowRunningInsecureContent` property of a `webPreferences` object to `true` will disable this policy.\n\nEnabling the execution of insecure content is strongly discouraged.\n\n\n## Recommendation\nDo not enable the `allowRunningInsecureContent` property.\n\n\n## Example\nThe following example shows `allowRunningInsecureContent` being enabled.\n\n\n```javascript\nconst mainWindow = new BrowserWindow({\n webPreferences: {\n allowRunningInsecureContent: true\n }\n})\n```\nThis is problematic, since it allows the execution of code from an untrusted origin.\n\n\n## References\n* Electron Documentation: [Security, Native Capabilities, and Your Responsibility](https://electronjs.org/docs/tutorial/security#8-do-not-set-allowrunninginsecurecontent-to-true)\n* Common Weakness Enumeration: [CWE-494](https://cwe.mitre.org/data/definitions/494.html).\n","markdown":"# Enabling Electron allowRunningInsecureContent\nElectron is secure by default through a policy banning the execution of content loaded over HTTP. Setting the `allowRunningInsecureContent` property of a `webPreferences` object to `true` will disable this policy.\n\nEnabling the execution of insecure content is strongly discouraged.\n\n\n## Recommendation\nDo not enable the `allowRunningInsecureContent` property.\n\n\n## Example\nThe following example shows `allowRunningInsecureContent` being enabled.\n\n\n```javascript\nconst mainWindow = new BrowserWindow({\n webPreferences: {\n allowRunningInsecureContent: true\n }\n})\n```\nThis is problematic, since it allows the execution of code from an untrusted origin.\n\n\n## References\n* Electron Documentation: [Security, Native Capabilities, and Your Responsibility](https://electronjs.org/docs/tutorial/security#8-do-not-set-allowrunninginsecurecontent-to-true)\n* Common Weakness Enumeration: [CWE-494](https://cwe.mitre.org/data/definitions/494.html).\n"},"properties":{"tags":["security","frameworks/electron","external/cwe/cwe-494"],"description":"Enabling allowRunningInsecureContent can allow remote code execution.","id":"js/enabling-electron-insecure-content","kind":"problem","name":"Enabling Electron allowRunningInsecureContent","precision":"very-high","problem.severity":"error","security-severity":"8.8"}},{"id":"js/disabling-electron-websecurity","name":"js/disabling-electron-websecurity","shortDescription":{"text":"Disabling Electron webSecurity"},"fullDescription":{"text":"Disabling webSecurity can cause critical security vulnerabilities."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Disabling Electron webSecurity\nElectron is secure by default through a same-origin policy requiring all JavaScript and CSS code to originate from the machine running the Electron application. Setting the `webSecurity` property of a `webPreferences` object to `false` will disable the same-origin policy.\n\nDisabling the same-origin policy is strongly discouraged.\n\n\n## Recommendation\nDo not disable `webSecurity`.\n\n\n## Example\nThe following example shows `webSecurity` being disabled.\n\n\n```javascript\nconst mainWindow = new BrowserWindow({\n webPreferences: {\n webSecurity: false\n }\n})\n```\nThis is problematic, since it allows the execution of insecure code from other domains.\n\n\n## References\n* Electron Documentation: [Security, Native Capabilities, and Your Responsibility](https://electronjs.org/docs/tutorial/security#5-do-not-disable-websecurity)\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n","markdown":"# Disabling Electron webSecurity\nElectron is secure by default through a same-origin policy requiring all JavaScript and CSS code to originate from the machine running the Electron application. Setting the `webSecurity` property of a `webPreferences` object to `false` will disable the same-origin policy.\n\nDisabling the same-origin policy is strongly discouraged.\n\n\n## Recommendation\nDo not disable `webSecurity`.\n\n\n## Example\nThe following example shows `webSecurity` being disabled.\n\n\n```javascript\nconst mainWindow = new BrowserWindow({\n webPreferences: {\n webSecurity: false\n }\n})\n```\nThis is problematic, since it allows the execution of insecure code from other domains.\n\n\n## References\n* Electron Documentation: [Security, Native Capabilities, and Your Responsibility](https://electronjs.org/docs/tutorial/security#5-do-not-disable-websecurity)\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n"},"properties":{"tags":["security","frameworks/electron","external/cwe/cwe-79"],"description":"Disabling webSecurity can cause critical security vulnerabilities.","id":"js/disabling-electron-websecurity","kind":"problem","name":"Disabling Electron webSecurity","precision":"very-high","problem.severity":"error","security-severity":"6.1"}},{"id":"js/tainted-format-string","name":"js/tainted-format-string","shortDescription":{"text":"Use of externally-controlled format string"},"fullDescription":{"text":"Using external input in format strings can lead to garbled output."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Use of externally-controlled format string\nFunctions like the Node.js standard library function `util.format` accept a format string that is used to format the remaining arguments by providing inline format specifiers. If the format string contains unsanitized input from an untrusted source, then that string may contain unexpected format specifiers that cause garbled output.\n\n\n## Recommendation\nEither sanitize the input before including it in the format string, or use a `%s` specifier in the format string, and pass the untrusted data as corresponding argument.\n\n\n## Example\nThe following program snippet logs information about an unauthorized access attempt. The log message includes the user name, and the user's IP address is passed as an additional argument to `console.log` to be appended to the message:\n\n\n```javascript\nconst app = require(\"express\")();\n\napp.get(\"unauthorized\", function handler(req, res) {\n let user = req.query.user;\n let ip = req.connection.remoteAddress;\n console.log(\"Unauthorized access attempt by \" + user, ip);\n});\n\n```\nHowever, if a malicious user provides `%d` as their user name, `console.log` will instead attempt to format the `ip` argument as a number. Since IP addresses are not valid numbers, the result of this conversion is `NaN`. The resulting log message will read \"Unauthorized access attempt by NaN\", missing all the information that it was trying to log in the first place.\n\nInstead, the user name should be included using the `%s` specifier:\n\n\n```javascript\nconst app = require(\"express\")();\n\napp.get(\"unauthorized\", function handler(req, res) {\n let user = req.query.user;\n let ip = req.connection.remoteAddress;\n console.log(\"Unauthorized access attempt by %s\", user, ip);\n});\n\n```\n\n## References\n* Node.js Documentation: [util.format](https://nodejs.org/api/util.html#util_util_format_format_args).\n* Common Weakness Enumeration: [CWE-134](https://cwe.mitre.org/data/definitions/134.html).\n","markdown":"# Use of externally-controlled format string\nFunctions like the Node.js standard library function `util.format` accept a format string that is used to format the remaining arguments by providing inline format specifiers. If the format string contains unsanitized input from an untrusted source, then that string may contain unexpected format specifiers that cause garbled output.\n\n\n## Recommendation\nEither sanitize the input before including it in the format string, or use a `%s` specifier in the format string, and pass the untrusted data as corresponding argument.\n\n\n## Example\nThe following program snippet logs information about an unauthorized access attempt. The log message includes the user name, and the user's IP address is passed as an additional argument to `console.log` to be appended to the message:\n\n\n```javascript\nconst app = require(\"express\")();\n\napp.get(\"unauthorized\", function handler(req, res) {\n let user = req.query.user;\n let ip = req.connection.remoteAddress;\n console.log(\"Unauthorized access attempt by \" + user, ip);\n});\n\n```\nHowever, if a malicious user provides `%d` as their user name, `console.log` will instead attempt to format the `ip` argument as a number. Since IP addresses are not valid numbers, the result of this conversion is `NaN`. The resulting log message will read \"Unauthorized access attempt by NaN\", missing all the information that it was trying to log in the first place.\n\nInstead, the user name should be included using the `%s` specifier:\n\n\n```javascript\nconst app = require(\"express\")();\n\napp.get(\"unauthorized\", function handler(req, res) {\n let user = req.query.user;\n let ip = req.connection.remoteAddress;\n console.log(\"Unauthorized access attempt by %s\", user, ip);\n});\n\n```\n\n## References\n* Node.js Documentation: [util.format](https://nodejs.org/api/util.html#util_util_format_format_args).\n* Common Weakness Enumeration: [CWE-134](https://cwe.mitre.org/data/definitions/134.html).\n"},"properties":{"tags":["security","external/cwe/cwe-134"],"description":"Using external input in format strings can lead to garbled output.","id":"js/tainted-format-string","kind":"path-problem","name":"Use of externally-controlled format string","precision":"high","problem.severity":"warning","security-severity":"7.3"}},{"id":"js/type-confusion-through-parameter-tampering","name":"js/type-confusion-through-parameter-tampering","shortDescription":{"text":"Type confusion through parameter tampering"},"fullDescription":{"text":"Sanitizing an HTTP request parameter may be ineffective if the user controls its type."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Type confusion through parameter tampering\nSanitizing untrusted HTTP request parameters is a common technique for preventing injection attacks such as SQL injection or path traversal. This is sometimes done by checking if the request parameters contain blacklisted substrings.\n\nHowever, sanitizing request parameters assuming they have type `String` and using the builtin string methods such as `String.prototype.indexOf` is susceptible to type confusion attacks. In a type confusion attack, an attacker tampers with an HTTP request parameter such that it has a value of type `Array` instead of the expected type `String`. Furthermore, the content of the array has been crafted to bypass sanitizers by exploiting that some identically named methods of strings and arrays behave differently.\n\n\n## Recommendation\nCheck the runtime type of sanitizer inputs if the input type is user-controlled.\n\nAn even safer alternative is to design the application so that sanitization is not needed, for instance by using prepared statements for SQL queries.\n\n\n## Example\nFor example, Node.js server frameworks usually present request parameters as strings. But if an attacker sends multiple request parameters with the same name, then the request parameter is represented as an array instead.\n\nIn the following example, a sanitizer checks that a path does not contain the `\"..\"` string, which would allow an attacker to access content outside a user-accessible directory.\n\n\n```javascript\nvar app = require(\"express\")(),\n path = require(\"path\");\n\napp.get(\"/user-files\", function(req, res) {\n var file = req.param(\"file\");\n if (file.indexOf(\"..\") !== -1) {\n // BAD\n // we forbid relative paths that contain ..\n // as these could leave the public directory\n res.status(400).send(\"Bad request\");\n } else {\n var absolute = path.resolve(\"/public/\" + file);\n console.log(\"Sending file: %s\", absolute);\n res.sendFile(absolute);\n }\n});\n\n```\nAs written, this sanitizer is ineffective: an array like `[\"../\", \"/../secret.txt\"]` will bypass the sanitizer. The array does not contain `\"..\"` as an element, so the call to `indexOf` returns `-1` . This is problematic since the value of the `absolute` variable then ends up being `\"/secret.txt\"`. This happens since the concatenation of `\"/public/\"` and the array results in `\"/public/../,/../secret.txt\"`, which the `resolve`-call converts to `\"/secret.txt\"`.\n\nTo fix the sanitizer, check that the request parameter is a string, and not an array:\n\n\n```javascript\nvar app = require(\"express\")(),\n path = require(\"path\");\n\napp.get(\"/user-files\", function(req, res) {\n var file = req.param(\"file\");\n if (typeof file !== 'string' || file.indexOf(\"..\") !== -1) {\n // GOOD\n // we forbid relative paths that contain ..\n // as these could leave the public directory\n res.status(400).send(\"Bad request\");\n } else {\n var absolute = path.resolve(\"/public/\" + file);\n console.log(\"Sending file: %s\", absolute);\n res.sendFile(absolute);\n }\n});\n\n```\n\n## References\n* Node.js API: [querystring](https://nodejs.org/api/querystring.html).\n* Common Weakness Enumeration: [CWE-843](https://cwe.mitre.org/data/definitions/843.html).\n","markdown":"# Type confusion through parameter tampering\nSanitizing untrusted HTTP request parameters is a common technique for preventing injection attacks such as SQL injection or path traversal. This is sometimes done by checking if the request parameters contain blacklisted substrings.\n\nHowever, sanitizing request parameters assuming they have type `String` and using the builtin string methods such as `String.prototype.indexOf` is susceptible to type confusion attacks. In a type confusion attack, an attacker tampers with an HTTP request parameter such that it has a value of type `Array` instead of the expected type `String`. Furthermore, the content of the array has been crafted to bypass sanitizers by exploiting that some identically named methods of strings and arrays behave differently.\n\n\n## Recommendation\nCheck the runtime type of sanitizer inputs if the input type is user-controlled.\n\nAn even safer alternative is to design the application so that sanitization is not needed, for instance by using prepared statements for SQL queries.\n\n\n## Example\nFor example, Node.js server frameworks usually present request parameters as strings. But if an attacker sends multiple request parameters with the same name, then the request parameter is represented as an array instead.\n\nIn the following example, a sanitizer checks that a path does not contain the `\"..\"` string, which would allow an attacker to access content outside a user-accessible directory.\n\n\n```javascript\nvar app = require(\"express\")(),\n path = require(\"path\");\n\napp.get(\"/user-files\", function(req, res) {\n var file = req.param(\"file\");\n if (file.indexOf(\"..\") !== -1) {\n // BAD\n // we forbid relative paths that contain ..\n // as these could leave the public directory\n res.status(400).send(\"Bad request\");\n } else {\n var absolute = path.resolve(\"/public/\" + file);\n console.log(\"Sending file: %s\", absolute);\n res.sendFile(absolute);\n }\n});\n\n```\nAs written, this sanitizer is ineffective: an array like `[\"../\", \"/../secret.txt\"]` will bypass the sanitizer. The array does not contain `\"..\"` as an element, so the call to `indexOf` returns `-1` . This is problematic since the value of the `absolute` variable then ends up being `\"/secret.txt\"`. This happens since the concatenation of `\"/public/\"` and the array results in `\"/public/../,/../secret.txt\"`, which the `resolve`-call converts to `\"/secret.txt\"`.\n\nTo fix the sanitizer, check that the request parameter is a string, and not an array:\n\n\n```javascript\nvar app = require(\"express\")(),\n path = require(\"path\");\n\napp.get(\"/user-files\", function(req, res) {\n var file = req.param(\"file\");\n if (typeof file !== 'string' || file.indexOf(\"..\") !== -1) {\n // GOOD\n // we forbid relative paths that contain ..\n // as these could leave the public directory\n res.status(400).send(\"Bad request\");\n } else {\n var absolute = path.resolve(\"/public/\" + file);\n console.log(\"Sending file: %s\", absolute);\n res.sendFile(absolute);\n }\n});\n\n```\n\n## References\n* Node.js API: [querystring](https://nodejs.org/api/querystring.html).\n* Common Weakness Enumeration: [CWE-843](https://cwe.mitre.org/data/definitions/843.html).\n"},"properties":{"tags":["security","external/cwe/cwe-843"],"description":"Sanitizing an HTTP request parameter may be ineffective if the user controls its type.","id":"js/type-confusion-through-parameter-tampering","kind":"path-problem","name":"Type confusion through parameter tampering","precision":"high","problem.severity":"error","security-severity":"9.8"}},{"id":"js/code-injection","name":"js/code-injection","shortDescription":{"text":"Code injection"},"fullDescription":{"text":"Interpreting unsanitized user input as code allows a malicious user arbitrary code execution."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Code injection\nDirectly evaluating user input (for example, an HTTP request parameter) as code without properly sanitizing the input first allows an attacker arbitrary code execution. This can occur when user input is treated as JavaScript, or passed to a framework which interprets it as an expression to be evaluated. Examples include AngularJS expressions or JQuery selectors.\n\n\n## Recommendation\nAvoid including user input in any expression which may be dynamically evaluated. If user input must be included, use context-specific escaping before including it. It is important that the correct escaping is used for the type of evaluation that will occur.\n\n\n## Example\nThe following example shows part of the page URL being evaluated as JavaScript code. This allows an attacker to provide JavaScript within the URL. If an attacker can persuade a user to click on a link to such a URL, the attacker can evaluate arbitrary JavaScript in the browser of the user to, for example, steal cookies containing session information.\n\n\n```javascript\neval(document.location.href.substring(document.location.href.indexOf(\"default=\")+8))\n\n```\nThe following example shows a Pug template being constructed from user input, allowing attackers to run arbitrary code via a payload such as `#{global.process.exit(1)}`.\n\n\n```javascript\nconst express = require('express')\nvar pug = require('pug');\nconst app = express()\n\napp.post('/', (req, res) => {\n var input = req.query.username;\n var template = `\ndoctype\nhtml\nhead\n title= 'Hello world'\nbody\n form(action='/' method='post')\n input#name.form-control(type='text)\n button.btn.btn-primary(type='submit') Submit\n p Hello `+ input\n var fn = pug.compile(template);\n var html = fn();\n res.send(html);\n})\n\n```\nBelow is an example of how to use a template engine without any risk of template injection. The user input is included via an interpolation expression `#{username}` whose value is provided as an option to the template, instead of being part of the template string itself:\n\n\n```javascript\nconst express = require('express')\nvar pug = require('pug');\nconst app = express()\n\napp.post('/', (req, res) => {\n var input = req.query.username;\n var template = `\ndoctype\nhtml\nhead\n title= 'Hello world'\nbody\n form(action='/' method='post')\n input#name.form-control(type='text)\n button.btn.btn-primary(type='submit') Submit\n p Hello #{username}`\n var fn = pug.compile(template);\n var html = fn({username: input});\n res.send(html);\n})\n\n```\n\n## References\n* OWASP: [Code Injection](https://www.owasp.org/index.php/Code_Injection).\n* Wikipedia: [Code Injection](https://en.wikipedia.org/wiki/Code_injection).\n* PortSwigger Research Blog: [Server-Side Template Injection](https://portswigger.net/research/server-side-template-injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n* Common Weakness Enumeration: [CWE-95](https://cwe.mitre.org/data/definitions/95.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n","markdown":"# Code injection\nDirectly evaluating user input (for example, an HTTP request parameter) as code without properly sanitizing the input first allows an attacker arbitrary code execution. This can occur when user input is treated as JavaScript, or passed to a framework which interprets it as an expression to be evaluated. Examples include AngularJS expressions or JQuery selectors.\n\n\n## Recommendation\nAvoid including user input in any expression which may be dynamically evaluated. If user input must be included, use context-specific escaping before including it. It is important that the correct escaping is used for the type of evaluation that will occur.\n\n\n## Example\nThe following example shows part of the page URL being evaluated as JavaScript code. This allows an attacker to provide JavaScript within the URL. If an attacker can persuade a user to click on a link to such a URL, the attacker can evaluate arbitrary JavaScript in the browser of the user to, for example, steal cookies containing session information.\n\n\n```javascript\neval(document.location.href.substring(document.location.href.indexOf(\"default=\")+8))\n\n```\nThe following example shows a Pug template being constructed from user input, allowing attackers to run arbitrary code via a payload such as `#{global.process.exit(1)}`.\n\n\n```javascript\nconst express = require('express')\nvar pug = require('pug');\nconst app = express()\n\napp.post('/', (req, res) => {\n var input = req.query.username;\n var template = `\ndoctype\nhtml\nhead\n title= 'Hello world'\nbody\n form(action='/' method='post')\n input#name.form-control(type='text)\n button.btn.btn-primary(type='submit') Submit\n p Hello `+ input\n var fn = pug.compile(template);\n var html = fn();\n res.send(html);\n})\n\n```\nBelow is an example of how to use a template engine without any risk of template injection. The user input is included via an interpolation expression `#{username}` whose value is provided as an option to the template, instead of being part of the template string itself:\n\n\n```javascript\nconst express = require('express')\nvar pug = require('pug');\nconst app = express()\n\napp.post('/', (req, res) => {\n var input = req.query.username;\n var template = `\ndoctype\nhtml\nhead\n title= 'Hello world'\nbody\n form(action='/' method='post')\n input#name.form-control(type='text)\n button.btn.btn-primary(type='submit') Submit\n p Hello #{username}`\n var fn = pug.compile(template);\n var html = fn({username: input});\n res.send(html);\n})\n\n```\n\n## References\n* OWASP: [Code Injection](https://www.owasp.org/index.php/Code_Injection).\n* Wikipedia: [Code Injection](https://en.wikipedia.org/wiki/Code_injection).\n* PortSwigger Research Blog: [Server-Side Template Injection](https://portswigger.net/research/server-side-template-injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n* Common Weakness Enumeration: [CWE-95](https://cwe.mitre.org/data/definitions/95.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n"},"properties":{"tags":["security","external/cwe/cwe-094","external/cwe/cwe-095","external/cwe/cwe-079","external/cwe/cwe-116"],"description":"Interpreting unsanitized user input as code allows a malicious user arbitrary\n code execution.","id":"js/code-injection","kind":"path-problem","name":"Code injection","precision":"high","problem.severity":"error","security-severity":"9.3"}},{"id":"js/actions/command-injection","name":"js/actions/command-injection","shortDescription":{"text":"Expression injection in Actions"},"fullDescription":{"text":"Using user-controlled GitHub Actions contexts like `run:` or `script:` may allow a malicious user to inject code into the GitHub action."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Expression injection in Actions\nUsing user-controlled input in GitHub Actions may lead to code injection in contexts like *run:* or *script:*.\n\nCode injection in GitHub Actions may allow an attacker to exfiltrate any secrets used in the workflow and the temporary GitHub repository authorization token. The token might have write access to the repository, allowing an attacker to use the token to make changes to the repository.\n\n\n## Recommendation\nThe best practice to avoid code injection vulnerabilities in GitHub workflows is to set the untrusted input value of the expression to an intermediate environment variable and then use the environment variable using the native syntax of the shell/script interpreter (that is, not *${{ env.VAR }}*).\n\nIt is also recommended to limit the permissions of any tokens used by a workflow such as the GITHUB_TOKEN.\n\n\n## Example\nThe following example lets a user inject an arbitrary shell command:\n\n\n```yaml\non: issue_comment\n\njobs:\n echo-body:\n runs-on: ubuntu-latest\n steps:\n - run: |\n echo '${{ github.event.comment.body }}'\n```\nThe following example uses an environment variable, but **still allows the injection** because of the use of expression syntax:\n\n\n```yaml\non: issue_comment\n\njobs:\n echo-body:\n runs-on: ubuntu-latest\n steps:\n - env:\n BODY: ${{ github.event.issue.body }}\n run: |\n echo '${{ env.BODY }}'\n```\nThe following example uses shell syntax to read the environment variable and will prevent the attack:\n\n\n```yaml\non: issue_comment\n\njobs:\n echo-body:\n runs-on: ubuntu-latest\n steps:\n - env:\n BODY: ${{ github.event.issue.body }}\n run: |\n echo \"$BODY\"\n\n```\n\n## References\n* GitHub Security Lab Research: [Keeping your GitHub Actions and workflows secure: Untrusted input](https://securitylab.github.com/research/github-actions-untrusted-input).\n* GitHub Docs: [Security hardening for GitHub Actions](https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions).\n* GitHub Docs: [Permissions for the GITHUB_TOKEN](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n","markdown":"# Expression injection in Actions\nUsing user-controlled input in GitHub Actions may lead to code injection in contexts like *run:* or *script:*.\n\nCode injection in GitHub Actions may allow an attacker to exfiltrate any secrets used in the workflow and the temporary GitHub repository authorization token. The token might have write access to the repository, allowing an attacker to use the token to make changes to the repository.\n\n\n## Recommendation\nThe best practice to avoid code injection vulnerabilities in GitHub workflows is to set the untrusted input value of the expression to an intermediate environment variable and then use the environment variable using the native syntax of the shell/script interpreter (that is, not *${{ env.VAR }}*).\n\nIt is also recommended to limit the permissions of any tokens used by a workflow such as the GITHUB_TOKEN.\n\n\n## Example\nThe following example lets a user inject an arbitrary shell command:\n\n\n```yaml\non: issue_comment\n\njobs:\n echo-body:\n runs-on: ubuntu-latest\n steps:\n - run: |\n echo '${{ github.event.comment.body }}'\n```\nThe following example uses an environment variable, but **still allows the injection** because of the use of expression syntax:\n\n\n```yaml\non: issue_comment\n\njobs:\n echo-body:\n runs-on: ubuntu-latest\n steps:\n - env:\n BODY: ${{ github.event.issue.body }}\n run: |\n echo '${{ env.BODY }}'\n```\nThe following example uses shell syntax to read the environment variable and will prevent the attack:\n\n\n```yaml\non: issue_comment\n\njobs:\n echo-body:\n runs-on: ubuntu-latest\n steps:\n - env:\n BODY: ${{ github.event.issue.body }}\n run: |\n echo \"$BODY\"\n\n```\n\n## References\n* GitHub Security Lab Research: [Keeping your GitHub Actions and workflows secure: Untrusted input](https://securitylab.github.com/research/github-actions-untrusted-input).\n* GitHub Docs: [Security hardening for GitHub Actions](https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions).\n* GitHub Docs: [Permissions for the GITHUB_TOKEN](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"},"properties":{"tags":["actions","security","external/cwe/cwe-094"],"description":"Using user-controlled GitHub Actions contexts like `run:` or `script:` may allow a malicious\n user to inject code into the GitHub action.","id":"js/actions/command-injection","kind":"problem","name":"Expression injection in Actions","precision":"high","problem.severity":"warning","security-severity":"9.3"}},{"id":"js/unsafe-dynamic-method-access","name":"js/unsafe-dynamic-method-access","shortDescription":{"text":"Unsafe dynamic method access"},"fullDescription":{"text":"Invoking user-controlled methods on certain objects can lead to remote code execution."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Unsafe dynamic method access\nCalling a user-controlled method on certain objects can lead to invocation of unsafe functions, such as `eval` or the `Function` constructor. In particular, the global object contains the `eval` function, and any function object contains the `Function` constructor in its `constructor` property.\n\n\n## Recommendation\nAvoid invoking user-controlled methods on the global object or on any function object. Whitelist the permitted method names or change the type of object the methods are stored on.\n\n\n## Example\nIn the following example, a message from the document's parent frame can invoke the `play` or `pause` method. However, it can also invoke `eval`. A malicious website could embed the page in an iframe and execute arbitrary code by sending a message with the name `eval`.\n\n\n```javascript\n// API methods\nfunction play(data) {\n // ...\n}\nfunction pause(data) {\n // ...\n}\n\nwindow.addEventListener(\"message\", (ev) => {\n let message = JSON.parse(ev.data);\n\n // Let the parent frame call the 'play' or 'pause' function \n window[message.name](message.payload);\n});\n\n```\nInstead of storing the API methods in the global scope, put them in an API object or Map. It is also good practice to prevent invocation of inherited methods like `toString` and `valueOf`.\n\n\n```javascript\n// API methods\nlet api = {\n play: function(data) {\n // ...\n },\n pause: function(data) {\n // ...\n }\n};\n\nwindow.addEventListener(\"message\", (ev) => {\n let message = JSON.parse(ev.data);\n\n // Let the parent frame call the 'play' or 'pause' function\n if (!api.hasOwnProperty(message.name)) {\n return;\n }\n api[message.name](message.payload);\n});\n\n```\n\n## References\n* OWASP: [Code Injection](https://www.owasp.org/index.php/Code_Injection).\n* MDN: [Global functions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects#Function_properties).\n* MDN: [Function constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n","markdown":"# Unsafe dynamic method access\nCalling a user-controlled method on certain objects can lead to invocation of unsafe functions, such as `eval` or the `Function` constructor. In particular, the global object contains the `eval` function, and any function object contains the `Function` constructor in its `constructor` property.\n\n\n## Recommendation\nAvoid invoking user-controlled methods on the global object or on any function object. Whitelist the permitted method names or change the type of object the methods are stored on.\n\n\n## Example\nIn the following example, a message from the document's parent frame can invoke the `play` or `pause` method. However, it can also invoke `eval`. A malicious website could embed the page in an iframe and execute arbitrary code by sending a message with the name `eval`.\n\n\n```javascript\n// API methods\nfunction play(data) {\n // ...\n}\nfunction pause(data) {\n // ...\n}\n\nwindow.addEventListener(\"message\", (ev) => {\n let message = JSON.parse(ev.data);\n\n // Let the parent frame call the 'play' or 'pause' function \n window[message.name](message.payload);\n});\n\n```\nInstead of storing the API methods in the global scope, put them in an API object or Map. It is also good practice to prevent invocation of inherited methods like `toString` and `valueOf`.\n\n\n```javascript\n// API methods\nlet api = {\n play: function(data) {\n // ...\n },\n pause: function(data) {\n // ...\n }\n};\n\nwindow.addEventListener(\"message\", (ev) => {\n let message = JSON.parse(ev.data);\n\n // Let the parent frame call the 'play' or 'pause' function\n if (!api.hasOwnProperty(message.name)) {\n return;\n }\n api[message.name](message.payload);\n});\n\n```\n\n## References\n* OWASP: [Code Injection](https://www.owasp.org/index.php/Code_Injection).\n* MDN: [Global functions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects#Function_properties).\n* MDN: [Function constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"},"properties":{"tags":["security","external/cwe/cwe-094"],"description":"Invoking user-controlled methods on certain objects can lead to remote code execution.","id":"js/unsafe-dynamic-method-access","kind":"path-problem","name":"Unsafe dynamic method access","precision":"high","problem.severity":"error","security-severity":"9.3"}},{"id":"js/bad-code-sanitization","name":"js/bad-code-sanitization","shortDescription":{"text":"Improper code sanitization"},"fullDescription":{"text":"Escaping code as HTML does not provide protection against code injection."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Improper code sanitization\nUsing string concatenation to construct JavaScript code can be error-prone, or in the worst case, enable code injection if an input is constructed by an attacker.\n\n\n## Recommendation\nIf using `JSON.stringify` or an HTML sanitizer to sanitize a string inserted into JavaScript code, then make sure to perform additional sanitization or remove potentially dangerous characters.\n\n\n## Example\nThe example below constructs a function that assigns the number 42 to the property `key` on an object `obj`. However, if `key` contains ``, then the generated code will break out of a `` if inserted into a `` tag.\n\n\n```javascript\nfunction createObjectWrite() {\n const assignment = `obj[${JSON.stringify(key)}]=42`;\n return `(function(){${assignment}})` // NOT OK\n}\n```\nThe issue has been fixed by escaping potentially dangerous characters, as shown below.\n\n\n```javascript\nconst charMap = {\n '<': '\\\\u003C',\n '>' : '\\\\u003E',\n '/': '\\\\u002F',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029'\n};\n\nfunction escapeUnsafeChars(str) {\n return str.replace(/[<>\\b\\f\\n\\r\\t\\0\\u2028\\u2029]/g, x => charMap[x])\n}\n\nfunction createObjectWrite() {\n const assignment = `obj[${escapeUnsafeChars(JSON.stringify(key))}]=42`;\n return `(function(){${assignment}})` // OK\n}\n```\n\n## References\n* OWASP: [Code Injection](https://www.owasp.org/index.php/Code_Injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n","markdown":"# Improper code sanitization\nUsing string concatenation to construct JavaScript code can be error-prone, or in the worst case, enable code injection if an input is constructed by an attacker.\n\n\n## Recommendation\nIf using `JSON.stringify` or an HTML sanitizer to sanitize a string inserted into JavaScript code, then make sure to perform additional sanitization or remove potentially dangerous characters.\n\n\n## Example\nThe example below constructs a function that assigns the number 42 to the property `key` on an object `obj`. However, if `key` contains ``, then the generated code will break out of a `` if inserted into a `` tag.\n\n\n```javascript\nfunction createObjectWrite() {\n const assignment = `obj[${JSON.stringify(key)}]=42`;\n return `(function(){${assignment}})` // NOT OK\n}\n```\nThe issue has been fixed by escaping potentially dangerous characters, as shown below.\n\n\n```javascript\nconst charMap = {\n '<': '\\\\u003C',\n '>' : '\\\\u003E',\n '/': '\\\\u002F',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029'\n};\n\nfunction escapeUnsafeChars(str) {\n return str.replace(/[<>\\b\\f\\n\\r\\t\\0\\u2028\\u2029]/g, x => charMap[x])\n}\n\nfunction createObjectWrite() {\n const assignment = `obj[${escapeUnsafeChars(JSON.stringify(key))}]=42`;\n return `(function(){${assignment}})` // OK\n}\n```\n\n## References\n* OWASP: [Code Injection](https://www.owasp.org/index.php/Code_Injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n"},"properties":{"tags":["security","external/cwe/cwe-094","external/cwe/cwe-079","external/cwe/cwe-116"],"description":"Escaping code as HTML does not provide protection against code injection.","id":"js/bad-code-sanitization","kind":"path-problem","name":"Improper code sanitization","precision":"high","problem.severity":"error","security-severity":"6.1"}},{"id":"js/insecure-dependency","name":"js/insecure-dependency","shortDescription":{"text":"Dependency download using unencrypted communication channel"},"fullDescription":{"text":"Using unencrypted protocols to fetch dependencies can leave an application open to man-in-the-middle attacks."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Dependency download using unencrypted communication channel\nUsing an insecure protocol like HTTP or FTP to download build dependencies makes the build process vulnerable to a man-in-the-middle (MITM) attack.\n\nThis can allow attackers to inject malicious code into the downloaded dependencies, and thereby infect the build artifacts and execute arbitrary code on the machine building the artifacts.\n\n\n## Recommendation\nAlways use a secure protocol, such as HTTPS or SFTP, when downloading artifacts from an URL.\n\n\n## Example\nThe below example shows a `package.json` file that downloads a dependency using the insecure HTTP protocol.\n\n\n```json\n{\n \"name\": \"example-project\",\n \"dependencies\": {\n \"unencrypted\": \"http://example.org/foo/tarball/release/0.0.1\",\n \"lodash\": \"^4.0.0\"\n }\n}\n```\nThe fix is to change the protocol to HTTPS.\n\n\n```json\n{\n \"name\": \"example-project\",\n \"dependencies\": {\n \"unencrypted\": \"https://example.org/foo/tarball/release/0.0.1\",\n \"lodash\": \"^4.0.0\"\n }\n}\n```\n\n## References\n* Jonathan Leitschuh: [ Want to take over the Java ecosystem? All you need is a MITM! ](https://infosecwriteups.com/want-to-take-over-the-java-ecosystem-all-you-need-is-a-mitm-1fc329d898fb)\n* Max Veytsman: [ How to take over the computer of any Java (or Closure or Scala) Developer. ](https://max.computer/blog/how-to-take-over-the-computer-of-any-java-or-clojure-or-scala-developer/)\n* Wikipedia: [Supply chain attack.](https://en.wikipedia.org/wiki/Supply_chain_attack)\n* Wikipedia: [Man-in-the-middle attack.](https://en.wikipedia.org/wiki/Man-in-the-middle_attack)\n* Common Weakness Enumeration: [CWE-300](https://cwe.mitre.org/data/definitions/300.html).\n* Common Weakness Enumeration: [CWE-319](https://cwe.mitre.org/data/definitions/319.html).\n* Common Weakness Enumeration: [CWE-494](https://cwe.mitre.org/data/definitions/494.html).\n* Common Weakness Enumeration: [CWE-829](https://cwe.mitre.org/data/definitions/829.html).\n","markdown":"# Dependency download using unencrypted communication channel\nUsing an insecure protocol like HTTP or FTP to download build dependencies makes the build process vulnerable to a man-in-the-middle (MITM) attack.\n\nThis can allow attackers to inject malicious code into the downloaded dependencies, and thereby infect the build artifacts and execute arbitrary code on the machine building the artifacts.\n\n\n## Recommendation\nAlways use a secure protocol, such as HTTPS or SFTP, when downloading artifacts from an URL.\n\n\n## Example\nThe below example shows a `package.json` file that downloads a dependency using the insecure HTTP protocol.\n\n\n```json\n{\n \"name\": \"example-project\",\n \"dependencies\": {\n \"unencrypted\": \"http://example.org/foo/tarball/release/0.0.1\",\n \"lodash\": \"^4.0.0\"\n }\n}\n```\nThe fix is to change the protocol to HTTPS.\n\n\n```json\n{\n \"name\": \"example-project\",\n \"dependencies\": {\n \"unencrypted\": \"https://example.org/foo/tarball/release/0.0.1\",\n \"lodash\": \"^4.0.0\"\n }\n}\n```\n\n## References\n* Jonathan Leitschuh: [ Want to take over the Java ecosystem? All you need is a MITM! ](https://infosecwriteups.com/want-to-take-over-the-java-ecosystem-all-you-need-is-a-mitm-1fc329d898fb)\n* Max Veytsman: [ How to take over the computer of any Java (or Closure or Scala) Developer. ](https://max.computer/blog/how-to-take-over-the-computer-of-any-java-or-clojure-or-scala-developer/)\n* Wikipedia: [Supply chain attack.](https://en.wikipedia.org/wiki/Supply_chain_attack)\n* Wikipedia: [Man-in-the-middle attack.](https://en.wikipedia.org/wiki/Man-in-the-middle_attack)\n* Common Weakness Enumeration: [CWE-300](https://cwe.mitre.org/data/definitions/300.html).\n* Common Weakness Enumeration: [CWE-319](https://cwe.mitre.org/data/definitions/319.html).\n* Common Weakness Enumeration: [CWE-494](https://cwe.mitre.org/data/definitions/494.html).\n* Common Weakness Enumeration: [CWE-829](https://cwe.mitre.org/data/definitions/829.html).\n"},"properties":{"tags":["security","external/cwe/cwe-300","external/cwe/cwe-319","external/cwe/cwe-494","external/cwe/cwe-829"],"description":"Using unencrypted protocols to fetch dependencies can leave an application\n open to man-in-the-middle attacks.","id":"js/insecure-dependency","kind":"problem","name":"Dependency download using unencrypted communication channel","precision":"high","problem.severity":"warning","security-severity":"8.1"}},{"id":"js/cross-window-information-leak","name":"js/cross-window-information-leak","shortDescription":{"text":"Cross-window communication with unrestricted target origin"},"fullDescription":{"text":"When sending sensitive information to another window using `postMessage`, the origin of the target window should be restricted to avoid unintentional information leaks."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Cross-window communication with unrestricted target origin\nThe `window.postMessage` method allows different windows or iframes to communicate directly, even if they were loaded from different origins, circumventing the usual same-origin policy.\n\nThe sender of the message can restrict the origin of the receiver by specifying a target origin. If the receiver window does not come from this origin, the message is not sent.\n\nAlternatively, the sender can specify a target origin of `'*'`, which means that any origin is acceptable and the message is always sent.\n\nThis feature should not be used if the message being sent contains sensitive data such as user credentials: the target window may have been loaded from a malicious site, to which the data would then become available.\n\n\n## Recommendation\nIf possible, specify a target origin when using `window.postMessage`. Alternatively, encrypt the sensitive data before sending it to prevent an unauthorized receiver from accessing it.\n\n\n## Example\nThe following example code sends user credentials (in this case, their user name) to `window.parent` without checking its origin. If a malicious site loads the page containing this code into an iframe it would be able to gain access to the user name.\n\n\n```javascript\nwindow.parent.postMessage(userName, '*');\n\n```\nTo prevent this from happening, the origin of the target window should be restricted, as in this example:\n\n\n```javascript\nwindow.parent.postMessage(userName, 'https://github.com');\n\n```\n\n## References\n* Mozilla Developer Network: [Window.postMessage](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage).\n* Mozilla Developer Network: [Same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy).\n* Common Weakness Enumeration: [CWE-201](https://cwe.mitre.org/data/definitions/201.html).\n* Common Weakness Enumeration: [CWE-359](https://cwe.mitre.org/data/definitions/359.html).\n","markdown":"# Cross-window communication with unrestricted target origin\nThe `window.postMessage` method allows different windows or iframes to communicate directly, even if they were loaded from different origins, circumventing the usual same-origin policy.\n\nThe sender of the message can restrict the origin of the receiver by specifying a target origin. If the receiver window does not come from this origin, the message is not sent.\n\nAlternatively, the sender can specify a target origin of `'*'`, which means that any origin is acceptable and the message is always sent.\n\nThis feature should not be used if the message being sent contains sensitive data such as user credentials: the target window may have been loaded from a malicious site, to which the data would then become available.\n\n\n## Recommendation\nIf possible, specify a target origin when using `window.postMessage`. Alternatively, encrypt the sensitive data before sending it to prevent an unauthorized receiver from accessing it.\n\n\n## Example\nThe following example code sends user credentials (in this case, their user name) to `window.parent` without checking its origin. If a malicious site loads the page containing this code into an iframe it would be able to gain access to the user name.\n\n\n```javascript\nwindow.parent.postMessage(userName, '*');\n\n```\nTo prevent this from happening, the origin of the target window should be restricted, as in this example:\n\n\n```javascript\nwindow.parent.postMessage(userName, 'https://github.com');\n\n```\n\n## References\n* Mozilla Developer Network: [Window.postMessage](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage).\n* Mozilla Developer Network: [Same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy).\n* Common Weakness Enumeration: [CWE-201](https://cwe.mitre.org/data/definitions/201.html).\n* Common Weakness Enumeration: [CWE-359](https://cwe.mitre.org/data/definitions/359.html).\n"},"properties":{"tags":["security","external/cwe/cwe-201","external/cwe/cwe-359"],"description":"When sending sensitive information to another window using `postMessage`,\n the origin of the target window should be restricted to avoid unintentional\n information leaks.","id":"js/cross-window-information-leak","kind":"path-problem","name":"Cross-window communication with unrestricted target origin","precision":"high","problem.severity":"error","security-severity":"4.3"}},{"id":"js/jwt-missing-verification","name":"js/jwt-missing-verification","shortDescription":{"text":"JWT missing secret or public key verification"},"fullDescription":{"text":"The application does not verify the JWT payload with a cryptographic secret or public key."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# JWT missing secret or public key verification\nApplications decoding JSON Web Tokens (JWT) may be misconfigured due to the `None` algorithm.\n\nThe `None` algorithm is selected by calling the `verify()` function with a falsy value instead of a cryptographic secret or key. The `None` algorithm disables the integrity enforcement of a JWT payload and may allow a malicious actor to make unintended changes to a JWT payload leading to critical security issues like privilege escalation.\n\n\n## Recommendation\nCalls to `verify()` functions should use a cryptographic secret or key to decode JWT payloads.\n\n\n## Example\nIn the example below, `false` is used to disable the integrity enforcement of a JWT payload. This may allow a malicious actor to make changes to a JWT payload.\n\n\n```javascript\nconst jwt = require(\"jsonwebtoken\");\n\nconst secret = \"my-secret-key\";\n\nvar token = jwt.sign({ foo: 'bar' }, secret, { algorithm: \"none\" })\njwt.verify(token, false, { algorithms: [\"HS256\", \"none\"] })\n```\nThe following code fixes the problem by using a cryptographic secret or key to decode JWT payloads.\n\n\n```javascript\n\nconst jwt = require(\"jsonwebtoken\");\n\nconst secret = \"my-secret-key\";\n\nvar token = jwt.sign({ foo: 'bar' }, secret, { algorithm: \"HS256\" }) \njwt.verify(token, secret, { algorithms: [\"HS256\", \"none\"] })\n```\n\n## References\n* Auth0 Blog: [Meet the \"None\" Algorithm](https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/#Meet-the--None--Algorithm).\n* Common Weakness Enumeration: [CWE-347](https://cwe.mitre.org/data/definitions/347.html).\n","markdown":"# JWT missing secret or public key verification\nApplications decoding JSON Web Tokens (JWT) may be misconfigured due to the `None` algorithm.\n\nThe `None` algorithm is selected by calling the `verify()` function with a falsy value instead of a cryptographic secret or key. The `None` algorithm disables the integrity enforcement of a JWT payload and may allow a malicious actor to make unintended changes to a JWT payload leading to critical security issues like privilege escalation.\n\n\n## Recommendation\nCalls to `verify()` functions should use a cryptographic secret or key to decode JWT payloads.\n\n\n## Example\nIn the example below, `false` is used to disable the integrity enforcement of a JWT payload. This may allow a malicious actor to make changes to a JWT payload.\n\n\n```javascript\nconst jwt = require(\"jsonwebtoken\");\n\nconst secret = \"my-secret-key\";\n\nvar token = jwt.sign({ foo: 'bar' }, secret, { algorithm: \"none\" })\njwt.verify(token, false, { algorithms: [\"HS256\", \"none\"] })\n```\nThe following code fixes the problem by using a cryptographic secret or key to decode JWT payloads.\n\n\n```javascript\n\nconst jwt = require(\"jsonwebtoken\");\n\nconst secret = \"my-secret-key\";\n\nvar token = jwt.sign({ foo: 'bar' }, secret, { algorithm: \"HS256\" }) \njwt.verify(token, secret, { algorithms: [\"HS256\", \"none\"] })\n```\n\n## References\n* Auth0 Blog: [Meet the \"None\" Algorithm](https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/#Meet-the--None--Algorithm).\n* Common Weakness Enumeration: [CWE-347](https://cwe.mitre.org/data/definitions/347.html).\n"},"properties":{"tags":["security","external/cwe/cwe-347"],"description":"The application does not verify the JWT payload with a cryptographic secret or public key.","id":"js/jwt-missing-verification","kind":"problem","name":"JWT missing secret or public key verification","precision":"high","problem.severity":"warning","security-severity":"7.0"}},{"id":"js/incorrect-suffix-check","name":"js/incorrect-suffix-check","shortDescription":{"text":"Incorrect suffix check"},"fullDescription":{"text":"Using indexOf to implement endsWith functionality is error-prone if the -1 case is not explicitly handled."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Incorrect suffix check\nThe `indexOf` and `lastIndexOf` methods are sometimes used to check if a substring occurs at a certain position in a string. However, if the returned index is compared to an expression that might evaluate to -1, the check may pass in some cases where the substring was not found at all.\n\nSpecifically, this can easily happen when implementing `endsWith` using `indexOf`.\n\n\n## Recommendation\nUse `String.prototype.endsWith` if it is available. Otherwise, explicitly handle the -1 case, either by checking the relative lengths of the strings, or by checking if the returned index is -1.\n\n\n## Example\nThe following example uses `lastIndexOf` to determine if the string `x` ends with the string `y`:\n\n\n```javascript\nfunction endsWith(x, y) {\n return x.lastIndexOf(y) === x.length - y.length;\n}\n\n```\nHowever, if `y` is one character longer than `x`, the right-hand side `x.length - y.length` becomes -1, which then equals the return value of `lastIndexOf`. This will make the test pass, even though `x` does not end with `y`.\n\nTo avoid this, explicitly check for the -1 case:\n\n\n```javascript\nfunction endsWith(x, y) {\n let index = x.lastIndexOf(y);\n return index !== -1 && index === x.length - y.length;\n}\n\n```\n\n## References\n* MDN: [String.prototype.endsWith](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith)\n* MDN: [String.prototype.indexOf](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf)\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n","markdown":"# Incorrect suffix check\nThe `indexOf` and `lastIndexOf` methods are sometimes used to check if a substring occurs at a certain position in a string. However, if the returned index is compared to an expression that might evaluate to -1, the check may pass in some cases where the substring was not found at all.\n\nSpecifically, this can easily happen when implementing `endsWith` using `indexOf`.\n\n\n## Recommendation\nUse `String.prototype.endsWith` if it is available. Otherwise, explicitly handle the -1 case, either by checking the relative lengths of the strings, or by checking if the returned index is -1.\n\n\n## Example\nThe following example uses `lastIndexOf` to determine if the string `x` ends with the string `y`:\n\n\n```javascript\nfunction endsWith(x, y) {\n return x.lastIndexOf(y) === x.length - y.length;\n}\n\n```\nHowever, if `y` is one character longer than `x`, the right-hand side `x.length - y.length` becomes -1, which then equals the return value of `lastIndexOf`. This will make the test pass, even though `x` does not end with `y`.\n\nTo avoid this, explicitly check for the -1 case:\n\n\n```javascript\nfunction endsWith(x, y) {\n let index = x.lastIndexOf(y);\n return index !== -1 && index === x.length - y.length;\n}\n\n```\n\n## References\n* MDN: [String.prototype.endsWith](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith)\n* MDN: [String.prototype.indexOf](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf)\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n"},"properties":{"tags":["security","correctness","external/cwe/cwe-020"],"description":"Using indexOf to implement endsWith functionality is error-prone if the -1 case is not explicitly handled.","id":"js/incorrect-suffix-check","kind":"problem","name":"Incorrect suffix check","precision":"high","problem.severity":"error","security-severity":"7.8"}},{"id":"js/incomplete-hostname-regexp","name":"js/incomplete-hostname-regexp","shortDescription":{"text":"Incomplete regular expression for hostnames"},"fullDescription":{"text":"Matching a URL or hostname against a regular expression that contains an unescaped dot as part of the hostname might match more hostnames than expected."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Incomplete regular expression for hostnames\nSanitizing untrusted URLs is an important technique for preventing attacks such as request forgeries and malicious redirections. Often, this is done by checking that the host of a URL is in a set of allowed hosts.\n\nIf a regular expression implements such a check, it is easy to accidentally make the check too permissive by not escaping the `.` meta-characters appropriately. Even if the check is not used in a security-critical context, the incomplete check may still cause undesirable behaviors when it accidentally succeeds.\n\n\n## Recommendation\nEscape all meta-characters appropriately when constructing regular expressions for security checks, and pay special attention to the `.` meta-character.\n\n\n## Example\nThe following example code checks that a URL redirection will reach the `example.com` domain, or one of its subdomains.\n\n\n```javascript\napp.get('/some/path', function(req, res) {\n let url = req.param('url'),\n host = urlLib.parse(url).host;\n // BAD: the host of `url` may be controlled by an attacker\n let regex = /^((www|beta).)?example.com/;\n if (host.match(regex)) {\n res.redirect(url);\n }\n});\n\n```\nThe check is however easy to bypass because the unescaped `.` allows for any character before `example.com`, effectively allowing the redirect to go to an attacker-controlled domain such as `wwwXexample.com`.\n\nAddress this vulnerability by escaping `.` appropriately: `let regex = /^((www|beta)\\.)?example\\.com/`.\n\n\n## References\n* MDN: [Regular Expressions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)\n* OWASP: [SSRF](https://www.owasp.org/index.php/Server_Side_Request_Forgery)\n* OWASP: [XSS Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n","markdown":"# Incomplete regular expression for hostnames\nSanitizing untrusted URLs is an important technique for preventing attacks such as request forgeries and malicious redirections. Often, this is done by checking that the host of a URL is in a set of allowed hosts.\n\nIf a regular expression implements such a check, it is easy to accidentally make the check too permissive by not escaping the `.` meta-characters appropriately. Even if the check is not used in a security-critical context, the incomplete check may still cause undesirable behaviors when it accidentally succeeds.\n\n\n## Recommendation\nEscape all meta-characters appropriately when constructing regular expressions for security checks, and pay special attention to the `.` meta-character.\n\n\n## Example\nThe following example code checks that a URL redirection will reach the `example.com` domain, or one of its subdomains.\n\n\n```javascript\napp.get('/some/path', function(req, res) {\n let url = req.param('url'),\n host = urlLib.parse(url).host;\n // BAD: the host of `url` may be controlled by an attacker\n let regex = /^((www|beta).)?example.com/;\n if (host.match(regex)) {\n res.redirect(url);\n }\n});\n\n```\nThe check is however easy to bypass because the unescaped `.` allows for any character before `example.com`, effectively allowing the redirect to go to an attacker-controlled domain such as `wwwXexample.com`.\n\nAddress this vulnerability by escaping `.` appropriately: `let regex = /^((www|beta)\\.)?example\\.com/`.\n\n\n## References\n* MDN: [Regular Expressions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)\n* OWASP: [SSRF](https://www.owasp.org/index.php/Server_Side_Request_Forgery)\n* OWASP: [XSS Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n"},"properties":{"tags":["correctness","security","external/cwe/cwe-020"],"description":"Matching a URL or hostname against a regular expression that contains an unescaped dot as part of the hostname might match more hostnames than expected.","id":"js/incomplete-hostname-regexp","kind":"problem","name":"Incomplete regular expression for hostnames","precision":"high","problem.severity":"warning","security-severity":"7.8"}},{"id":"js/incomplete-url-substring-sanitization","name":"js/incomplete-url-substring-sanitization","shortDescription":{"text":"Incomplete URL substring sanitization"},"fullDescription":{"text":"Security checks on the substrings of an unparsed URL are often vulnerable to bypassing."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Incomplete URL substring sanitization\nSanitizing untrusted URLs is an important technique for preventing attacks such as request forgeries and malicious redirections. Usually, this is done by checking that the host of a URL is in a set of allowed hosts.\n\nHowever, treating the URL as a string and checking if one of the allowed hosts is a substring of the URL is very prone to errors. Malicious URLs can bypass such security checks by embedding one of the allowed hosts in an unexpected location.\n\nEven if the substring check is not used in a security-critical context, the incomplete check may still cause undesirable behaviors when the check succeeds accidentally.\n\n\n## Recommendation\nParse a URL before performing a check on its host value, and ensure that the check handles arbitrary subdomain sequences correctly.\n\n\n## Example\nThe following example code checks that a URL redirection will reach the `example.com` domain, or one of its subdomains, and not some malicious site.\n\n\n```javascript\napp.get('/some/path', function(req, res) {\n let url = req.param(\"url\");\n // BAD: the host of `url` may be controlled by an attacker\n if (url.includes(\"example.com\")) {\n res.redirect(url);\n }\n});\n\n```\nThe substring check is, however, easy to bypass. For example by embedding `example.com` in the path component: `http://evil-example.net/example.com`, or in the query string component: `http://evil-example.net/?x=example.com`. Address these shortcomings by checking the host of the parsed URL instead:\n\n\n```javascript\napp.get('/some/path', function(req, res) {\n let url = req.param(\"url\"),\n host = urlLib.parse(url).host;\n // BAD: the host of `url` may be controlled by an attacker\n if (host.includes(\"example.com\")) {\n res.redirect(url);\n }\n});\n\n```\nThis is still not a sufficient check as the following URLs bypass it: `http://evil-example.com` `http://example.com.evil-example.net`. Instead, use an explicit whitelist of allowed hosts to make the redirect secure:\n\n\n```javascript\napp.get('/some/path', function(req, res) {\n let url = req.param('url'),\n host = urlLib.parse(url).host;\n // GOOD: the host of `url` can not be controlled by an attacker\n let allowedHosts = [\n 'example.com',\n 'beta.example.com',\n 'www.example.com'\n ];\n if (allowedHosts.includes(host)) {\n res.redirect(url);\n }\n});\n\n```\n\n## References\n* OWASP: [SSRF](https://www.owasp.org/index.php/Server_Side_Request_Forgery)\n* OWASP: [XSS Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n","markdown":"# Incomplete URL substring sanitization\nSanitizing untrusted URLs is an important technique for preventing attacks such as request forgeries and malicious redirections. Usually, this is done by checking that the host of a URL is in a set of allowed hosts.\n\nHowever, treating the URL as a string and checking if one of the allowed hosts is a substring of the URL is very prone to errors. Malicious URLs can bypass such security checks by embedding one of the allowed hosts in an unexpected location.\n\nEven if the substring check is not used in a security-critical context, the incomplete check may still cause undesirable behaviors when the check succeeds accidentally.\n\n\n## Recommendation\nParse a URL before performing a check on its host value, and ensure that the check handles arbitrary subdomain sequences correctly.\n\n\n## Example\nThe following example code checks that a URL redirection will reach the `example.com` domain, or one of its subdomains, and not some malicious site.\n\n\n```javascript\napp.get('/some/path', function(req, res) {\n let url = req.param(\"url\");\n // BAD: the host of `url` may be controlled by an attacker\n if (url.includes(\"example.com\")) {\n res.redirect(url);\n }\n});\n\n```\nThe substring check is, however, easy to bypass. For example by embedding `example.com` in the path component: `http://evil-example.net/example.com`, or in the query string component: `http://evil-example.net/?x=example.com`. Address these shortcomings by checking the host of the parsed URL instead:\n\n\n```javascript\napp.get('/some/path', function(req, res) {\n let url = req.param(\"url\"),\n host = urlLib.parse(url).host;\n // BAD: the host of `url` may be controlled by an attacker\n if (host.includes(\"example.com\")) {\n res.redirect(url);\n }\n});\n\n```\nThis is still not a sufficient check as the following URLs bypass it: `http://evil-example.com` `http://example.com.evil-example.net`. Instead, use an explicit whitelist of allowed hosts to make the redirect secure:\n\n\n```javascript\napp.get('/some/path', function(req, res) {\n let url = req.param('url'),\n host = urlLib.parse(url).host;\n // GOOD: the host of `url` can not be controlled by an attacker\n let allowedHosts = [\n 'example.com',\n 'beta.example.com',\n 'www.example.com'\n ];\n if (allowedHosts.includes(host)) {\n res.redirect(url);\n }\n});\n\n```\n\n## References\n* OWASP: [SSRF](https://www.owasp.org/index.php/Server_Side_Request_Forgery)\n* OWASP: [XSS Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n"},"properties":{"tags":["correctness","security","external/cwe/cwe-020"],"description":"Security checks on the substrings of an unparsed URL are often vulnerable to bypassing.","id":"js/incomplete-url-substring-sanitization","kind":"problem","name":"Incomplete URL substring sanitization","precision":"high","problem.severity":"warning","security-severity":"7.8"}},{"id":"js/useless-regexp-character-escape","name":"js/useless-regexp-character-escape","shortDescription":{"text":"Useless regular-expression character escape"},"fullDescription":{"text":"Prepending a backslash to an ordinary character in a string does not have any effect, and may make regular expressions constructed from this string behave unexpectedly."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Useless regular-expression character escape\nWhen a character in a string literal or regular expression literal is preceded by a backslash, it is interpreted as part of an escape sequence. For example, the escape sequence `\\n` in a string literal corresponds to a single `newline` character, and not the `\\` and `n` characters. However, not all characters change meaning when used in an escape sequence. In this case, the backslash just makes the character appear to mean something else, and the backslash actually has no effect. For example, the escape sequence `\\k` in a string literal just means `k`. Such superfluous escape sequences are usually benign, and do not change the behavior of the program.\n\nThe set of characters that change meaning when in escape sequences is different for regular expression literals and string literals. This can be problematic when a regular expression literal is turned into a regular expression that is built from one or more string literals. The problem occurs when a regular expression escape sequence loses its special meaning in a string literal.\n\n\n## Recommendation\nEnsure that the right amount of backslashes is used when escaping characters in strings, template literals and regular expressions. Pay special attention to the number of backslashes when rewriting a regular expression as a string literal.\n\n\n## Example\nThe following example code checks that a string is `\"my-marker\"`, possibly surrounded by white space:\n\n\n```javascript\nlet regex = new RegExp('(^\\s*)my-marker(\\s*$)'),\n isMyMarkerText = regex.test(text);\n\n```\nHowever, the check does not work properly for white space as the two `\\s` occurrences are semantically equivalent to just `s`, meaning that the check will succeed for strings like `\"smy-markers\"` instead of `\" my-marker \"`. Address these shortcomings by either using a regular expression literal (`/(^\\s*)my-marker(\\s*$)/`), or by adding extra backslashes (`'(^\\\\s*)my-marker(\\\\s*$)'`).\n\n\n## References\n* MDN: [Regular expression escape notation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping)\n* MDN: [String escape notation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#Escape_notation)\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n","markdown":"# Useless regular-expression character escape\nWhen a character in a string literal or regular expression literal is preceded by a backslash, it is interpreted as part of an escape sequence. For example, the escape sequence `\\n` in a string literal corresponds to a single `newline` character, and not the `\\` and `n` characters. However, not all characters change meaning when used in an escape sequence. In this case, the backslash just makes the character appear to mean something else, and the backslash actually has no effect. For example, the escape sequence `\\k` in a string literal just means `k`. Such superfluous escape sequences are usually benign, and do not change the behavior of the program.\n\nThe set of characters that change meaning when in escape sequences is different for regular expression literals and string literals. This can be problematic when a regular expression literal is turned into a regular expression that is built from one or more string literals. The problem occurs when a regular expression escape sequence loses its special meaning in a string literal.\n\n\n## Recommendation\nEnsure that the right amount of backslashes is used when escaping characters in strings, template literals and regular expressions. Pay special attention to the number of backslashes when rewriting a regular expression as a string literal.\n\n\n## Example\nThe following example code checks that a string is `\"my-marker\"`, possibly surrounded by white space:\n\n\n```javascript\nlet regex = new RegExp('(^\\s*)my-marker(\\s*$)'),\n isMyMarkerText = regex.test(text);\n\n```\nHowever, the check does not work properly for white space as the two `\\s` occurrences are semantically equivalent to just `s`, meaning that the check will succeed for strings like `\"smy-markers\"` instead of `\" my-marker \"`. Address these shortcomings by either using a regular expression literal (`/(^\\s*)my-marker(\\s*$)/`), or by adding extra backslashes (`'(^\\\\s*)my-marker(\\\\s*$)'`).\n\n\n## References\n* MDN: [Regular expression escape notation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping)\n* MDN: [String escape notation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#Escape_notation)\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n"},"properties":{"tags":["correctness","security","external/cwe/cwe-020"],"description":"Prepending a backslash to an ordinary character in a string\n does not have any effect, and may make regular expressions constructed from this string\n behave unexpectedly.","id":"js/useless-regexp-character-escape","kind":"problem","name":"Useless regular-expression character escape","precision":"high","problem.severity":"error","security-severity":"7.8"}},{"id":"js/incomplete-url-scheme-check","name":"js/incomplete-url-scheme-check","shortDescription":{"text":"Incomplete URL scheme check"},"fullDescription":{"text":"Checking for the \"javascript:\" URL scheme without also checking for \"vbscript:\" and \"data:\" suggests a logic error or even a security vulnerability."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Incomplete URL scheme check\nURLs starting with `javascript:` can be used to encode JavaScript code to be executed when the URL is visited. While this is a powerful mechanism for creating feature-rich and responsive web applications, it is also a potential security risk: if the URL comes from an untrusted source, it might contain harmful JavaScript code. For this reason, many frameworks and libraries first check the URL scheme of any untrusted URL, and reject URLs with the `javascript:` scheme.\n\nHowever, the `data:` and `vbscript:` schemes can be used to represent executable code in a very similar way, so any validation logic that checks against `javascript:`, but not against `data:` and `vbscript:`, is likely to be insufficient.\n\n\n## Recommendation\nAdd checks covering both `data:` and `vbscript:`.\n\n\n## Example\nThe following function validates a (presumably untrusted) URL `url`. If it starts with `javascript:` (case-insensitive and potentially preceded by whitespace), the harmless placeholder URL `about:blank` is returned to prevent code injection; otherwise `url` itself is returned.\n\n\n```javascript\nfunction sanitizeUrl(url) {\n let u = decodeURI(url).trim().toLowerCase();\n if (u.startsWith(\"javascript:\"))\n return \"about:blank\";\n return url;\n}\n\n```\nWhile this check provides partial projection, it should be extended to cover `data:` and `vbscript:` as well:\n\n\n```javascript\nfunction sanitizeUrl(url) {\n let u = decodeURI(url).trim().toLowerCase();\n if (u.startsWith(\"javascript:\") || u.startsWith(\"data:\") || u.startsWith(\"vbscript:\"))\n return \"about:blank\";\n return url;\n}\n\n```\n\n## References\n* WHATWG: [URL schemes](https://wiki.whatwg.org/wiki/URL_schemes).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n* Common Weakness Enumeration: [CWE-184](https://cwe.mitre.org/data/definitions/184.html).\n","markdown":"# Incomplete URL scheme check\nURLs starting with `javascript:` can be used to encode JavaScript code to be executed when the URL is visited. While this is a powerful mechanism for creating feature-rich and responsive web applications, it is also a potential security risk: if the URL comes from an untrusted source, it might contain harmful JavaScript code. For this reason, many frameworks and libraries first check the URL scheme of any untrusted URL, and reject URLs with the `javascript:` scheme.\n\nHowever, the `data:` and `vbscript:` schemes can be used to represent executable code in a very similar way, so any validation logic that checks against `javascript:`, but not against `data:` and `vbscript:`, is likely to be insufficient.\n\n\n## Recommendation\nAdd checks covering both `data:` and `vbscript:`.\n\n\n## Example\nThe following function validates a (presumably untrusted) URL `url`. If it starts with `javascript:` (case-insensitive and potentially preceded by whitespace), the harmless placeholder URL `about:blank` is returned to prevent code injection; otherwise `url` itself is returned.\n\n\n```javascript\nfunction sanitizeUrl(url) {\n let u = decodeURI(url).trim().toLowerCase();\n if (u.startsWith(\"javascript:\"))\n return \"about:blank\";\n return url;\n}\n\n```\nWhile this check provides partial projection, it should be extended to cover `data:` and `vbscript:` as well:\n\n\n```javascript\nfunction sanitizeUrl(url) {\n let u = decodeURI(url).trim().toLowerCase();\n if (u.startsWith(\"javascript:\") || u.startsWith(\"data:\") || u.startsWith(\"vbscript:\"))\n return \"about:blank\";\n return url;\n}\n\n```\n\n## References\n* WHATWG: [URL schemes](https://wiki.whatwg.org/wiki/URL_schemes).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n* Common Weakness Enumeration: [CWE-184](https://cwe.mitre.org/data/definitions/184.html).\n"},"properties":{"tags":["security","correctness","external/cwe/cwe-020","external/cwe/cwe-184"],"description":"Checking for the \"javascript:\" URL scheme without also checking for \"vbscript:\"\n and \"data:\" suggests a logic error or even a security vulnerability.","id":"js/incomplete-url-scheme-check","kind":"problem","name":"Incomplete URL scheme check","precision":"high","problem.severity":"warning","security-severity":"7.8"}},{"id":"js/overly-large-range","name":"js/overly-large-range","shortDescription":{"text":"Overly permissive regular expression range"},"fullDescription":{"text":"Overly permissive regular expression ranges match a wider range of characters than intended. This may allow an attacker to bypass a filter or sanitizer."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Overly permissive regular expression range\nIt's easy to write a regular expression range that matches a wider range of characters than you intended. For example, `/[a-zA-z]/` matches all lowercase and all uppercase letters, as you would expect, but it also matches the characters: `` [ \\ ] ^ _ ` ``.\n\nAnother common problem is failing to escape the dash character in a regular expression. An unescaped dash is interpreted as part of a range. For example, in the character class `[a-zA-Z0-9%=.,-_]` the last character range matches the 55 characters between `,` and `_` (both included), which overlaps with the range `[0-9]` and is clearly not intended by the writer.\n\n\n## Recommendation\nAvoid any confusion about which characters are included in the range by writing unambiguous regular expressions. Always check that character ranges match only the expected characters.\n\n\n## Example\nThe following example code is intended to check whether a string is a valid 6 digit hex color.\n\n```javascript\n\nfunction isValidHexColor(color) {\n return /^#[0-9a-fA-f]{6}$/i.test(color);\n}\n\n```\nHowever, the `A-f` range is overly large and matches every uppercase character. It would parse a \"color\" like `#XXYYZZ` as valid.\n\nThe fix is to use an uppercase `A-F` range instead.\n\n```javascript\n\nfunction isValidHexColor(color) {\n return /^#[0-9A-F]{6}$/i.test(color);\n}\n\n```\n\n## References\n* GitHub Advisory Database: [CVE-2021-42740: Improper Neutralization of Special Elements used in a Command in Shell-quote](https://github.com/advisories/GHSA-g4rg-993r-mgx7)\n* wh0.github.io: [Exploiting CVE-2021-42740](https://wh0.github.io/2021/10/28/shell-quote-rce-exploiting.html)\n* Yosuke Ota: [no-obscure-range](https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-obscure-range.html)\n* Paul Boyd: [The regex \\[,-.\\]](https://pboyd.io/posts/comma-dash-dot/)\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n","markdown":"# Overly permissive regular expression range\nIt's easy to write a regular expression range that matches a wider range of characters than you intended. For example, `/[a-zA-z]/` matches all lowercase and all uppercase letters, as you would expect, but it also matches the characters: `` [ \\ ] ^ _ ` ``.\n\nAnother common problem is failing to escape the dash character in a regular expression. An unescaped dash is interpreted as part of a range. For example, in the character class `[a-zA-Z0-9%=.,-_]` the last character range matches the 55 characters between `,` and `_` (both included), which overlaps with the range `[0-9]` and is clearly not intended by the writer.\n\n\n## Recommendation\nAvoid any confusion about which characters are included in the range by writing unambiguous regular expressions. Always check that character ranges match only the expected characters.\n\n\n## Example\nThe following example code is intended to check whether a string is a valid 6 digit hex color.\n\n```javascript\n\nfunction isValidHexColor(color) {\n return /^#[0-9a-fA-f]{6}$/i.test(color);\n}\n\n```\nHowever, the `A-f` range is overly large and matches every uppercase character. It would parse a \"color\" like `#XXYYZZ` as valid.\n\nThe fix is to use an uppercase `A-F` range instead.\n\n```javascript\n\nfunction isValidHexColor(color) {\n return /^#[0-9A-F]{6}$/i.test(color);\n}\n\n```\n\n## References\n* GitHub Advisory Database: [CVE-2021-42740: Improper Neutralization of Special Elements used in a Command in Shell-quote](https://github.com/advisories/GHSA-g4rg-993r-mgx7)\n* wh0.github.io: [Exploiting CVE-2021-42740](https://wh0.github.io/2021/10/28/shell-quote-rce-exploiting.html)\n* Yosuke Ota: [no-obscure-range](https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-obscure-range.html)\n* Paul Boyd: [The regex \\[,-.\\]](https://pboyd.io/posts/comma-dash-dot/)\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n"},"properties":{"tags":["correctness","security","external/cwe/cwe-020"],"description":"Overly permissive regular expression ranges match a wider range of characters than intended.\n This may allow an attacker to bypass a filter or sanitizer.","id":"js/overly-large-range","kind":"problem","name":"Overly permissive regular expression range","precision":"high","problem.severity":"warning","security-severity":"5.0"}},{"id":"js/bad-tag-filter","name":"js/bad-tag-filter","shortDescription":{"text":"Bad HTML filtering regexp"},"fullDescription":{"text":"Matching HTML tags using regular expressions is hard to do right, and can easily lead to security issues."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Bad HTML filtering regexp\nIt is possible to match some single HTML tags using regular expressions (parsing general HTML using regular expressions is impossible). However, if the regular expression is not written well it might be possible to circumvent it, which can lead to cross-site scripting or other security issues.\n\nSome of these mistakes are caused by browsers having very forgiving HTML parsers, and will often render invalid HTML containing syntax errors. Regular expressions that attempt to match HTML should also recognize tags containing such syntax errors.\n\n\n## Recommendation\nUse a well-tested sanitization or parser library if at all possible. These libraries are much more likely to handle corner cases correctly than a custom implementation.\n\n\n## Example\nThe following example attempts to filters out all `` as script end tags, but also tags such as `` even though it is a parser error. This means that an attack string such as `` will not be filtered by the function, and `alert(1)` will be executed by a browser if the string is rendered as HTML.\n\nOther corner cases include that HTML comments can end with `--!>`, and that HTML tag names can contain upper case characters.\n\n\n## References\n* Securitum: [The Curious Case of Copy & Paste](https://research.securitum.com/the-curious-case-of-copy-paste/).\n* stackoverflow.com: [You can't parse \\[X\\]HTML with regex](https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags#answer-1732454).\n* HTML Standard: [Comment end bang state](https://html.spec.whatwg.org/multipage/parsing.html#comment-end-bang-state).\n* stackoverflow.com: [Why aren't browsers strict about HTML?](https://stackoverflow.com/questions/25559999/why-arent-browsers-strict-about-html).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n* Common Weakness Enumeration: [CWE-80](https://cwe.mitre.org/data/definitions/80.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n* Common Weakness Enumeration: [CWE-184](https://cwe.mitre.org/data/definitions/184.html).\n* Common Weakness Enumeration: [CWE-185](https://cwe.mitre.org/data/definitions/185.html).\n* Common Weakness Enumeration: [CWE-186](https://cwe.mitre.org/data/definitions/186.html).\n","markdown":"# Bad HTML filtering regexp\nIt is possible to match some single HTML tags using regular expressions (parsing general HTML using regular expressions is impossible). However, if the regular expression is not written well it might be possible to circumvent it, which can lead to cross-site scripting or other security issues.\n\nSome of these mistakes are caused by browsers having very forgiving HTML parsers, and will often render invalid HTML containing syntax errors. Regular expressions that attempt to match HTML should also recognize tags containing such syntax errors.\n\n\n## Recommendation\nUse a well-tested sanitization or parser library if at all possible. These libraries are much more likely to handle corner cases correctly than a custom implementation.\n\n\n## Example\nThe following example attempts to filters out all `` as script end tags, but also tags such as `` even though it is a parser error. This means that an attack string such as `` will not be filtered by the function, and `alert(1)` will be executed by a browser if the string is rendered as HTML.\n\nOther corner cases include that HTML comments can end with `--!>`, and that HTML tag names can contain upper case characters.\n\n\n## References\n* Securitum: [The Curious Case of Copy & Paste](https://research.securitum.com/the-curious-case-of-copy-paste/).\n* stackoverflow.com: [You can't parse \\[X\\]HTML with regex](https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags#answer-1732454).\n* HTML Standard: [Comment end bang state](https://html.spec.whatwg.org/multipage/parsing.html#comment-end-bang-state).\n* stackoverflow.com: [Why aren't browsers strict about HTML?](https://stackoverflow.com/questions/25559999/why-arent-browsers-strict-about-html).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n* Common Weakness Enumeration: [CWE-80](https://cwe.mitre.org/data/definitions/80.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n* Common Weakness Enumeration: [CWE-184](https://cwe.mitre.org/data/definitions/184.html).\n* Common Weakness Enumeration: [CWE-185](https://cwe.mitre.org/data/definitions/185.html).\n* Common Weakness Enumeration: [CWE-186](https://cwe.mitre.org/data/definitions/186.html).\n"},"properties":{"tags":["correctness","security","external/cwe/cwe-020","external/cwe/cwe-080","external/cwe/cwe-116","external/cwe/cwe-184","external/cwe/cwe-185","external/cwe/cwe-186"],"description":"Matching HTML tags using regular expressions is hard to do right, and can easily lead to security issues.","id":"js/bad-tag-filter","kind":"problem","name":"Bad HTML filtering regexp","precision":"high","problem.severity":"warning","security-severity":"7.8"}},{"id":"js/incomplete-multi-character-sanitization","name":"js/incomplete-multi-character-sanitization","shortDescription":{"text":"Incomplete multi-character sanitization"},"fullDescription":{"text":"A sanitizer that removes a sequence of characters may reintroduce the dangerous sequence."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Incomplete multi-character sanitization\nSanitizing untrusted input is a common technique for preventing injection attacks and other security vulnerabilities. Regular expressions are often used to perform this sanitization. However, when the regular expression matches multiple consecutive characters, replacing it just once can result in the unsafe text reappearing in the sanitized input.\n\nAttackers can exploit this issue by crafting inputs that, when sanitized with an ineffective regular expression, still contain malicious code or content. This can lead to code execution, data exposure, or other vulnerabilities.\n\n\n## Recommendation\nTo prevent this issue, it is highly recommended to use a well-tested sanitization library whenever possible. These libraries are more likely to handle corner cases and ensure effective sanitization.\n\nIf a library is not an option, you can consider alternative strategies to fix the issue. For example, applying the regular expression replacement repeatedly until no more replacements can be performed, or rewriting the regular expression to match single characters instead of the entire unsafe text.\n\n\n## Example\nConsider the following JavaScript code that aims to remove all HTML comment start and end tags:\n\n```javascript\n\nstr.replace(/\n```\n```javascript\nvar input = oModel.getProperty(\"/input\");\njQuery.sap.log.debug(input); // user input is logged as is\n```\n2. A second component retrieves log entries to further process them.\n```javascript\nlet message = Log.getLogEntries()[0].message; //access to user controlled logs\ndo_smth(message);\n```\n\n## References\n\n- OWASP: [Log Injection](https://owasp.org/www-community/attacks/Log_Injection).\n- OWASP: [Log Injection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).\n- SAP UI5 Documentation: [namespace `sap/base/Log`](https://sapui5.hana.ondemand.com/sdk/#api/module:sap/base/Log).\n","markdown":"# Access to user-controlled UI5 Logs\n\nProcessing user-controlled log entries can lead to injection vulnerabilities, where an attacker can manipulate user input to affect the application excution.\n\nUI5 applications can retrieve logs for further processing using `sap/base/Log.getLogEntries`, define custom listeners using `sap/base/Log.addLogListener` or directly display logs using the `sap/ui/vk/Notifications` control.\n\nThis query identifies instances where user-controlled log entries are accessed in a UI5 application. \n\n## Recommendation\n\nAvoid accessing log entries that originate from user-controlled sources. Ensure that any log data is properly sanitized.\n\n## Example\n\nThe following example demonstrates a vulnerable code snippet:\n\n1. The UI5 application logs what the user submitted via the `sap.m.Input` control.\n```xml\n \n```\n```javascript\nvar input = oModel.getProperty(\"/input\");\njQuery.sap.log.debug(input); // user input is logged as is\n```\n2. A second component retrieves log entries to further process them.\n```javascript\nlet message = Log.getLogEntries()[0].message; //access to user controlled logs\ndo_smth(message);\n```\n\n## References\n\n- OWASP: [Log Injection](https://owasp.org/www-community/attacks/Log_Injection).\n- OWASP: [Log Injection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).\n- SAP UI5 Documentation: [namespace `sap/base/Log`](https://sapui5.hana.ondemand.com/sdk/#api/module:sap/base/Log).\n"},"properties":{"tags":["security","external/cwe/cwe-117"],"description":"Log entries from user-controlled sources should not be further processed.","id":"js/ui5-unsafe-log-access","kind":"path-problem","name":"Access to user-controlled UI5 Logs","precision":"medium","problem.severity":"warning","security-severity":"5"}},{"id":"js/ui5-log-injection-to-http","name":"js/ui5-log-injection-to-http","shortDescription":{"text":"UI5 Log injection in outbound network request"},"fullDescription":{"text":"Building log entries from user-controlled sources is vulnerable to insertion of forged log entries by a malicious user."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# UI5 Log injection in outbound network request\n\nSending user-controlled log data to a remote URL without further validation may lead to uncontrolled information exposure and to injection vulnerabilities. It may be an indication of malicious backdoor code that has been implanted into an otherwise trusted code base.\n\nUI5 applications can retrieve logs for further processing using `sap/base/Log.getLogEntries`, define custom listeners using `sap/base/Log.addLogListener` or directly display logs using the `sap/ui/vk/Notifications` control.\n\nThis query identifies instances where log entries from user input are forwarded to a remote URL. \n\n## Recommendation\n\nAvoid processing log entries that originate from user-controlled sources. Ensure that any log data is properly sanitized.\n\n## Example\n\nThe following example demonstrates a vulnerable code snippet:\n\n1. The UI5 application logs what the user submitted via the `sap.m.Input` control.\n```xml\n \n```\n```javascript\nvar input = oModel.getProperty(\"/input\");\njQuery.sap.log.debug(input); // user input is logged as is\n```\n2. A second component sends log entries to a remote URL without further validation.\n```javascript\nconst http = new XMLHttpRequest();\nconst url = \"https://some.remote.server/location\";\nhttp.open(\"POST\", url);\nhttp.send(Log.getLogEntries()[0].message); // log entry is forwarded to a remote URL\n```\n\n## References\n\n- OWASP: [Log Injection](https://owasp.org/www-community/attacks/Log_Injection).\n- OWASP: [Log Injection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).\n- SAP UI5 Documentation: [namespace `sap/base/Log`](https://sapui5.hana.ondemand.com/sdk/#api/module:sap/base/Log).\n","markdown":"# UI5 Log injection in outbound network request\n\nSending user-controlled log data to a remote URL without further validation may lead to uncontrolled information exposure and to injection vulnerabilities. It may be an indication of malicious backdoor code that has been implanted into an otherwise trusted code base.\n\nUI5 applications can retrieve logs for further processing using `sap/base/Log.getLogEntries`, define custom listeners using `sap/base/Log.addLogListener` or directly display logs using the `sap/ui/vk/Notifications` control.\n\nThis query identifies instances where log entries from user input are forwarded to a remote URL. \n\n## Recommendation\n\nAvoid processing log entries that originate from user-controlled sources. Ensure that any log data is properly sanitized.\n\n## Example\n\nThe following example demonstrates a vulnerable code snippet:\n\n1. The UI5 application logs what the user submitted via the `sap.m.Input` control.\n```xml\n \n```\n```javascript\nvar input = oModel.getProperty(\"/input\");\njQuery.sap.log.debug(input); // user input is logged as is\n```\n2. A second component sends log entries to a remote URL without further validation.\n```javascript\nconst http = new XMLHttpRequest();\nconst url = \"https://some.remote.server/location\";\nhttp.open(\"POST\", url);\nhttp.send(Log.getLogEntries()[0].message); // log entry is forwarded to a remote URL\n```\n\n## References\n\n- OWASP: [Log Injection](https://owasp.org/www-community/attacks/Log_Injection).\n- OWASP: [Log Injection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).\n- SAP UI5 Documentation: [namespace `sap/base/Log`](https://sapui5.hana.ondemand.com/sdk/#api/module:sap/base/Log).\n"},"properties":{"tags":["security","external/cwe/cwe-117"],"description":"Building log entries from user-controlled sources is vulnerable to\n insertion of forged log entries by a malicious user.","id":"js/ui5-log-injection-to-http","kind":"path-problem","name":"UI5 Log injection in outbound network request","precision":"medium","problem.severity":"warning","security-severity":"6.5"}},{"id":"js/ui5-clickjacking","name":"js/ui5-clickjacking","shortDescription":{"text":"UI5 Clickjacking"},"fullDescription":{"text":"The absence of frame options allows for clickjacking."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Clickjacking\n\nUI5 applications that do not explicitly set the frame options to `deny` may be vulnerable to UI redress attacks (”clickjacking”). In these attacks, the vulnerable site is loaded in a frame on an attacker-controlled site which uses opaque or transparent layers to trick the user into unintentionally clicking a button or link on the vulnerable site.\n\n## Recommendation\n\nExplicitly set the frame options to `\"deny\"`, either through `window[\"sap-ui-config\"]`, or `data-sap-ui-frameOptions` attribute of the script tag where it sources the bootstrap script `\"sap-ui-core.js\"`:\n\n``` javascript\nwindow[\"sap-ui-config\"] = {\n frameOptions: \"deny\",\n ...\n};\n```\n\n``` javascript\nwindow[\"sap-ui-config\"].frameOptions = \"deny\";\n```\n\n``` html\n\n```\n\n## Example\n\n### Setting the Frame Options to `\"allow\"`\n\nThis UI5 application explicitly allows to be embedded in other applications.\n\n```javascript\n\n\n \n ...\n \n\n \n \n ...\n\n```\n\n### Not Setting the Frame Options to Anything\n\nThe default value of `window[\"sap-ui-config\"]` and `data-sap-ui-frameOptions` are both `\"allow\"`, which makes leaving it untouched allows the application to be embedded.\n\n## References\n* OWASP: [Clickjacking Defense Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking_Defense_Cheat_Sheet.html).\n* Mozilla: [X-Frame-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options).\n* SAP UI5 Documentation: [Frame Options](https://sapui5.hana.ondemand.com/sdk/#/topic/62d9c4d8f5ad49aa914624af9551beb7.html).\n* SAP UI5 Documentation: [Allowlist Service](https://sapui5.hana.ondemand.com/sdk/#/topic/d04a6d41480c4396af16b5d2b25509ec.html).\n* Common Weakness Enumeration: [CWE-451](https://cwe.mitre.org/data/definitions/451.html).\n","markdown":"# Clickjacking\n\nUI5 applications that do not explicitly set the frame options to `deny` may be vulnerable to UI redress attacks (”clickjacking”). In these attacks, the vulnerable site is loaded in a frame on an attacker-controlled site which uses opaque or transparent layers to trick the user into unintentionally clicking a button or link on the vulnerable site.\n\n## Recommendation\n\nExplicitly set the frame options to `\"deny\"`, either through `window[\"sap-ui-config\"]`, or `data-sap-ui-frameOptions` attribute of the script tag where it sources the bootstrap script `\"sap-ui-core.js\"`:\n\n``` javascript\nwindow[\"sap-ui-config\"] = {\n frameOptions: \"deny\",\n ...\n};\n```\n\n``` javascript\nwindow[\"sap-ui-config\"].frameOptions = \"deny\";\n```\n\n``` html\n\n```\n\n## Example\n\n### Setting the Frame Options to `\"allow\"`\n\nThis UI5 application explicitly allows to be embedded in other applications.\n\n```javascript\n\n\n \n ...\n \n\n \n \n ...\n\n```\n\n### Not Setting the Frame Options to Anything\n\nThe default value of `window[\"sap-ui-config\"]` and `data-sap-ui-frameOptions` are both `\"allow\"`, which makes leaving it untouched allows the application to be embedded.\n\n## References\n* OWASP: [Clickjacking Defense Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking_Defense_Cheat_Sheet.html).\n* Mozilla: [X-Frame-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options).\n* SAP UI5 Documentation: [Frame Options](https://sapui5.hana.ondemand.com/sdk/#/topic/62d9c4d8f5ad49aa914624af9551beb7.html).\n* SAP UI5 Documentation: [Allowlist Service](https://sapui5.hana.ondemand.com/sdk/#/topic/d04a6d41480c4396af16b5d2b25509ec.html).\n* Common Weakness Enumeration: [CWE-451](https://cwe.mitre.org/data/definitions/451.html).\n"},"properties":{"tags":["security","external/cwe/cwe-451"],"description":"The absence of frame options allows for clickjacking.","id":"js/ui5-clickjacking","kind":"problem","name":"UI5 Clickjacking","precision":"medium","problem.severity":"error","security-severity":"6.1"}},{"id":"js/ui5-xss","name":"js/ui5-xss","shortDescription":{"text":"UI5 Client-side cross-site scripting"},"fullDescription":{"text":"Writing user input directly to a UI5 View allows for a cross-site scripting vulnerability."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Client-side cross-site scripting\n\nReceiving text from the user, most notably through a control, and rendering it as HTML in another control can lead to a cross-site scripting vulnerability.\n\n## Recommendation\n\n### Preventing XSS Involving User Defined Control\n\nIf the XSS attack vector includes a user-defined control, then we can mitigate the issue by sanitizing the user-provided input in the implementation of the control:\n- Where possible, define the property type to something other than `string` or `any`. If a value should be used, then opt for the `enum` type which only allows a predefined set of strings.\n- Use escaping functions in `sap.base.security`. Relevant sanitizers include `encodeXML` and `encodeHTML`.\n- When using API with `apiVersion: 2` (Semantic Rendering), do not use `RenderManager.unsafeHtml` unless the control property `sanitizeContent` is set to `true`.\n- When using the now-deprecated older API with `RenderManager.write` or `RenderManager.writeAttribute`, use their respective counterparts `RenderManager.writeEscaped` and `RenderManager.writeAttributeEscaped` which sanitizes their rendered contents.\n\n### Preventing XSS Not Involving User Defined Control\n\nAn XSS attack vector can still exist even when no user-defined control is used. In this case, a model property or a control property act as an intermediate step when external data is passed in.\nIn this case, the UI5 application should not use the property as is, but should sanitize the contents before reading it. Such sanitization can take place in the controller or in the view declaration using expression bindings.\n\n## Example\n\n### Custom Control with Custom Rendering Method\n\nThis custom control `vulnerable.control.xss` calls `unsafeHtml` on a given `RenderManager` instance in its static renderer function. Since its `text` property is an unrestricted string type, it can point to a string with contents that can be interpreted as HTML. If it is the case, `unsafeHtml` will render the string, running a possibly embedded JavaScript code in it.\n\n```javascript\nsap.ui.define([\"sap/ui/core/Control\"], function (Control) {\n return Control.extend(\"vulnerable.control.xss\", {\n metadata: { properties: { text: { type: \"string\" } } },\n renderer: {\n apiVersion: 2,\n render: function (oRm, oControl) {\n oRm.openStart(\"div\", oControl);\n oRm.unsafeHtml(oControl.getText()); // sink\n oRm.close(\"div\");\n }\n }\n });\n})\n```\n\nThis is the same custom control without the possibility of XSS using several means of sanitization: The property `text` is enforced to a non-string type, hence disallows unrestricted strings (This is espcially applicable if the expected input is a number anyways). Also, the `sap.base.security.encodeXML` function is used to escape HTML control characters.\n\n```javascript\nsap.ui.define([\"sap/ui/core/Control\", \"sap/base/security/encodeXML\"], function (Control, encodeXML) {\n return Control.extend(\"vulnerable.control.xss\", {\n metadata: { properties: { text: { type: \"int\" } } }, // constrain the type\n renderer: {\n apiVersion: 2,\n render: function (oRm, oControl) {\n oRm.openStart(\"div\", oControl);\n oRm.unsafeHtml(encodeXML(oControl.getText()); // encode using security functions\n oRm.close(\"div\");\n }\n }\n });\n})\n```\n\n### Library Control\n\nThis example contains only library controls that are not user-defined. The untrusted user input flows from `sap.m.Input` and directly flows out via `sap.ui.core.HTML` through the model property `input` as declared in the `onInit` method of the controller.\n\n``` xml\n\n \t \n \n\n```\n\n``` javascript\nsap.ui.define([\"sap/ui/core/mvc/Controller\", \"sap/ui/model/json/JSONModel\"],\n function (Controller, JSONModel) {\n return Controller.extend(\"vulnerable.controller.app\", {\n onInit: function () {\n var oData = { input: null };\n var oModel = new JSONModel(oData);\n this.getView().setModel(oModel);\n },\n });\n },\n);\n```\n\nThe issue can be resolved by setting the `HTML` control's `sanitizeContent` attribute to true.\n\n``` xml\n\n \n \n\n```\n\n## References\n\n- OWASP: [DOM Based XSS](https://owasp.org/www-community/attacks/DOM_Based_XSS).\n- SAP UI5 Documentation: [Cross-site Scripting](https://sapui5.hana.ondemand.com/sdk/#/topic/91f0bd316f4d1014b6dd926db0e91070.html) in UI5.\n- SAP UI5 Documentation: [Prevention of Cross-site Scripting](https://sapui5.hana.ondemand.com/sdk/#/topic/4de64e2e191f4a7297d4fd2d1e233a2d.html) in UI5.\n- SAP UI5 Documentation: [API Documentation of sap.ui.core.RenderManager](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.RenderManager).\n- SAP UI5 Documentation: [Defining Control Properties](https://sapui5.hana.ondemand.com/sdk/#/topic/ac56d92162ed47ff858fdf1ce26c18c4.html).\n- SAP UI5 Documentation: [Expression Binding](https://sapui5.hana.ondemand.com/sdk/#/topic/daf6852a04b44d118963968a1239d2c0).\n- SAP UI5 API Reference: [`sap.ui.core.HTML`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.HTML%23methods/setSanitizeContent).\n- Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n- Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n","markdown":"# Client-side cross-site scripting\n\nReceiving text from the user, most notably through a control, and rendering it as HTML in another control can lead to a cross-site scripting vulnerability.\n\n## Recommendation\n\n### Preventing XSS Involving User Defined Control\n\nIf the XSS attack vector includes a user-defined control, then we can mitigate the issue by sanitizing the user-provided input in the implementation of the control:\n- Where possible, define the property type to something other than `string` or `any`. If a value should be used, then opt for the `enum` type which only allows a predefined set of strings.\n- Use escaping functions in `sap.base.security`. Relevant sanitizers include `encodeXML` and `encodeHTML`.\n- When using API with `apiVersion: 2` (Semantic Rendering), do not use `RenderManager.unsafeHtml` unless the control property `sanitizeContent` is set to `true`.\n- When using the now-deprecated older API with `RenderManager.write` or `RenderManager.writeAttribute`, use their respective counterparts `RenderManager.writeEscaped` and `RenderManager.writeAttributeEscaped` which sanitizes their rendered contents.\n\n### Preventing XSS Not Involving User Defined Control\n\nAn XSS attack vector can still exist even when no user-defined control is used. In this case, a model property or a control property act as an intermediate step when external data is passed in.\nIn this case, the UI5 application should not use the property as is, but should sanitize the contents before reading it. Such sanitization can take place in the controller or in the view declaration using expression bindings.\n\n## Example\n\n### Custom Control with Custom Rendering Method\n\nThis custom control `vulnerable.control.xss` calls `unsafeHtml` on a given `RenderManager` instance in its static renderer function. Since its `text` property is an unrestricted string type, it can point to a string with contents that can be interpreted as HTML. If it is the case, `unsafeHtml` will render the string, running a possibly embedded JavaScript code in it.\n\n```javascript\nsap.ui.define([\"sap/ui/core/Control\"], function (Control) {\n return Control.extend(\"vulnerable.control.xss\", {\n metadata: { properties: { text: { type: \"string\" } } },\n renderer: {\n apiVersion: 2,\n render: function (oRm, oControl) {\n oRm.openStart(\"div\", oControl);\n oRm.unsafeHtml(oControl.getText()); // sink\n oRm.close(\"div\");\n }\n }\n });\n})\n```\n\nThis is the same custom control without the possibility of XSS using several means of sanitization: The property `text` is enforced to a non-string type, hence disallows unrestricted strings (This is espcially applicable if the expected input is a number anyways). Also, the `sap.base.security.encodeXML` function is used to escape HTML control characters.\n\n```javascript\nsap.ui.define([\"sap/ui/core/Control\", \"sap/base/security/encodeXML\"], function (Control, encodeXML) {\n return Control.extend(\"vulnerable.control.xss\", {\n metadata: { properties: { text: { type: \"int\" } } }, // constrain the type\n renderer: {\n apiVersion: 2,\n render: function (oRm, oControl) {\n oRm.openStart(\"div\", oControl);\n oRm.unsafeHtml(encodeXML(oControl.getText()); // encode using security functions\n oRm.close(\"div\");\n }\n }\n });\n})\n```\n\n### Library Control\n\nThis example contains only library controls that are not user-defined. The untrusted user input flows from `sap.m.Input` and directly flows out via `sap.ui.core.HTML` through the model property `input` as declared in the `onInit` method of the controller.\n\n``` xml\n\n \t \n \n\n```\n\n``` javascript\nsap.ui.define([\"sap/ui/core/mvc/Controller\", \"sap/ui/model/json/JSONModel\"],\n function (Controller, JSONModel) {\n return Controller.extend(\"vulnerable.controller.app\", {\n onInit: function () {\n var oData = { input: null };\n var oModel = new JSONModel(oData);\n this.getView().setModel(oModel);\n },\n });\n },\n);\n```\n\nThe issue can be resolved by setting the `HTML` control's `sanitizeContent` attribute to true.\n\n``` xml\n\n \n \n\n```\n\n## References\n\n- OWASP: [DOM Based XSS](https://owasp.org/www-community/attacks/DOM_Based_XSS).\n- SAP UI5 Documentation: [Cross-site Scripting](https://sapui5.hana.ondemand.com/sdk/#/topic/91f0bd316f4d1014b6dd926db0e91070.html) in UI5.\n- SAP UI5 Documentation: [Prevention of Cross-site Scripting](https://sapui5.hana.ondemand.com/sdk/#/topic/4de64e2e191f4a7297d4fd2d1e233a2d.html) in UI5.\n- SAP UI5 Documentation: [API Documentation of sap.ui.core.RenderManager](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.RenderManager).\n- SAP UI5 Documentation: [Defining Control Properties](https://sapui5.hana.ondemand.com/sdk/#/topic/ac56d92162ed47ff858fdf1ce26c18c4.html).\n- SAP UI5 Documentation: [Expression Binding](https://sapui5.hana.ondemand.com/sdk/#/topic/daf6852a04b44d118963968a1239d2c0).\n- SAP UI5 API Reference: [`sap.ui.core.HTML`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.HTML%23methods/setSanitizeContent).\n- Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n- Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n"},"properties":{"tags":["security","external/cwe/cwe-079","external/cwe/cwe-116"],"description":"Writing user input directly to a UI5 View allows for\n a cross-site scripting vulnerability.","id":"js/ui5-xss","kind":"path-problem","name":"UI5 Client-side cross-site scripting","precision":"high","problem.severity":"error","security-severity":"6.1"}},{"id":"js/ui5-formula-injection","name":"js/ui5-formula-injection","shortDescription":{"text":"UI5 Formula Injection"},"fullDescription":{"text":"Saving data from an uncontrolled remote source using filesystem or local storage leads to disclosure of sensitive information or forgery of entry."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Formula injection\n\nUI5 applications that save local data, fetched from an uncontrolled remote source, into a CSV file format using generic APIs such as [`sap.ui.core.util.File.save`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.util.File%23methods/sap.ui.core.util.File.save) are vulnerable to formula injection, or CSV injection.\n\n## Recommendation\n\n### Escape the leading special characters\n\nCSV cells containing leading special characters such as an equal sign (`=`) may be interpreted as spreadsheet formulas. To prevent them from being interpreted these prefixes should be escaped by surrounding the prefixes with single quotes in order to keep them as literal strings.\n\n### Use a dedicated API function\n\nManual construction of a CSV file using string concatenation is prone to mistakes that can lead to security issues. Instead, a dedicated library function should be used. For example, if the target being exported is a [`sap.m.Table`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.m.Table) and the resulting file is to intended to be opened using a spreadsheet program anyways, then using one of the API functions provided by [`sap.ui.export.Spreadsheet`](https://sapui5.hana.ondemand.com/#/entity/sap.ui.export.Spreadsheet) is the preferred method of achieving the same exporting functionality.\n\n## Example\n\nThe following controller is exporting a CSV file obtained from an event parameter by surrounding it in a pair of semicolons (`;`) as CSV separators.\n\n``` javascript\nsap.ui.define([\n \"sap/ui/core/Controller\",\n \"sap/ui/core/util/File\"\n ], function(Controller, File) {\n return Controller.extend(\"vulnerable.controller.app\", {\n onSomeEvent: function(oEvent) {\n let response = oEvent.getProperty(\"someProperty\").someField;\n let csvRow = \";\" + response + \";\";\n File.save(csvRow, \"someFile\", \"csv\", \"text/csv\", \"utf-8\");\n }\n });\n });\n```\n\n## References\n\n- OWASP: [CSV Injection](https://owasp.org/www-community/attacks/CSV_Injection).\n- Common Weakness Enumeration: [CWE-1236](https://cwe.mitre.org/data/definitions/1236.html).\n- SAP UI5 API Reference: [`sap.ui.export.Spreadsheet`](https://sapui5.hana.ondemand.com/#/entity/sap.ui.export.Spreadsheet).\n- SAP UI5 API Reference: [`sap.ui.core.util.File.save`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.util.File%23methods/sap.ui.core.util.File.save).\n","markdown":"# Formula injection\n\nUI5 applications that save local data, fetched from an uncontrolled remote source, into a CSV file format using generic APIs such as [`sap.ui.core.util.File.save`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.util.File%23methods/sap.ui.core.util.File.save) are vulnerable to formula injection, or CSV injection.\n\n## Recommendation\n\n### Escape the leading special characters\n\nCSV cells containing leading special characters such as an equal sign (`=`) may be interpreted as spreadsheet formulas. To prevent them from being interpreted these prefixes should be escaped by surrounding the prefixes with single quotes in order to keep them as literal strings.\n\n### Use a dedicated API function\n\nManual construction of a CSV file using string concatenation is prone to mistakes that can lead to security issues. Instead, a dedicated library function should be used. For example, if the target being exported is a [`sap.m.Table`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.m.Table) and the resulting file is to intended to be opened using a spreadsheet program anyways, then using one of the API functions provided by [`sap.ui.export.Spreadsheet`](https://sapui5.hana.ondemand.com/#/entity/sap.ui.export.Spreadsheet) is the preferred method of achieving the same exporting functionality.\n\n## Example\n\nThe following controller is exporting a CSV file obtained from an event parameter by surrounding it in a pair of semicolons (`;`) as CSV separators.\n\n``` javascript\nsap.ui.define([\n \"sap/ui/core/Controller\",\n \"sap/ui/core/util/File\"\n ], function(Controller, File) {\n return Controller.extend(\"vulnerable.controller.app\", {\n onSomeEvent: function(oEvent) {\n let response = oEvent.getProperty(\"someProperty\").someField;\n let csvRow = \";\" + response + \";\";\n File.save(csvRow, \"someFile\", \"csv\", \"text/csv\", \"utf-8\");\n }\n });\n });\n```\n\n## References\n\n- OWASP: [CSV Injection](https://owasp.org/www-community/attacks/CSV_Injection).\n- Common Weakness Enumeration: [CWE-1236](https://cwe.mitre.org/data/definitions/1236.html).\n- SAP UI5 API Reference: [`sap.ui.export.Spreadsheet`](https://sapui5.hana.ondemand.com/#/entity/sap.ui.export.Spreadsheet).\n- SAP UI5 API Reference: [`sap.ui.core.util.File.save`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.util.File%23methods/sap.ui.core.util.File.save).\n"},"properties":{"tags":["security","external/cwe/cwe-1236"],"description":"Saving data from an uncontrolled remote source using filesystem or local storage\n leads to disclosure of sensitive information or forgery of entry.","id":"js/ui5-formula-injection","kind":"path-problem","name":"UI5 Formula Injection","precision":"medium","problem.severity":"error","security-severity":"7.8"}},{"id":"js/ui5-path-injection","name":"js/ui5-path-injection","shortDescription":{"text":"UI5 Path Injection"},"fullDescription":{"text":"Constructing path from an uncontrolled remote source to be passed to a filesystem API allows for manipulation of the local filesystem."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Client-side path injection\n\nUI5 applications that access files using a dynamically configured path are vulnerable to injection attacks that allow an attacker to manipulate the file location.\n\n## Recommendation\n\n### Make path argument independent of the user input\n\nIf possible, do not parameterize the path on a user input. Either hardcode the path string in the source, or use only strings that are created within the application.\n\n### Keep an allow-list of safe paths\n\nKeep a strict allow-list of safe paths to load from or send requests to. Before loading a script from a location outside the application or making an API request to a location, check if the path is contained in the list of safe paths. Also, make sure that the allow-list is kept up to date.\n\n### Check the script into the repository or use package managers\n\nSince the URL of the script may be pointing to a web server vulnerable to being hijacked, it may be a good idea to check a stable version of the script into the repository to increase the degree of control. If not possible, use a trusted package manager such as `npm`.\n\n## Example\n\n### Including scripts from an untrusted domain\n\n``` javascript\nsap.ui.require([\n \"sap/ui/dom/includeScript\"\n ],\n function(includeScript) {\n includeScript(\"http://some.vulnerable.domain/some-script.js\");\n }\n);\n```\n\nIf the vulnerable domain is outside the organization and controlled by an untrusted third party, this may result in arbitrary code execution in the user's browser.\n\n### Using user input as a name of a file to be saved\n\nSuppose a controller is configured to receive a response from a server as follows.\n\n``` javascript\nsap.ui.define([\n \"sap/ui/core/mvc/Controller\",\n \"sap/ui/core/util/File\"\n ],\n function(Controller, File) {\n return Controller.extend(\"vulnerable.controller.app\", {\n onInit: function() {\n let oDataV2Model = this.getOwnerComponent().getModel(\"some-ODatav2-model\");\n this.getView().setModel(oDataV2Model);\n },\n \n onSomeEvent: function() {\n let remoteResponse = this.getView().getModel().getProperty(\"someProperty\");\n File.save(\"some-content\", remoteResponse, \"txt\", \"text/plain\", \"utf-8\");\n }\n });\n });\n```\n\nEven if the server which updates the OData V2 model is in a trusted domain such as within the organization, the server may still contain tainted information if the UI5 application in question is vulnerable to other security attacks, say XSS. This may allow an attacker to save a file in the victim's local filesystem.\n\n## References\n\n- Common Weakness Enumeration: [CWE-829](https://cwe.mitre.org/data/definitions/829.html).\n- Common Weakness Enumeration: [CWE-073](https://cwe.mitre.org/data/definitions/73.html).\n- SAP UI5 API Reference: [`sap.ui.core.util.File`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.util.File%23methods/sap.ui.core.util.File.save).\n- SAP UI5 API Reference: [`sap.ui.dom.includeScript`](https://sapui5.hana.ondemand.com/sdk/#/api/module:sap/ui/dom/includeScript) and [`sap.ui.dom.includeStyleSheet`](https://sapui5.hana.ondemand.com/sdk/#/api/module:sap/ui/dom/includeStylesheet).\n- SAP UI5 API Reference: [`jQuery.sap.includeScript`](https://sapui5.hana.ondemand.com/sdk/#/api/module:sap/ui/dom/includeScript) and [`jQuery.sap.includeStyleSheet`](https://sapui5.hana.ondemand.com/sdk/#/api/module:sap/ui/dom/includeScript).\n","markdown":"# Client-side path injection\n\nUI5 applications that access files using a dynamically configured path are vulnerable to injection attacks that allow an attacker to manipulate the file location.\n\n## Recommendation\n\n### Make path argument independent of the user input\n\nIf possible, do not parameterize the path on a user input. Either hardcode the path string in the source, or use only strings that are created within the application.\n\n### Keep an allow-list of safe paths\n\nKeep a strict allow-list of safe paths to load from or send requests to. Before loading a script from a location outside the application or making an API request to a location, check if the path is contained in the list of safe paths. Also, make sure that the allow-list is kept up to date.\n\n### Check the script into the repository or use package managers\n\nSince the URL of the script may be pointing to a web server vulnerable to being hijacked, it may be a good idea to check a stable version of the script into the repository to increase the degree of control. If not possible, use a trusted package manager such as `npm`.\n\n## Example\n\n### Including scripts from an untrusted domain\n\n``` javascript\nsap.ui.require([\n \"sap/ui/dom/includeScript\"\n ],\n function(includeScript) {\n includeScript(\"http://some.vulnerable.domain/some-script.js\");\n }\n);\n```\n\nIf the vulnerable domain is outside the organization and controlled by an untrusted third party, this may result in arbitrary code execution in the user's browser.\n\n### Using user input as a name of a file to be saved\n\nSuppose a controller is configured to receive a response from a server as follows.\n\n``` javascript\nsap.ui.define([\n \"sap/ui/core/mvc/Controller\",\n \"sap/ui/core/util/File\"\n ],\n function(Controller, File) {\n return Controller.extend(\"vulnerable.controller.app\", {\n onInit: function() {\n let oDataV2Model = this.getOwnerComponent().getModel(\"some-ODatav2-model\");\n this.getView().setModel(oDataV2Model);\n },\n \n onSomeEvent: function() {\n let remoteResponse = this.getView().getModel().getProperty(\"someProperty\");\n File.save(\"some-content\", remoteResponse, \"txt\", \"text/plain\", \"utf-8\");\n }\n });\n });\n```\n\nEven if the server which updates the OData V2 model is in a trusted domain such as within the organization, the server may still contain tainted information if the UI5 application in question is vulnerable to other security attacks, say XSS. This may allow an attacker to save a file in the victim's local filesystem.\n\n## References\n\n- Common Weakness Enumeration: [CWE-829](https://cwe.mitre.org/data/definitions/829.html).\n- Common Weakness Enumeration: [CWE-073](https://cwe.mitre.org/data/definitions/73.html).\n- SAP UI5 API Reference: [`sap.ui.core.util.File`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.util.File%23methods/sap.ui.core.util.File.save).\n- SAP UI5 API Reference: [`sap.ui.dom.includeScript`](https://sapui5.hana.ondemand.com/sdk/#/api/module:sap/ui/dom/includeScript) and [`sap.ui.dom.includeStyleSheet`](https://sapui5.hana.ondemand.com/sdk/#/api/module:sap/ui/dom/includeStylesheet).\n- SAP UI5 API Reference: [`jQuery.sap.includeScript`](https://sapui5.hana.ondemand.com/sdk/#/api/module:sap/ui/dom/includeScript) and [`jQuery.sap.includeStyleSheet`](https://sapui5.hana.ondemand.com/sdk/#/api/module:sap/ui/dom/includeScript).\n"},"properties":{"tags":["security","external/cwe/cwe-022","external/cwe/cwe-035"],"description":"Constructing path from an uncontrolled remote source to be passed\n to a filesystem API allows for manipulation of the local filesystem.","id":"js/ui5-path-injection","kind":"path-problem","name":"UI5 Path Injection","precision":"medium","problem.severity":"error","security-severity":"7.8"}}],"locations":[{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/ui5/src/","description":{"text":"The QL pack root directory."},"properties":{"tags":["CodeQL/LocalPackRoot"]}},{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/ui5/src/qlpack.yml","description":{"text":"The QL pack definition file."},"properties":{"tags":["CodeQL/LocalPackDefinitionFile"]}}]},{"name":"advanced-security/javascript-sap-ui5-models","semanticVersion":"0.7.0","locations":[{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/.github/codeql/extensions/javascript/frameworks/ui5/ext/ext/","description":{"text":"The QL pack root directory."},"properties":{"tags":["CodeQL/LocalPackRoot"]}},{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/.github/codeql/extensions/javascript/frameworks/ui5/ext/ext/qlpack.yml","description":{"text":"The QL pack definition file."},"properties":{"tags":["CodeQL/LocalPackDefinitionFile"]}}],"properties":{"isCodeQLModelPack":true}},{"name":"codeql/javascript-all","semanticVersion":"2.4.0+c524a98eb91c769cb2994b8373181c2ebd27c20f","locations":[{"uri":"file:///opt/hostedtoolcache/CodeQL/2.20.4/x64/codeql/qlpacks/codeql/javascript-all/2.4.0/","description":{"text":"The QL pack root directory."},"properties":{"tags":["CodeQL/LocalPackRoot"]}},{"uri":"file:///opt/hostedtoolcache/CodeQL/2.20.4/x64/codeql/qlpacks/codeql/javascript-all/2.4.0/qlpack.yml","description":{"text":"The QL pack definition file."},"properties":{"tags":["CodeQL/LocalPackDefinitionFile"]}}]},{"name":"codeql/threat-models","semanticVersion":"1.0.16+c524a98eb91c769cb2994b8373181c2ebd27c20f","locations":[{"uri":"file:///opt/hostedtoolcache/CodeQL/2.20.4/x64/codeql/qlpacks/codeql/threat-models/1.0.16/","description":{"text":"The QL pack root directory."},"properties":{"tags":["CodeQL/LocalPackRoot"]}},{"uri":"file:///opt/hostedtoolcache/CodeQL/2.20.4/x64/codeql/qlpacks/codeql/threat-models/1.0.16/qlpack.yml","description":{"text":"The QL pack definition file."},"properties":{"tags":["CodeQL/LocalPackDefinitionFile"]}}]},{"name":"advanced-security/javascript-sap-cap-queries","semanticVersion":"0.4.0+e4c1209dfe458781840f465d59aa87dda0d31fe2","rules":[{"id":"js/cap-log-injection","name":"js/cap-log-injection","shortDescription":{"text":"CAP Log injection"},"fullDescription":{"text":"Building log entries from user-controlled sources is vulnerable to insertion of forged log entries by a malicious user."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# CAP Log Injection\n\nIf unsanitized user input is written to a log entry using the CAP Node.js logging API, a malicious user may be able to forge new log entries.\n\nCAP Node.js offers a CLRF-safe logging API that should be used for application log entries that are logged as plaintext. If the entry is interpreted as HTML, then arbitrary HTML code my be included to forge log entries.\n\n## Recommendation\n\nCAP applications need to care for escaping user data that is used as input parameter for application logging. It's recommended to make use of an existing Encoder such as OWASP ESAPI.\n\n## Examples\n\nThis CAP service directly logs what the user submitted via the `req` request.\n\n``` javascript\nimport cds from '@sap/cds'\nconst { Books } = cds.entities ('sap.capire.bookshop')\n\nclass SampleVulnService extends cds.ApplicationService { init(){\n this.on ('submitOrder', async req => {\n const {book,quantity} = req.data\n const LOG = cds.log(\"nodejs\");\n LOG.info(\"test\" + book); // Log injection alert\n })\n\n return super.init()\n}}\n```\n\n## References\n\n- OWASP: [Log Injection](https://owasp.org/www-community/attacks/Log_Injection).\n- OWASP: [Log Injection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).\n- SAP CAPire Documentation: [Security Aspects](https://cap.cloud.sap/docs/guides/security/aspects#common-injection-attacks).\n","markdown":"# CAP Log Injection\n\nIf unsanitized user input is written to a log entry using the CAP Node.js logging API, a malicious user may be able to forge new log entries.\n\nCAP Node.js offers a CLRF-safe logging API that should be used for application log entries that are logged as plaintext. If the entry is interpreted as HTML, then arbitrary HTML code my be included to forge log entries.\n\n## Recommendation\n\nCAP applications need to care for escaping user data that is used as input parameter for application logging. It's recommended to make use of an existing Encoder such as OWASP ESAPI.\n\n## Examples\n\nThis CAP service directly logs what the user submitted via the `req` request.\n\n``` javascript\nimport cds from '@sap/cds'\nconst { Books } = cds.entities ('sap.capire.bookshop')\n\nclass SampleVulnService extends cds.ApplicationService { init(){\n this.on ('submitOrder', async req => {\n const {book,quantity} = req.data\n const LOG = cds.log(\"nodejs\");\n LOG.info(\"test\" + book); // Log injection alert\n })\n\n return super.init()\n}}\n```\n\n## References\n\n- OWASP: [Log Injection](https://owasp.org/www-community/attacks/Log_Injection).\n- OWASP: [Log Injection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).\n- SAP CAPire Documentation: [Security Aspects](https://cap.cloud.sap/docs/guides/security/aspects#common-injection-attacks).\n"},"properties":{"tags":["security"],"description":"Building log entries from user-controlled sources is vulnerable to\n insertion of forged log entries by a malicious user.","id":"js/cap-log-injection","kind":"path-problem","name":"CAP Log injection","precision":"medium","problem.severity":"error","security-severity":"6.1"}},{"id":"js/cap-sensitive-log","name":"js/cap-sensitive-log","shortDescription":{"text":"Insertion of sensitive information into log files"},"fullDescription":{"text":"Writing sensitive information to log files can allow that information to be leaked to an attacker more easily."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# CAP Insertion of Sensitive Information into Log File\n\nIf sensitive information is written to a log entry using the CAP Node.js logging API, a malicious user may be able to gain access to user data.\n\nData annotated as `@PersonalData` should not be logged.\n\n## Recommendation\n\nCAP applications should not log sensitive information. Check CDS declarations for annotations before logging certain data types or fields.\n\n## Examples\n\nThis CAP service directly logs the sensitive information.\n\n```cds\nnamespace advanced_security.log_exposure.sample_entities;\n\nentity Sample {\n name : String(111);\n}\n\n// annotations for Data Privacy\nannotate Sample with\n@PersonalData : { DataSubjectRole : 'Sample', EntitySemantics : 'DataSubject' }\n{\n name @PersonalData.IsPotentiallySensitive;\n}\n```\n\n``` javascript\nimport cds from '@sap/cds'\nconst LOG = cds.log(\"logger\");\n\nconst { Sample } = cds.entities('advanced_security.log_exposure.sample_entities')\n\nclass SampleVulnService extends cds.ApplicationService {\n init() {\n LOG.info(\"Received: \", Sample.name); // CAP log exposure alert\n }\n}\n```\n\n## References\n\n- OWASP 2021: [Security Logging and Monitoring Failures](https://owasp.org/Top10/A09_2021-Security_Logging_and_Monitoring_Failures/).\n- OWASP: [Logging Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).\n- OWASP: [User Privacy Protection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/User_Privacy_Protection_Cheat_Sheet.html).\n- SAP CAPire Documentation: [PersonalData Annotations](https://cap.cloud.sap/docs/guides/data-privacy/annotations).","markdown":"# CAP Insertion of Sensitive Information into Log File\n\nIf sensitive information is written to a log entry using the CAP Node.js logging API, a malicious user may be able to gain access to user data.\n\nData annotated as `@PersonalData` should not be logged.\n\n## Recommendation\n\nCAP applications should not log sensitive information. Check CDS declarations for annotations before logging certain data types or fields.\n\n## Examples\n\nThis CAP service directly logs the sensitive information.\n\n```cds\nnamespace advanced_security.log_exposure.sample_entities;\n\nentity Sample {\n name : String(111);\n}\n\n// annotations for Data Privacy\nannotate Sample with\n@PersonalData : { DataSubjectRole : 'Sample', EntitySemantics : 'DataSubject' }\n{\n name @PersonalData.IsPotentiallySensitive;\n}\n```\n\n``` javascript\nimport cds from '@sap/cds'\nconst LOG = cds.log(\"logger\");\n\nconst { Sample } = cds.entities('advanced_security.log_exposure.sample_entities')\n\nclass SampleVulnService extends cds.ApplicationService {\n init() {\n LOG.info(\"Received: \", Sample.name); // CAP log exposure alert\n }\n}\n```\n\n## References\n\n- OWASP 2021: [Security Logging and Monitoring Failures](https://owasp.org/Top10/A09_2021-Security_Logging_and_Monitoring_Failures/).\n- OWASP: [Logging Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).\n- OWASP: [User Privacy Protection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/User_Privacy_Protection_Cheat_Sheet.html).\n- SAP CAPire Documentation: [PersonalData Annotations](https://cap.cloud.sap/docs/guides/data-privacy/annotations)."},"properties":{"tags":["security","external/cwe/cwe-532"],"description":"Writing sensitive information to log files can allow that\n information to be leaked to an attacker more easily.","id":"js/cap-sensitive-log","kind":"path-problem","name":"Insertion of sensitive information into log files","precision":"medium","problem.severity":"warning","security-severity":"7.5"}},{"id":"js/cap-entity-exposed-without-authentication","name":"js/cap-entity-exposed-without-authentication","shortDescription":{"text":"Entity exposed without authentication"},"fullDescription":{"text":"Entities exposed to external protocols should require an CDS-based or JS-based access control."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# CAP Definitions Exposed without Access Controls\n\nAlthough using a production-level authentication strategy such as `jwt` ensures that all entities and services require the user to be authenticated, this does not guarantee any further authorization. Furthermore, the lack of required authentication or authorization may imply a gap in the design of the system.\n\n## Recommendation\n\n### Use CDS-based authorization\n\nCDL provides two annotations to declare access controls `@requires` and `@restrict` with the latter providing more granularity than the former. For example, to check if a request is being made by an authenticated user to the CDL entity or service, annotate it with `@requires: 'authenticated-user'`. On the other hand, if it needs to be read only via a certain group of users where the user has level greater than 2, use `@restrict: { grant: 'READ', to: 'SomeUser', where: { $user.level > 2 } }` (note the leading `$`).\n\n#### Check the original CDS entity it is derived from\n\nCDS entities may be derived from other entities by means of selection and projection. Derived definitions inherit access control conditions and optionally override them. In order to accurately determine what authorization an entity requires, the access control of the parent entity should be transitively inspected.\n\n### Enforce authorization with JavaScript\n\nAccess control may be enforced when a request handler for the relevant entity or service is registered. Both `cds.Service.before` and `cds.Service.on` may be used for enforcement. For example, to restrict writing to and updating an entity to a user satisfying certain requirements, either one of the below handler registrations may be used:\n\n``` javascript\n/**\n * Before serving a request to access SomeEntity, check if the request is coming from a user\n * with SomeRole and level greater than 3.\n */\nthis.before([\"WRITE\", \"UPDATE\"], \"SomeEntity\", (req) => {\n (req.user.is(\"SomeRole\") && req.user.attr.level > 3) || req.reject(403);\n});\n\n/**\n * On request to access SomeEntity, check if the request is coming from a user\n * with SomeRole and level greater than 3.\n */\nthis.on([\"WRITE\", \"UPDATE\"], \"SomeEntity\", (req) => {\n if (req.user.is(\"SomeRole\") && req.user.attr.level > 3) {\n /* Do something */\n } else req.reject(403);\n});\n```\n\n## Examples\n\nThe following CDS definition and its JavaScript implementation imposes no authorization on `SomeEntity`. Note that the `OriginalEntity` from which `DerivedEntity` derives from does not control the access either.\n\n### db/schema.cds\n\n``` cap-cds\nnamespace sample_namespace.sample_entities;\n\nentity OriginalEntity {\n Attribute1 : String(100);\n Attribute2 : String(100)\n}\n```\n\n### srv/service1.cds\n\n``` cap-cds\nusing { sample_namespace.sample_entities as db_schema } from '../db/schema';\n\nservice SomeService {\n entity DerivedEntity as projection on db_schema.OriginalEntity excluding { Attribute2 }\n}\n```\n\n### srv/service1.js\n\n``` javascript\n\nconst cds = require(\"@sap/cds\");\n\nmodule.exports = class Service1 extends cds.ApplicationService {\n init() {\n this.on(\"READ\", \"SomeService\", (req) => { })\n }\n}\n```\n\n## References\n\n- SAP CAPire Documentation: [Authorization Enforcement](https://cap.cloud.sap/docs/node.js/authentication#enforcement).\n- SAP CAPire Documentation: [@restrict](https://cap.cloud.sap/docs/guides/security/authorization#restrict-annotation).\n- SAP CAPire Documentation:\n[@requires](https://cap.cloud.sap/docs/guides/security/authorization#requires).\n- SAP CAPire Documentation: [Protecting Certain Entries](https://cap.cloud.sap/docs/cds/common#protecting-certain-entries).\n- SAP CAPire Documentation: [Inheritance of Restrictions](https://cap.cloud.sap/docs/guides/security/authorization#inheritance-of-restrictions).\n- SAP CAPire Documentation: [Authentication Enforced in Production](https://cap.cloud.sap/docs/node.js/authentication#authentication-enforced-in-production).\n- Common Weakness Enumeration: [CWE-862](https://cwe.mitre.org/data/definitions/862.html).\n- Common Weakness Enumeration: [CWE-306](https://cwe.mitre.org/data/definitions/306.html).\n","markdown":"# CAP Definitions Exposed without Access Controls\n\nAlthough using a production-level authentication strategy such as `jwt` ensures that all entities and services require the user to be authenticated, this does not guarantee any further authorization. Furthermore, the lack of required authentication or authorization may imply a gap in the design of the system.\n\n## Recommendation\n\n### Use CDS-based authorization\n\nCDL provides two annotations to declare access controls `@requires` and `@restrict` with the latter providing more granularity than the former. For example, to check if a request is being made by an authenticated user to the CDL entity or service, annotate it with `@requires: 'authenticated-user'`. On the other hand, if it needs to be read only via a certain group of users where the user has level greater than 2, use `@restrict: { grant: 'READ', to: 'SomeUser', where: { $user.level > 2 } }` (note the leading `$`).\n\n#### Check the original CDS entity it is derived from\n\nCDS entities may be derived from other entities by means of selection and projection. Derived definitions inherit access control conditions and optionally override them. In order to accurately determine what authorization an entity requires, the access control of the parent entity should be transitively inspected.\n\n### Enforce authorization with JavaScript\n\nAccess control may be enforced when a request handler for the relevant entity or service is registered. Both `cds.Service.before` and `cds.Service.on` may be used for enforcement. For example, to restrict writing to and updating an entity to a user satisfying certain requirements, either one of the below handler registrations may be used:\n\n``` javascript\n/**\n * Before serving a request to access SomeEntity, check if the request is coming from a user\n * with SomeRole and level greater than 3.\n */\nthis.before([\"WRITE\", \"UPDATE\"], \"SomeEntity\", (req) => {\n (req.user.is(\"SomeRole\") && req.user.attr.level > 3) || req.reject(403);\n});\n\n/**\n * On request to access SomeEntity, check if the request is coming from a user\n * with SomeRole and level greater than 3.\n */\nthis.on([\"WRITE\", \"UPDATE\"], \"SomeEntity\", (req) => {\n if (req.user.is(\"SomeRole\") && req.user.attr.level > 3) {\n /* Do something */\n } else req.reject(403);\n});\n```\n\n## Examples\n\nThe following CDS definition and its JavaScript implementation imposes no authorization on `SomeEntity`. Note that the `OriginalEntity` from which `DerivedEntity` derives from does not control the access either.\n\n### db/schema.cds\n\n``` cap-cds\nnamespace sample_namespace.sample_entities;\n\nentity OriginalEntity {\n Attribute1 : String(100);\n Attribute2 : String(100)\n}\n```\n\n### srv/service1.cds\n\n``` cap-cds\nusing { sample_namespace.sample_entities as db_schema } from '../db/schema';\n\nservice SomeService {\n entity DerivedEntity as projection on db_schema.OriginalEntity excluding { Attribute2 }\n}\n```\n\n### srv/service1.js\n\n``` javascript\n\nconst cds = require(\"@sap/cds\");\n\nmodule.exports = class Service1 extends cds.ApplicationService {\n init() {\n this.on(\"READ\", \"SomeService\", (req) => { })\n }\n}\n```\n\n## References\n\n- SAP CAPire Documentation: [Authorization Enforcement](https://cap.cloud.sap/docs/node.js/authentication#enforcement).\n- SAP CAPire Documentation: [@restrict](https://cap.cloud.sap/docs/guides/security/authorization#restrict-annotation).\n- SAP CAPire Documentation:\n[@requires](https://cap.cloud.sap/docs/guides/security/authorization#requires).\n- SAP CAPire Documentation: [Protecting Certain Entries](https://cap.cloud.sap/docs/cds/common#protecting-certain-entries).\n- SAP CAPire Documentation: [Inheritance of Restrictions](https://cap.cloud.sap/docs/guides/security/authorization#inheritance-of-restrictions).\n- SAP CAPire Documentation: [Authentication Enforced in Production](https://cap.cloud.sap/docs/node.js/authentication#authentication-enforced-in-production).\n- Common Weakness Enumeration: [CWE-862](https://cwe.mitre.org/data/definitions/862.html).\n- Common Weakness Enumeration: [CWE-306](https://cwe.mitre.org/data/definitions/306.html).\n"},"properties":{"tags":["security"],"description":"Entities exposed to external protocols should require an\n CDS-based or JS-based access control.","id":"js/cap-entity-exposed-without-authentication","kind":"problem","name":"Entity exposed without authentication","precision":"high","problem.severity":"warning","security-severity":"6"}},{"id":"js/cap-unnecessarily-granted-privileged-access-rights","name":"js/cap-unnecessarily-granted-privileged-access-rights","shortDescription":{"text":"Access rights to an entity is unnecessarily elevated to privileged"},"fullDescription":{"text":"An entity requiring authorization is being accessed with privileged rights."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Access rights to an entity is unnecessarily elevated to privileged\n\nThe privileged user `cds.User.Privileged` is used to access an entity that requires authorization. If the application does not verify the actual user rights, it may expose protected entities to unauthorized users.\n\nThis is especially important when the accessed entity belongs to a remote service. By default, when using a production-grade authentication strategy all CAP endpoints are authenticated. However, if the entity is outside the application, there is no guarantee that the user is authenticated in the remote service.\n\n## Recommendations\n\n### Avoid using `cds.User.Privileged` when accessing an access-controlled entity\n\nAny entity that requires authorization should be accessed within the context of the authenticated user. When using a transaction, prefer using `cds.User` as the `user` attribute of the option argument to the call of `cds.ApplicationService.tx()` in order to check the required access rights of the entity against that of the user.\n\n## Examples\n\nThe following service, named Service1 and implemented in the file service1.js, is accessing an entity that belongs to another service named Service2 and defined in the file service2.cds. The entity, Service2Entity, demands that the user have level greater than 2.\n\n### `service1.js`\n\n``` javascript\nthis.on(\"action1\", async (req) => {\n const Service2 = await cds.connect.to(\"Service2\");\n const { Service2Entity } = Service2.entities;\n return this.tx({ user: new cds.User.Privileged(\"\") }, (tx) =>\n tx.run(\n SELECT.from(Service2Entity) // Declared in service2.cds\n .where`Attribute4=${req.data.messageToPass}`,\n ),\n );\n});\n```\n\n### `service2.cds`\n\n``` cds\nservice Service2 @(path: 'service-2') {\n /* Read access only to users with access level greater than 2. */\n @(restrict: [ { grant: 'READ', to: '$user.level > 2' } ])\n entity Service2Entity {\n Attribute1 : String(100);\n Attribute2 : String(100)\n }\n}\n```\n\n## References\n\n- SAP CAPire Documentation: [cds.User.Privileged](https://cap.cloud.sap/docs/node.js/authentication#privileged-user).\n- SAP CAPire Documentation: [cds.tx()](https://cap.cloud.sap/docs/node.js/cds-tx#srv-tx-ctx).\n- Common Weakness Enumeration: [CWE-250](https://cwe.mitre.org/data/definitions/250.html).\n- Common Weakness Enumeration: [CWE-266](https://cwe.mitre.org/data/definitions/266.html).\n","markdown":"# Access rights to an entity is unnecessarily elevated to privileged\n\nThe privileged user `cds.User.Privileged` is used to access an entity that requires authorization. If the application does not verify the actual user rights, it may expose protected entities to unauthorized users.\n\nThis is especially important when the accessed entity belongs to a remote service. By default, when using a production-grade authentication strategy all CAP endpoints are authenticated. However, if the entity is outside the application, there is no guarantee that the user is authenticated in the remote service.\n\n## Recommendations\n\n### Avoid using `cds.User.Privileged` when accessing an access-controlled entity\n\nAny entity that requires authorization should be accessed within the context of the authenticated user. When using a transaction, prefer using `cds.User` as the `user` attribute of the option argument to the call of `cds.ApplicationService.tx()` in order to check the required access rights of the entity against that of the user.\n\n## Examples\n\nThe following service, named Service1 and implemented in the file service1.js, is accessing an entity that belongs to another service named Service2 and defined in the file service2.cds. The entity, Service2Entity, demands that the user have level greater than 2.\n\n### `service1.js`\n\n``` javascript\nthis.on(\"action1\", async (req) => {\n const Service2 = await cds.connect.to(\"Service2\");\n const { Service2Entity } = Service2.entities;\n return this.tx({ user: new cds.User.Privileged(\"\") }, (tx) =>\n tx.run(\n SELECT.from(Service2Entity) // Declared in service2.cds\n .where`Attribute4=${req.data.messageToPass}`,\n ),\n );\n});\n```\n\n### `service2.cds`\n\n``` cds\nservice Service2 @(path: 'service-2') {\n /* Read access only to users with access level greater than 2. */\n @(restrict: [ { grant: 'READ', to: '$user.level > 2' } ])\n entity Service2Entity {\n Attribute1 : String(100);\n Attribute2 : String(100)\n }\n}\n```\n\n## References\n\n- SAP CAPire Documentation: [cds.User.Privileged](https://cap.cloud.sap/docs/node.js/authentication#privileged-user).\n- SAP CAPire Documentation: [cds.tx()](https://cap.cloud.sap/docs/node.js/cds-tx#srv-tx-ctx).\n- Common Weakness Enumeration: [CWE-250](https://cwe.mitre.org/data/definitions/250.html).\n- Common Weakness Enumeration: [CWE-266](https://cwe.mitre.org/data/definitions/266.html).\n"},"properties":{"tags":["security"],"description":"An entity requiring authorization is being accessed with privileged rights.","id":"js/cap-unnecessarily-granted-privileged-access-rights","kind":"problem","name":"Access rights to an entity is unnecessarily elevated to privileged","precision":"high","problem.severity":"error","security-severity":"6"}},{"id":"js/cap-default-user-is-privileged","name":"js/cap-default-user-is-privileged","shortDescription":{"text":"Default user is privileged"},"fullDescription":{"text":"Overriding the default user to the privileged user allows for authentication bypass."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Default User is overwritten as privileged\n\nUsers that cannot be verified as authenticated are represented as `cds.User.default` internally. Setting this property to `cds.User.Privileged` may result in providing protected assets to unauthorized users.\n\n## Recommendation\n\n### Set up a development profile that uses non-production authentication\n\nOverwriting `cds.User.default` as `cds.User.Privileged` for testing purposes is not recommended as such code may easily slip through production.\n\nInstead, set up a development profile and opt in to use a non-production strategy such as `\"basic\"`, `\"dummy\"`, or `\"mocked\"` during its use. This can be done in the file `package.json` in the root folder of the CAP application:\n\n``` json\n{\n \"requires\": {\n \"[dev]\": {\n \"auth\": \"dummy\"\n }\n }\n}\n```\n\nSetting `\"dummy\"` as the development authentication strategy has the effect of disabling `@requires` and `@restrict` annotations of CDS definitions that provides authorization. The application during development then can be run and tested with the `--profile dev` option.\n\n```shell\ncds serve --profile dev\n```\n\n## Example\n\nSetting `cds.User.default` to `cds.User.Privileged` may happen anywhere in the application. In the following example, the `server.js` file provides the top-level definition of a CAP application and overwrites the `default` user property with the `Privileged` class.\n\n``` javascript\nconst cds = require(\"@sap/cds\");\nconst app = require(\"express\")();\n\n/*\n * Antipattern: `cds.User.default` is overwritten to `cds.User.Privileged`\n */\ncds.User.default = cdsUser.Privileged;\n\ncds.serve(\"all\").in(app);\n```\n\n## References\n\n- SAP CAPire Documentation: [cds.User.default](https://cap.cloud.sap/docs/node.js/authentication#default-user).\n- SAP CAPire Documentation: [cds.User.Privileged](https://cap.cloud.sap/docs/node.js/authentication#privileged-user).\n- SAP CAPire Documentation: [Authentication Strategies](https://cap.cloud.sap/docs/node.js/authentication#strategies).\n- Common Weakness Enumeration: [CWE-250](https://cwe.mitre.org/data/definitions/250.html).\n","markdown":"# Default User is overwritten as privileged\n\nUsers that cannot be verified as authenticated are represented as `cds.User.default` internally. Setting this property to `cds.User.Privileged` may result in providing protected assets to unauthorized users.\n\n## Recommendation\n\n### Set up a development profile that uses non-production authentication\n\nOverwriting `cds.User.default` as `cds.User.Privileged` for testing purposes is not recommended as such code may easily slip through production.\n\nInstead, set up a development profile and opt in to use a non-production strategy such as `\"basic\"`, `\"dummy\"`, or `\"mocked\"` during its use. This can be done in the file `package.json` in the root folder of the CAP application:\n\n``` json\n{\n \"requires\": {\n \"[dev]\": {\n \"auth\": \"dummy\"\n }\n }\n}\n```\n\nSetting `\"dummy\"` as the development authentication strategy has the effect of disabling `@requires` and `@restrict` annotations of CDS definitions that provides authorization. The application during development then can be run and tested with the `--profile dev` option.\n\n```shell\ncds serve --profile dev\n```\n\n## Example\n\nSetting `cds.User.default` to `cds.User.Privileged` may happen anywhere in the application. In the following example, the `server.js` file provides the top-level definition of a CAP application and overwrites the `default` user property with the `Privileged` class.\n\n``` javascript\nconst cds = require(\"@sap/cds\");\nconst app = require(\"express\")();\n\n/*\n * Antipattern: `cds.User.default` is overwritten to `cds.User.Privileged`\n */\ncds.User.default = cdsUser.Privileged;\n\ncds.serve(\"all\").in(app);\n```\n\n## References\n\n- SAP CAPire Documentation: [cds.User.default](https://cap.cloud.sap/docs/node.js/authentication#default-user).\n- SAP CAPire Documentation: [cds.User.Privileged](https://cap.cloud.sap/docs/node.js/authentication#privileged-user).\n- SAP CAPire Documentation: [Authentication Strategies](https://cap.cloud.sap/docs/node.js/authentication#strategies).\n- Common Weakness Enumeration: [CWE-250](https://cwe.mitre.org/data/definitions/250.html).\n"},"properties":{"tags":["security"],"description":"Overriding the default user to the privileged user allows for authentication bypass.","id":"js/cap-default-user-is-privileged","kind":"problem","name":"Default user is privileged","precision":"high","problem.severity":"error","security-severity":"6"}},{"id":"js/cap-non-prod-auth-strategy","name":"js/cap-non-prod-auth-strategy","shortDescription":{"text":"Non-production authentication strategy used"},"fullDescription":{"text":"Using non-production authentication strategies can lead to unwanted authentication behavior in production."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Non-Production Authentication Strategy Used without Profiles\n\nUsing a non-production authentication strategy without setting up a distinct profile for development may pose allow unintended authentication and/or authorization if the application is deployed into production.\n\n## Recommendation\n\n### Isolate the use of development-level strategies to a development profile\n\nUse separate profiles for development and deployment and select one as needed. In this way, properties including authentication strategies can be substituted by changing a single command line option: `--profile`. For example, having the following section in the application's `package.json` states that the `\"dummy\"` authentication strategy must be used while `\"xsuaa\"`, a production-grade strategy, should be used when deployed:\n\n``` json\n{\n \"requires\": {\n \"[dev]\": {\n \"auth\": \"dummy\"\n },\n \"[deploy]\": {\n \"auth\": \"xsuaa\"\n }\n }\n}\n```\n\nThe application can be now run in different modes depending on the `--profile` command line option:\n\n``` shell\n$ cds serve --profile dev # Runs the application in development profile with strategy \"dummy\"\n$ cds serve --profile deploy # Runs the application in development profile with strategy \"xsuaa\"\n```\n\n## Example\n\nThe following CAP application states that it uses `\"basic\"` authentication strategy along with mocked credentials. Using the pair of username and password, an attacker can gain access to certain assets by signing in to the application.\n\n``` json\n{\n \"cds\": {\n \"requires\": {\n \"auth\": {\n \"kind\": \"basic\",\n \"users\": {\n \"JohnDoe\": {\n \"password\": \"JohnDoesPassword\",\n \"roles\": [\"JohnDoesRole\"],\n \"attr\": {}\n },\n \"JaneDoe\": {\n \"password\": \"JaneDoesPassword\",\n \"roles\": [\"JaneDoesRole\"],\n \"attr\": {}\n }\n }\n }\n }\n }\n}\n```\n\n## References\n\n- Common Weakness Enumeration: [CWE-288](https://cwe.mitre.org/data/definitions/288.html).\n- Common Weakness Enumeration: [CWE-798](https://cwe.mitre.org/data/definitions/798.html).\n- SAP CAPire Documentation: [Authentication Strategies](https://cap.cloud.sap/docs/node.js/authentication#strategies).\n","markdown":"# Non-Production Authentication Strategy Used without Profiles\n\nUsing a non-production authentication strategy without setting up a distinct profile for development may pose allow unintended authentication and/or authorization if the application is deployed into production.\n\n## Recommendation\n\n### Isolate the use of development-level strategies to a development profile\n\nUse separate profiles for development and deployment and select one as needed. In this way, properties including authentication strategies can be substituted by changing a single command line option: `--profile`. For example, having the following section in the application's `package.json` states that the `\"dummy\"` authentication strategy must be used while `\"xsuaa\"`, a production-grade strategy, should be used when deployed:\n\n``` json\n{\n \"requires\": {\n \"[dev]\": {\n \"auth\": \"dummy\"\n },\n \"[deploy]\": {\n \"auth\": \"xsuaa\"\n }\n }\n}\n```\n\nThe application can be now run in different modes depending on the `--profile` command line option:\n\n``` shell\n$ cds serve --profile dev # Runs the application in development profile with strategy \"dummy\"\n$ cds serve --profile deploy # Runs the application in development profile with strategy \"xsuaa\"\n```\n\n## Example\n\nThe following CAP application states that it uses `\"basic\"` authentication strategy along with mocked credentials. Using the pair of username and password, an attacker can gain access to certain assets by signing in to the application.\n\n``` json\n{\n \"cds\": {\n \"requires\": {\n \"auth\": {\n \"kind\": \"basic\",\n \"users\": {\n \"JohnDoe\": {\n \"password\": \"JohnDoesPassword\",\n \"roles\": [\"JohnDoesRole\"],\n \"attr\": {}\n },\n \"JaneDoe\": {\n \"password\": \"JaneDoesPassword\",\n \"roles\": [\"JaneDoesRole\"],\n \"attr\": {}\n }\n }\n }\n }\n }\n}\n```\n\n## References\n\n- Common Weakness Enumeration: [CWE-288](https://cwe.mitre.org/data/definitions/288.html).\n- Common Weakness Enumeration: [CWE-798](https://cwe.mitre.org/data/definitions/798.html).\n- SAP CAPire Documentation: [Authentication Strategies](https://cap.cloud.sap/docs/node.js/authentication#strategies).\n"},"properties":{"tags":["security"],"description":"Using non-production authentication strategies can lead to unwanted authentication behavior in production.","id":"js/cap-non-prod-auth-strategy","kind":"problem","name":"Non-production authentication strategy used","precision":"high","problem.severity":"warning","security-severity":"6"}},{"id":"js/cap-sql-injection","name":"js/cap-sql-injection","shortDescription":{"text":"CQL query built from user-controlled sources"},"fullDescription":{"text":"Building a CQL query from user-controlled sources is vulnerable to insertion of malicious code by the user."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# CQL query built from user-controlled sources\n\nIf a database query is built from user-provided data without sufficient sanitization, a malicious user may be able to run malicious database queries.\n\n## Recommendation\n\nCAP's intrinsic data querying engine is immune with regards to SQL injections that are introduced by query parameter values that are derived from malicious user input. CQL statements are transformed into prepared statements that are executed in SQL databases such as SAP HANA. \nInjections are still possible even via CQL when the query structure (e.g. target entity, columns etc.) is based on user input.\n\n## Examples\n\nThis CAP application uses user submitted input as entity and column in a CQL query without any validation.\n\n``` javascript\nconst entity = \nconst column = \nSELECT.from(entity).columns(column)\n```\n\n## References\n\n- OWASP: [SQL Injection](https://owasp.org/www-community/attacks/SQL_Injectionn).\n- OWASP: [SQL Injection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html).\n- SAP CAPire Documentation: [Security Aspects](https://cap.cloud.sap/docs/guides/security/aspects#common-injection-attacks).\n","markdown":"# CQL query built from user-controlled sources\n\nIf a database query is built from user-provided data without sufficient sanitization, a malicious user may be able to run malicious database queries.\n\n## Recommendation\n\nCAP's intrinsic data querying engine is immune with regards to SQL injections that are introduced by query parameter values that are derived from malicious user input. CQL statements are transformed into prepared statements that are executed in SQL databases such as SAP HANA. \nInjections are still possible even via CQL when the query structure (e.g. target entity, columns etc.) is based on user input.\n\n## Examples\n\nThis CAP application uses user submitted input as entity and column in a CQL query without any validation.\n\n``` javascript\nconst entity = \nconst column = \nSELECT.from(entity).columns(column)\n```\n\n## References\n\n- OWASP: [SQL Injection](https://owasp.org/www-community/attacks/SQL_Injectionn).\n- OWASP: [SQL Injection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html).\n- SAP CAPire Documentation: [Security Aspects](https://cap.cloud.sap/docs/guides/security/aspects#common-injection-attacks).\n"},"properties":{"tags":["security"],"description":"Building a CQL query from user-controlled sources is vulnerable to insertion of\n malicious code by the user.","id":"js/cap-sql-injection","kind":"path-problem","name":"CQL query built from user-controlled sources","precision":"high","problem.severity":"error","security-severity":"8.8"}}],"locations":[{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/src/","description":{"text":"The QL pack root directory."},"properties":{"tags":["CodeQL/LocalPackRoot"]}},{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/src/qlpack.yml","description":{"text":"The QL pack definition file."},"properties":{"tags":["CodeQL/LocalPackDefinitionFile"]}}]},{"name":"advanced-security/javascript-sap-xsjs-queries","semanticVersion":"0.2.0+e4c1209dfe458781840f465d59aa87dda0d31fe2","rules":[{"id":"js/xsjs-broken-authentication","name":"js/xsjs-broken-authentication","shortDescription":{"text":"Broken XSJS authentication"},"fullDescription":{"text":"Disabling XSJS authentication makes the application vulnerable to unauthorized access."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Authentication not enforced in HANA XS application\n\nThis HANA XS application does not enforce authentication on the requests it handles.\n\n## Overview\n\nSAP HANA XS applications are called via HTTP requests to process a connected HANA database, and this makes it critical to authenticate the sender of the request. Failing to do so allows attackers to impersonate users and gain access to underlying systems and data.\n\n## Recommendation\n\nUse the built-in SAP HANA XS authentication mechanism and session management (cookies).\n- If `XS Advanced` is used, authentication **is enabled by default**, and the `authenticationMethod` property indicates which authentication will be applied. However, avoid setting the property to something else than `none`, as doing so turns off all authentication on all routes.\n- If `XS Classic` is used, authentication is **not enabled by default**, so the `authentication` property in the application's `.xsaccess` file should be set to enable authentication. Set the value of the property according to the method you want to implement (`LogonTicket`, `Form`, or `Basic`).\n\n## Example\n\nThe fragment from an `xs-app.json` file shows the application in question having its authentication explicitly disabled.\n\n```json\n{\n \"welcomeFile\": \"index.html\",\n \"authenticationMethod\": \"none\",\n ...\n}\n```\n\n## References\n\n- SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/2040c1b7e478448cb9904c55ac06cac8.html).\n- SAP: [XS Advanced Application Router Configuration](https://help.sap.com/docs/SAP_HANA_PLATFORM/4505d0bdaf4948449b7f7379d24d0f0d/5f77e58ec01b46f6b64ee1e2afe3ead7.html#authenticationmethod), relevant to XS Advanced applications.\n- SAP: [Application-Access File Keyword Options: Authentication](https://help.sap.com/docs/SAP_HANA_PLATFORM/b3d0daf2a98e49ada00bf31b7ca7a42e/a9fc5c220d744180850996e2f5d34d6c.html?version=2.0.03&locale=en-US#authentication), relevant to XS Classic applications.\n- Common Weakness Enumeration: [CWE-306](https://cwe.mitre.org/data/definitions/306.html).\n","markdown":"# Authentication not enforced in HANA XS application\n\nThis HANA XS application does not enforce authentication on the requests it handles.\n\n## Overview\n\nSAP HANA XS applications are called via HTTP requests to process a connected HANA database, and this makes it critical to authenticate the sender of the request. Failing to do so allows attackers to impersonate users and gain access to underlying systems and data.\n\n## Recommendation\n\nUse the built-in SAP HANA XS authentication mechanism and session management (cookies).\n- If `XS Advanced` is used, authentication **is enabled by default**, and the `authenticationMethod` property indicates which authentication will be applied. However, avoid setting the property to something else than `none`, as doing so turns off all authentication on all routes.\n- If `XS Classic` is used, authentication is **not enabled by default**, so the `authentication` property in the application's `.xsaccess` file should be set to enable authentication. Set the value of the property according to the method you want to implement (`LogonTicket`, `Form`, or `Basic`).\n\n## Example\n\nThe fragment from an `xs-app.json` file shows the application in question having its authentication explicitly disabled.\n\n```json\n{\n \"welcomeFile\": \"index.html\",\n \"authenticationMethod\": \"none\",\n ...\n}\n```\n\n## References\n\n- SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/2040c1b7e478448cb9904c55ac06cac8.html).\n- SAP: [XS Advanced Application Router Configuration](https://help.sap.com/docs/SAP_HANA_PLATFORM/4505d0bdaf4948449b7f7379d24d0f0d/5f77e58ec01b46f6b64ee1e2afe3ead7.html#authenticationmethod), relevant to XS Advanced applications.\n- SAP: [Application-Access File Keyword Options: Authentication](https://help.sap.com/docs/SAP_HANA_PLATFORM/b3d0daf2a98e49ada00bf31b7ca7a42e/a9fc5c220d744180850996e2f5d34d6c.html?version=2.0.03&locale=en-US#authentication), relevant to XS Classic applications.\n- Common Weakness Enumeration: [CWE-306](https://cwe.mitre.org/data/definitions/306.html).\n"},"properties":{"tags":["security","external/cwe/cwe-306"],"description":"Disabling XSJS authentication makes the application vulnerable to unauthorized access.","id":"js/xsjs-broken-authentication","kind":"problem","name":"Broken XSJS authentication","precision":"medium","problem.severity":"warning","security-severity":"7.5"}},{"id":"js/xsjs-url-redirect","name":"js/xsjs-url-redirect","shortDescription":{"text":"XSJS URL Redirect"},"fullDescription":{"text":"Setting the `location` response header to an uncontrolled value allows for redirection to an arbitrary URL."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# URL Redirect\n\nAn HTTP response sent by an XSJS server whose value of the `location` header is dependent on a user input can redirect the client to an arbitrary location on the web by a malicious actor. For example, the redirected URL may point to a carefully imitated webpage of a genuine one, thus may lure a victim to submit its sign-in credentials.\n\n## Recommendation\n\nAvoid setting the entirety of URL or the domain part of it, which is obtained in any way from an external user, to the `location` header value, to keep redirection within the organization's domain. The URL to redirect the user to may be safely restricted by following one or more of the below strategies.\n\n### Redirect to a URL from an internal allow-list\n\nSelect the URL from a predefined allow-list that is kept internal. It may be shared across organizations, but should be kept confidential to any external actors.\n\n### Hardcode the domain part of the URL\n\nIf the URL to redirect the user to needs to be dependent upon a remote value, consider parameterizing only the request parameter portion and hardcode the rest of it, including the domain part. This way the redirection is kept within the organization.\n\n### Use a server-side template engine\n\nThere can be a single URL to which all redirection of the same type can happen where the redirected page can be customized to the customer with the help from a template engine. The details of the page can be filled from the server-side, not the client side through a request parameter. This way the URL does not need to be parameterized in any way while also filling the need for a customized redirect page.\n\n## Example\n\nThe following XSJS application sets the entire value of the location of its response to some URL retrieved from a request parameter.\n\n``` javascript\nlet someParameterValue = requestParameters.get(\"someParameter\");\n$.response.status = $.net.http.OK;\n$.response.headers.set(\"location\", someParameterValue);\n```\n\n## References\n\n* SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/b5e65421b48c48fa87312a6023f4c414.html).\n* SAP: [Server-Side JavaScript: Invalid Redirection](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/8c5ec75c27f543cb8b4c65c337b285ae.html).\n* Mozilla: [Location](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Location).\n* OWASP: [XSS Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n* Common Weakness Enumeration: [CWE-601](https://cwe.mitre.org/data/definitions/601.html).\n* SAP XSJS Documentation: [$.web.WebRequest](https://help.sap.com/doc/3de842783af24336b6305a3c0223a369/2.0.03/en-US/$.web.WebRequest.html).\n* SAP XSJS Documentation: [$.web.WebResponse](https://help.sap.com/doc/3de842783af24336b6305a3c0223a369/2.0.03/en-US/$.web.WebResponse.html).\n","markdown":"# URL Redirect\n\nAn HTTP response sent by an XSJS server whose value of the `location` header is dependent on a user input can redirect the client to an arbitrary location on the web by a malicious actor. For example, the redirected URL may point to a carefully imitated webpage of a genuine one, thus may lure a victim to submit its sign-in credentials.\n\n## Recommendation\n\nAvoid setting the entirety of URL or the domain part of it, which is obtained in any way from an external user, to the `location` header value, to keep redirection within the organization's domain. The URL to redirect the user to may be safely restricted by following one or more of the below strategies.\n\n### Redirect to a URL from an internal allow-list\n\nSelect the URL from a predefined allow-list that is kept internal. It may be shared across organizations, but should be kept confidential to any external actors.\n\n### Hardcode the domain part of the URL\n\nIf the URL to redirect the user to needs to be dependent upon a remote value, consider parameterizing only the request parameter portion and hardcode the rest of it, including the domain part. This way the redirection is kept within the organization.\n\n### Use a server-side template engine\n\nThere can be a single URL to which all redirection of the same type can happen where the redirected page can be customized to the customer with the help from a template engine. The details of the page can be filled from the server-side, not the client side through a request parameter. This way the URL does not need to be parameterized in any way while also filling the need for a customized redirect page.\n\n## Example\n\nThe following XSJS application sets the entire value of the location of its response to some URL retrieved from a request parameter.\n\n``` javascript\nlet someParameterValue = requestParameters.get(\"someParameter\");\n$.response.status = $.net.http.OK;\n$.response.headers.set(\"location\", someParameterValue);\n```\n\n## References\n\n* SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/b5e65421b48c48fa87312a6023f4c414.html).\n* SAP: [Server-Side JavaScript: Invalid Redirection](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/8c5ec75c27f543cb8b4c65c337b285ae.html).\n* Mozilla: [Location](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Location).\n* OWASP: [XSS Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n* Common Weakness Enumeration: [CWE-601](https://cwe.mitre.org/data/definitions/601.html).\n* SAP XSJS Documentation: [$.web.WebRequest](https://help.sap.com/doc/3de842783af24336b6305a3c0223a369/2.0.03/en-US/$.web.WebRequest.html).\n* SAP XSJS Documentation: [$.web.WebResponse](https://help.sap.com/doc/3de842783af24336b6305a3c0223a369/2.0.03/en-US/$.web.WebResponse.html).\n"},"properties":{"tags":["security"],"description":"Setting the `location` response header to an uncontrolled value\n allows for redirection to an arbitrary URL.","id":"js/xsjs-url-redirect","kind":"path-problem","name":"XSJS URL Redirect","precision":"medium","problem.severity":"error","security-severity":"6.1"}},{"id":"js/xsjs-reflected-xss","name":"js/xsjs-reflected-xss","shortDescription":{"text":"XSJS Reflected XSS"},"fullDescription":{"text":"Including uncontrolled value into a response body and setting it to a scriptable MIME type allows for cross-site scripting vulnerability."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Reflected Cross-site Scripting\n\nIncluding a text, received from a client browser typically through an XSJS request parameter, to be rendered as HTML in a request body may execute arbitrary JavaScript code on the client.\n\n## Recommendation\n\nThe XSJS application should always validate or sanitize the submitted string from a client before including it into a response body to be rendered in a client browser.\n\n### Validate the input string\n\nValidate the submitted input by looking for a sensitive HTML tag such as ``. The pattern may be encoded to a regular expression and matched against the input; If there is a match, then the XSJS application may decide to abort the process and instead return an HTTP code stating that the application rejected the request (e.g. `$.net.FORBIDDEN`). XSJS does not provide a function to reliably perform the above, therefore using a third-party library is recommended.\n\n### Sanitize the input string\n\n#### Server-side sanitization\n\nThe XSJS application may instead allow any user input, but sanitize it before it integrates it into the response body. This is achieved by escaping special characters that are treated as part of the HTML syntax, such as `\"`, `&`, `'`, `<`, and `>`. Since XSJS does not provide a function to escape these, using a third-party library is recommended.\n\n#### Client-side sanitization\n\nAlternatively, if SAP UI5 is used on the frontend, there are client-side escaping mechanisms such as `sap.base.security.encodeXML` and `sap.base.security.encodeHTML`. If `sap.ui.core.HTML` is used in the frontend view, consider setting its `sanitizeContent` property explicitly to `true`, since its default value is `false`.\n\n## Example\n\nThe following XSJS application sets the response body directly to a string received from a user without any validation or sanitization. The header's content type is set as an HTML document, which allows for any embedded JavaScript to be run in the request body. Note that even if `clientData` was not enclosed in a `div`, the vulnerability would still exist.\n\n``` javascript\nlet clientData = requestParameters.get(\"someParameter\");\n$.response.contentType = \"text/html\";\n$.response.setBody(\"
\" + clientData + \"
\");\n$.response.status = $.net.http.OK;\n```\n\n## References\n\n* SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/b5e65421b48c48fa87312a6023f4c414.html).\n* SAP: [Server-Side JavaScript: Cross-Site Scripting\n](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/0e1c9fff826a4583be715386578fffc7.html).\n* OWASP: [Types of Cross-site Scripting](https://owasp.org/www-community/Types_of_Cross-Site_Scripting).\n* OWASP: [Cross Site Scripting Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n\n","markdown":"# Reflected Cross-site Scripting\n\nIncluding a text, received from a client browser typically through an XSJS request parameter, to be rendered as HTML in a request body may execute arbitrary JavaScript code on the client.\n\n## Recommendation\n\nThe XSJS application should always validate or sanitize the submitted string from a client before including it into a response body to be rendered in a client browser.\n\n### Validate the input string\n\nValidate the submitted input by looking for a sensitive HTML tag such as ``. The pattern may be encoded to a regular expression and matched against the input; If there is a match, then the XSJS application may decide to abort the process and instead return an HTTP code stating that the application rejected the request (e.g. `$.net.FORBIDDEN`). XSJS does not provide a function to reliably perform the above, therefore using a third-party library is recommended.\n\n### Sanitize the input string\n\n#### Server-side sanitization\n\nThe XSJS application may instead allow any user input, but sanitize it before it integrates it into the response body. This is achieved by escaping special characters that are treated as part of the HTML syntax, such as `\"`, `&`, `'`, `<`, and `>`. Since XSJS does not provide a function to escape these, using a third-party library is recommended.\n\n#### Client-side sanitization\n\nAlternatively, if SAP UI5 is used on the frontend, there are client-side escaping mechanisms such as `sap.base.security.encodeXML` and `sap.base.security.encodeHTML`. If `sap.ui.core.HTML` is used in the frontend view, consider setting its `sanitizeContent` property explicitly to `true`, since its default value is `false`.\n\n## Example\n\nThe following XSJS application sets the response body directly to a string received from a user without any validation or sanitization. The header's content type is set as an HTML document, which allows for any embedded JavaScript to be run in the request body. Note that even if `clientData` was not enclosed in a `div`, the vulnerability would still exist.\n\n``` javascript\nlet clientData = requestParameters.get(\"someParameter\");\n$.response.contentType = \"text/html\";\n$.response.setBody(\"
\" + clientData + \"
\");\n$.response.status = $.net.http.OK;\n```\n\n## References\n\n* SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/b5e65421b48c48fa87312a6023f4c414.html).\n* SAP: [Server-Side JavaScript: Cross-Site Scripting\n](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/0e1c9fff826a4583be715386578fffc7.html).\n* OWASP: [Types of Cross-site Scripting](https://owasp.org/www-community/Types_of_Cross-Site_Scripting).\n* OWASP: [Cross Site Scripting Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n\n"},"properties":{"tags":["security"],"description":"Including uncontrolled value into a response body and setting it to\n a scriptable MIME type allows for cross-site scripting vulnerability.","id":"js/xsjs-reflected-xss","kind":"path-problem","name":"XSJS Reflected XSS","precision":"medium","problem.severity":"error","security-severity":"7.8"}},{"id":"js/xsjs-disabled-csrf-protection","name":"js/xsjs-disabled-csrf-protection","shortDescription":{"text":"Disabled XSJS CSRF protection"},"fullDescription":{"text":"Disabling CSRF protection makes the application vulnerable to a Cross-Site Request Forgery (CSRF) attack."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# CSRF protection disabled in HANA XS application\n\nThis XS application is not protected against CSRF (cross-site request forgery) because it either disables the protection or fails to enable the protection explicitly.\n\n## Overview\n\nA web server that receives a request from a client without verifying that it was intentionally sent might be vulnerable to Cross Site Request Forgery (CSRF). An attacker can trick a client into making an unintended request to the web server that will be treated as an authentic request. This can be done via a URL, image load, `XMLHttpRequest`, etc. and can result in exposure of data or unintended code execution.\n\n## Recommendation\n\nSAP’s recommendation is to use CSRF protection for any request that could be processed by a browser client by normal users.\n- If `XS Advanced` is used, CSRF protection is configured with the `\"csrfProtection\"` property of `xs-app.json`. It is **enabled by default and should not be disabled.**\n- If `XS Classic` is used, CSRF protection is configured with the `\"prevent_xsrf\"` property of `.xsaccess`. It is **disabled by default and should be enabled explicitly.**\n\n## Example\n\nThe following `xs-app.json` fragment disables CSRF protection of the application it configures.\n\n```json\n\"routes\": [\n {\n \"source\": \"/bad/(.*)\",\n \"destination\": \"srv_api\",\n \"csrfProtection\": false,\n ...\n },\n ...\n]\n```\n\n## References\n\n- SAP: [XS Advanced Application Router Configuration Syntax](https://help.sap.com/docs/SAP_HANA_PLATFORM/b3d0daf2a98e49ada00bf31b7ca7a42e/a9fc5c220d744180850996e2f5d34d6c.html?version=2.0.03#loioa9fc5c220d744180850996e2f5d34d6c__section_N101F7_N10016_N10001), relavant to XS Classic applications.\n- SAP: [Application-Access File Keyword Options, prevent_xsrf](https://help.sap.com/docs/SAP_HANA_PLATFORM/4505d0bdaf4948449b7f7379d24d0f0d/5f77e58ec01b46f6b64ee1e2afe3ead7.html#authenticationmethod), relevant to XS Advanced applications.\n- SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/e8a6bc904c0c48a182288604f467e84a.html).\n- Common Weakness Enumeration: [CWE-352](https://cwe.mitre.org/data/definitions/352.html).\n- OWASP: [Cross-Site Request Forgery (CSRF)](https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)).\n","markdown":"# CSRF protection disabled in HANA XS application\n\nThis XS application is not protected against CSRF (cross-site request forgery) because it either disables the protection or fails to enable the protection explicitly.\n\n## Overview\n\nA web server that receives a request from a client without verifying that it was intentionally sent might be vulnerable to Cross Site Request Forgery (CSRF). An attacker can trick a client into making an unintended request to the web server that will be treated as an authentic request. This can be done via a URL, image load, `XMLHttpRequest`, etc. and can result in exposure of data or unintended code execution.\n\n## Recommendation\n\nSAP’s recommendation is to use CSRF protection for any request that could be processed by a browser client by normal users.\n- If `XS Advanced` is used, CSRF protection is configured with the `\"csrfProtection\"` property of `xs-app.json`. It is **enabled by default and should not be disabled.**\n- If `XS Classic` is used, CSRF protection is configured with the `\"prevent_xsrf\"` property of `.xsaccess`. It is **disabled by default and should be enabled explicitly.**\n\n## Example\n\nThe following `xs-app.json` fragment disables CSRF protection of the application it configures.\n\n```json\n\"routes\": [\n {\n \"source\": \"/bad/(.*)\",\n \"destination\": \"srv_api\",\n \"csrfProtection\": false,\n ...\n },\n ...\n]\n```\n\n## References\n\n- SAP: [XS Advanced Application Router Configuration Syntax](https://help.sap.com/docs/SAP_HANA_PLATFORM/b3d0daf2a98e49ada00bf31b7ca7a42e/a9fc5c220d744180850996e2f5d34d6c.html?version=2.0.03#loioa9fc5c220d744180850996e2f5d34d6c__section_N101F7_N10016_N10001), relavant to XS Classic applications.\n- SAP: [Application-Access File Keyword Options, prevent_xsrf](https://help.sap.com/docs/SAP_HANA_PLATFORM/4505d0bdaf4948449b7f7379d24d0f0d/5f77e58ec01b46f6b64ee1e2afe3ead7.html#authenticationmethod), relevant to XS Advanced applications.\n- SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/e8a6bc904c0c48a182288604f467e84a.html).\n- Common Weakness Enumeration: [CWE-352](https://cwe.mitre.org/data/definitions/352.html).\n- OWASP: [Cross-Site Request Forgery (CSRF)](https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)).\n"},"properties":{"tags":["security","external/cwe/cwe-352"],"description":"Disabling CSRF protection makes the application vulnerable to a Cross-Site Request Forgery (CSRF) attack.","id":"js/xsjs-disabled-csrf-protection","kind":"problem","name":"Disabled XSJS CSRF protection","precision":"high","problem.severity":"error","security-severity":"8.8"}},{"id":"js/xsjs-sql-injection","name":"js/xsjs-sql-injection","shortDescription":{"text":"XSJS SQL injection"},"fullDescription":{"text":"Directly concatenating an uncontrolled value with an SQL query allows for an SQL injection vulnerability."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# SQL Injection\n\nParameterizing an SQL statement in an unsafe way by directly concatenating the parameter to the statement body may allow arbitrary SQL code fragments to be included to the statement, resulting in possibly destructive behavior.\n\n## Recommendation\n\n### Use XSJS APIs that prepares SQL statements\n\nThere are two versions of API to communicate with SAP HANA, and both APIs provide means of preparing SQL statements that not only facilitates code reuse but also protects the parameterize statement from SQL injections.\n\nThese functions take as first argument an SQL string with placeholders represented as a question mark surrounded with parentheses (`(?)`), and the rest of the arguments consist of JavaScript expressions whose values are filled into the position of the respective placeholders.\n\n#### Using the older API (`$.db`)\n\nIf you are using the older API that belongs to `$.db`, consider replacing string concatentation with `$.db.executeQuery`. For example, the following XSJS application substitutes the value of `someParameterValue1` and `someParameterValue2` into the position of the first and second placeholder positions, respectively.\n\n``` javascript\nlet query = \"INSERT INTO (?) (COL1) VALUES (?)\";\n\nlet dbConnection = $.db.getConnection();\ndbConnection.executeQuery(query, someParameterValue1, someParameterValue2);\n```\n\n#### Using the newer API (`$.hdb`)\n\nIf you are using the newer API that belongs to `$.hdb`, consider replacing string concatentation with `$.hdb.Connection.prepareStatement` followed by `$.db.PreparedStatement.executeUpdate`. For example, the following XSJS application substitues the value of `someParameterValue1` and `someParameterValue2` into the position of the first and second placeholder positions, respectively. After preparation, the application executes the prepared statement and then commits it to the SAP HANA database.\n\n``` javascript\nlet query = \"INSERT INTO (?) (COL1) VALUES (?)\";\nlet dbConnection = $.db.getConnection();\nlet preparedStatement = dbConnection.prepareStatement(query, someParameterValue1, someParameterValue2);\npreparedStatement.executeUpdate();\ndbConnection.commit();\n```\n\n## Example\n\nEach of the following XSJS applications directly concatenates the values of two request paremeters with fragments of an SQL query and executes it.\n\n#### Using the older API (`$.db`)\n\n``` javascript\nlet someParameterValue1 = JSON.parse(requestParameters.get(\"someParameter1\"));\nlet someParameterValue2 = JSON.parse(requestParameters.get(\"someParameter2\"));\nlet query = \"INSERT INTO \" + someParameterValue1 + \".ENTITY (COL1) VALUES (\" + someParameterValue2 + \")\";\n\nlet dbConnection = $.db.getConnection();\nlet preparedStatement = dbConnection.prepareStatement(query);\npreparedStatement.executeUpdate();\ndbConnection.commit();\n```\n\n#### Using the newer API (`$.hdb`)\n\n``` javascript\nlet someParameterValue1 = JSON.parse(requestParameters.get(\"someParameter1\"));\nlet someParameterValue2 = JSON.parse(requestParameters.get(\"someParameter2\"));\nlet query = \"INSERT INTO \" + someParameterValue1 + \" (COL1) VALUES (\" + someParameterValue2 + \")\";\n\nlet dbConnection = $.db.getConnection();\ndbConnection.executeQuery(query);\ndbConnection.commit();\n```\n\n## References\n\n* SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/b5e65421b48c48fa87312a6023f4c414.html).\n* SAP: [Server-Side JavaScript: Injection Flaws\n](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/3e9a0491d2af4b908081fbbee12bc8ba.html).\n* OWASP: [SQL Injection](https://owasp.org/www-community/attacks/SQL_Injection).\n* Common Weakness Enumeration: [CWE-89](https://cwe.mitre.org/data/definitions/89.html).\n* Common Weakness Enumeration: [CWE-943](https://cwe.mitre.org/data/definitions/943.html).\n","markdown":"# SQL Injection\n\nParameterizing an SQL statement in an unsafe way by directly concatenating the parameter to the statement body may allow arbitrary SQL code fragments to be included to the statement, resulting in possibly destructive behavior.\n\n## Recommendation\n\n### Use XSJS APIs that prepares SQL statements\n\nThere are two versions of API to communicate with SAP HANA, and both APIs provide means of preparing SQL statements that not only facilitates code reuse but also protects the parameterize statement from SQL injections.\n\nThese functions take as first argument an SQL string with placeholders represented as a question mark surrounded with parentheses (`(?)`), and the rest of the arguments consist of JavaScript expressions whose values are filled into the position of the respective placeholders.\n\n#### Using the older API (`$.db`)\n\nIf you are using the older API that belongs to `$.db`, consider replacing string concatentation with `$.db.executeQuery`. For example, the following XSJS application substitutes the value of `someParameterValue1` and `someParameterValue2` into the position of the first and second placeholder positions, respectively.\n\n``` javascript\nlet query = \"INSERT INTO (?) (COL1) VALUES (?)\";\n\nlet dbConnection = $.db.getConnection();\ndbConnection.executeQuery(query, someParameterValue1, someParameterValue2);\n```\n\n#### Using the newer API (`$.hdb`)\n\nIf you are using the newer API that belongs to `$.hdb`, consider replacing string concatentation with `$.hdb.Connection.prepareStatement` followed by `$.db.PreparedStatement.executeUpdate`. For example, the following XSJS application substitues the value of `someParameterValue1` and `someParameterValue2` into the position of the first and second placeholder positions, respectively. After preparation, the application executes the prepared statement and then commits it to the SAP HANA database.\n\n``` javascript\nlet query = \"INSERT INTO (?) (COL1) VALUES (?)\";\nlet dbConnection = $.db.getConnection();\nlet preparedStatement = dbConnection.prepareStatement(query, someParameterValue1, someParameterValue2);\npreparedStatement.executeUpdate();\ndbConnection.commit();\n```\n\n## Example\n\nEach of the following XSJS applications directly concatenates the values of two request paremeters with fragments of an SQL query and executes it.\n\n#### Using the older API (`$.db`)\n\n``` javascript\nlet someParameterValue1 = JSON.parse(requestParameters.get(\"someParameter1\"));\nlet someParameterValue2 = JSON.parse(requestParameters.get(\"someParameter2\"));\nlet query = \"INSERT INTO \" + someParameterValue1 + \".ENTITY (COL1) VALUES (\" + someParameterValue2 + \")\";\n\nlet dbConnection = $.db.getConnection();\nlet preparedStatement = dbConnection.prepareStatement(query);\npreparedStatement.executeUpdate();\ndbConnection.commit();\n```\n\n#### Using the newer API (`$.hdb`)\n\n``` javascript\nlet someParameterValue1 = JSON.parse(requestParameters.get(\"someParameter1\"));\nlet someParameterValue2 = JSON.parse(requestParameters.get(\"someParameter2\"));\nlet query = \"INSERT INTO \" + someParameterValue1 + \" (COL1) VALUES (\" + someParameterValue2 + \")\";\n\nlet dbConnection = $.db.getConnection();\ndbConnection.executeQuery(query);\ndbConnection.commit();\n```\n\n## References\n\n* SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/b5e65421b48c48fa87312a6023f4c414.html).\n* SAP: [Server-Side JavaScript: Injection Flaws\n](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/3e9a0491d2af4b908081fbbee12bc8ba.html).\n* OWASP: [SQL Injection](https://owasp.org/www-community/attacks/SQL_Injection).\n* Common Weakness Enumeration: [CWE-89](https://cwe.mitre.org/data/definitions/89.html).\n* Common Weakness Enumeration: [CWE-943](https://cwe.mitre.org/data/definitions/943.html).\n"},"properties":{"tags":["security"],"description":"Directly concatenating an uncontrolled value with an SQL query allows\n for an SQL injection vulnerability.","id":"js/xsjs-sql-injection","kind":"path-problem","name":"XSJS SQL injection","precision":"medium","problem.severity":"error","security-severity":"8.8"}},{"id":"js/xsjs-zip-slip","name":"js/xsjs-zip-slip","shortDescription":{"text":"XSJS Zip Slip"},"fullDescription":{"text":"Saving an entry of a zip archive into a file with its stated path allows for a path traversal and writing to an arbitrary location."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Zip Slip\n\nA zip archive received from a remote location may contain arbitrary paths which, when translated to an absolute path, may escape the directory where it is extracted. Such paths may include one or more `../` to traverse the directory tree upwards to write to an arbitrary location, such as the root directory (`/`) or a sensitive path like `/usr/local/`. A sophisticated attack may also attempt to overwrite an existing file by making the filename identical as that of the target file.\n\n## Recommendation\n\nValidate the path of each zip entry before writing them to a file. Several different tactics may be used to prevent the path traversal by one or more of `../` occuring in a zip entry's path.\n\n### Check if the path string contains `../`\n\nA naive but effective way to validate the path of a zip entry is to check if its path, converted to string, contains any occurrences of `../`. If a path does have one, then it can be suspected that the creator of the zip archive is attempting a path traversal attack.\n\n### Resolve the path and check if the target directory is its prefix \n\nA more sophisticated way is to use a JavaScript library function that can be used to check if a substring is a prefix of a string. For example, the following XSJS application uses `String.indexOf(substring)` to check if the name of the directory is indeed the directory resolved by `path.join(prefix, suffix)`. If the absolute path obtained by the `join` function does not start with the target folder's name, the `entryPath` contains bits such as `../` that traverses the path.\n\n``` javascript\nvar zipArchive = new $.util.Zip(requestBody.asArrayBuffer());\nvar targetFolderName = \"unzipped\";\n\nfor (var entryPath in zipArchive) {\n var targetFilePath = require(\"path\").join(targetFolderName, entryPath)\n if (targetFilePath.indexOf(targetFolderName) === 0) {\n require(\"fs\").createWriteStream(targetFilePath).write(zip[entryPath]);\n }\n}\n```\n\n### Example\n\nThis XSJS application simply appends the path of each entry to a target directory name and a separator then saves it to a file with the concatenated path, thereby skipping any validation on it.\n\n``` javascript\nvar zipArchive = new $.util.Zip(requestBody.asArrayBuffer());\nvar targetFolderName = \"unzipped\";\n\nfor (var entryPath in zipArchive) {\n var targetFilePath = targetFolderName + \"/\" + entryPath;\n require(\"fs\").createWriteStream(targetFilePath).write(zip[entryPath]);\n}\n```\n\n## References\n\n* SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/b5e65421b48c48fa87312a6023f4c414.html).\n* OWASP: [Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* SAP XSJS Documentation: [$.util.Zip](https://help.sap.com/doc/3de842783af24336b6305a3c0223a369/2.0.03/en-US/$.util.Zip.html).\n* Common Weakness Enumeration: [CWE-23](https://cwe.mitre.org/data/definitions/23.html).\n* Common Weakness Enumeration: [CWE-59](https://cwe.mitre.org/data/definitions/59.html).\n","markdown":"# Zip Slip\n\nA zip archive received from a remote location may contain arbitrary paths which, when translated to an absolute path, may escape the directory where it is extracted. Such paths may include one or more `../` to traverse the directory tree upwards to write to an arbitrary location, such as the root directory (`/`) or a sensitive path like `/usr/local/`. A sophisticated attack may also attempt to overwrite an existing file by making the filename identical as that of the target file.\n\n## Recommendation\n\nValidate the path of each zip entry before writing them to a file. Several different tactics may be used to prevent the path traversal by one or more of `../` occuring in a zip entry's path.\n\n### Check if the path string contains `../`\n\nA naive but effective way to validate the path of a zip entry is to check if its path, converted to string, contains any occurrences of `../`. If a path does have one, then it can be suspected that the creator of the zip archive is attempting a path traversal attack.\n\n### Resolve the path and check if the target directory is its prefix \n\nA more sophisticated way is to use a JavaScript library function that can be used to check if a substring is a prefix of a string. For example, the following XSJS application uses `String.indexOf(substring)` to check if the name of the directory is indeed the directory resolved by `path.join(prefix, suffix)`. If the absolute path obtained by the `join` function does not start with the target folder's name, the `entryPath` contains bits such as `../` that traverses the path.\n\n``` javascript\nvar zipArchive = new $.util.Zip(requestBody.asArrayBuffer());\nvar targetFolderName = \"unzipped\";\n\nfor (var entryPath in zipArchive) {\n var targetFilePath = require(\"path\").join(targetFolderName, entryPath)\n if (targetFilePath.indexOf(targetFolderName) === 0) {\n require(\"fs\").createWriteStream(targetFilePath).write(zip[entryPath]);\n }\n}\n```\n\n### Example\n\nThis XSJS application simply appends the path of each entry to a target directory name and a separator then saves it to a file with the concatenated path, thereby skipping any validation on it.\n\n``` javascript\nvar zipArchive = new $.util.Zip(requestBody.asArrayBuffer());\nvar targetFolderName = \"unzipped\";\n\nfor (var entryPath in zipArchive) {\n var targetFilePath = targetFolderName + \"/\" + entryPath;\n require(\"fs\").createWriteStream(targetFilePath).write(zip[entryPath]);\n}\n```\n\n## References\n\n* SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/b5e65421b48c48fa87312a6023f4c414.html).\n* OWASP: [Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* SAP XSJS Documentation: [$.util.Zip](https://help.sap.com/doc/3de842783af24336b6305a3c0223a369/2.0.03/en-US/$.util.Zip.html).\n* Common Weakness Enumeration: [CWE-23](https://cwe.mitre.org/data/definitions/23.html).\n* Common Weakness Enumeration: [CWE-59](https://cwe.mitre.org/data/definitions/59.html).\n"},"properties":{"tags":["security"],"description":"Saving an entry of a zip archive into a file with its stated path\n allows for a path traversal and writing to an arbitrary location.","id":"js/xsjs-zip-slip","kind":"path-problem","name":"XSJS Zip Slip","precision":"medium","problem.severity":"error","security-severity":"7.5"}}],"locations":[{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/xsjs/src/","description":{"text":"The QL pack root directory."},"properties":{"tags":["CodeQL/LocalPackRoot"]}},{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/xsjs/src/qlpack.yml","description":{"text":"The QL pack definition file."},"properties":{"tags":["CodeQL/LocalPackDefinitionFile"]}}]},{"name":"advanced-security/javascript-sap-xsjs-models","semanticVersion":"0.2.0","locations":[{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/.github/codeql/extensions/javascript/frameworks/xsjs/ext/ext/","description":{"text":"The QL pack root directory."},"properties":{"tags":["CodeQL/LocalPackRoot"]}},{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/.github/codeql/extensions/javascript/frameworks/xsjs/ext/ext/qlpack.yml","description":{"text":"The QL pack definition file."},"properties":{"tags":["CodeQL/LocalPackDefinitionFile"]}}],"properties":{"isCodeQLModelPack":true}}]},"invocations":[{"toolExecutionNotifications":[{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/codeql-config.yaml","uriBaseId":"%SRCROOT%","index":4}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/frameworks/ui5/ext/ext/qlpack.yml","uriBaseId":"%SRCROOT%","index":5}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/frameworks/ui5/ext/ext/ui5.model.yml","uriBaseId":"%SRCROOT%","index":6}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/frameworks/ui5/ext/ext/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":7}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/frameworks/xsjs/ext/ext/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":8}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/frameworks/xsjs/ext/ext/qlpack.yml","uriBaseId":"%SRCROOT%","index":9}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/frameworks/xsjs/ext/ext/xsjs.model.yml","uriBaseId":"%SRCROOT%","index":10}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/heuristic-models/ext/ext/additional-sources.model.yml","uriBaseId":"%SRCROOT%","index":11}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/heuristic-models/ext/ext/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":12}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/heuristic-models/ext/ext/qlpack.yml","uriBaseId":"%SRCROOT%","index":13}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/workflows/code_scanning.yml","uriBaseId":"%SRCROOT%","index":14}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/workflows/run-codeql-unit-tests-javascript.yml","uriBaseId":"%SRCROOT%","index":15}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"codeql-workspace.yml","uriBaseId":"%SRCROOT%","index":16}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/.prettierrc.js","uriBaseId":"%SRCROOT%","index":17}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/codeql-extractor.yml","uriBaseId":"%SRCROOT%","index":18}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/eslint.config.mjs","uriBaseId":"%SRCROOT%","index":19}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/index-files.ts","uriBaseId":"%SRCROOT%","index":20}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/jest.config.js","uriBaseId":"%SRCROOT%","index":21}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/out/src/cdsCompiler.js","uriBaseId":"%SRCROOT%","index":22}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/out/index-files.js","uriBaseId":"%SRCROOT%","index":23}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/out/src/codeql.js","uriBaseId":"%SRCROOT%","index":24}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/out/src/diagnostics.js","uriBaseId":"%SRCROOT%","index":25}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/out/src/environment.js","uriBaseId":"%SRCROOT%","index":26}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/out/src/filesystem.js","uriBaseId":"%SRCROOT%","index":27}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/out/src/packageManager.js","uriBaseId":"%SRCROOT%","index":28}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/out/src/utils.js","uriBaseId":"%SRCROOT%","index":29}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/out/test/src/cdsCompiler.test.js","uriBaseId":"%SRCROOT%","index":30}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/out/test/jest.setup.js","uriBaseId":"%SRCROOT%","index":31}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/out/test/src/codeql.test.js","uriBaseId":"%SRCROOT%","index":32}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/out/test/src/diagnostics.test.js","uriBaseId":"%SRCROOT%","index":33}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/out/test/src/environment.test.js","uriBaseId":"%SRCROOT%","index":34}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/out/test/src/filesystem.test.js","uriBaseId":"%SRCROOT%","index":35}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/out/test/src/packageManager.test.js","uriBaseId":"%SRCROOT%","index":36}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/out/test/src/utils.test.js","uriBaseId":"%SRCROOT%","index":37}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/package-lock.json","uriBaseId":"%SRCROOT%","index":38}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/package.json","uriBaseId":"%SRCROOT%","index":39}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cdsCompiler.ts","uriBaseId":"%SRCROOT%","index":40}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/codeql.ts","uriBaseId":"%SRCROOT%","index":41}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/diagnostics.ts","uriBaseId":"%SRCROOT%","index":42}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/environment.ts","uriBaseId":"%SRCROOT%","index":43}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/filesystem.ts","uriBaseId":"%SRCROOT%","index":44}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/packageManager.ts","uriBaseId":"%SRCROOT%","index":45}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/utils.ts","uriBaseId":"%SRCROOT%","index":46}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/jest.setup.ts","uriBaseId":"%SRCROOT%","index":47}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/codeql.test.ts","uriBaseId":"%SRCROOT%","index":48}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/diagnostics.test.ts","uriBaseId":"%SRCROOT%","index":49}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cdsCompiler.test.ts","uriBaseId":"%SRCROOT%","index":50}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/environment.test.ts","uriBaseId":"%SRCROOT%","index":51}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/filesystem.test.ts","uriBaseId":"%SRCROOT%","index":52}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/packageManager.test.ts","uriBaseId":"%SRCROOT%","index":53}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/utils.test.ts","uriBaseId":"%SRCROOT%","index":54}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/tsconfig.json","uriBaseId":"%SRCROOT%","index":55}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/ext/qlpack.yml","uriBaseId":"%SRCROOT%","index":56}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/ext/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":57}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/lib/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":58}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/src/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":59}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/lib/qlpack.yml","uriBaseId":"%SRCROOT%","index":60}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/src/qlpack.yml","uriBaseId":"%SRCROOT%","index":61}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":62}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/models/cds/entityreference/node_modules/@sap/cds-dk/node_modules/xml-js/bin/test.xml","uriBaseId":"%SRCROOT%","index":63}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/qlpack.yml","uriBaseId":"%SRCROOT%","index":64}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":65}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":66}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/package.json","uriBaseId":"%SRCROOT%","index":67}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/server.js","uriBaseId":"%SRCROOT%","index":68}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":69}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":70}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":71}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":72}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":73}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":74}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.cds.json","uriBaseId":"%SRCROOT%","index":75}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.cds","uriBaseId":"%SRCROOT%","index":76}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.js","uriBaseId":"%SRCROOT%","index":77}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":78}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":79}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/server.js","uriBaseId":"%SRCROOT%","index":80}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/package.json","uriBaseId":"%SRCROOT%","index":81}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":82}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":83}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":84}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":85}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":86}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":87}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":88}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/db/schema.cds","uriBaseId":"%SRCROOT%","index":89}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/package.json","uriBaseId":"%SRCROOT%","index":90}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/server.js","uriBaseId":"%SRCROOT%","index":91}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":92}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.cds","uriBaseId":"%SRCROOT%","index":93}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.js","uriBaseId":"%SRCROOT%","index":94}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":95}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.cds","uriBaseId":"%SRCROOT%","index":96}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":97}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.js","uriBaseId":"%SRCROOT%","index":98}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":99}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/server.js","uriBaseId":"%SRCROOT%","index":100}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/package.json","uriBaseId":"%SRCROOT%","index":101}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":102}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":103}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":104}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":105}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":106}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":107}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":108}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/db/schema.cds","uriBaseId":"%SRCROOT%","index":109}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/package.json","uriBaseId":"%SRCROOT%","index":110}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/server.js","uriBaseId":"%SRCROOT%","index":111}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":112}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.cds","uriBaseId":"%SRCROOT%","index":113}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.js","uriBaseId":"%SRCROOT%","index":114}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":115}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.cds","uriBaseId":"%SRCROOT%","index":116}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.js","uriBaseId":"%SRCROOT%","index":117}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":118}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/db/schema.cds","uriBaseId":"%SRCROOT%","index":119}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/node_modules/@sap/cds-dk/node_modules/xml-js/bin/test.xml","uriBaseId":"%SRCROOT%","index":120}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/package-lock.json","uriBaseId":"%SRCROOT%","index":121}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/package.json","uriBaseId":"%SRCROOT%","index":122}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/server.js","uriBaseId":"%SRCROOT%","index":123}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/privileged-user.js","uriBaseId":"%SRCROOT%","index":124}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":125}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds","uriBaseId":"%SRCROOT%","index":126}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.js","uriBaseId":"%SRCROOT%","index":127}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":128}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.cds","uriBaseId":"%SRCROOT%","index":129}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.js","uriBaseId":"%SRCROOT%","index":130}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":131}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":132}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/package.json","uriBaseId":"%SRCROOT%","index":133}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/server.js","uriBaseId":"%SRCROOT%","index":134}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":135}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":136}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":137}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":138}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":139}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":140}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":141}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":142}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/server.js","uriBaseId":"%SRCROOT%","index":143}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/package.json","uriBaseId":"%SRCROOT%","index":144}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":145}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":146}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":147}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":148}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":149}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":150}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/package.json","uriBaseId":"%SRCROOT%","index":151}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":152}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/server.js","uriBaseId":"%SRCROOT%","index":153}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":154}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":155}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":156}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":157}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":158}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":159}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":160}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":161}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/db/schema.cds","uriBaseId":"%SRCROOT%","index":162}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/node_modules/@sap/cds-dk/node_modules/xml-js/bin/test.xml","uriBaseId":"%SRCROOT%","index":163}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/package-lock.json","uriBaseId":"%SRCROOT%","index":164}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":165}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/server.js","uriBaseId":"%SRCROOT%","index":166}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/package.json","uriBaseId":"%SRCROOT%","index":167}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.cds","uriBaseId":"%SRCROOT%","index":168}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":169}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.js","uriBaseId":"%SRCROOT%","index":170}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.cds","uriBaseId":"%SRCROOT%","index":171}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":172}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/db/schema.cds","uriBaseId":"%SRCROOT%","index":173}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/node_modules/@sap/cds-dk/node_modules/xml-js/bin/test.xml","uriBaseId":"%SRCROOT%","index":174}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/package-lock.json","uriBaseId":"%SRCROOT%","index":175}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/package.json","uriBaseId":"%SRCROOT%","index":176}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/server.js","uriBaseId":"%SRCROOT%","index":177}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":178}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.cds","uriBaseId":"%SRCROOT%","index":179}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.js","uriBaseId":"%SRCROOT%","index":180}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":181}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.cds","uriBaseId":"%SRCROOT%","index":182}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.js","uriBaseId":"%SRCROOT%","index":183}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":184}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/db/schema.cds","uriBaseId":"%SRCROOT%","index":185}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/package.json","uriBaseId":"%SRCROOT%","index":186}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/server.js","uriBaseId":"%SRCROOT%","index":187}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds.json","uriBaseId":"%SRCROOT%","index":188}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds","uriBaseId":"%SRCROOT%","index":189}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.js","uriBaseId":"%SRCROOT%","index":190}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":191}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":192}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":193}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":194}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":195}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":196}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":197}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":198}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":199}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":200}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":201}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":202}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":203}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":204}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":205}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":206}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":207}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":208}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":209}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":210}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":211}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":212}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":213}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":214}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":215}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":216}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":217}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":218}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":219}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":220}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":221}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":222}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":223}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":224}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":225}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":226}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":227}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":228}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":229}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.cds.json","uriBaseId":"%SRCROOT%","index":231}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.cds","uriBaseId":"%SRCROOT%","index":232}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/lib/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":233}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/lib/qlpack.yml","uriBaseId":"%SRCROOT%","index":234}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/src/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":235}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":236}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/BindingStringParser/test.js","uriBaseId":"%SRCROOT%","index":237}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.js","uriBaseId":"%SRCROOT%","index":238}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/src/qlpack.yml","uriBaseId":"%SRCROOT%","index":239}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.js","uriBaseId":"%SRCROOT%","index":240}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.view.html","uriBaseId":"%SRCROOT%","index":241}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.view.json","uriBaseId":"%SRCROOT%","index":242}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.view.xml","uriBaseId":"%SRCROOT%","index":243}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/JsonParser/test.js","uriBaseId":"%SRCROOT%","index":244}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/models/attachDisplay_detachDisplay/webapp/view/App.view.xml","uriBaseId":"%SRCROOT%","index":245}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/models/binding_path/binding1.xml","uriBaseId":"%SRCROOT%","index":246}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/models/binding_path/bindingComposite.xml","uriBaseId":"%SRCROOT%","index":247}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/models/multiple_models/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":248}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/models/sink/sink1.xml","uriBaseId":"%SRCROOT%","index":249}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/models/source/source1.xml","uriBaseId":"%SRCROOT%","index":250}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/models/property_getter_setter/webapp/view/App.view.xml","uriBaseId":"%SRCROOT%","index":251}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/qlpack.yml","uriBaseId":"%SRCROOT%","index":252}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-allow-all/ui5.yaml","uriBaseId":"%SRCROOT%","index":253}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-allow-all/index.html","uriBaseId":"%SRCROOT%","index":254}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-default-all/ui5.yaml","uriBaseId":"%SRCROOT%","index":255}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-default-all/index.html","uriBaseId":"%SRCROOT%","index":256}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":257}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-deny-all/index.html","uriBaseId":"%SRCROOT%","index":258}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/package.json","uriBaseId":"%SRCROOT%","index":259}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-deny-all/ui5.yaml","uriBaseId":"%SRCROOT%","index":260}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":261}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":262}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":263}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":264}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":265}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":266}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/package.json","uriBaseId":"%SRCROOT%","index":267}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":268}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":269}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":270}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":271}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":272}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":273}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":274}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":275}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/package-lock.json","uriBaseId":"%SRCROOT%","index":276}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":277}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":278}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/ui5.yaml","uriBaseId":"%SRCROOT%","index":279}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/package.json","uriBaseId":"%SRCROOT%","index":280}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/index.html","uriBaseId":"%SRCROOT%","index":281}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":282}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":283}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":284}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":285}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/package.json","uriBaseId":"%SRCROOT%","index":286}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":287}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":288}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":289}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":290}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":291}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":292}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":293}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/package.json","uriBaseId":"%SRCROOT%","index":294}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":295}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":296}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":297}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":298}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":299}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":300}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":301}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":302}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/package-lock.json","uriBaseId":"%SRCROOT%","index":303}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/package.json","uriBaseId":"%SRCROOT%","index":304}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/ui5.yaml","uriBaseId":"%SRCROOT%","index":305}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":306}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/index.html","uriBaseId":"%SRCROOT%","index":307}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/index.js","uriBaseId":"%SRCROOT%","index":308}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":309}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":310}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":311}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/package-lock.json","uriBaseId":"%SRCROOT%","index":312}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/package.json","uriBaseId":"%SRCROOT%","index":313}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/ui5.yaml","uriBaseId":"%SRCROOT%","index":314}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":315}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/index.html","uriBaseId":"%SRCROOT%","index":316}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/index.js","uriBaseId":"%SRCROOT%","index":317}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":318}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":319}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/package-lock.json","uriBaseId":"%SRCROOT%","index":320}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/package.json","uriBaseId":"%SRCROOT%","index":321}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/ui5.yaml","uriBaseId":"%SRCROOT%","index":322}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":323}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/index.html","uriBaseId":"%SRCROOT%","index":324}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/index.js","uriBaseId":"%SRCROOT%","index":325}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":326}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":327}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":328}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/package-lock.json","uriBaseId":"%SRCROOT%","index":329}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/package.json","uriBaseId":"%SRCROOT%","index":330}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/ui5.yaml","uriBaseId":"%SRCROOT%","index":331}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/index.html","uriBaseId":"%SRCROOT%","index":332}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/index.js","uriBaseId":"%SRCROOT%","index":333}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":334}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":335}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":336}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/package-lock.json","uriBaseId":"%SRCROOT%","index":337}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":338}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/ui5.yaml","uriBaseId":"%SRCROOT%","index":339}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":340}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/package.json","uriBaseId":"%SRCROOT%","index":341}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/index.js","uriBaseId":"%SRCROOT%","index":342}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":343}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/index.html","uriBaseId":"%SRCROOT%","index":344}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":345}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/package-lock.json","uriBaseId":"%SRCROOT%","index":346}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/ui5.yaml","uriBaseId":"%SRCROOT%","index":347}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/package.json","uriBaseId":"%SRCROOT%","index":348}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/index.html","uriBaseId":"%SRCROOT%","index":350}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/index.js","uriBaseId":"%SRCROOT%","index":351}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":352}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":353}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":354}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":355}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/package-lock.json","uriBaseId":"%SRCROOT%","index":356}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/package.json","uriBaseId":"%SRCROOT%","index":357}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/ui5.yaml","uriBaseId":"%SRCROOT%","index":358}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":359}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/index.html","uriBaseId":"%SRCROOT%","index":360}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":361}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":362}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":363}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/package.json","uriBaseId":"%SRCROOT%","index":364}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":365}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":366}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":367}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":368}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":369}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":370}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":371}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":372}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":373}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/package.json","uriBaseId":"%SRCROOT%","index":374}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":375}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":376}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":377}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":378}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":379}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":380}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/package-lock.json","uriBaseId":"%SRCROOT%","index":381}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/package.json","uriBaseId":"%SRCROOT%","index":382}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/ui5.yaml","uriBaseId":"%SRCROOT%","index":383}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":384}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":385}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/index.html","uriBaseId":"%SRCROOT%","index":386}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":387}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":388}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/.eslintrc.json","uriBaseId":"%SRCROOT%","index":389}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":390}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/package.json","uriBaseId":"%SRCROOT%","index":391}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/package-lock.json","uriBaseId":"%SRCROOT%","index":392}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/ui5.yaml","uriBaseId":"%SRCROOT%","index":393}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/Component.js","uriBaseId":"%SRCROOT%","index":394}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controller/App.Controller.js","uriBaseId":"%SRCROOT%","index":395}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controls/Book.js","uriBaseId":"%SRCROOT%","index":396}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/index.html","uriBaseId":"%SRCROOT%","index":397}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":398}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/model/todoitems.json","uriBaseId":"%SRCROOT%","index":399}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/AllJourneys.js","uriBaseId":"%SRCROOT%","index":400}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/FilterJourney.js","uriBaseId":"%SRCROOT%","index":401}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/SearchJourney.js","uriBaseId":"%SRCROOT%","index":402}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/arrangements/Startup.js","uriBaseId":"%SRCROOT%","index":403}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/opaTests.qunit.html","uriBaseId":"%SRCROOT%","index":404}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/opaTests.qunit.js","uriBaseId":"%SRCROOT%","index":405}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/pages/App.js","uriBaseId":"%SRCROOT%","index":406}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/TodoListJourney.js","uriBaseId":"%SRCROOT%","index":407}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/testsuite.qunit.html","uriBaseId":"%SRCROOT%","index":408}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/testsuite.qunit.js","uriBaseId":"%SRCROOT%","index":409}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/AllTests.js","uriBaseId":"%SRCROOT%","index":410}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/controller/App.controller.js","uriBaseId":"%SRCROOT%","index":411}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/unitTests.qunit.html","uriBaseId":"%SRCROOT%","index":412}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/unitTests.qunit.js","uriBaseId":"%SRCROOT%","index":413}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/util/Helper.js","uriBaseId":"%SRCROOT%","index":414}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/view/App.view.xml","uriBaseId":"%SRCROOT%","index":415}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/package-lock.json","uriBaseId":"%SRCROOT%","index":416}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/package.json","uriBaseId":"%SRCROOT%","index":417}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/ui5.yaml","uriBaseId":"%SRCROOT%","index":418}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":419}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":420}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/index.html","uriBaseId":"%SRCROOT%","index":421}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/index.js","uriBaseId":"%SRCROOT%","index":422}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":423}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":424}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/package-lock.json","uriBaseId":"%SRCROOT%","index":425}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/package.json","uriBaseId":"%SRCROOT%","index":426}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/ui5.yaml","uriBaseId":"%SRCROOT%","index":427}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":428}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":429}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/index.html","uriBaseId":"%SRCROOT%","index":430}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":431}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/index.js","uriBaseId":"%SRCROOT%","index":432}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":433}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/package.json","uriBaseId":"%SRCROOT%","index":434}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/package-lock.json","uriBaseId":"%SRCROOT%","index":435}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":436}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/ui5.yaml","uriBaseId":"%SRCROOT%","index":437}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":438}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/index.html","uriBaseId":"%SRCROOT%","index":439}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/index.js","uriBaseId":"%SRCROOT%","index":440}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":441}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":442}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":443}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/package.json","uriBaseId":"%SRCROOT%","index":444}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":445}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":446}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":447}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":448}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":449}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":450}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":451}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":452}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":453}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/package.json","uriBaseId":"%SRCROOT%","index":454}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":455}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":456}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":457}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":458}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":459}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":460}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/package.json","uriBaseId":"%SRCROOT%","index":461}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/package-lock.json","uriBaseId":"%SRCROOT%","index":462}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/ui5.yaml","uriBaseId":"%SRCROOT%","index":463}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/index.html","uriBaseId":"%SRCROOT%","index":465}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/index.js","uriBaseId":"%SRCROOT%","index":466}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":467}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":468}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/package.json","uriBaseId":"%SRCROOT%","index":469}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/ui5.yaml","uriBaseId":"%SRCROOT%","index":470}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":471}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/index.html","uriBaseId":"%SRCROOT%","index":472}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/package-lock.json","uriBaseId":"%SRCROOT%","index":473}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":474}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":475}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":476}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/package.json","uriBaseId":"%SRCROOT%","index":477}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/ui5.yaml","uriBaseId":"%SRCROOT%","index":478}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/package-lock.json","uriBaseId":"%SRCROOT%","index":479}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/index.html","uriBaseId":"%SRCROOT%","index":480}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":481}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":482}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":484}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/package-lock.json","uriBaseId":"%SRCROOT%","index":485}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/package.json","uriBaseId":"%SRCROOT%","index":486}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/ui5.yaml","uriBaseId":"%SRCROOT%","index":487}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":488}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/index.html","uriBaseId":"%SRCROOT%","index":489}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":490}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/index.js","uriBaseId":"%SRCROOT%","index":491}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":492}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/package.json","uriBaseId":"%SRCROOT%","index":493}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/package-lock.json","uriBaseId":"%SRCROOT%","index":494}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/controller/model.json","uriBaseId":"%SRCROOT%","index":495}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":496}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/ui5.yaml","uriBaseId":"%SRCROOT%","index":497}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":498}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/index.html","uriBaseId":"%SRCROOT%","index":499}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":500}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/package-lock.json","uriBaseId":"%SRCROOT%","index":501}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/package.json","uriBaseId":"%SRCROOT%","index":502}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/ui5.yaml","uriBaseId":"%SRCROOT%","index":503}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/index.js","uriBaseId":"%SRCROOT%","index":504}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":505}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/index.html","uriBaseId":"%SRCROOT%","index":506}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":507}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":508}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/view/app.view.html","uriBaseId":"%SRCROOT%","index":509}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/package-lock.json","uriBaseId":"%SRCROOT%","index":510}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/ui5.yaml","uriBaseId":"%SRCROOT%","index":511}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":512}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/package.json","uriBaseId":"%SRCROOT%","index":513}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssBase.js","uriBaseId":"%SRCROOT%","index":514}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":515}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":516}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/index.html","uriBaseId":"%SRCROOT%","index":517}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":518}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":519}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":520}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/package-lock.json","uriBaseId":"%SRCROOT%","index":521}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/package.json","uriBaseId":"%SRCROOT%","index":522}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/ui5.yaml","uriBaseId":"%SRCROOT%","index":523}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/index.html","uriBaseId":"%SRCROOT%","index":524}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":525}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":526}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":527}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/view/app.view.js","uriBaseId":"%SRCROOT%","index":528}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/package-lock.json","uriBaseId":"%SRCROOT%","index":529}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/package.json","uriBaseId":"%SRCROOT%","index":530}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/ui5.yaml","uriBaseId":"%SRCROOT%","index":531}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":532}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/index.html","uriBaseId":"%SRCROOT%","index":533}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":534}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":535}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/view/app.view.json","uriBaseId":"%SRCROOT%","index":536}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/package-lock.json","uriBaseId":"%SRCROOT%","index":537}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/package.json","uriBaseId":"%SRCROOT%","index":538}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/ui5.yaml","uriBaseId":"%SRCROOT%","index":539}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/renderer.js","uriBaseId":"%SRCROOT%","index":540}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":541}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":542}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/index.html","uriBaseId":"%SRCROOT%","index":543}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/index.js","uriBaseId":"%SRCROOT%","index":544}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":545}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":546}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/package-lock.json","uriBaseId":"%SRCROOT%","index":547}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/package.json","uriBaseId":"%SRCROOT%","index":548}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/ui5.yaml","uriBaseId":"%SRCROOT%","index":549}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":550}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":551}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":552}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/index.html","uriBaseId":"%SRCROOT%","index":553}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/index.js","uriBaseId":"%SRCROOT%","index":554}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":555}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":556}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/package-lock.json","uriBaseId":"%SRCROOT%","index":557}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/package.json","uriBaseId":"%SRCROOT%","index":558}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/ui5.yaml","uriBaseId":"%SRCROOT%","index":559}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":560}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/index.html","uriBaseId":"%SRCROOT%","index":561}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":562}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":563}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":564}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/lib/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":565}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/lib/qlpack.yml","uriBaseId":"%SRCROOT%","index":566}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/src/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":567}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/src/qlpack.yml","uriBaseId":"%SRCROOT%","index":568}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":569}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/qlpack.yml","uriBaseId":"%SRCROOT%","index":570}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/.xsaccess","uriBaseId":"%SRCROOT%","index":571}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/exposed/.xsaccess","uriBaseId":"%SRCROOT%","index":572}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/missing_auth/.xsaccess","uriBaseId":"%SRCROOT%","index":573}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/service.xsjs","uriBaseId":"%SRCROOT%","index":574}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/xs-app.json","uriBaseId":"%SRCROOT%","index":575}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":576}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSUrlRedirect/XSJSUrlRedirect.xsjs","uriBaseId":"%SRCROOT%","index":578}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":579}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/heuristic-models/tests/Sources/test.js","uriBaseId":"%SRCROOT%","index":3}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/heuristic-models/tests/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":580}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/heuristic-models/tests/qlpack.yml","uriBaseId":"%SRCROOT%","index":581}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"qlt.conf.json","uriBaseId":"%SRCROOT%","index":582}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"scripts/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":583}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":66},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":72},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":73},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.cds","uriBaseId":"%SRCROOT%","index":76},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":79},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":82},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":86},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/db/schema.cds","uriBaseId":"%SRCROOT%","index":89},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.cds","uriBaseId":"%SRCROOT%","index":93},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.cds","uriBaseId":"%SRCROOT%","index":96},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":99},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":103},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":106},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/db/schema.cds","uriBaseId":"%SRCROOT%","index":109},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.cds","uriBaseId":"%SRCROOT%","index":113},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.cds","uriBaseId":"%SRCROOT%","index":116},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/db/schema.cds","uriBaseId":"%SRCROOT%","index":119},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds","uriBaseId":"%SRCROOT%","index":126},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.cds","uriBaseId":"%SRCROOT%","index":129},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":132},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":136},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":138},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":141},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":146},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":150},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":152},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":158},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":159},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/db/schema.cds","uriBaseId":"%SRCROOT%","index":162},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/cqlinjection/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/cqlinjection/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.cds","uriBaseId":"%SRCROOT%","index":168},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.cds","uriBaseId":"%SRCROOT%","index":171},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/db/schema.cds","uriBaseId":"%SRCROOT%","index":173},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.cds","uriBaseId":"%SRCROOT%","index":179},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.cds","uriBaseId":"%SRCROOT%","index":182},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/db/schema.cds","uriBaseId":"%SRCROOT%","index":185},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds","uriBaseId":"%SRCROOT%","index":189},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":192},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":196},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":199},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":202},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":206},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":209},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":212},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":216},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":219},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":222},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":226},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":229},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.cds","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/Component.js","uriBaseId":"%SRCROOT%","index":394}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":270}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.js","uriBaseId":"%SRCROOT%","index":238}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":70}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":278}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/server.js","uriBaseId":"%SRCROOT%","index":187}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/SearchJourney.js","uriBaseId":"%SRCROOT%","index":402}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/server.js","uriBaseId":"%SRCROOT%","index":123}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":227}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/server.js","uriBaseId":"%SRCROOT%","index":153}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/renderer.js","uriBaseId":"%SRCROOT%","index":540}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":354}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":419}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":353}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/FilterJourney.js","uriBaseId":"%SRCROOT%","index":401}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":438}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":207}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":160}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":429}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":456}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":379}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":328}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssBase.js","uriBaseId":"%SRCROOT%","index":514}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":137}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":525}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":288}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":527}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":560}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":376}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":369}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":532}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/arrangements/Startup.js","uriBaseId":"%SRCROOT%","index":403}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.js","uriBaseId":"%SRCROOT%","index":130}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/pages/App.js","uriBaseId":"%SRCROOT%","index":406}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":220}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/server.js","uriBaseId":"%SRCROOT%","index":177}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/eslint.config.mjs","uriBaseId":"%SRCROOT%","index":19}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":542}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":197}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":335}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":551}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/index.js","uriBaseId":"%SRCROOT%","index":554}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":155}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.js","uriBaseId":"%SRCROOT%","index":94}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":310}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":291}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/index.js","uriBaseId":"%SRCROOT%","index":432}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.js","uriBaseId":"%SRCROOT%","index":240}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":299}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":496}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":272}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/TodoListJourney.js","uriBaseId":"%SRCROOT%","index":407}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":306}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":224}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/index.js","uriBaseId":"%SRCROOT%","index":333}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":104}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":361}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":518}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.js","uriBaseId":"%SRCROOT%","index":114}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/JsonParser/test.js","uriBaseId":"%SRCROOT%","index":244}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":323}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":74}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":266}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":515}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/index.js","uriBaseId":"%SRCROOT%","index":351}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":471}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":214}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":488}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":516}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":210}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":512}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":298}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":139}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":550}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":474}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/server.js","uriBaseId":"%SRCROOT%","index":68}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/view/app.view.js","uriBaseId":"%SRCROOT%","index":528}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.js","uriBaseId":"%SRCROOT%","index":183}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/server.js","uriBaseId":"%SRCROOT%","index":143}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":148}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/server.js","uriBaseId":"%SRCROOT%","index":166}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/testsuite.qunit.js","uriBaseId":"%SRCROOT%","index":409}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":264}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":481}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":508}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.js","uriBaseId":"%SRCROOT%","index":117}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/index.js","uriBaseId":"%SRCROOT%","index":491}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/index.js","uriBaseId":"%SRCROOT%","index":308}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":290}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":217}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/heuristic-models/tests/Sources/test.js","uriBaseId":"%SRCROOT%","index":3}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/index.js","uriBaseId":"%SRCROOT%","index":504}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":534}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controller/App.Controller.js","uriBaseId":"%SRCROOT%","index":395}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":370}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":200}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":541}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":455}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":505}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":315}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/.prettierrc.js","uriBaseId":"%SRCROOT%","index":17}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/index.js","uriBaseId":"%SRCROOT%","index":325}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":204}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/index.js","uriBaseId":"%SRCROOT%","index":544}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.js","uriBaseId":"%SRCROOT%","index":190}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/server.js","uriBaseId":"%SRCROOT%","index":134}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":87}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/AllTests.js","uriBaseId":"%SRCROOT%","index":410}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":367}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":156}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":282}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":384}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/server.js","uriBaseId":"%SRCROOT%","index":80}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":447}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/jest.config.js","uriBaseId":"%SRCROOT%","index":21}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":338}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":107}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/index.js","uriBaseId":"%SRCROOT%","index":342}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":261}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/util/Helper.js","uriBaseId":"%SRCROOT%","index":414}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":83}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/index.js","uriBaseId":"%SRCROOT%","index":440}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/privileged-user.js","uriBaseId":"%SRCROOT%","index":124}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":340}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.js","uriBaseId":"%SRCROOT%","index":77}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.js","uriBaseId":"%SRCROOT%","index":127}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":448}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":274}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":359}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":446}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/server.js","uriBaseId":"%SRCROOT%","index":91}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":194}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/index.js","uriBaseId":"%SRCROOT%","index":422}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/index.js","uriBaseId":"%SRCROOT%","index":317}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":428}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":562}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/BindingStringParser/test.js","uriBaseId":"%SRCROOT%","index":237}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":436}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/controller/App.controller.js","uriBaseId":"%SRCROOT%","index":411}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/unitTests.qunit.js","uriBaseId":"%SRCROOT%","index":413}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":458}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/index.js","uriBaseId":"%SRCROOT%","index":466}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.js","uriBaseId":"%SRCROOT%","index":180}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":387}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":552}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.js","uriBaseId":"%SRCROOT%","index":170}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":377}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":420}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/AllJourneys.js","uriBaseId":"%SRCROOT%","index":400}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/server.js","uriBaseId":"%SRCROOT%","index":100}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/opaTests.qunit.js","uriBaseId":"%SRCROOT%","index":405}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controls/Book.js","uriBaseId":"%SRCROOT%","index":396}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.js","uriBaseId":"%SRCROOT%","index":98}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":297}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/server.js","uriBaseId":"%SRCROOT%","index":111}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/diagnostics.ts","uriBaseId":"%SRCROOT%","index":42}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/utils.ts","uriBaseId":"%SRCROOT%","index":46}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/environment.test.ts","uriBaseId":"%SRCROOT%","index":51}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/environment.ts","uriBaseId":"%SRCROOT%","index":43}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cdsCompiler.ts","uriBaseId":"%SRCROOT%","index":40}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/index-files.ts","uriBaseId":"%SRCROOT%","index":20}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/codeql.ts","uriBaseId":"%SRCROOT%","index":41}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cdsCompiler.test.ts","uriBaseId":"%SRCROOT%","index":50}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/jest.setup.ts","uriBaseId":"%SRCROOT%","index":47}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/packageManager.ts","uriBaseId":"%SRCROOT%","index":45}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/diagnostics.test.ts","uriBaseId":"%SRCROOT%","index":49}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/filesystem.ts","uriBaseId":"%SRCROOT%","index":44}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/utils.test.ts","uriBaseId":"%SRCROOT%","index":54}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/codeql.test.ts","uriBaseId":"%SRCROOT%","index":48}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/filesystem.test.ts","uriBaseId":"%SRCROOT%","index":52}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/packageManager.test.ts","uriBaseId":"%SRCROOT%","index":53}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"scripts/CreateTestsFromYaml.py","uriBaseId":"%SRCROOT%","index":584}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/python","index":2},"properties":{"formattedMessage":{"text":""}}},{"message":{"text":""},"level":"none","timeUtc":"2025-07-08T19:14:41.731Z","descriptor":{"id":"codeql-action/bundle-download-telemetry","index":3},"properties":{"attributes":{"cacheDurationMs":11718.612194000001,"combinedDurationMs":12045,"compressionMethod":"gzip","downloadDurationMs":3547,"extractionDurationMs":8498,"streamExtraction":false,"toolsUrl":"https://github.com/github/codeql-action/releases/download/codeql-bundle-v2.20.4/codeql-bundle-linux64.tar.gz"},"visibility":{"statusPage":false,"telemetry":true}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/models/cds/remoteflowsources/package.json","uriBaseId":"%SRCROOT%","index":585}}}],"message":{"text":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/models/cds/remoteflowsources: Command failed: npm install --quiet --no-audit --no-fund","markdown":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/models/cds/remoteflowsources: Command failed: npm install --quiet --no-audit --no-fund"},"level":"error","timeUtc":"2025-07-08T19:15:03.780198643Z","descriptor":{"id":"cds/dependency-failure","index":4},"properties":{"visibility":{"statusPage":false}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/package.json","uriBaseId":"%SRCROOT%","index":586}}}],"message":{"text":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz: Command failed: npm install --quiet --no-audit --no-fund","markdown":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz: Command failed: npm install --quiet --no-audit --no-fund"},"level":"error","timeUtc":"2025-07-08T19:15:04.908077595Z","descriptor":{"id":"cds/dependency-failure","index":4},"properties":{"visibility":{"statusPage":false}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/package.json","uriBaseId":"%SRCROOT%","index":587}}}],"message":{"text":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve: Command failed: npm install --quiet --no-audit --no-fund","markdown":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve: Command failed: npm install --quiet --no-audit --no-fund"},"level":"error","timeUtc":"2025-07-08T19:15:06.017099918Z","descriptor":{"id":"cds/dependency-failure","index":4},"properties":{"visibility":{"statusPage":false}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/package.json","uriBaseId":"%SRCROOT%","index":588}}}],"message":{"text":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz: Command failed: npm install --quiet --no-audit --no-fund","markdown":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz: Command failed: npm install --quiet --no-audit --no-fund"},"level":"error","timeUtc":"2025-07-08T19:15:07.119435821Z","descriptor":{"id":"cds/dependency-failure","index":4},"properties":{"visibility":{"statusPage":false}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/package.json","uriBaseId":"%SRCROOT%","index":589}}}],"message":{"text":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz: Command failed: npm install --quiet --no-audit --no-fund","markdown":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz: Command failed: npm install --quiet --no-audit --no-fund"},"level":"error","timeUtc":"2025-07-08T19:15:08.233647607Z","descriptor":{"id":"cds/dependency-failure","index":4},"properties":{"visibility":{"statusPage":false}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/package.json","uriBaseId":"%SRCROOT%","index":590}}}],"message":{"text":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged: Command failed: npm install --quiet --no-audit --no-fund","markdown":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged: Command failed: npm install --quiet --no-audit --no-fund"},"level":"error","timeUtc":"2025-07-08T19:15:09.363237524Z","descriptor":{"id":"cds/dependency-failure","index":4},"properties":{"visibility":{"statusPage":false}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/package.json","uriBaseId":"%SRCROOT%","index":591}}}],"message":{"text":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication: Command failed: npm install --quiet --no-audit --no-fund","markdown":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication: Command failed: npm install --quiet --no-audit --no-fund"},"level":"error","timeUtc":"2025-07-08T19:15:14.561197324Z","descriptor":{"id":"cds/dependency-failure","index":4},"properties":{"visibility":{"statusPage":false}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/package.json","uriBaseId":"%SRCROOT%","index":592}}}],"message":{"text":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication: Command failed: npm install --quiet --no-audit --no-fund","markdown":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication: Command failed: npm install --quiet --no-audit --no-fund"},"level":"error","timeUtc":"2025-07-08T19:15:15.670989117Z","descriptor":{"id":"cds/dependency-failure","index":4},"properties":{"visibility":{"statusPage":false}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/package.json","uriBaseId":"%SRCROOT%","index":593}}}],"message":{"text":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication: Command failed: npm install --quiet --no-audit --no-fund","markdown":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication: Command failed: npm install --quiet --no-audit --no-fund"},"level":"error","timeUtc":"2025-07-08T19:15:16.797878364Z","descriptor":{"id":"cds/dependency-failure","index":4},"properties":{"visibility":{"statusPage":false}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/package.json","uriBaseId":"%SRCROOT%","index":594}}}],"message":{"text":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized: Command failed: npm install --quiet --no-audit --no-fund","markdown":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized: Command failed: npm install --quiet --no-audit --no-fund"},"level":"error","timeUtc":"2025-07-08T19:15:27.412643657Z","descriptor":{"id":"cds/dependency-failure","index":4},"properties":{"visibility":{"statusPage":false}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":595}}}],"message":{"text":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none: Command failed: npm install --quiet --no-audit --no-fund","markdown":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none: Command failed: npm install --quiet --no-audit --no-fund"},"level":"error","timeUtc":"2025-07-08T19:15:28.538432002Z","descriptor":{"id":"cds/dependency-failure","index":4},"properties":{"visibility":{"statusPage":false}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":596}}}],"message":{"text":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none: Command failed: npm install --quiet --no-audit --no-fund","markdown":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none: Command failed: npm install --quiet --no-audit --no-fund"},"level":"error","timeUtc":"2025-07-08T19:15:29.636796452Z","descriptor":{"id":"cds/dependency-failure","index":4},"properties":{"visibility":{"statusPage":false}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":597}}}],"message":{"text":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none: Command failed: npm install --quiet --no-audit --no-fund","markdown":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none: Command failed: npm install --quiet --no-audit --no-fund"},"level":"error","timeUtc":"2025-07-08T19:15:30.755881002Z","descriptor":{"id":"cds/dependency-failure","index":4},"properties":{"visibility":{"statusPage":false}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":598}}}],"message":{"text":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none: Command failed: npm install --quiet --no-audit --no-fund","markdown":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none: Command failed: npm install --quiet --no-audit --no-fund"},"level":"error","timeUtc":"2025-07-08T19:15:31.879134081Z","descriptor":{"id":"cds/dependency-failure","index":4},"properties":{"visibility":{"statusPage":false}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/models/cds/remoteflowsources/package.json","uriBaseId":"%SRCROOT%","index":585}}},{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/package.json","uriBaseId":"%SRCROOT%","index":586}}},{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/package.json","uriBaseId":"%SRCROOT%","index":587}}},{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/package.json","uriBaseId":"%SRCROOT%","index":588}}},{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/package.json","uriBaseId":"%SRCROOT%","index":589}}},{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/package.json","uriBaseId":"%SRCROOT%","index":590}}},{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/package.json","uriBaseId":"%SRCROOT%","index":591}}},{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/package.json","uriBaseId":"%SRCROOT%","index":592}}},{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/package.json","uriBaseId":"%SRCROOT%","index":593}}},{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/package.json","uriBaseId":"%SRCROOT%","index":594}}},{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":595}}},{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":596}}},{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":597}}},{"physicalLocation":{"artifactLocation":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":598}}}],"message":{"text":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/models/cds/remoteflowsources: Command failed: npm install --quiet --no-audit --no-fund\n\nCodeQL also found 13 other errors like this. See the workflow log for details.","markdown":"Failed to install dependencies in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/models/cds/remoteflowsources: Command failed: npm install --quiet --no-audit --no-fund\n\nCodeQL also found 13 other errors like this. See the workflow log for details."},"level":"error","timeUtc":"2025-07-08T19:15:03.780198643Z","descriptor":{"id":"cds/dependency-failure","index":4},"properties":{"visibility":{"statusPage":true,"telemetry":false}}}],"executionSuccessful":true}],"artifacts":[{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2}},{"location":{"uri":"javascript/heuristic-models/tests/Sources/test.js","uriBaseId":"%SRCROOT%","index":3}},{"location":{"uri":".github/codeql/codeql-config.yaml","uriBaseId":"%SRCROOT%","index":4}},{"location":{"uri":".github/codeql/extensions/javascript/frameworks/ui5/ext/ext/qlpack.yml","uriBaseId":"%SRCROOT%","index":5}},{"location":{"uri":".github/codeql/extensions/javascript/frameworks/ui5/ext/ext/ui5.model.yml","uriBaseId":"%SRCROOT%","index":6}},{"location":{"uri":".github/codeql/extensions/javascript/frameworks/ui5/ext/ext/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":7}},{"location":{"uri":".github/codeql/extensions/javascript/frameworks/xsjs/ext/ext/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":8}},{"location":{"uri":".github/codeql/extensions/javascript/frameworks/xsjs/ext/ext/qlpack.yml","uriBaseId":"%SRCROOT%","index":9}},{"location":{"uri":".github/codeql/extensions/javascript/frameworks/xsjs/ext/ext/xsjs.model.yml","uriBaseId":"%SRCROOT%","index":10}},{"location":{"uri":".github/codeql/extensions/javascript/heuristic-models/ext/ext/additional-sources.model.yml","uriBaseId":"%SRCROOT%","index":11}},{"location":{"uri":".github/codeql/extensions/javascript/heuristic-models/ext/ext/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":12}},{"location":{"uri":".github/codeql/extensions/javascript/heuristic-models/ext/ext/qlpack.yml","uriBaseId":"%SRCROOT%","index":13}},{"location":{"uri":".github/workflows/code_scanning.yml","uriBaseId":"%SRCROOT%","index":14}},{"location":{"uri":".github/workflows/run-codeql-unit-tests-javascript.yml","uriBaseId":"%SRCROOT%","index":15}},{"location":{"uri":"codeql-workspace.yml","uriBaseId":"%SRCROOT%","index":16}},{"location":{"uri":"extractors/cds/tools/.prettierrc.js","uriBaseId":"%SRCROOT%","index":17}},{"location":{"uri":"extractors/cds/codeql-extractor.yml","uriBaseId":"%SRCROOT%","index":18}},{"location":{"uri":"extractors/cds/tools/eslint.config.mjs","uriBaseId":"%SRCROOT%","index":19}},{"location":{"uri":"extractors/cds/tools/index-files.ts","uriBaseId":"%SRCROOT%","index":20}},{"location":{"uri":"extractors/cds/tools/jest.config.js","uriBaseId":"%SRCROOT%","index":21}},{"location":{"uri":"extractors/cds/tools/out/src/cdsCompiler.js","uriBaseId":"%SRCROOT%","index":22}},{"location":{"uri":"extractors/cds/tools/out/index-files.js","uriBaseId":"%SRCROOT%","index":23}},{"location":{"uri":"extractors/cds/tools/out/src/codeql.js","uriBaseId":"%SRCROOT%","index":24}},{"location":{"uri":"extractors/cds/tools/out/src/diagnostics.js","uriBaseId":"%SRCROOT%","index":25}},{"location":{"uri":"extractors/cds/tools/out/src/environment.js","uriBaseId":"%SRCROOT%","index":26}},{"location":{"uri":"extractors/cds/tools/out/src/filesystem.js","uriBaseId":"%SRCROOT%","index":27}},{"location":{"uri":"extractors/cds/tools/out/src/packageManager.js","uriBaseId":"%SRCROOT%","index":28}},{"location":{"uri":"extractors/cds/tools/out/src/utils.js","uriBaseId":"%SRCROOT%","index":29}},{"location":{"uri":"extractors/cds/tools/out/test/src/cdsCompiler.test.js","uriBaseId":"%SRCROOT%","index":30}},{"location":{"uri":"extractors/cds/tools/out/test/jest.setup.js","uriBaseId":"%SRCROOT%","index":31}},{"location":{"uri":"extractors/cds/tools/out/test/src/codeql.test.js","uriBaseId":"%SRCROOT%","index":32}},{"location":{"uri":"extractors/cds/tools/out/test/src/diagnostics.test.js","uriBaseId":"%SRCROOT%","index":33}},{"location":{"uri":"extractors/cds/tools/out/test/src/environment.test.js","uriBaseId":"%SRCROOT%","index":34}},{"location":{"uri":"extractors/cds/tools/out/test/src/filesystem.test.js","uriBaseId":"%SRCROOT%","index":35}},{"location":{"uri":"extractors/cds/tools/out/test/src/packageManager.test.js","uriBaseId":"%SRCROOT%","index":36}},{"location":{"uri":"extractors/cds/tools/out/test/src/utils.test.js","uriBaseId":"%SRCROOT%","index":37}},{"location":{"uri":"extractors/cds/tools/package-lock.json","uriBaseId":"%SRCROOT%","index":38}},{"location":{"uri":"extractors/cds/tools/package.json","uriBaseId":"%SRCROOT%","index":39}},{"location":{"uri":"extractors/cds/tools/src/cdsCompiler.ts","uriBaseId":"%SRCROOT%","index":40}},{"location":{"uri":"extractors/cds/tools/src/codeql.ts","uriBaseId":"%SRCROOT%","index":41}},{"location":{"uri":"extractors/cds/tools/src/diagnostics.ts","uriBaseId":"%SRCROOT%","index":42}},{"location":{"uri":"extractors/cds/tools/src/environment.ts","uriBaseId":"%SRCROOT%","index":43}},{"location":{"uri":"extractors/cds/tools/src/filesystem.ts","uriBaseId":"%SRCROOT%","index":44}},{"location":{"uri":"extractors/cds/tools/src/packageManager.ts","uriBaseId":"%SRCROOT%","index":45}},{"location":{"uri":"extractors/cds/tools/src/utils.ts","uriBaseId":"%SRCROOT%","index":46}},{"location":{"uri":"extractors/cds/tools/test/jest.setup.ts","uriBaseId":"%SRCROOT%","index":47}},{"location":{"uri":"extractors/cds/tools/test/src/codeql.test.ts","uriBaseId":"%SRCROOT%","index":48}},{"location":{"uri":"extractors/cds/tools/test/src/diagnostics.test.ts","uriBaseId":"%SRCROOT%","index":49}},{"location":{"uri":"extractors/cds/tools/test/src/cdsCompiler.test.ts","uriBaseId":"%SRCROOT%","index":50}},{"location":{"uri":"extractors/cds/tools/test/src/environment.test.ts","uriBaseId":"%SRCROOT%","index":51}},{"location":{"uri":"extractors/cds/tools/test/src/filesystem.test.ts","uriBaseId":"%SRCROOT%","index":52}},{"location":{"uri":"extractors/cds/tools/test/src/packageManager.test.ts","uriBaseId":"%SRCROOT%","index":53}},{"location":{"uri":"extractors/cds/tools/test/src/utils.test.ts","uriBaseId":"%SRCROOT%","index":54}},{"location":{"uri":"extractors/cds/tools/tsconfig.json","uriBaseId":"%SRCROOT%","index":55}},{"location":{"uri":"javascript/frameworks/cap/ext/qlpack.yml","uriBaseId":"%SRCROOT%","index":56}},{"location":{"uri":"javascript/frameworks/cap/ext/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":57}},{"location":{"uri":"javascript/frameworks/cap/lib/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":58}},{"location":{"uri":"javascript/frameworks/cap/src/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":59}},{"location":{"uri":"javascript/frameworks/cap/lib/qlpack.yml","uriBaseId":"%SRCROOT%","index":60}},{"location":{"uri":"javascript/frameworks/cap/src/qlpack.yml","uriBaseId":"%SRCROOT%","index":61}},{"location":{"uri":"javascript/frameworks/cap/test/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":62}},{"location":{"uri":"javascript/frameworks/cap/test/models/cds/entityreference/node_modules/@sap/cds-dk/node_modules/xml-js/bin/test.xml","uriBaseId":"%SRCROOT%","index":63}},{"location":{"uri":"javascript/frameworks/cap/test/qlpack.yml","uriBaseId":"%SRCROOT%","index":64}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":65}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":66}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/package.json","uriBaseId":"%SRCROOT%","index":67}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/server.js","uriBaseId":"%SRCROOT%","index":68}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":69}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":70}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":71}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":72}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":73}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":74}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.cds.json","uriBaseId":"%SRCROOT%","index":75}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.cds","uriBaseId":"%SRCROOT%","index":76}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.js","uriBaseId":"%SRCROOT%","index":77}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":78}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":79}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/server.js","uriBaseId":"%SRCROOT%","index":80}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/package.json","uriBaseId":"%SRCROOT%","index":81}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":82}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":83}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":84}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":85}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":86}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":87}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":88}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/db/schema.cds","uriBaseId":"%SRCROOT%","index":89}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/package.json","uriBaseId":"%SRCROOT%","index":90}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/server.js","uriBaseId":"%SRCROOT%","index":91}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":92}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.cds","uriBaseId":"%SRCROOT%","index":93}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.js","uriBaseId":"%SRCROOT%","index":94}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":95}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.cds","uriBaseId":"%SRCROOT%","index":96}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":97}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.js","uriBaseId":"%SRCROOT%","index":98}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":99}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/server.js","uriBaseId":"%SRCROOT%","index":100}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/package.json","uriBaseId":"%SRCROOT%","index":101}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":102}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":103}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":104}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":105}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":106}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":107}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":108}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/db/schema.cds","uriBaseId":"%SRCROOT%","index":109}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/package.json","uriBaseId":"%SRCROOT%","index":110}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/server.js","uriBaseId":"%SRCROOT%","index":111}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":112}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.cds","uriBaseId":"%SRCROOT%","index":113}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.js","uriBaseId":"%SRCROOT%","index":114}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":115}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.cds","uriBaseId":"%SRCROOT%","index":116}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.js","uriBaseId":"%SRCROOT%","index":117}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":118}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/db/schema.cds","uriBaseId":"%SRCROOT%","index":119}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/node_modules/@sap/cds-dk/node_modules/xml-js/bin/test.xml","uriBaseId":"%SRCROOT%","index":120}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/package-lock.json","uriBaseId":"%SRCROOT%","index":121}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/package.json","uriBaseId":"%SRCROOT%","index":122}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/server.js","uriBaseId":"%SRCROOT%","index":123}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/privileged-user.js","uriBaseId":"%SRCROOT%","index":124}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":125}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds","uriBaseId":"%SRCROOT%","index":126}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.js","uriBaseId":"%SRCROOT%","index":127}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":128}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.cds","uriBaseId":"%SRCROOT%","index":129}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.js","uriBaseId":"%SRCROOT%","index":130}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":131}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":132}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/package.json","uriBaseId":"%SRCROOT%","index":133}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/server.js","uriBaseId":"%SRCROOT%","index":134}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":135}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":136}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":137}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":138}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":139}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":140}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":141}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":142}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/server.js","uriBaseId":"%SRCROOT%","index":143}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/package.json","uriBaseId":"%SRCROOT%","index":144}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":145}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":146}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":147}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":148}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":149}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":150}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/package.json","uriBaseId":"%SRCROOT%","index":151}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":152}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/server.js","uriBaseId":"%SRCROOT%","index":153}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":154}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":155}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":156}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":157}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":158}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":159}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":160}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":161}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/db/schema.cds","uriBaseId":"%SRCROOT%","index":162}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/node_modules/@sap/cds-dk/node_modules/xml-js/bin/test.xml","uriBaseId":"%SRCROOT%","index":163}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/package-lock.json","uriBaseId":"%SRCROOT%","index":164}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":165}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/server.js","uriBaseId":"%SRCROOT%","index":166}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/package.json","uriBaseId":"%SRCROOT%","index":167}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.cds","uriBaseId":"%SRCROOT%","index":168}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":169}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.js","uriBaseId":"%SRCROOT%","index":170}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.cds","uriBaseId":"%SRCROOT%","index":171}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":172}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/db/schema.cds","uriBaseId":"%SRCROOT%","index":173}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/node_modules/@sap/cds-dk/node_modules/xml-js/bin/test.xml","uriBaseId":"%SRCROOT%","index":174}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/package-lock.json","uriBaseId":"%SRCROOT%","index":175}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/package.json","uriBaseId":"%SRCROOT%","index":176}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/server.js","uriBaseId":"%SRCROOT%","index":177}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":178}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.cds","uriBaseId":"%SRCROOT%","index":179}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.js","uriBaseId":"%SRCROOT%","index":180}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":181}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.cds","uriBaseId":"%SRCROOT%","index":182}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.js","uriBaseId":"%SRCROOT%","index":183}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":184}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/db/schema.cds","uriBaseId":"%SRCROOT%","index":185}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/package.json","uriBaseId":"%SRCROOT%","index":186}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/server.js","uriBaseId":"%SRCROOT%","index":187}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds.json","uriBaseId":"%SRCROOT%","index":188}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds","uriBaseId":"%SRCROOT%","index":189}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.js","uriBaseId":"%SRCROOT%","index":190}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":191}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":192}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":193}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":194}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":195}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":196}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":197}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":198}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":199}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":200}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":201}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":202}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":203}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":204}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":205}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":206}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":207}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":208}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":209}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":210}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":211}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":212}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":213}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":214}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":215}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":216}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":217}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":218}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":219}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":220}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/db/schema.cds.json","uriBaseId":"%SRCROOT%","index":221}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":222}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":223}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":224}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.cds.json","uriBaseId":"%SRCROOT%","index":225}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":226}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":227}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.cds.json","uriBaseId":"%SRCROOT%","index":228}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":229}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230}},{"location":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.cds.json","uriBaseId":"%SRCROOT%","index":231}},{"location":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.cds","uriBaseId":"%SRCROOT%","index":232}},{"location":{"uri":"javascript/frameworks/ui5/lib/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":233}},{"location":{"uri":"javascript/frameworks/ui5/lib/qlpack.yml","uriBaseId":"%SRCROOT%","index":234}},{"location":{"uri":"javascript/frameworks/ui5/src/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":235}},{"location":{"uri":"javascript/frameworks/ui5/test/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":236}},{"location":{"uri":"javascript/frameworks/ui5/test/lib/BindingStringParser/test.js","uriBaseId":"%SRCROOT%","index":237}},{"location":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.js","uriBaseId":"%SRCROOT%","index":238}},{"location":{"uri":"javascript/frameworks/ui5/src/qlpack.yml","uriBaseId":"%SRCROOT%","index":239}},{"location":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.js","uriBaseId":"%SRCROOT%","index":240}},{"location":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.view.html","uriBaseId":"%SRCROOT%","index":241}},{"location":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.view.json","uriBaseId":"%SRCROOT%","index":242}},{"location":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.view.xml","uriBaseId":"%SRCROOT%","index":243}},{"location":{"uri":"javascript/frameworks/ui5/test/lib/JsonParser/test.js","uriBaseId":"%SRCROOT%","index":244}},{"location":{"uri":"javascript/frameworks/ui5/test/models/attachDisplay_detachDisplay/webapp/view/App.view.xml","uriBaseId":"%SRCROOT%","index":245}},{"location":{"uri":"javascript/frameworks/ui5/test/models/binding_path/binding1.xml","uriBaseId":"%SRCROOT%","index":246}},{"location":{"uri":"javascript/frameworks/ui5/test/models/binding_path/bindingComposite.xml","uriBaseId":"%SRCROOT%","index":247}},{"location":{"uri":"javascript/frameworks/ui5/test/models/multiple_models/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":248}},{"location":{"uri":"javascript/frameworks/ui5/test/models/sink/sink1.xml","uriBaseId":"%SRCROOT%","index":249}},{"location":{"uri":"javascript/frameworks/ui5/test/models/source/source1.xml","uriBaseId":"%SRCROOT%","index":250}},{"location":{"uri":"javascript/frameworks/ui5/test/models/property_getter_setter/webapp/view/App.view.xml","uriBaseId":"%SRCROOT%","index":251}},{"location":{"uri":"javascript/frameworks/ui5/test/qlpack.yml","uriBaseId":"%SRCROOT%","index":252}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-allow-all/ui5.yaml","uriBaseId":"%SRCROOT%","index":253}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-allow-all/index.html","uriBaseId":"%SRCROOT%","index":254}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-default-all/ui5.yaml","uriBaseId":"%SRCROOT%","index":255}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-default-all/index.html","uriBaseId":"%SRCROOT%","index":256}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":257}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-deny-all/index.html","uriBaseId":"%SRCROOT%","index":258}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/package.json","uriBaseId":"%SRCROOT%","index":259}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-deny-all/ui5.yaml","uriBaseId":"%SRCROOT%","index":260}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":261}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":262}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":263}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":264}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":265}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":266}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/package.json","uriBaseId":"%SRCROOT%","index":267}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":268}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":269}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":270}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":271}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":272}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":273}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":274}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":275}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/package-lock.json","uriBaseId":"%SRCROOT%","index":276}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":277}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":278}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/ui5.yaml","uriBaseId":"%SRCROOT%","index":279}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/package.json","uriBaseId":"%SRCROOT%","index":280}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/index.html","uriBaseId":"%SRCROOT%","index":281}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":282}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":283}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":284}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":285}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/package.json","uriBaseId":"%SRCROOT%","index":286}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":287}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":288}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":289}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":290}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":291}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":292}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":293}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/package.json","uriBaseId":"%SRCROOT%","index":294}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":295}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":296}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":297}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":298}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":299}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":300}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":301}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":302}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/package-lock.json","uriBaseId":"%SRCROOT%","index":303}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/package.json","uriBaseId":"%SRCROOT%","index":304}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/ui5.yaml","uriBaseId":"%SRCROOT%","index":305}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":306}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/index.html","uriBaseId":"%SRCROOT%","index":307}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/index.js","uriBaseId":"%SRCROOT%","index":308}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":309}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":310}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":311}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/package-lock.json","uriBaseId":"%SRCROOT%","index":312}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/package.json","uriBaseId":"%SRCROOT%","index":313}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/ui5.yaml","uriBaseId":"%SRCROOT%","index":314}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":315}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/index.html","uriBaseId":"%SRCROOT%","index":316}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/index.js","uriBaseId":"%SRCROOT%","index":317}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":318}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":319}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/package-lock.json","uriBaseId":"%SRCROOT%","index":320}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/package.json","uriBaseId":"%SRCROOT%","index":321}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/ui5.yaml","uriBaseId":"%SRCROOT%","index":322}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":323}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/index.html","uriBaseId":"%SRCROOT%","index":324}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/index.js","uriBaseId":"%SRCROOT%","index":325}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":326}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":327}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":328}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/package-lock.json","uriBaseId":"%SRCROOT%","index":329}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/package.json","uriBaseId":"%SRCROOT%","index":330}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/ui5.yaml","uriBaseId":"%SRCROOT%","index":331}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/index.html","uriBaseId":"%SRCROOT%","index":332}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/index.js","uriBaseId":"%SRCROOT%","index":333}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":334}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":335}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":336}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/package-lock.json","uriBaseId":"%SRCROOT%","index":337}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":338}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/ui5.yaml","uriBaseId":"%SRCROOT%","index":339}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":340}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/package.json","uriBaseId":"%SRCROOT%","index":341}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/index.js","uriBaseId":"%SRCROOT%","index":342}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":343}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/index.html","uriBaseId":"%SRCROOT%","index":344}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":345}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/package-lock.json","uriBaseId":"%SRCROOT%","index":346}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/ui5.yaml","uriBaseId":"%SRCROOT%","index":347}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/package.json","uriBaseId":"%SRCROOT%","index":348}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/index.html","uriBaseId":"%SRCROOT%","index":350}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/index.js","uriBaseId":"%SRCROOT%","index":351}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":352}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":353}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":354}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":355}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/package-lock.json","uriBaseId":"%SRCROOT%","index":356}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/package.json","uriBaseId":"%SRCROOT%","index":357}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/ui5.yaml","uriBaseId":"%SRCROOT%","index":358}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":359}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/index.html","uriBaseId":"%SRCROOT%","index":360}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":361}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":362}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":363}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/package.json","uriBaseId":"%SRCROOT%","index":364}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":365}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":366}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":367}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":368}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":369}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":370}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":371}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":372}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":373}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/package.json","uriBaseId":"%SRCROOT%","index":374}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":375}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":376}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":377}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":378}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":379}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":380}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/package-lock.json","uriBaseId":"%SRCROOT%","index":381}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/package.json","uriBaseId":"%SRCROOT%","index":382}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/ui5.yaml","uriBaseId":"%SRCROOT%","index":383}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":384}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":385}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/index.html","uriBaseId":"%SRCROOT%","index":386}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":387}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":388}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/.eslintrc.json","uriBaseId":"%SRCROOT%","index":389}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":390}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/package.json","uriBaseId":"%SRCROOT%","index":391}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/package-lock.json","uriBaseId":"%SRCROOT%","index":392}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/ui5.yaml","uriBaseId":"%SRCROOT%","index":393}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/Component.js","uriBaseId":"%SRCROOT%","index":394}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controller/App.Controller.js","uriBaseId":"%SRCROOT%","index":395}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controls/Book.js","uriBaseId":"%SRCROOT%","index":396}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/index.html","uriBaseId":"%SRCROOT%","index":397}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":398}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/model/todoitems.json","uriBaseId":"%SRCROOT%","index":399}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/AllJourneys.js","uriBaseId":"%SRCROOT%","index":400}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/FilterJourney.js","uriBaseId":"%SRCROOT%","index":401}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/SearchJourney.js","uriBaseId":"%SRCROOT%","index":402}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/arrangements/Startup.js","uriBaseId":"%SRCROOT%","index":403}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/opaTests.qunit.html","uriBaseId":"%SRCROOT%","index":404}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/opaTests.qunit.js","uriBaseId":"%SRCROOT%","index":405}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/pages/App.js","uriBaseId":"%SRCROOT%","index":406}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/TodoListJourney.js","uriBaseId":"%SRCROOT%","index":407}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/testsuite.qunit.html","uriBaseId":"%SRCROOT%","index":408}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/testsuite.qunit.js","uriBaseId":"%SRCROOT%","index":409}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/AllTests.js","uriBaseId":"%SRCROOT%","index":410}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/controller/App.controller.js","uriBaseId":"%SRCROOT%","index":411}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/unitTests.qunit.html","uriBaseId":"%SRCROOT%","index":412}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/unitTests.qunit.js","uriBaseId":"%SRCROOT%","index":413}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/util/Helper.js","uriBaseId":"%SRCROOT%","index":414}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/view/App.view.xml","uriBaseId":"%SRCROOT%","index":415}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/package-lock.json","uriBaseId":"%SRCROOT%","index":416}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/package.json","uriBaseId":"%SRCROOT%","index":417}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/ui5.yaml","uriBaseId":"%SRCROOT%","index":418}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":419}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":420}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/index.html","uriBaseId":"%SRCROOT%","index":421}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/index.js","uriBaseId":"%SRCROOT%","index":422}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":423}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":424}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/package-lock.json","uriBaseId":"%SRCROOT%","index":425}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/package.json","uriBaseId":"%SRCROOT%","index":426}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/ui5.yaml","uriBaseId":"%SRCROOT%","index":427}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":428}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":429}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/index.html","uriBaseId":"%SRCROOT%","index":430}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":431}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/index.js","uriBaseId":"%SRCROOT%","index":432}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":433}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/package.json","uriBaseId":"%SRCROOT%","index":434}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/package-lock.json","uriBaseId":"%SRCROOT%","index":435}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":436}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/ui5.yaml","uriBaseId":"%SRCROOT%","index":437}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":438}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/index.html","uriBaseId":"%SRCROOT%","index":439}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/index.js","uriBaseId":"%SRCROOT%","index":440}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":441}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":442}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":443}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/package.json","uriBaseId":"%SRCROOT%","index":444}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":445}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":446}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":447}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":448}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":449}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":450}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":451}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":452}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":453}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/package.json","uriBaseId":"%SRCROOT%","index":454}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":455}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":456}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":457}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":458}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":459}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":460}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/package.json","uriBaseId":"%SRCROOT%","index":461}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/package-lock.json","uriBaseId":"%SRCROOT%","index":462}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/ui5.yaml","uriBaseId":"%SRCROOT%","index":463}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/index.html","uriBaseId":"%SRCROOT%","index":465}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/index.js","uriBaseId":"%SRCROOT%","index":466}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":467}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":468}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/package.json","uriBaseId":"%SRCROOT%","index":469}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/ui5.yaml","uriBaseId":"%SRCROOT%","index":470}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":471}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/index.html","uriBaseId":"%SRCROOT%","index":472}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/package-lock.json","uriBaseId":"%SRCROOT%","index":473}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":474}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":475}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":476}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/package.json","uriBaseId":"%SRCROOT%","index":477}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/ui5.yaml","uriBaseId":"%SRCROOT%","index":478}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/package-lock.json","uriBaseId":"%SRCROOT%","index":479}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/index.html","uriBaseId":"%SRCROOT%","index":480}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":481}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":482}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":484}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/package-lock.json","uriBaseId":"%SRCROOT%","index":485}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/package.json","uriBaseId":"%SRCROOT%","index":486}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/ui5.yaml","uriBaseId":"%SRCROOT%","index":487}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":488}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/index.html","uriBaseId":"%SRCROOT%","index":489}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":490}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/index.js","uriBaseId":"%SRCROOT%","index":491}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":492}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/package.json","uriBaseId":"%SRCROOT%","index":493}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/package-lock.json","uriBaseId":"%SRCROOT%","index":494}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/controller/model.json","uriBaseId":"%SRCROOT%","index":495}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":496}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/ui5.yaml","uriBaseId":"%SRCROOT%","index":497}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":498}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/index.html","uriBaseId":"%SRCROOT%","index":499}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":500}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/package-lock.json","uriBaseId":"%SRCROOT%","index":501}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/package.json","uriBaseId":"%SRCROOT%","index":502}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/ui5.yaml","uriBaseId":"%SRCROOT%","index":503}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/index.js","uriBaseId":"%SRCROOT%","index":504}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":505}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/index.html","uriBaseId":"%SRCROOT%","index":506}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":507}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":508}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/view/app.view.html","uriBaseId":"%SRCROOT%","index":509}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/package-lock.json","uriBaseId":"%SRCROOT%","index":510}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/ui5.yaml","uriBaseId":"%SRCROOT%","index":511}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":512}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/package.json","uriBaseId":"%SRCROOT%","index":513}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssBase.js","uriBaseId":"%SRCROOT%","index":514}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":515}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":516}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/index.html","uriBaseId":"%SRCROOT%","index":517}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":518}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":519}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":520}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/package-lock.json","uriBaseId":"%SRCROOT%","index":521}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/package.json","uriBaseId":"%SRCROOT%","index":522}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/ui5.yaml","uriBaseId":"%SRCROOT%","index":523}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/index.html","uriBaseId":"%SRCROOT%","index":524}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":525}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":526}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":527}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/view/app.view.js","uriBaseId":"%SRCROOT%","index":528}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/package-lock.json","uriBaseId":"%SRCROOT%","index":529}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/package.json","uriBaseId":"%SRCROOT%","index":530}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/ui5.yaml","uriBaseId":"%SRCROOT%","index":531}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":532}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/index.html","uriBaseId":"%SRCROOT%","index":533}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":534}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":535}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/view/app.view.json","uriBaseId":"%SRCROOT%","index":536}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/package-lock.json","uriBaseId":"%SRCROOT%","index":537}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/package.json","uriBaseId":"%SRCROOT%","index":538}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/ui5.yaml","uriBaseId":"%SRCROOT%","index":539}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/renderer.js","uriBaseId":"%SRCROOT%","index":540}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":541}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":542}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/index.html","uriBaseId":"%SRCROOT%","index":543}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/index.js","uriBaseId":"%SRCROOT%","index":544}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":545}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":546}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/package-lock.json","uriBaseId":"%SRCROOT%","index":547}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/package.json","uriBaseId":"%SRCROOT%","index":548}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/ui5.yaml","uriBaseId":"%SRCROOT%","index":549}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":550}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":551}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":552}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/index.html","uriBaseId":"%SRCROOT%","index":553}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/index.js","uriBaseId":"%SRCROOT%","index":554}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":555}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":556}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/package-lock.json","uriBaseId":"%SRCROOT%","index":557}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/package.json","uriBaseId":"%SRCROOT%","index":558}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/ui5.yaml","uriBaseId":"%SRCROOT%","index":559}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":560}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/index.html","uriBaseId":"%SRCROOT%","index":561}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":562}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":563}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":564}},{"location":{"uri":"javascript/frameworks/xsjs/lib/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":565}},{"location":{"uri":"javascript/frameworks/xsjs/lib/qlpack.yml","uriBaseId":"%SRCROOT%","index":566}},{"location":{"uri":"javascript/frameworks/xsjs/src/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":567}},{"location":{"uri":"javascript/frameworks/xsjs/src/qlpack.yml","uriBaseId":"%SRCROOT%","index":568}},{"location":{"uri":"javascript/frameworks/xsjs/test/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":569}},{"location":{"uri":"javascript/frameworks/xsjs/test/qlpack.yml","uriBaseId":"%SRCROOT%","index":570}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/.xsaccess","uriBaseId":"%SRCROOT%","index":571}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/exposed/.xsaccess","uriBaseId":"%SRCROOT%","index":572}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/missing_auth/.xsaccess","uriBaseId":"%SRCROOT%","index":573}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/service.xsjs","uriBaseId":"%SRCROOT%","index":574}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/xs-app.json","uriBaseId":"%SRCROOT%","index":575}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":576}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSUrlRedirect/XSJSUrlRedirect.xsjs","uriBaseId":"%SRCROOT%","index":578}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":579}},{"location":{"uri":"javascript/heuristic-models/tests/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":580}},{"location":{"uri":"javascript/heuristic-models/tests/qlpack.yml","uriBaseId":"%SRCROOT%","index":581}},{"location":{"uri":"qlt.conf.json","uriBaseId":"%SRCROOT%","index":582}},{"location":{"uri":"scripts/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":583}},{"location":{"uri":"scripts/CreateTestsFromYaml.py","uriBaseId":"%SRCROOT%","index":584}},{"location":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/models/cds/remoteflowsources/package.json","uriBaseId":"%SRCROOT%","index":585}},{"location":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/package.json","uriBaseId":"%SRCROOT%","index":586}},{"location":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/package.json","uriBaseId":"%SRCROOT%","index":587}},{"location":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/package.json","uriBaseId":"%SRCROOT%","index":588}},{"location":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/package.json","uriBaseId":"%SRCROOT%","index":589}},{"location":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/package.json","uriBaseId":"%SRCROOT%","index":590}},{"location":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/package.json","uriBaseId":"%SRCROOT%","index":591}},{"location":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/package.json","uriBaseId":"%SRCROOT%","index":592}},{"location":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/package.json","uriBaseId":"%SRCROOT%","index":593}},{"location":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/package.json","uriBaseId":"%SRCROOT%","index":594}},{"location":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":595}},{"location":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":596}},{"location":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":597}},{"location":{"uri":"/home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":598}}],"results":[{"ruleId":"js/missing-rate-limiting","rule":{"id":"js/missing-rate-limiting","index":55,"toolComponent":{"index":1}},"message":{"text":"This route handler performs [a database access](1), but is not rate-limited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":781,"startColumn":23,"endLine":784,"endColumn":6}}}],"partialFingerprints":{"primaryLocationLineHash":"ac6d3bdd3d52ea9b:1","primaryLocationStartColumnFingerprint":"18"},"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":782,"startColumn":7,"endLine":783,"endColumn":9}},"message":{"text":"a database access"}}]},{"ruleId":"js/xss","rule":{"id":"js/xss","index":61,"toolComponent":{"index":1}},"message":{"text":"Cross-site scripting vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":4,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"6311a9ed7e4091a4:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":3,"startColumn":17,"endColumn":51}},"message":{"text":"jQuery. ... param\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":3,"startColumn":9,"endColumn":51}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":4,"startColumn":20,"endColumn":25}},"message":{"text":"value"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":3,"startColumn":17,"endColumn":51}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/xss","rule":{"id":"js/xss","index":61,"toolComponent":{"index":1}},"message":{"text":"Cross-site scripting vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":11,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"8e517fc6fdf32a1a:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":10,"startColumn":17,"endColumn":41}},"message":{"text":"documen ... .search"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":10,"startColumn":9,"endColumn":41}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":11,"startColumn":20,"endColumn":25}},"message":{"text":"value"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":10,"startColumn":17,"endColumn":41}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/xss","rule":{"id":"js/xss","index":61,"toolComponent":{"index":1}},"message":{"text":"Cross-site scripting vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":19,"startColumn":20,"endColumn":26}}}],"partialFingerprints":{"primaryLocationLineHash":"c51cf11a085c01f4:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":17,"startColumn":17,"endColumn":41}},"message":{"text":"documen ... .search"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":17,"startColumn":9,"endColumn":41}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":18,"startColumn":39,"endColumn":44}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":18,"startColumn":18,"endColumn":45}},"message":{"text":"jQuery. ... (value)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":18,"startColumn":9,"endColumn":45}},"message":{"text":"value1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":19,"startColumn":20,"endColumn":26}},"message":{"text":"value1"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":17,"startColumn":17,"endColumn":41}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/xss","rule":{"id":"js/xss","index":61,"toolComponent":{"index":1}},"message":{"text":"Cross-site scripting vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":27,"startColumn":20,"endColumn":26}}}],"partialFingerprints":{"primaryLocationLineHash":"e309bf8540256a05:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":25,"startColumn":17,"endColumn":41}},"message":{"text":"documen ... .search"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":25,"startColumn":9,"endColumn":41}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":26,"startColumn":39,"endColumn":44}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":26,"startColumn":18,"endColumn":45}},"message":{"text":"jQuery. ... (value)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":26,"startColumn":9,"endColumn":45}},"message":{"text":"value1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":27,"startColumn":20,"endColumn":26}},"message":{"text":"value1"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":25,"startColumn":17,"endColumn":41}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/sql-injection","rule":{"id":"js/sql-injection","index":81,"toolComponent":{"index":1}},"message":{"text":"This query string depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":782,"startColumn":18,"endColumn":38}}}],"partialFingerprints":{"primaryLocationLineHash":"e7f0d59b4cbe0ccc:1","primaryLocationStartColumnFingerprint":"11"},"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":782,"startColumn":18,"endColumn":38}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/log-injection","rule":{"id":"js/log-injection","index":98,"toolComponent":{"index":1}},"message":{"text":"Log entry depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":7,"startColumn":18,"endColumn":41}}}],"partialFingerprints":{"primaryLocationLineHash":"be9a18716e55d497:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":6,"startColumn":17,"endColumn":51}},"message":{"text":"jQuery. ... param\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":6,"startColumn":9,"endColumn":51}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":7,"startColumn":34,"endColumn":39}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":7,"startColumn":18,"endColumn":41}},"message":{"text":"`[INFO] ... value}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":6,"startColumn":17,"endColumn":51}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/log-injection","rule":{"id":"js/log-injection","index":98,"toolComponent":{"index":1}},"message":{"text":"Log entry depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":15,"startColumn":18,"endColumn":41}}}],"partialFingerprints":{"primaryLocationLineHash":"be9a18716e55d497:2","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":13,"startColumn":23,"endColumn":30}},"message":{"text":"req.url"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":13,"startColumn":13,"endColumn":37}},"message":{"text":"url.par ... , true)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":13,"startColumn":9,"endColumn":37}},"message":{"text":"q"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":14,"startColumn":17,"endColumn":18}},"message":{"text":"q"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":14,"startColumn":9,"endColumn":33}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":15,"startColumn":34,"endColumn":39}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":15,"startColumn":18,"endColumn":41}},"message":{"text":"`[INFO] ... value}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":13,"startColumn":23,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/log-injection","rule":{"id":"js/log-injection","index":98,"toolComponent":{"index":1}},"message":{"text":"Log entry depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":24,"startColumn":18,"endColumn":42}}}],"partialFingerprints":{"primaryLocationLineHash":"e197b363f9dc3962:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":21,"startColumn":23,"endColumn":30}},"message":{"text":"req.url"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":21,"startColumn":13,"endColumn":37}},"message":{"text":"url.par ... , true)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":21,"startColumn":9,"endColumn":37}},"message":{"text":"q"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":22,"startColumn":17,"endColumn":18}},"message":{"text":"q"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":22,"startColumn":9,"endColumn":33}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":23,"startColumn":39,"endColumn":44}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":23,"startColumn":18,"endColumn":45}},"message":{"text":"jQuery. ... (value)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":23,"startColumn":9,"endColumn":45}},"message":{"text":"value1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":24,"startColumn":34,"endColumn":40}},"message":{"text":"value1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":24,"startColumn":18,"endColumn":42}},"message":{"text":"`[INFO] ... alue1}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":21,"startColumn":23,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/log-injection","rule":{"id":"js/log-injection","index":98,"toolComponent":{"index":1}},"message":{"text":"Log entry depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/heuristic-models/tests/Sources/test.js","uriBaseId":"%SRCROOT%","index":3},"region":{"startLine":5,"startColumn":17,"endColumn":33}}}],"partialFingerprints":{"primaryLocationLineHash":"45280b24f3d81287:1","primaryLocationStartColumnFingerprint":"12"},"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/heuristic-models/tests/Sources/test.js","uriBaseId":"%SRCROOT%","index":3},"region":{"startLine":5,"startColumn":17,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-unsafe-log-access","rule":{"id":"js/ui5-unsafe-log-access","index":0,"toolComponent":{"index":4}},"message":{"text":"Accessed log entries depend on [user-provided data](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":310},"region":{"startLine":7,"startColumn":23,"endColumn":42}}}],"partialFingerprints":{"primaryLocationLineHash":"20e0edf06769f248:1","primaryLocationStartColumnFingerprint":"14"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":311},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":306},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":306},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":306},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":306},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":311},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided data"}}]},{"ruleId":"js/ui5-unsafe-log-access","rule":{"id":"js/ui5-unsafe-log-access","index":0,"toolComponent":{"index":4}},"message":{"text":"Accessed log entries depend on [user-provided data](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":315},"region":{"startLine":20,"startColumn":33,"endColumn":42}}}],"partialFingerprints":{"primaryLocationLineHash":"eb64edf724fde59e:1","primaryLocationStartColumnFingerprint":"22"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":319},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":315},"region":{"startLine":8,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":315},"region":{"startLine":14,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":315},"region":{"startLine":14,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":315},"region":{"startLine":17,"startColumn":19,"endColumn":24}},"message":{"text":"input"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":319},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided data"}}]},{"ruleId":"js/ui5-unsafe-log-access","rule":{"id":"js/ui5-unsafe-log-access","index":0,"toolComponent":{"index":4}},"message":{"text":"Accessed log entries depend on [user-provided data](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":328},"region":{"startLine":9,"startColumn":29,"endColumn":38}}}],"partialFingerprints":{"primaryLocationLineHash":"eb64edf724fde59e:1","primaryLocationStartColumnFingerprint":"22"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":327},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":323},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":323},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":323},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":323},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":327},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided data"}}]},{"ruleId":"js/ui5-unsafe-log-access","rule":{"id":"js/ui5-unsafe-log-access","index":0,"toolComponent":{"index":4}},"message":{"text":"Accessed log entries depend on [user-provided data](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":354},"region":{"startLine":7,"startColumn":23,"endColumn":42}}}],"partialFingerprints":{"primaryLocationLineHash":"20e0edf06769f248:1","primaryLocationStartColumnFingerprint":"14"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":355},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":355},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided data"}}]},{"ruleId":"js/ui5-unsafe-log-access","rule":{"id":"js/ui5-unsafe-log-access","index":0,"toolComponent":{"index":4}},"message":{"text":"Accessed log entries depend on [user-provided data](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":353},"region":{"startLine":9,"startColumn":29,"endColumn":35}}}],"partialFingerprints":{"primaryLocationLineHash":"e10e4681e4f3a5f2:1","primaryLocationStartColumnFingerprint":"22"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":355},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":355},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided data"}}]},{"ruleId":"js/ui5-unsafe-log-access","rule":{"id":"js/ui5-unsafe-log-access","index":0,"toolComponent":{"index":4}},"message":{"text":"Accessed log entries depend on [user-provided data](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":345},"region":{"startLine":5,"startColumn":9,"endLine":24,"endColumn":10}}}],"partialFingerprints":{"primaryLocationLineHash":"fad475448f62563d:1","primaryLocationStartColumnFingerprint":"-139"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":345},"region":{"startLine":6,"startColumn":5,"endLine":8,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":340},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":340},"region":{"startLine":15,"startColumn":25,"endColumn":53}},"message":{"text":"oModel. ... input')"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":340},"region":{"startLine":15,"startColumn":17,"endColumn":53}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":340},"region":{"startLine":17,"startColumn":34,"endColumn":39}},"message":{"text":"input"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":345},"region":{"startLine":6,"startColumn":5,"endLine":8,"endColumn":29}},"message":{"text":"user-provided data"}}]},{"ruleId":"js/ui5-log-injection-to-http","rule":{"id":"js/ui5-log-injection-to-http","index":1,"toolComponent":{"index":4}},"message":{"text":"Outbound network request depends on [user-provided](1) log data."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":310},"region":{"startLine":11,"startColumn":19,"endColumn":26}}}],"partialFingerprints":{"primaryLocationLineHash":"83472515fe67207a:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":311},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":306},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":306},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":306},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":306},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":310},"region":{"startLine":7,"startColumn":23,"endColumn":42}},"message":{"text":"Log.getLogEntries()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":310},"region":{"startLine":7,"startColumn":23,"endColumn":45}},"message":{"text":"Log.get ... es()[0]"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":310},"region":{"startLine":7,"startColumn":23,"endColumn":53}},"message":{"text":"Log.get ... message"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":310},"region":{"startLine":7,"startColumn":13,"endColumn":53}},"message":{"text":"message"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":310},"region":{"startLine":11,"startColumn":19,"endColumn":26}},"message":{"text":"message"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":311},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided"}}]},{"ruleId":"js/ui5-log-injection-to-http","rule":{"id":"js/ui5-log-injection-to-http","index":1,"toolComponent":{"index":4}},"message":{"text":"Outbound network request depends on [user-provided](1) log data."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":315},"region":{"startLine":24,"startColumn":23,"endColumn":40}}}],"partialFingerprints":{"primaryLocationLineHash":"de5157ed7a614f91:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":319},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":315},"region":{"startLine":8,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":315},"region":{"startLine":14,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":315},"region":{"startLine":14,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":315},"region":{"startLine":17,"startColumn":19,"endColumn":24}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":315},"region":{"startLine":20,"startColumn":33,"endColumn":42}},"message":{"text":"oLogEntry"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":315},"region":{"startLine":24,"startColumn":23,"endColumn":32}},"message":{"text":"oLogEntry"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":315},"region":{"startLine":24,"startColumn":23,"endColumn":40}},"message":{"text":"oLogEntry.message"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":319},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided"}}]},{"ruleId":"js/ui5-log-injection-to-http","rule":{"id":"js/ui5-log-injection-to-http","index":1,"toolComponent":{"index":4}},"message":{"text":"Outbound network request depends on [user-provided](1) log data."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":328},"region":{"startLine":13,"startColumn":19,"endColumn":36}}}],"partialFingerprints":{"primaryLocationLineHash":"d67a8ded95b9934b:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":327},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":323},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":323},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":323},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":323},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":328},"region":{"startLine":9,"startColumn":29,"endColumn":38}},"message":{"text":"oLogEntry"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":328},"region":{"startLine":13,"startColumn":19,"endColumn":28}},"message":{"text":"oLogEntry"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":328},"region":{"startLine":13,"startColumn":19,"endColumn":36}},"message":{"text":"oLogEntry.message"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":327},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided"}}]},{"ruleId":"js/ui5-log-injection-to-http","rule":{"id":"js/ui5-log-injection-to-http","index":1,"toolComponent":{"index":4}},"message":{"text":"Outbound network request depends on [user-provided](1) log data."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":354},"region":{"startLine":11,"startColumn":19,"endColumn":26}}}],"partialFingerprints":{"primaryLocationLineHash":"83472515fe67207a:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":355},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":354},"region":{"startLine":7,"startColumn":23,"endColumn":42}},"message":{"text":"Log.getLogEntries()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":354},"region":{"startLine":7,"startColumn":23,"endColumn":45}},"message":{"text":"Log.get ... es()[0]"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":354},"region":{"startLine":7,"startColumn":23,"endColumn":53}},"message":{"text":"Log.get ... message"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":354},"region":{"startLine":7,"startColumn":13,"endColumn":53}},"message":{"text":"message"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":354},"region":{"startLine":11,"startColumn":19,"endColumn":26}},"message":{"text":"message"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":355},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided"}}]},{"ruleId":"js/ui5-log-injection-to-http","rule":{"id":"js/ui5-log-injection-to-http","index":1,"toolComponent":{"index":4}},"message":{"text":"Outbound network request depends on [user-provided](1) log data."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":353},"region":{"startLine":13,"startColumn":19,"endColumn":33}}}],"partialFingerprints":{"primaryLocationLineHash":"84768bf2b1d6e5a5:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":355},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":353},"region":{"startLine":9,"startColumn":29,"endColumn":35}},"message":{"text":"oEvent"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":353},"region":{"startLine":13,"startColumn":19,"endColumn":25}},"message":{"text":"oEvent"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":353},"region":{"startLine":13,"startColumn":19,"endColumn":33}},"message":{"text":"oEvent.message"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":355},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided"}}]},{"ruleId":"js/ui5-clickjacking","rule":{"id":"js/ui5-clickjacking","index":2,"toolComponent":{"index":4}},"message":{"text":"Possible clickjacking vulnerability due to window\\[ ... onfig\"\\] being set to `allow`."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-allow-all/index.html","uriBaseId":"%SRCROOT%","index":254},"region":{"startLine":9,"startColumn":9,"endColumn":32}}}],"partialFingerprints":{"primaryLocationLineHash":"6152b8f74a1abdf5:1","primaryLocationStartColumnFingerprint":"0"}},{"ruleId":"js/ui5-clickjacking","rule":{"id":"js/ui5-clickjacking","index":2,"toolComponent":{"index":4}},"message":{"text":"Possible clickjacking vulnerability due to data-sap-ui-frameOptions=allow being set to `allow`."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-allow-all/index.html","uriBaseId":"%SRCROOT%","index":254},"region":{"startLine":28,"startColumn":34,"endColumn":66}}}],"partialFingerprints":{"primaryLocationLineHash":"b01bd23ca3666824:1","primaryLocationStartColumnFingerprint":"25"}},{"ruleId":"js/ui5-clickjacking","rule":{"id":"js/ui5-clickjacking","index":2,"toolComponent":{"index":4}},"message":{"text":"Possible clickjacking vulnerability due to missing frame options."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-default-all/index.html","uriBaseId":"%SRCROOT%","index":256},"region":{"startLine":2,"endColumn":16}}}],"partialFingerprints":{"primaryLocationLineHash":"7fe81114896a63c:1","primaryLocationStartColumnFingerprint":"0"}},{"ruleId":"js/ui5-clickjacking","rule":{"id":"js/ui5-clickjacking","index":2,"toolComponent":{"index":4}},"message":{"text":"Possible clickjacking vulnerability due to missing frame options."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/index.html","uriBaseId":"%SRCROOT%","index":397},"region":{"startLine":2,"endColumn":16}}}],"partialFingerprints":{"primaryLocationLineHash":"df700c15dad274b2:1","primaryLocationStartColumnFingerprint":"0"}},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":353},"region":{"startLine":16,"startColumn":31,"endColumn":45}}}],"partialFingerprints":{"primaryLocationLineHash":"3bb21c52eb38cf8:1","primaryLocationStartColumnFingerprint":"22"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":355},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":349},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":353},"region":{"startLine":9,"startColumn":29,"endColumn":35}},"message":{"text":"oEvent"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":353},"region":{"startLine":16,"startColumn":31,"endColumn":37}},"message":{"text":"oEvent"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":353},"region":{"startLine":16,"startColumn":31,"endColumn":45}},"message":{"text":"oEvent.message"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":355},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":5,"startColumn":27,"endColumn":32}}}],"partialFingerprints":{"primaryLocationLineHash":"92dbc37bdafc7694:1","primaryLocationStartColumnFingerprint":"22"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":3,"startColumn":17,"endColumn":51}},"message":{"text":"jQuery. ... param\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":3,"startColumn":9,"endColumn":51}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":5,"startColumn":27,"endColumn":32}},"message":{"text":"value"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":3,"startColumn":17,"endColumn":51}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":12,"startColumn":27,"endColumn":32}}}],"partialFingerprints":{"primaryLocationLineHash":"faa1832c387d2ee5:1","primaryLocationStartColumnFingerprint":"22"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":10,"startColumn":17,"endColumn":41}},"message":{"text":"documen ... .search"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":10,"startColumn":9,"endColumn":41}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":12,"startColumn":27,"endColumn":32}},"message":{"text":"value"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":10,"startColumn":17,"endColumn":41}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":20,"startColumn":27,"endColumn":33}}}],"partialFingerprints":{"primaryLocationLineHash":"8291f53a2e235d15:1","primaryLocationStartColumnFingerprint":"22"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":17,"startColumn":17,"endColumn":41}},"message":{"text":"documen ... .search"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":17,"startColumn":9,"endColumn":41}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":18,"startColumn":39,"endColumn":44}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":18,"startColumn":18,"endColumn":45}},"message":{"text":"jQuery. ... (value)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":18,"startColumn":9,"endColumn":45}},"message":{"text":"value1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":20,"startColumn":27,"endColumn":33}},"message":{"text":"value1"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":17,"startColumn":17,"endColumn":41}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controls/Book.js","uriBaseId":"%SRCROOT%","index":396},"region":{"startLine":132,"startColumn":7,"endLine":134,"endColumn":16}}}],"partialFingerprints":{"primaryLocationLineHash":"63ace7b071639814:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controller/App.Controller.js","uriBaseId":"%SRCROOT%","index":395},"region":{"startLine":23,"startColumn":25,"endColumn":48}},"message":{"text":"oSearch ... Value()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controller/App.Controller.js","uriBaseId":"%SRCROOT%","index":395},"region":{"startLine":23,"startColumn":11,"endColumn":48}},"message":{"text":"searchValue"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controller/App.Controller.js","uriBaseId":"%SRCROOT%","index":395},"region":{"startLine":27,"startColumn":34,"endColumn":45}},"message":{"text":"searchValue"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controls/Book.js","uriBaseId":"%SRCROOT%","index":396},"region":{"startLine":17,"startColumn":13,"endColumn":31}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controls/Book.js","uriBaseId":"%SRCROOT%","index":396},"region":{"startLine":133,"startColumn":8,"endColumn":27}},"message":{"text":"oControl.getTitle()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controls/Book.js","uriBaseId":"%SRCROOT%","index":396},"region":{"startLine":132,"startColumn":7,"endLine":134,"endColumn":16}},"message":{"text":"\"
T ...
\""}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controller/App.Controller.js","uriBaseId":"%SRCROOT%","index":395},"region":{"startLine":23,"startColumn":25,"endColumn":48}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":419},"region":{"startLine":14,"startColumn":23,"endColumn":41}}}],"partialFingerprints":{"primaryLocationLineHash":"fc87b07640e9d85:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":424},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":420},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":419},"region":{"startLine":7,"startColumn":23,"endColumn":41}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":419},"region":{"startLine":14,"startColumn":23,"endColumn":41}},"message":{"text":"oControl.getText()"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":424},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":428},"region":{"startLine":14,"startColumn":32,"endColumn":50}}}],"partialFingerprints":{"primaryLocationLineHash":"352d5eac262ae765:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":433},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":429},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":428},"region":{"startLine":7,"startColumn":23,"endColumn":41}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":428},"region":{"startLine":14,"startColumn":32,"endColumn":50}},"message":{"text":"oControl.getText()"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":433},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":436},"region":{"startLine":14,"startColumn":28,"endColumn":46}}}],"partialFingerprints":{"primaryLocationLineHash":"352d5ec8b0c3bb0d:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":442},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":438},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":436},"region":{"startLine":7,"startColumn":19,"endColumn":37}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":436},"region":{"startLine":14,"startColumn":28,"endColumn":46}},"message":{"text":"oControl.getText()"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":442},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464},"region":{"startLine":27,"startColumn":36,"endColumn":41}}}],"partialFingerprints":{"primaryLocationLineHash":"8ceecee7055f4fa2:1","primaryLocationStartColumnFingerprint":"23"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464},"region":{"startLine":26,"startColumn":25,"endColumn":42}},"message":{"text":"oInput.getValue()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464},"region":{"startLine":26,"startColumn":17,"endColumn":42}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464},"region":{"startLine":27,"startColumn":36,"endColumn":41}},"message":{"text":"value"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464},"region":{"startLine":26,"startColumn":25,"endColumn":42}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":515},"region":{"startLine":8,"startColumn":28,"endColumn":46}}}],"partialFingerprints":{"primaryLocationLineHash":"353ad97f4bff4eae:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":520},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":516},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssBase.js","uriBaseId":"%SRCROOT%","index":514},"region":{"startLine":5,"startColumn":15,"endColumn":33}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":515},"region":{"startLine":8,"startColumn":28,"endColumn":46}},"message":{"text":"oControl.getText()"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":520},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/renderer.js","uriBaseId":"%SRCROOT%","index":540},"region":{"startLine":8,"startColumn":28,"endColumn":46}}}],"partialFingerprints":{"primaryLocationLineHash":"353ad97f4bff4eae:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":546},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":542},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":541},"region":{"startLine":7,"startColumn":23,"endColumn":41}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/renderer.js","uriBaseId":"%SRCROOT%","index":540},"region":{"startLine":8,"startColumn":28,"endColumn":46}},"message":{"text":"oControl.getText()"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":546},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":551},"region":{"startLine":8,"startColumn":28,"endColumn":46}}}],"partialFingerprints":{"primaryLocationLineHash":"353ad97f4bff4eae:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":556},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":552},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":550},"region":{"startLine":7,"startColumn":23,"endColumn":41}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":551},"region":{"startLine":8,"startColumn":28,"endColumn":46}},"message":{"text":"oControl.getText()"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":556},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/view/app.view.js","uriBaseId":"%SRCROOT%","index":528},"region":{"startLine":21,"startColumn":22,"endColumn":32}}}],"partialFingerprints":{"primaryLocationLineHash":"5d5122f6c75b5d01:1","primaryLocationStartColumnFingerprint":"9"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/view/app.view.js","uriBaseId":"%SRCROOT%","index":528},"region":{"startLine":18,"startColumn":20,"endColumn":30}},"message":{"text":"/input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":527},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/view/app.view.js","uriBaseId":"%SRCROOT%","index":528},"region":{"startLine":21,"startColumn":22,"endColumn":32}},"message":{"text":"/input"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/view/app.view.js","uriBaseId":"%SRCROOT%","index":528},"region":{"startLine":18,"startColumn":20,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/view/app.view.json","uriBaseId":"%SRCROOT%","index":536},"region":{"startLine":13,"startColumn":15,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"c18df3aa119b40dc:1","primaryLocationStartColumnFingerprint":"11"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/view/app.view.json","uriBaseId":"%SRCROOT%","index":536},"region":{"startLine":9,"startColumn":13,"endColumn":23}},"message":{"text":"\"value\": \"{/input}\""}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":532},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/view/app.view.json","uriBaseId":"%SRCROOT%","index":536},"region":{"startLine":13,"startColumn":15,"endColumn":25}},"message":{"text":"\"content\": \"{/input}\""}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/view/app.view.json","uriBaseId":"%SRCROOT%","index":536},"region":{"startLine":9,"startColumn":13,"endColumn":23}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":284},"region":{"startLine":8,"startColumn":5,"endColumn":50}}}],"partialFingerprints":{"primaryLocationLineHash":"74b35e217af6aa05:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":284},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":278},"region":{"startLine":10,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":284},"region":{"startLine":8,"startColumn":5,"endColumn":50}},"message":{"text":"content={/input}"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":284},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":468},"region":{"startLine":9,"startColumn":5,"endColumn":40}}}],"partialFingerprints":{"primaryLocationLineHash":"9caa0f252fbe2993:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":468},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464},"region":{"startLine":31,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464},"region":{"startLine":9,"startColumn":25,"endColumn":53}},"message":{"text":"oModel. ... input')"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464},"region":{"startLine":9,"startColumn":17,"endColumn":53}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464},"region":{"startLine":10,"startColumn":44,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464},"region":{"startLine":32,"startColumn":17,"endColumn":30}},"message":{"text":"output1: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":468},"region":{"startLine":9,"startColumn":5,"endColumn":40}},"message":{"text":"content={/output1}"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":468},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":468},"region":{"startLine":17,"startColumn":5,"endColumn":40}}}],"partialFingerprints":{"primaryLocationLineHash":"2963bbd458e69924:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464},"region":{"startLine":18,"startColumn":31,"endColumn":60}},"message":{"text":"oEvent. ... Value()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464},"region":{"startLine":18,"startColumn":17,"endColumn":60}},"message":{"text":"sInputValue"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464},"region":{"startLine":19,"startColumn":44,"endColumn":55}},"message":{"text":"sInputValue"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464},"region":{"startLine":34,"startColumn":17,"endColumn":30}},"message":{"text":"output3: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":468},"region":{"startLine":17,"startColumn":5,"endColumn":40}},"message":{"text":"content={/output3}"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":464},"region":{"startLine":18,"startColumn":31,"endColumn":60}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":476},"region":{"startLine":8,"startColumn":5,"endColumn":37}}}],"partialFingerprints":{"primaryLocationLineHash":"97b29ed20ac04ff0:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":476},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":471},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":476},"region":{"startLine":8,"startColumn":5,"endColumn":37}},"message":{"text":"content={/input}"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":476},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":484},"region":{"startLine":8,"startColumn":5,"endColumn":38}}}],"partialFingerprints":{"primaryLocationLineHash":"1406455ac263a2d9:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":484},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483},"region":{"startLine":12,"startColumn":26,"endColumn":46}},"message":{"text":"new JSONModel(oData)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":484},"region":{"startLine":8,"startColumn":5,"endColumn":38}},"message":{"text":"content={/output}"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":484},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483},"region":{"startLine":15,"startColumn":25,"endColumn":53}},"message":{"text":"oModel. ... input')"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483},"region":{"startLine":15,"startColumn":17,"endColumn":53}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483},"region":{"startLine":16,"startColumn":43,"endColumn":48}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483},"region":{"startLine":10,"startColumn":17,"endColumn":29}},"message":{"text":"output: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":484},"region":{"startLine":8,"startColumn":5,"endColumn":38}},"message":{"text":"content={/output}"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":484},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":500},"region":{"startLine":8,"startColumn":5,"endColumn":37}}}],"partialFingerprints":{"primaryLocationLineHash":"97b29ed20ac04ff0:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":500},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":496},"region":{"startLine":8,"startColumn":40,"endColumn":63}},"message":{"text":"\"contro ... l.json\""}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":500},"region":{"startLine":8,"startColumn":5,"endColumn":37}},"message":{"text":"content={/input}"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":500},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/view/app.view.html","uriBaseId":"%SRCROOT%","index":509},"region":{"startLine":8,"startColumn":11,"endColumn":34}}}],"partialFingerprints":{"primaryLocationLineHash":"5edd24be658b61a4:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/view/app.view.html","uriBaseId":"%SRCROOT%","index":509},"region":{"startLine":5,"startColumn":11,"endColumn":32}},"message":{"text":"data-value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":505},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/view/app.view.html","uriBaseId":"%SRCROOT%","index":509},"region":{"startLine":8,"startColumn":11,"endColumn":34}},"message":{"text":"data-content={/input}"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/view/app.view.html","uriBaseId":"%SRCROOT%","index":509},"region":{"startLine":5,"startColumn":11,"endColumn":32}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":3,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1).\nXSS vulnerability due to [user-provided value](2)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":564},"region":{"startLine":22,"startColumn":5,"endColumn":38}}}],"partialFingerprints":{"primaryLocationLineHash":"6e0d8f690e30e24a:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":564},"region":{"startLine":8,"startColumn":5,"endLine":10,"endColumn":27}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":560},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":564},"region":{"startLine":22,"startColumn":5,"endColumn":38}},"message":{"text":"content={/input}"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":564},"region":{"startLine":15,"startColumn":5,"endLine":18,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":560},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":564},"region":{"startLine":22,"startColumn":5,"endColumn":38}},"message":{"text":"content={/input}"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":564},"region":{"startLine":8,"startColumn":5,"endLine":10,"endColumn":27}},"message":{"text":"user-provided value"}},{"id":2,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":564},"region":{"startLine":15,"startColumn":5,"endLine":18,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-formula-injection","rule":{"id":"js/ui5-formula-injection","index":4,"toolComponent":{"index":4}},"message":{"text":"The content of a saved file depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":261},"region":{"startLine":17,"startColumn":27,"endColumn":45}}}],"partialFingerprints":{"primaryLocationLineHash":"41899ff1a967017d:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":271},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":264},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":261},"region":{"startLine":8,"startColumn":23,"endColumn":38}},"message":{"text":"{ type: \"int\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":261},"region":{"startLine":17,"startColumn":27,"endColumn":45}},"message":{"text":"oControl.getText()"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":271},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-formula-injection","rule":{"id":"js/ui5-formula-injection","index":4,"toolComponent":{"index":4}},"message":{"text":"The content of a saved file depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":270},"region":{"startLine":23,"startColumn":27,"endColumn":39}}}],"partialFingerprints":{"primaryLocationLineHash":"9afa5fd07ee36af6:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":275},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":272},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":270},"region":{"startLine":9,"startColumn":23,"endColumn":41}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":270},"region":{"startLine":15,"startColumn":29,"endColumn":47}},"message":{"text":"oControl.getText()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":270},"region":{"startLine":15,"startColumn":21,"endColumn":47}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":270},"region":{"startLine":17,"startColumn":53,"endColumn":58}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":270},"region":{"startLine":17,"startColumn":46,"endColumn":59}},"message":{"text":"String(value)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":270},"region":{"startLine":17,"startColumn":36,"endColumn":60}},"message":{"text":"encodeX ... value))"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":270},"region":{"startLine":17,"startColumn":21,"endColumn":60}},"message":{"text":"xssSanitized"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":270},"region":{"startLine":23,"startColumn":27,"endColumn":39}},"message":{"text":"xssSanitized"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":275},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-formula-injection","rule":{"id":"js/ui5-formula-injection","index":4,"toolComponent":{"index":4}},"message":{"text":"The content of a saved file depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":278},"region":{"startLine":16,"startColumn":23,"endColumn":51}}}],"partialFingerprints":{"primaryLocationLineHash":"e701acdf85af03b4:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":284},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":278},"region":{"startLine":10,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":278},"region":{"startLine":16,"startColumn":23,"endColumn":51}},"message":{"text":"oModel. ... input')"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":284},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-path-injection","rule":{"id":"js/ui5-path-injection","index":5,"toolComponent":{"index":4}},"message":{"text":"The path of a saved file depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":367},"region":{"startLine":17,"startColumn":43,"endColumn":61}}}],"partialFingerprints":{"primaryLocationLineHash":"68e5ff83e2198ff5:1","primaryLocationStartColumnFingerprint":"26"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":372},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":370},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":367},"region":{"startLine":8,"startColumn":23,"endColumn":38}},"message":{"text":"{ type: \"int\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":367},"region":{"startLine":17,"startColumn":43,"endColumn":61}},"message":{"text":"oControl.getText()"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":372},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-path-injection","rule":{"id":"js/ui5-path-injection","index":5,"toolComponent":{"index":4}},"message":{"text":"The path of a saved file depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":376},"region":{"startLine":23,"startColumn":43,"endColumn":55}}}],"partialFingerprints":{"primaryLocationLineHash":"b79de9dff4d8f842:1","primaryLocationStartColumnFingerprint":"26"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":380},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":377},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":376},"region":{"startLine":9,"startColumn":23,"endColumn":41}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":376},"region":{"startLine":15,"startColumn":29,"endColumn":47}},"message":{"text":"oControl.getText()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":376},"region":{"startLine":15,"startColumn":21,"endColumn":47}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":376},"region":{"startLine":17,"startColumn":53,"endColumn":58}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":376},"region":{"startLine":17,"startColumn":46,"endColumn":59}},"message":{"text":"String(value)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":376},"region":{"startLine":17,"startColumn":36,"endColumn":60}},"message":{"text":"encodeX ... value))"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":376},"region":{"startLine":17,"startColumn":21,"endColumn":60}},"message":{"text":"xssSanitized"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":376},"region":{"startLine":23,"startColumn":43,"endColumn":55}},"message":{"text":"xssSanitized"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":380},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-path-injection","rule":{"id":"js/ui5-path-injection","index":5,"toolComponent":{"index":4}},"message":{"text":"The path of a saved file depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":384},"region":{"startLine":16,"startColumn":39,"endColumn":67}}}],"partialFingerprints":{"primaryLocationLineHash":"de27f6d546a116e8:1","primaryLocationStartColumnFingerprint":"26"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":390},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":384},"region":{"startLine":10,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":384},"region":{"startLine":16,"startColumn":39,"endColumn":67}},"message":{"text":"oModel. ... input')"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":390},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-log-injection","rule":{"id":"js/cap-log-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"Log entry depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":210},"region":{"startLine":9,"startColumn":32,"endColumn":45}}}],"partialFingerprints":{"primaryLocationLineHash":"7c291d40b7c61d4f:1","primaryLocationStartColumnFingerprint":"23"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":210},"region":{"startLine":6,"startColumn":29,"endColumn":32}},"message":{"text":"msg"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":210},"region":{"startLine":7,"startColumn":35,"endColumn":38}},"message":{"text":"msg"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":210},"region":{"startLine":7,"startColumn":35,"endColumn":43}},"message":{"text":"msg.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":210},"region":{"startLine":7,"startColumn":15,"endColumn":32}},"message":{"text":"{ messageToPass }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":210},"region":{"startLine":7,"startColumn":17,"endColumn":30}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":210},"region":{"startLine":7,"startColumn":15,"endColumn":43}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":210},"region":{"startLine":9,"startColumn":32,"endColumn":45}},"message":{"text":"messageToPass"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":210},"region":{"startLine":6,"startColumn":29,"endColumn":32}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-log-injection","rule":{"id":"js/cap-log-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"Log entry depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":220},"region":{"startLine":9,"startColumn":32,"endColumn":45}}}],"partialFingerprints":{"primaryLocationLineHash":"7c291d40b7c61d4f:1","primaryLocationStartColumnFingerprint":"23"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":217},"region":{"startLine":6,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":217},"region":{"startLine":7,"startColumn":39,"endColumn":42}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":217},"region":{"startLine":7,"startColumn":39,"endColumn":47}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":217},"region":{"startLine":7,"startColumn":19,"endColumn":36}},"message":{"text":"{ messageToPass }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":217},"region":{"startLine":7,"startColumn":21,"endColumn":34}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":217},"region":{"startLine":7,"startColumn":19,"endColumn":47}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":217},"region":{"startLine":9,"startColumn":38,"endColumn":51}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":217},"region":{"startLine":9,"startColumn":36,"endColumn":53}},"message":{"text":"{ messageToPass }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":220},"region":{"startLine":6,"startColumn":29,"endColumn":32}},"message":{"text":"msg"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":220},"region":{"startLine":7,"startColumn":35,"endColumn":38}},"message":{"text":"msg"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":220},"region":{"startLine":7,"startColumn":35,"endColumn":43}},"message":{"text":"msg.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":220},"region":{"startLine":7,"startColumn":15,"endColumn":32}},"message":{"text":"{ messageToPass }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":220},"region":{"startLine":7,"startColumn":17,"endColumn":30}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":220},"region":{"startLine":7,"startColumn":15,"endColumn":43}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":220},"region":{"startLine":9,"startColumn":32,"endColumn":45}},"message":{"text":"messageToPass"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":217},"region":{"startLine":6,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-log-injection","rule":{"id":"js/cap-log-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"Log entry depends on a [user-provided value](1).\nLog entry depends on a [user-provided value](2)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":9,"startColumn":32,"endColumn":45}}}],"partialFingerprints":{"primaryLocationLineHash":"7c291d40b7c61d4f:1","primaryLocationStartColumnFingerprint":"23"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":227},"region":{"startLine":6,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":227},"region":{"startLine":7,"startColumn":39,"endColumn":42}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":227},"region":{"startLine":7,"startColumn":39,"endColumn":47}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":227},"region":{"startLine":7,"startColumn":19,"endColumn":36}},"message":{"text":"{ messageToPass }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":227},"region":{"startLine":7,"startColumn":21,"endColumn":34}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":227},"region":{"startLine":7,"startColumn":19,"endColumn":47}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":227},"region":{"startLine":9,"startColumn":38,"endColumn":51}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":227},"region":{"startLine":9,"startColumn":36,"endColumn":53}},"message":{"text":"{ messageToPass }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":6,"startColumn":29,"endColumn":32}},"message":{"text":"msg"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":7,"startColumn":35,"endColumn":38}},"message":{"text":"msg"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":7,"startColumn":35,"endColumn":43}},"message":{"text":"msg.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":7,"startColumn":15,"endColumn":32}},"message":{"text":"{ messageToPass }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":7,"startColumn":17,"endColumn":30}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":7,"startColumn":15,"endColumn":43}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":9,"startColumn":32,"endColumn":45}},"message":{"text":"messageToPass"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":6,"startColumn":29,"endColumn":32}},"message":{"text":"msg"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":7,"startColumn":35,"endColumn":38}},"message":{"text":"msg"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":7,"startColumn":35,"endColumn":43}},"message":{"text":"msg.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":7,"startColumn":15,"endColumn":32}},"message":{"text":"{ messageToPass }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":7,"startColumn":17,"endColumn":30}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":7,"startColumn":15,"endColumn":43}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":9,"startColumn":32,"endColumn":45}},"message":{"text":"messageToPass"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":227},"region":{"startLine":6,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}},{"id":2,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":6,"startColumn":29,"endColumn":32}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sensitive-log","rule":{"id":"js/cap-sensitive-log","index":1,"toolComponent":{"index":8}},"message":{"text":"Log entry depends on the [name](1) field which is annotated as potentially sensitive."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.js","uriBaseId":"%SRCROOT%","index":238},"region":{"startLine":9,"startColumn":32,"endColumn":43}}}],"partialFingerprints":{"primaryLocationLineHash":"c2d27f652a20308e:1","primaryLocationStartColumnFingerprint":"23"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.js","uriBaseId":"%SRCROOT%","index":238},"region":{"startLine":9,"startColumn":32,"endColumn":43}},"message":{"text":"Sample.name"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.js","uriBaseId":"%SRCROOT%","index":238},"region":{"startLine":9,"startColumn":32,"endColumn":43}},"message":{"text":"Sample.name"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.cds","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":4,"startColumn":5,"endColumn":9}},"message":{"text":"name"}}]},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":2,"toolComponent":{"index":8}},"message":{"text":"The CDS entity `Service1.Service1Entity1` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds","uriBaseId":"%SRCROOT%","index":126},"region":{"startLine":6,"startColumn":10,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"3984db8d11cdcda4:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":2,"toolComponent":{"index":8}},"message":{"text":"The CDS action `Service1.send2` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds","uriBaseId":"%SRCROOT%","index":126},"region":{"startLine":18,"startColumn":10,"endColumn":15}}}],"partialFingerprints":{"primaryLocationLineHash":"28b66b32406f07ba:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":2,"toolComponent":{"index":8}},"message":{"text":"The CDS action `Service1.send3` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds","uriBaseId":"%SRCROOT%","index":126},"region":{"startLine":23,"startColumn":10,"endColumn":15}}}],"partialFingerprints":{"primaryLocationLineHash":"a5382f0f9fda534:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":2,"toolComponent":{"index":8}},"message":{"text":"The CDS action `Service1.send4` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds","uriBaseId":"%SRCROOT%","index":126},"region":{"startLine":28,"startColumn":10,"endColumn":15}}}],"partialFingerprints":{"primaryLocationLineHash":"ebf09aafb38c42ae:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":2,"toolComponent":{"index":8}},"message":{"text":"The CDS action `Service1.send5` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds","uriBaseId":"%SRCROOT%","index":126},"region":{"startLine":33,"startColumn":10,"endColumn":15}}}],"partialFingerprints":{"primaryLocationLineHash":"65cd9b8a9955401b:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":2,"toolComponent":{"index":8}},"message":{"text":"The CDS entity `Service2.Service2Entity1` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.cds","uriBaseId":"%SRCROOT%","index":129},"region":{"startLine":6,"startColumn":10,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"b02237ac8be3c990:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":2,"toolComponent":{"index":8}},"message":{"text":"The CDS action `Service2.send1` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.cds","uriBaseId":"%SRCROOT%","index":129},"region":{"startLine":13,"startColumn":10,"endColumn":15}}}],"partialFingerprints":{"primaryLocationLineHash":"d2bdf8ef231dddd1:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":2,"toolComponent":{"index":8}},"message":{"text":"The CDS service `Service` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds","uriBaseId":"%SRCROOT%","index":189},"region":{"startLine":3,"startColumn":9,"endColumn":16}}}],"partialFingerprints":{"primaryLocationLineHash":"a2294454385cb916:1","primaryLocationStartColumnFingerprint":"8"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":2,"toolComponent":{"index":8}},"message":{"text":"The CDS entity `Service.ServiceEntity` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds","uriBaseId":"%SRCROOT%","index":189},"region":{"startLine":5,"startColumn":10,"endColumn":23}}}],"partialFingerprints":{"primaryLocationLineHash":"d5a18811944e0c6:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":2,"toolComponent":{"index":8}},"message":{"text":"The CDS action `Service.send` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds","uriBaseId":"%SRCROOT%","index":189},"region":{"startLine":8,"startColumn":10,"endColumn":14}}}],"partialFingerprints":{"primaryLocationLineHash":"e6b459744cc3d70d:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-unnecessarily-granted-privileged-access-rights","rule":{"id":"js/cap-unnecessarily-granted-privileged-access-rights","index":3,"toolComponent":{"index":8}},"message":{"text":"This entity is accessed with unnecessarily privileged rights that requires authorization."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.js","uriBaseId":"%SRCROOT%","index":130},"region":{"startLine":18,"startColumn":21,"endColumn":38}}}],"partialFingerprints":{"primaryLocationLineHash":"383e73b4014710f9:1","primaryLocationStartColumnFingerprint":"12"}},{"ruleId":"js/cap-unnecessarily-granted-privileged-access-rights","rule":{"id":"js/cap-unnecessarily-granted-privileged-access-rights","index":3,"toolComponent":{"index":8}},"message":{"text":"This entity is accessed with unnecessarily privileged rights that requires authorization."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.js","uriBaseId":"%SRCROOT%","index":130},"region":{"startLine":35,"startColumn":21,"endColumn":38}}}],"partialFingerprints":{"primaryLocationLineHash":"383e73b4014710f9:2","primaryLocationStartColumnFingerprint":"12"}},{"ruleId":"js/cap-unnecessarily-granted-privileged-access-rights","rule":{"id":"js/cap-unnecessarily-granted-privileged-access-rights","index":3,"toolComponent":{"index":8}},"message":{"text":"This entity is accessed with unnecessarily privileged rights that requires authorization."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.js","uriBaseId":"%SRCROOT%","index":127},"region":{"startLine":18,"startColumn":24,"endColumn":50}}}],"partialFingerprints":{"primaryLocationLineHash":"62915c8622048073:1","primaryLocationStartColumnFingerprint":"11"}},{"ruleId":"js/cap-unnecessarily-granted-privileged-access-rights","rule":{"id":"js/cap-unnecessarily-granted-privileged-access-rights","index":3,"toolComponent":{"index":8}},"message":{"text":"This entity is accessed with unnecessarily privileged rights that requires authorization."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.js","uriBaseId":"%SRCROOT%","index":127},"region":{"startLine":33,"startColumn":24,"endColumn":50}}}],"partialFingerprints":{"primaryLocationLineHash":"8c5c989d244a1f09:1","primaryLocationStartColumnFingerprint":"11"}},{"ruleId":"js/cap-unnecessarily-granted-privileged-access-rights","rule":{"id":"js/cap-unnecessarily-granted-privileged-access-rights","index":3,"toolComponent":{"index":8}},"message":{"text":"This entity is accessed with unnecessarily privileged rights that requires authorization."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.js","uriBaseId":"%SRCROOT%","index":127},"region":{"startLine":50,"startColumn":25,"endColumn":40}}}],"partialFingerprints":{"primaryLocationLineHash":"faab9436420ec8fd:1","primaryLocationStartColumnFingerprint":"12"}},{"ruleId":"js/cap-unnecessarily-granted-privileged-access-rights","rule":{"id":"js/cap-unnecessarily-granted-privileged-access-rights","index":3,"toolComponent":{"index":8}},"message":{"text":"This entity is accessed with unnecessarily privileged rights that requires authorization."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.js","uriBaseId":"%SRCROOT%","index":127},"region":{"startLine":67,"startColumn":25,"endColumn":40}}}],"partialFingerprints":{"primaryLocationLineHash":"8eb12b95cf4128eb:1","primaryLocationStartColumnFingerprint":"12"}},{"ruleId":"js/cap-unnecessarily-granted-privileged-access-rights","rule":{"id":"js/cap-unnecessarily-granted-privileged-access-rights","index":3,"toolComponent":{"index":8}},"message":{"text":"This entity is accessed with unnecessarily privileged rights that may require authorization."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.js","uriBaseId":"%SRCROOT%","index":127},"region":{"startLine":83,"startColumn":24,"endColumn":38}}}],"partialFingerprints":{"primaryLocationLineHash":"9343d25bdd5ba748:1","primaryLocationStartColumnFingerprint":"11"}},{"ruleId":"js/cap-default-user-is-privileged","rule":{"id":"js/cap-default-user-is-privileged","index":4,"toolComponent":{"index":8}},"message":{"text":"The default user is being overridden to a privileged user."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/server.js","uriBaseId":"%SRCROOT%","index":111},"region":{"startLine":8,"endColumn":37}}}],"partialFingerprints":{"primaryLocationLineHash":"b6ec748aef5ccec4:1","primaryLocationStartColumnFingerprint":"0"}},{"ruleId":"js/cap-default-user-is-privileged","rule":{"id":"js/cap-default-user-is-privileged","index":4,"toolComponent":{"index":8}},"message":{"text":"The default user is being overridden to a privileged user."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.js","uriBaseId":"%SRCROOT%","index":114},"region":{"startLine":14,"startColumn":7,"endColumn":43}}}],"partialFingerprints":{"primaryLocationLineHash":"2c0c554bf5b5f7d:1","primaryLocationStartColumnFingerprint":"0"}},{"ruleId":"js/cap-default-user-is-privileged","rule":{"id":"js/cap-default-user-is-privileged","index":4,"toolComponent":{"index":8}},"message":{"text":"The default user is being overridden to a privileged user."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.js","uriBaseId":"%SRCROOT%","index":117},"region":{"startLine":12,"startColumn":5,"endColumn":41}}}],"partialFingerprints":{"primaryLocationLineHash":"ee143e9aad9c9a16:1","primaryLocationStartColumnFingerprint":"0"}},{"ruleId":"js/cap-non-prod-auth-strategy","rule":{"id":"js/cap-non-prod-auth-strategy","index":5,"toolComponent":{"index":8}},"message":{"text":"Current authentication strategy contains [credentials of mocked users](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/package.json","uriBaseId":"%SRCROOT%","index":133},"region":{"startLine":17,"startColumn":18,"endLine":32,"endColumn":10}}}],"partialFingerprints":{"primaryLocationLineHash":"189356aa691178ee:1","primaryLocationStartColumnFingerprint":"9"},"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/package.json","uriBaseId":"%SRCROOT%","index":133},"region":{"startLine":17,"startColumn":18,"endLine":32,"endColumn":10}},"message":{"text":"credentials of mocked users"}}]},{"ruleId":"js/cap-non-prod-auth-strategy","rule":{"id":"js/cap-non-prod-auth-strategy","index":5,"toolComponent":{"index":8}},"message":{"text":"Non-production authentication strategy [basic](1) is used."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/package.json","uriBaseId":"%SRCROOT%","index":133},"region":{"startLine":16,"startColumn":17,"endColumn":24}}}],"partialFingerprints":{"primaryLocationLineHash":"8ec70b5c261c793b:1","primaryLocationStartColumnFingerprint":"8"},"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/package.json","uriBaseId":"%SRCROOT%","index":133},"region":{"startLine":16,"startColumn":17,"endColumn":24}},"message":{"text":"basic"}}]},{"ruleId":"js/cap-non-prod-auth-strategy","rule":{"id":"js/cap-non-prod-auth-strategy","index":5,"toolComponent":{"index":8}},"message":{"text":"Non-production authentication strategy [dummy](1) is used."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/package.json","uriBaseId":"%SRCROOT%","index":144},"region":{"startLine":15,"startColumn":15,"endColumn":22}}}],"partialFingerprints":{"primaryLocationLineHash":"2a27bf058be4572:1","primaryLocationStartColumnFingerprint":"8"},"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/package.json","uriBaseId":"%SRCROOT%","index":144},"region":{"startLine":15,"startColumn":15,"endColumn":22}},"message":{"text":"dummy"}}]},{"ruleId":"js/cap-non-prod-auth-strategy","rule":{"id":"js/cap-non-prod-auth-strategy","index":5,"toolComponent":{"index":8}},"message":{"text":"Non-production authentication strategy [mocked](1) is used."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/package.json","uriBaseId":"%SRCROOT%","index":151},"region":{"startLine":21,"startColumn":15,"endColumn":23}}}],"partialFingerprints":{"primaryLocationLineHash":"2af5230c91e6a4cd:1","primaryLocationStartColumnFingerprint":"8"},"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/package.json","uriBaseId":"%SRCROOT%","index":151},"region":{"startLine":21,"startColumn":15,"endColumn":23}},"message":{"text":"mocked"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":15,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"77d560033d30e171:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":12,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":13,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":13,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":13,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":13,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":13,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":14,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":14,"startColumn":48,"endColumn":58}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":14,"startColumn":21,"endColumn":59}},"message":{"text":"SELECT. ... \" + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":14,"startColumn":13,"endColumn":59}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":15,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":12,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":21,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"8ebfcdb6d8e3226a:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":18,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":19,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":19,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":19,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":19,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":19,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":20,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":20,"startColumn":48,"endColumn":58}},"message":{"text":"`ID=` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":20,"startColumn":21,"endColumn":59}},"message":{"text":"SELECT. ... ` + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":20,"startColumn":13,"endColumn":59}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":21,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":18,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":27,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"d00fe3143fd387fc:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":24,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":25,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":25,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":25,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":25,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":25,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":26,"startColumn":54,"endColumn":56}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":26,"startColumn":48,"endColumn":58}},"message":{"text":"`ID=${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":26,"startColumn":21,"endColumn":59}},"message":{"text":"SELECT. ... ${id}`)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":26,"startColumn":13,"endColumn":59}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":27,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":24,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":38,"startColumn":7,"endColumn":45}}}],"partialFingerprints":{"primaryLocationLineHash":"29bf643a411d8976:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":36,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":37,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":37,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":37,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":37,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":37,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":38,"startColumn":42,"endColumn":44}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":38,"startColumn":33,"endColumn":44}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":36,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":43,"startColumn":7,"endColumn":45}}}],"partialFingerprints":{"primaryLocationLineHash":"ef21b26f64e7e417:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":41,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":42,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":42,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":42,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":42,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":42,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":43,"startColumn":42,"endColumn":44}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":43,"startColumn":33,"endColumn":44}},"message":{"text":"`ID =` + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":41,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":48,"startColumn":7,"endColumn":44}}}],"partialFingerprints":{"primaryLocationLineHash":"9d03b555ff929ea0:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":46,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":47,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":47,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":47,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":47,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":47,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":48,"startColumn":39,"endColumn":41}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":48,"startColumn":33,"endColumn":43}},"message":{"text":"`ID=${id}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":46,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":73,"startColumn":7,"endColumn":78}}}],"partialFingerprints":{"primaryLocationLineHash":"b7f3fae4cc5d3224:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":71,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":19,"endColumn":25}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":73,"startColumn":49,"endColumn":55}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":73,"startColumn":33,"endColumn":55}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":71,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":73,"startColumn":75,"endColumn":77}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":73,"startColumn":63,"endColumn":77}},"message":{"text":"\"col1 = \" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":71,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":78,"startColumn":7,"endColumn":78}}}],"partialFingerprints":{"primaryLocationLineHash":"6a3ab8595760f6c0:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":76,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":19,"endColumn":25}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":78,"startColumn":49,"endColumn":55}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":78,"startColumn":33,"endColumn":55}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":76,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":78,"startColumn":75,"endColumn":77}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":78,"startColumn":63,"endColumn":77}},"message":{"text":"`col1 = ` + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":76,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":83,"startColumn":7,"endColumn":78}}}],"partialFingerprints":{"primaryLocationLineHash":"342691d0eacbdb40:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":81,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":19,"endColumn":25}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":83,"startColumn":49,"endColumn":55}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":83,"startColumn":33,"endColumn":55}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":81,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":83,"startColumn":73,"endColumn":75}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":83,"startColumn":63,"endColumn":77}},"message":{"text":"`col1 = ${id}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":81,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":88,"startColumn":7,"endColumn":76}}}],"partialFingerprints":{"primaryLocationLineHash":"e84c1b8cf5608a54:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":86,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":87,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":87,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":87,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":87,"startColumn":19,"endColumn":25}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":87,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":88,"startColumn":49,"endColumn":55}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":88,"startColumn":33,"endColumn":55}},"message":{"text":"\"col1 = ... amount"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":86,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":123,"startColumn":7,"endColumn":47}}}],"partialFingerprints":{"primaryLocationLineHash":"c8e83fb2aff22206:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":121,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":122,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":122,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":122,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":122,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":122,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":123,"startColumn":44,"endColumn":46}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":123,"startColumn":35,"endColumn":46}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":121,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":128,"startColumn":7,"endColumn":47}}}],"partialFingerprints":{"primaryLocationLineHash":"980ed798eb9fd08f:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":126,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":127,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":127,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":127,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":127,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":127,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":128,"startColumn":44,"endColumn":46}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":128,"startColumn":35,"endColumn":46}},"message":{"text":"`ID =` + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":126,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":133,"startColumn":7,"endColumn":48}}}],"partialFingerprints":{"primaryLocationLineHash":"580b744db9ff8fbe:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":131,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":132,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":132,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":132,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":132,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":132,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":133,"startColumn":43,"endColumn":45}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":133,"startColumn":35,"endColumn":47}},"message":{"text":"`ID = ${id}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":131,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":145,"startColumn":13,"endColumn":58}}}],"partialFingerprints":{"primaryLocationLineHash":"d28f5758e8f2b020:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":142,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":143,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":143,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":143,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":143,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":143,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":145,"startColumn":55,"endColumn":57}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":145,"startColumn":47,"endColumn":57}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":145,"startColumn":13,"endColumn":58}},"message":{"text":"SELECT. ... \" + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":145,"startColumn":7,"endColumn":58}},"message":{"text":"await S ... \" + id)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":142,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":151,"startColumn":13,"endColumn":58}}}],"partialFingerprints":{"primaryLocationLineHash":"39e9cbf3cbd9ae3c:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":148,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":149,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":149,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":149,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":149,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":149,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":151,"startColumn":55,"endColumn":57}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":151,"startColumn":47,"endColumn":57}},"message":{"text":"`ID=` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":151,"startColumn":13,"endColumn":58}},"message":{"text":"SELECT. ... ` + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":151,"startColumn":7,"endColumn":58}},"message":{"text":"await S ... ` + id)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":148,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":157,"startColumn":13,"endColumn":58}}}],"partialFingerprints":{"primaryLocationLineHash":"b86271478f0d53f6:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":154,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":155,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":155,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":155,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":155,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":155,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":157,"startColumn":53,"endColumn":55}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":157,"startColumn":47,"endColumn":57}},"message":{"text":"`ID=${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":157,"startColumn":13,"endColumn":58}},"message":{"text":"SELECT. ... ${id}`)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":157,"startColumn":7,"endColumn":58}},"message":{"text":"await S ... ${id}`)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":154,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":13,"endColumn":88}}}],"partialFingerprints":{"primaryLocationLineHash":"12cb305ba21e438f:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":184,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":66,"endColumn":68}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":47,"endColumn":68}},"message":{"text":"\"col1 = ... \" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":13,"endColumn":88}},"message":{"text":"UPDATE. ... \" + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":7,"endColumn":88}},"message":{"text":"await U ... \" + id)"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":184,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":85,"endColumn":87}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":76,"endColumn":87}},"message":{"text":"\"ID =\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":13,"endColumn":88}},"message":{"text":"UPDATE. ... \" + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":7,"endColumn":88}},"message":{"text":"await U ... \" + id)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":184,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":13,"endColumn":88}}}],"partialFingerprints":{"primaryLocationLineHash":"16a5323b901d361b:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":190,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":66,"endColumn":68}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":47,"endColumn":68}},"message":{"text":"\"col1 = ... \" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":13,"endColumn":88}},"message":{"text":"UPDATE. ... ` + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":7,"endColumn":88}},"message":{"text":"await U ... ` + id)"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":190,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":85,"endColumn":87}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":76,"endColumn":87}},"message":{"text":"`ID =` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":13,"endColumn":88}},"message":{"text":"UPDATE. ... ` + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":7,"endColumn":88}},"message":{"text":"await U ... ` + id)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":190,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":13,"endColumn":89}}}],"partialFingerprints":{"primaryLocationLineHash":"ec3b26f51764a997:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":196,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":66,"endColumn":68}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":47,"endColumn":68}},"message":{"text":"\"col1 = ... \" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":13,"endColumn":89}},"message":{"text":"UPDATE. ... ${id}`)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":7,"endColumn":89}},"message":{"text":"await U ... ${id}`)"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":196,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":84,"endColumn":86}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":76,"endColumn":88}},"message":{"text":"`ID = ${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":13,"endColumn":89}},"message":{"text":"UPDATE. ... ${id}`)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":7,"endColumn":89}},"message":{"text":"await U ... ${id}`)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":196,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":205,"startColumn":13,"endColumn":87}}}],"partialFingerprints":{"primaryLocationLineHash":"1ab4a8658ea07927:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":202,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":203,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":203,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":203,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":203,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":203,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":205,"startColumn":66,"endColumn":68}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":205,"startColumn":47,"endColumn":68}},"message":{"text":"\"col1 = ... \" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":205,"startColumn":13,"endColumn":87}},"message":{"text":"UPDATE. ... ${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":205,"startColumn":7,"endColumn":87}},"message":{"text":"await U ... ${id}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":202,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":229,"startColumn":13,"endColumn":59}}}],"partialFingerprints":{"primaryLocationLineHash":"c191f9b82574b477:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":226,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":227,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":227,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":227,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":227,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":227,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":229,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":229,"startColumn":47,"endColumn":58}},"message":{"text":"\"ID =\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":229,"startColumn":13,"endColumn":59}},"message":{"text":"DELETE. ... \" + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":229,"startColumn":7,"endColumn":59}},"message":{"text":"await D ... \" + id)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":226,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":235,"startColumn":13,"endColumn":59}}}],"partialFingerprints":{"primaryLocationLineHash":"28ec6e53085bb293:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":232,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":233,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":233,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":233,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":233,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":233,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":235,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":235,"startColumn":47,"endColumn":58}},"message":{"text":"`ID =` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":235,"startColumn":13,"endColumn":59}},"message":{"text":"DELETE. ... ` + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":235,"startColumn":7,"endColumn":59}},"message":{"text":"await D ... ` + id)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":232,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":241,"startColumn":13,"endColumn":60}}}],"partialFingerprints":{"primaryLocationLineHash":"a76513a6cb8f584d:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":238,"startColumn":33,"endColumn":36}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":239,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":239,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":239,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":239,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":239,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":241,"startColumn":55,"endColumn":57}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":241,"startColumn":47,"endColumn":59}},"message":{"text":"`ID = ${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":241,"startColumn":13,"endColumn":60}},"message":{"text":"DELETE. ... ${id}`)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":241,"startColumn":7,"endColumn":60}},"message":{"text":"await D ... ${id}`)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":238,"startColumn":33,"endColumn":36}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":254,"startColumn":16,"endColumn":21}}}],"partialFingerprints":{"primaryLocationLineHash":"e396e28dff49f821:1","primaryLocationStartColumnFingerprint":"9"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":251,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":252,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":252,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":252,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":252,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":252,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":253,"startColumn":63,"endColumn":65}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":253,"startColumn":55,"endColumn":65}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":253,"startColumn":21,"endColumn":66}},"message":{"text":"SELECT. ... \" + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":253,"startColumn":13,"endColumn":66}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":254,"startColumn":16,"endColumn":21}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":251,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":259,"startColumn":7,"endColumn":53}}}],"partialFingerprints":{"primaryLocationLineHash":"4710d78c10aa291b:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":257,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":258,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":258,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":258,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":258,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":258,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":259,"startColumn":50,"endColumn":52}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":259,"startColumn":41,"endColumn":52}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":257,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":269,"startColumn":7,"endColumn":86}}}],"partialFingerprints":{"primaryLocationLineHash":"6f850daa3f58c276:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":267,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":19,"endColumn":25}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":269,"startColumn":57,"endColumn":63}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":269,"startColumn":41,"endColumn":63}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":267,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":269,"startColumn":83,"endColumn":85}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":269,"startColumn":71,"endColumn":85}},"message":{"text":"\"col1 = \" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":267,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":284,"startColumn":7,"endColumn":55}}}],"partialFingerprints":{"primaryLocationLineHash":"b9f8b15603ad6b38:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":282,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":283,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":283,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":283,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":283,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":283,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":284,"startColumn":52,"endColumn":54}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":284,"startColumn":43,"endColumn":54}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":282,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":292,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"d576c66caddc969a:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":288,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":289,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":289,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":289,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":289,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":289,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":291,"startColumn":63,"endColumn":65}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":291,"startColumn":55,"endColumn":65}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":291,"startColumn":21,"endColumn":66}},"message":{"text":"SELECT. ... \" + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":291,"startColumn":13,"endColumn":66}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":292,"startColumn":20,"endColumn":25}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":288,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":298,"startColumn":7,"endColumn":57}}}],"partialFingerprints":{"primaryLocationLineHash":"3b0cd005704d307:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":295,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":296,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":296,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":296,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":296,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":296,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":298,"startColumn":54,"endColumn":56}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":298,"startColumn":45,"endColumn":56}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":295,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":310,"startColumn":7,"endColumn":90}}}],"partialFingerprints":{"primaryLocationLineHash":"a2422d95f31b0028:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":307,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":19,"endColumn":25}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":310,"startColumn":61,"endColumn":67}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":310,"startColumn":45,"endColumn":67}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":307,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":310,"startColumn":87,"endColumn":89}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":310,"startColumn":75,"endColumn":89}},"message":{"text":"\"col1 = \" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":307,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":328,"startColumn":7,"endColumn":59}}}],"partialFingerprints":{"primaryLocationLineHash":"53b68a547e06f5f5:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":325,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":326,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":326,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":326,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":326,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":326,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":328,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":328,"startColumn":47,"endColumn":58}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":325,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":336,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"ef4fafb0cb633d3e:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":332,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":333,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":333,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":333,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":333,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":333,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":335,"startColumn":72,"endColumn":74}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":335,"startColumn":28,"endColumn":74}},"message":{"text":"\"SELECT ... =\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":335,"startColumn":21,"endColumn":75}},"message":{"text":"cds.ql( ... \" + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":335,"startColumn":13,"endColumn":75}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":336,"startColumn":20,"endColumn":25}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":332,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":343,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"70bf4adf3ece4680:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":339,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":340,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":340,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":340,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":340,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":340,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":342,"startColumn":72,"endColumn":74}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":342,"startColumn":28,"endColumn":74}},"message":{"text":"`SELECT ... =` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":342,"startColumn":21,"endColumn":75}},"message":{"text":"cds.ql( ... ` + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":342,"startColumn":13,"endColumn":75}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":343,"startColumn":20,"endColumn":25}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":339,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":350,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"b17718767883cb21:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":346,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":347,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":347,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":347,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":347,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":347,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":349,"startColumn":71,"endColumn":73}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":349,"startColumn":28,"endColumn":75}},"message":{"text":"`SELECT ... ${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":349,"startColumn":21,"endColumn":76}},"message":{"text":"cds.ql( ... ${id}`)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":349,"startColumn":13,"endColumn":76}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":350,"startColumn":20,"endColumn":25}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":346,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":364,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"a684f52297f0c4e5:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":361,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":362,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":362,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":362,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":362,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":362,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":363,"startColumn":72,"endColumn":74}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":363,"startColumn":35,"endColumn":74}},"message":{"text":"\"SELECT ... =\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":363,"startColumn":21,"endColumn":75}},"message":{"text":"cds.par ... \" + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":363,"startColumn":13,"endColumn":75}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":364,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":361,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":370,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"d550e0002cd278da:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":367,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":368,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":368,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":368,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":368,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":368,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":369,"startColumn":72,"endColumn":74}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":369,"startColumn":35,"endColumn":74}},"message":{"text":"`SELECT ... =` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":369,"startColumn":21,"endColumn":75}},"message":{"text":"cds.par ... ` + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":369,"startColumn":13,"endColumn":75}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":370,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":367,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":376,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"6a27aa8587353580:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":373,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":374,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":374,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":374,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":374,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":374,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":375,"startColumn":71,"endColumn":73}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":375,"startColumn":35,"endColumn":75}},"message":{"text":"`SELECT ... ${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":375,"startColumn":21,"endColumn":76}},"message":{"text":"cds.par ... ${id}`)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":375,"startColumn":13,"endColumn":76}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":376,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":373,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":389,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"69fde7291c8fc74e:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":386,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":387,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":387,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":387,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":387,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":387,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":388,"startColumn":62,"endColumn":64}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":388,"startColumn":25,"endColumn":64}},"message":{"text":"\"SELECT ... =\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":388,"startColumn":21,"endColumn":65}},"message":{"text":"CQL(\"SE ... \" + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":388,"startColumn":13,"endColumn":65}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":389,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":386,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":395,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"98c9d206b1717b43:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":392,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":393,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":393,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":393,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":393,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":393,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":394,"startColumn":62,"endColumn":64}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":394,"startColumn":25,"endColumn":64}},"message":{"text":"`SELECT ... =` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":394,"startColumn":21,"endColumn":65}},"message":{"text":"CQL(`SE ... ` + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":394,"startColumn":13,"endColumn":65}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":395,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":392,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":401,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"d013e7d9793c061d:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":398,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":399,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":399,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":399,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":399,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":399,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":400,"startColumn":61,"endColumn":63}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":400,"startColumn":25,"endColumn":65}},"message":{"text":"`SELECT ... ${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":400,"startColumn":21,"endColumn":66}},"message":{"text":"CQL(`SE ... ${id}`)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":400,"startColumn":13,"endColumn":66}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":401,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":398,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":415,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"3fb9a1da0acd43ae:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":411,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":412,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":412,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":412,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":412,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":412,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":414,"startColumn":58,"endColumn":60}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":414,"startColumn":21,"endColumn":60}},"message":{"text":"\"SELECT ... =\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":414,"startColumn":13,"endColumn":60}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":415,"startColumn":20,"endColumn":25}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":411,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":422,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"80716f714482c84f:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":418,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":419,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":419,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":419,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":419,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":419,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":421,"startColumn":58,"endColumn":60}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":421,"startColumn":21,"endColumn":60}},"message":{"text":"`SELECT ... =` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":421,"startColumn":13,"endColumn":60}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":422,"startColumn":20,"endColumn":25}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":418,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":429,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"442267e255b8b54f:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":425,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":426,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":426,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":426,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":426,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":426,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":428,"startColumn":57,"endColumn":59}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":428,"startColumn":21,"endColumn":61}},"message":{"text":"`SELECT ... ${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":428,"startColumn":13,"endColumn":61}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":429,"startColumn":20,"endColumn":25}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":425,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":438,"startColumn":16,"endColumn":21}}}],"partialFingerprints":{"primaryLocationLineHash":"9e2cec8d31f74921:1","primaryLocationStartColumnFingerprint":"7"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":433,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":434,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":434,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":434,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":434,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":434,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":436,"startColumn":63,"endColumn":65}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":436,"startColumn":55,"endColumn":65}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":436,"startColumn":21,"endColumn":66}},"message":{"text":"SELECT. ... \" + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":436,"startColumn":13,"endColumn":66}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":438,"startColumn":16,"endColumn":21}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":433,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":446,"startColumn":9,"endColumn":53}}}],"partialFingerprints":{"primaryLocationLineHash":"73ba3ff2097c8fd1:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":442,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":443,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":443,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":443,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":443,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":443,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":446,"startColumn":50,"endColumn":52}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":446,"startColumn":41,"endColumn":52}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":442,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":462,"startColumn":9,"endColumn":86}}}],"partialFingerprints":{"primaryLocationLineHash":"b6b098d76a485f57:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":458,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":19,"endColumn":25}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":462,"startColumn":57,"endColumn":63}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":462,"startColumn":41,"endColumn":63}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":458,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":462,"startColumn":83,"endColumn":85}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":462,"startColumn":71,"endColumn":85}},"message":{"text":"\"col1 = \" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":458,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":486,"startColumn":9,"endColumn":55}}}],"partialFingerprints":{"primaryLocationLineHash":"930f7b78e736551b:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":482,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":483,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":483,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":483,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":483,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":483,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":486,"startColumn":52,"endColumn":54}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":486,"startColumn":43,"endColumn":54}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":482,"startColumn":30,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":495,"startColumn":16,"endColumn":21}}}],"partialFingerprints":{"primaryLocationLineHash":"cd8266cd9539b760:1","primaryLocationStartColumnFingerprint":"7"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":491,"startColumn":31,"endColumn":34}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":492,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":492,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":492,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":492,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":492,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":493,"startColumn":63,"endColumn":65}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":493,"startColumn":55,"endColumn":65}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":493,"startColumn":21,"endColumn":66}},"message":{"text":"SELECT. ... \" + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":493,"startColumn":13,"endColumn":66}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":495,"startColumn":16,"endColumn":21}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":491,"startColumn":31,"endColumn":34}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":502,"startColumn":9,"endColumn":53}}}],"partialFingerprints":{"primaryLocationLineHash":"5298b55f76bd7434:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":499,"startColumn":31,"endColumn":34}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":500,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":500,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":500,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":500,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":500,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":502,"startColumn":50,"endColumn":52}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":502,"startColumn":41,"endColumn":52}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":499,"startColumn":31,"endColumn":34}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":516,"startColumn":9,"endColumn":86}}}],"partialFingerprints":{"primaryLocationLineHash":"f72e0c4e0d3cd372:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":513,"startColumn":31,"endColumn":34}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":19,"endColumn":25}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":516,"startColumn":57,"endColumn":63}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":516,"startColumn":41,"endColumn":63}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":513,"startColumn":31,"endColumn":34}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":516,"startColumn":83,"endColumn":85}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":516,"startColumn":71,"endColumn":85}},"message":{"text":"\"col1 = \" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":513,"startColumn":31,"endColumn":34}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":537,"startColumn":9,"endColumn":55}}}],"partialFingerprints":{"primaryLocationLineHash":"d38ceeef8a2ac936:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":534,"startColumn":31,"endColumn":34}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":535,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":535,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":535,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":535,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":535,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":537,"startColumn":52,"endColumn":54}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":537,"startColumn":43,"endColumn":54}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":534,"startColumn":31,"endColumn":34}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":546,"startColumn":16,"endColumn":21}}}],"partialFingerprints":{"primaryLocationLineHash":"e46cd48130ebf859:1","primaryLocationStartColumnFingerprint":"7"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":542,"startColumn":31,"endColumn":34}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":543,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":543,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":543,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":543,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":543,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":544,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":544,"startColumn":48,"endColumn":58}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":544,"startColumn":21,"endColumn":59}},"message":{"text":"SELECT. ... \" + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":544,"startColumn":13,"endColumn":59}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":546,"startColumn":16,"endColumn":21}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":542,"startColumn":31,"endColumn":34}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":553,"startColumn":9,"endColumn":46}}}],"partialFingerprints":{"primaryLocationLineHash":"ecbeb50b953c6892:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":550,"startColumn":31,"endColumn":34}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":551,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":551,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":551,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":551,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":551,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":553,"startColumn":43,"endColumn":45}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":553,"startColumn":34,"endColumn":45}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":550,"startColumn":31,"endColumn":34}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":567,"startColumn":9,"endColumn":79}}}],"partialFingerprints":{"primaryLocationLineHash":"558b998facd3da37:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":564,"startColumn":31,"endColumn":34}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":19,"endColumn":25}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":567,"startColumn":50,"endColumn":56}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":567,"startColumn":34,"endColumn":56}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":564,"startColumn":31,"endColumn":34}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":567,"startColumn":76,"endColumn":78}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":567,"startColumn":64,"endColumn":78}},"message":{"text":"\"col1 = \" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":564,"startColumn":31,"endColumn":34}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":588,"startColumn":9,"endColumn":48}}}],"partialFingerprints":{"primaryLocationLineHash":"91becd2fa07cdcc9:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":585,"startColumn":31,"endColumn":34}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":586,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":586,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":586,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":586,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":586,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":588,"startColumn":45,"endColumn":47}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":588,"startColumn":36,"endColumn":47}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":585,"startColumn":31,"endColumn":34}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":597,"startColumn":16,"endColumn":21}}}],"partialFingerprints":{"primaryLocationLineHash":"fb574234cc9e3952:1","primaryLocationStartColumnFingerprint":"7"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":593,"startColumn":31,"endColumn":34}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":594,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":594,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":594,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":594,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":594,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":595,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":595,"startColumn":48,"endColumn":58}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":595,"startColumn":21,"endColumn":59}},"message":{"text":"SELECT. ... \" + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":595,"startColumn":13,"endColumn":59}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":597,"startColumn":16,"endColumn":21}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":593,"startColumn":31,"endColumn":34}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":604,"startColumn":9,"endColumn":46}}}],"partialFingerprints":{"primaryLocationLineHash":"ecbeb50b995e8367:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":601,"startColumn":31,"endColumn":34}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":602,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":602,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":602,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":602,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":602,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":604,"startColumn":43,"endColumn":45}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":604,"startColumn":34,"endColumn":45}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":601,"startColumn":31,"endColumn":34}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":618,"startColumn":9,"endColumn":79}}}],"partialFingerprints":{"primaryLocationLineHash":"558b998facd3da37:2","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":615,"startColumn":31,"endColumn":34}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":19,"endColumn":25}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":618,"startColumn":50,"endColumn":56}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":618,"startColumn":34,"endColumn":56}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":615,"startColumn":31,"endColumn":34}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":618,"startColumn":76,"endColumn":78}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":618,"startColumn":64,"endColumn":78}},"message":{"text":"\"col1 = \" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":615,"startColumn":31,"endColumn":34}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":639,"startColumn":9,"endColumn":48}}}],"partialFingerprints":{"primaryLocationLineHash":"91becd2fa09975ba:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":636,"startColumn":31,"endColumn":34}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":637,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":637,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":637,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":637,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":637,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":639,"startColumn":45,"endColumn":47}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":639,"startColumn":36,"endColumn":47}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":636,"startColumn":31,"endColumn":34}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":647,"startColumn":18,"endColumn":23}}}],"partialFingerprints":{"primaryLocationLineHash":"1e42917dcc40a599:1","primaryLocationStartColumnFingerprint":"11"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":644,"startColumn":34,"endColumn":37}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":645,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":645,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":645,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":645,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":645,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":646,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":646,"startColumn":48,"endColumn":58}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":646,"startColumn":21,"endColumn":59}},"message":{"text":"SELECT. ... \" + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":646,"startColumn":13,"endColumn":59}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":647,"startColumn":18,"endColumn":23}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":644,"startColumn":34,"endColumn":37}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":653,"startColumn":18,"endColumn":23}}}],"partialFingerprints":{"primaryLocationLineHash":"e6651c34faab8e22:1","primaryLocationStartColumnFingerprint":"11"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":650,"startColumn":34,"endColumn":37}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":651,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":651,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":651,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":651,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":651,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":652,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":652,"startColumn":48,"endColumn":58}},"message":{"text":"`ID=` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":652,"startColumn":21,"endColumn":59}},"message":{"text":"SELECT. ... ` + id)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":652,"startColumn":13,"endColumn":59}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":653,"startColumn":18,"endColumn":23}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":650,"startColumn":34,"endColumn":37}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":659,"startColumn":18,"endColumn":23}}}],"partialFingerprints":{"primaryLocationLineHash":"35109df28cbbc5c:1","primaryLocationStartColumnFingerprint":"11"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":656,"startColumn":34,"endColumn":37}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":657,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":657,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":657,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":657,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":657,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":658,"startColumn":54,"endColumn":56}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":658,"startColumn":48,"endColumn":58}},"message":{"text":"`ID=${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":658,"startColumn":21,"endColumn":59}},"message":{"text":"SELECT. ... ${id}`)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":658,"startColumn":13,"endColumn":59}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":659,"startColumn":18,"endColumn":23}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":656,"startColumn":34,"endColumn":37}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":670,"startColumn":7,"endColumn":48}}}],"partialFingerprints":{"primaryLocationLineHash":"efbe9cdee9ed72b8:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":668,"startColumn":34,"endColumn":37}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":669,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":669,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":669,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":669,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":669,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":670,"startColumn":45,"endColumn":47}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":670,"startColumn":36,"endColumn":47}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":668,"startColumn":34,"endColumn":37}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":675,"startColumn":7,"endColumn":48}}}],"partialFingerprints":{"primaryLocationLineHash":"3a884df2f960d319:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":673,"startColumn":34,"endColumn":37}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":674,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":674,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":674,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":674,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":674,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":675,"startColumn":45,"endColumn":47}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":675,"startColumn":36,"endColumn":47}},"message":{"text":"`ID =` + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":673,"startColumn":34,"endColumn":37}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":680,"startColumn":7,"endColumn":47}}}],"partialFingerprints":{"primaryLocationLineHash":"693c1ad544283ec3:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":678,"startColumn":34,"endColumn":37}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":679,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":679,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":679,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":679,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":679,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":680,"startColumn":42,"endColumn":44}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":680,"startColumn":36,"endColumn":46}},"message":{"text":"`ID=${id}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":678,"startColumn":34,"endColumn":37}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":705,"startColumn":7,"endColumn":81}}}],"partialFingerprints":{"primaryLocationLineHash":"737ffeac7015e49f:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":703,"startColumn":34,"endColumn":37}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":19,"endColumn":25}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":705,"startColumn":52,"endColumn":58}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":705,"startColumn":36,"endColumn":58}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":703,"startColumn":34,"endColumn":37}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":705,"startColumn":78,"endColumn":80}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":705,"startColumn":66,"endColumn":80}},"message":{"text":"\"col1 = \" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":703,"startColumn":34,"endColumn":37}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":710,"startColumn":7,"endColumn":80}}}],"partialFingerprints":{"primaryLocationLineHash":"68fb2832260c17eb:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":708,"startColumn":34,"endColumn":37}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":19,"endColumn":25}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":710,"startColumn":52,"endColumn":58}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":710,"startColumn":36,"endColumn":58}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":708,"startColumn":34,"endColumn":37}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":710,"startColumn":77,"endColumn":79}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":710,"startColumn":66,"endColumn":79}},"message":{"text":"`col1 =` + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":708,"startColumn":34,"endColumn":37}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":715,"startColumn":7,"endColumn":81}}}],"partialFingerprints":{"primaryLocationLineHash":"c05bb3983bd0ec24:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":713,"startColumn":34,"endColumn":37}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":19,"endColumn":25}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":715,"startColumn":52,"endColumn":58}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":715,"startColumn":36,"endColumn":58}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":713,"startColumn":34,"endColumn":37}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":715,"startColumn":76,"endColumn":78}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":715,"startColumn":66,"endColumn":80}},"message":{"text":"`col1 = ${id}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":713,"startColumn":34,"endColumn":37}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":720,"startColumn":7,"endColumn":79}}}],"partialFingerprints":{"primaryLocationLineHash":"a5013b756880128f:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":718,"startColumn":34,"endColumn":37}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":719,"startColumn":30,"endColumn":33}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":719,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":719,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":719,"startColumn":19,"endColumn":25}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":719,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":720,"startColumn":52,"endColumn":58}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":720,"startColumn":36,"endColumn":58}},"message":{"text":"\"col1 = ... amount"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":718,"startColumn":34,"endColumn":37}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":755,"startColumn":7,"endColumn":50}}}],"partialFingerprints":{"primaryLocationLineHash":"aa17f3fb0e89ad00:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":753,"startColumn":34,"endColumn":37}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":754,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":754,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":754,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":754,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":754,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":755,"startColumn":47,"endColumn":49}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":755,"startColumn":38,"endColumn":49}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":753,"startColumn":34,"endColumn":37}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":760,"startColumn":7,"endColumn":50}}}],"partialFingerprints":{"primaryLocationLineHash":"52425ca44df0fb9c:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":758,"startColumn":34,"endColumn":37}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":759,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":759,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":759,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":759,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":759,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":760,"startColumn":47,"endColumn":49}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":760,"startColumn":38,"endColumn":49}},"message":{"text":"`ID =` + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":758,"startColumn":34,"endColumn":37}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":6,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":765,"startColumn":7,"endColumn":51}}}],"partialFingerprints":{"primaryLocationLineHash":"abfa3b0ed80d2aef:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":763,"startColumn":34,"endColumn":37}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":764,"startColumn":22,"endColumn":25}},"message":{"text":"req"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":764,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":764,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":764,"startColumn":15,"endColumn":17}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":764,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":765,"startColumn":46,"endColumn":48}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":765,"startColumn":38,"endColumn":50}},"message":{"text":"`ID = ${id}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":763,"startColumn":34,"endColumn":37}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/xsjs-broken-authentication","rule":{"id":"js/xsjs-broken-authentication","index":0,"toolComponent":{"index":9}},"message":{"text":"Authentication should not be disabled."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/exposed/.xsaccess","uriBaseId":"%SRCROOT%","index":572},"region":{"startLine":3,"startColumn":23,"endColumn":27}}}],"partialFingerprints":{"primaryLocationLineHash":"a900cae7399fb257:1","primaryLocationStartColumnFingerprint":"18"}},{"ruleId":"js/xsjs-broken-authentication","rule":{"id":"js/xsjs-broken-authentication","index":0,"toolComponent":{"index":9}},"message":{"text":"Authentication is missing from the configuration."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/missing_auth/.xsaccess","uriBaseId":"%SRCROOT%","index":573},"region":{"startLine":1,"endLine":4,"endColumn":2}}}],"partialFingerprints":{"primaryLocationLineHash":"b57c6bae252883be:1","primaryLocationStartColumnFingerprint":"0"}},{"ruleId":"js/xsjs-broken-authentication","rule":{"id":"js/xsjs-broken-authentication","index":0,"toolComponent":{"index":9}},"message":{"text":"Authentication should not be disabled."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/xs-app.json","uriBaseId":"%SRCROOT%","index":575},"region":{"startLine":3,"startColumn":29,"endColumn":35}}}],"partialFingerprints":{"primaryLocationLineHash":"7c987b52e21935f7:1","primaryLocationStartColumnFingerprint":"24"}},{"ruleId":"js/xsjs-broken-authentication","rule":{"id":"js/xsjs-broken-authentication","index":0,"toolComponent":{"index":9}},"message":{"text":"Authentication should not be disabled."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/xs-app.json","uriBaseId":"%SRCROOT%","index":575},"region":{"startLine":15,"startColumn":35,"endColumn":41}}}],"partialFingerprints":{"primaryLocationLineHash":"f2aa90ab66c52c3c:1","primaryLocationStartColumnFingerprint":"22"}},{"ruleId":"js/xsjs-url-redirect","rule":{"id":"js/xsjs-url-redirect","index":1,"toolComponent":{"index":9}},"message":{"text":"[This URL](1) depends on a [user-provided value](2)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSUrlRedirect/XSJSUrlRedirect.xsjs","uriBaseId":"%SRCROOT%","index":578},"region":{"startLine":9,"startColumn":38,"endColumn":56}}}],"partialFingerprints":{"primaryLocationLineHash":"f02e3e17e12824b3:1","primaryLocationStartColumnFingerprint":"35"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSUrlRedirect/XSJSUrlRedirect.xsjs","uriBaseId":"%SRCROOT%","index":578},"region":{"startLine":7,"startColumn":28,"endColumn":66}},"message":{"text":"request ... meter\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSUrlRedirect/XSJSUrlRedirect.xsjs","uriBaseId":"%SRCROOT%","index":578},"region":{"startLine":7,"startColumn":7,"endColumn":66}},"message":{"text":"someParameterValue"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSUrlRedirect/XSJSUrlRedirect.xsjs","uriBaseId":"%SRCROOT%","index":578},"region":{"startLine":9,"startColumn":38,"endColumn":56}},"message":{"text":"someParameterValue"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSUrlRedirect/XSJSUrlRedirect.xsjs","uriBaseId":"%SRCROOT%","index":578},"region":{"startLine":9,"startColumn":38,"endColumn":56}},"message":{"text":"This URL"}},{"id":2,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSUrlRedirect/XSJSUrlRedirect.xsjs","uriBaseId":"%SRCROOT%","index":578},"region":{"startLine":7,"startColumn":28,"endColumn":66}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/xsjs-reflected-xss","rule":{"id":"js/xsjs-reflected-xss","index":2,"toolComponent":{"index":9}},"message":{"text":"Reflected XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":576},"region":{"startLine":13,"startColumn":22,"endColumn":66}}}],"partialFingerprints":{"primaryLocationLineHash":"a31830db0e0a3d3c:1","primaryLocationStartColumnFingerprint":"19"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":576},"region":{"startLine":11,"startColumn":29,"endColumn":68}},"message":{"text":"request ... eter1\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":576},"region":{"startLine":11,"startColumn":7,"endColumn":68}},"message":{"text":"someParameterValue1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":576},"region":{"startLine":13,"startColumn":46,"endColumn":65}},"message":{"text":"someParameterValue1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":576},"region":{"startLine":13,"startColumn":22,"endColumn":66}},"message":{"text":"request ... Value1)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":576},"region":{"startLine":11,"startColumn":29,"endColumn":68}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/xsjs-disabled-csrf-protection","rule":{"id":"js/xsjs-disabled-csrf-protection","index":3,"toolComponent":{"index":9}},"message":{"text":"CSRF protection is missing from the configuration."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/exposed/.xsaccess","uriBaseId":"%SRCROOT%","index":572},"region":{"startLine":1,"endLine":4,"endColumn":2}}}],"partialFingerprints":{"primaryLocationLineHash":"c1675fd626f895bf:1","primaryLocationStartColumnFingerprint":"0"}},{"ruleId":"js/xsjs-disabled-csrf-protection","rule":{"id":"js/xsjs-disabled-csrf-protection","index":3,"toolComponent":{"index":9}},"message":{"text":"CSRF protection should not be disabled."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/xs-app.json","uriBaseId":"%SRCROOT%","index":575},"region":{"startLine":14,"startColumn":31,"endColumn":36}}}],"partialFingerprints":{"primaryLocationLineHash":"c66a379bed25dd74:1","primaryLocationStartColumnFingerprint":"18"}},{"ruleId":"js/xsjs-sql-injection","rule":{"id":"js/xsjs-sql-injection","index":4,"toolComponent":{"index":9}},"message":{"text":"This query depends on a [user-provided value](1).\nThis query depends on a [user-provided value](2)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":13,"startColumn":57,"endColumn":62}}}],"partialFingerprints":{"primaryLocationLineHash":"65aa43aa4e46559c:1","primaryLocationStartColumnFingerprint":"54"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":8,"startColumn":40,"endColumn":79}},"message":{"text":"request ... eter1\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":8,"startColumn":29,"endColumn":80}},"message":{"text":"JSON.pa ... ter1\"))"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":8,"startColumn":7,"endColumn":80}},"message":{"text":"someParameterValue1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":10,"startColumn":32,"endColumn":51}},"message":{"text":"someParameterValue1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":10,"startColumn":15,"endColumn":107}},"message":{"text":"\"INSERT ... 2 + \")\""}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":10,"startColumn":7,"endColumn":107}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":13,"startColumn":57,"endColumn":62}},"message":{"text":"query"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":9,"startColumn":40,"endColumn":79}},"message":{"text":"request ... eter2\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":9,"startColumn":29,"endColumn":80}},"message":{"text":"JSON.pa ... ter2\"))"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":9,"startColumn":7,"endColumn":80}},"message":{"text":"someParameterValue2"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":10,"startColumn":82,"endColumn":101}},"message":{"text":"someParameterValue2"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":10,"startColumn":15,"endColumn":107}},"message":{"text":"\"INSERT ... 2 + \")\""}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":10,"startColumn":7,"endColumn":107}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":13,"startColumn":57,"endColumn":62}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":8,"startColumn":40,"endColumn":79}},"message":{"text":"user-provided value"}},{"id":2,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":577},"region":{"startLine":9,"startColumn":40,"endColumn":79}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/xsjs-zip-slip","rule":{"id":"js/xsjs-zip-slip","index":5,"toolComponent":{"index":9}},"message":{"text":"The path of [this zip file](1) being saved depends on a [user-provided value](2)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":12,"startColumn":37,"endColumn":51}}}],"partialFingerprints":{"primaryLocationLineHash":"54d432c04bb48c9c:1","primaryLocationStartColumnFingerprint":"32"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":7,"startColumn":35,"endColumn":62}},"message":{"text":"request ... uffer()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":7,"startColumn":20,"endColumn":63}},"message":{"text":"new $.u ... ffer())"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":7,"startColumn":7,"endColumn":63}},"message":{"text":"zipArchive"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":10,"startColumn":25,"endColumn":35}},"message":{"text":"zipArchive"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":11,"startColumn":65,"endColumn":74}},"message":{"text":"entryPath"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":11,"startColumn":26,"endColumn":75}},"message":{"text":"require ... ryPath)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":11,"startColumn":9,"endColumn":75}},"message":{"text":"targetFilePath"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":12,"startColumn":37,"endColumn":51}},"message":{"text":"targetFilePath"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":12,"startColumn":37,"endColumn":51}},"message":{"text":"this zip file"}},{"id":2,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":7,"startColumn":35,"endColumn":62}},"message":{"text":"user-provided value"}}]}],"newlineSequences":["\r\n","\n"," "," "],"columnKind":"utf16CodeUnits","properties":{"semmle.formatSpecifier":"sarif-latest","metricResults":[{"rule":{"id":"js/summary/lines-of-code","index":103,"toolComponent":{"index":1}},"ruleId":"js/summary/lines-of-code","value":8144},{"rule":{"id":"js/summary/lines-of-user-code","index":104,"toolComponent":{"index":1}},"ruleId":"js/summary/lines-of-user-code","value":6198,"baseline":3541}],"codeqlConfigSummary":{"disableDefaultQueries":false,"queries":[{"type":"builtinSuite","uses":"security-extended"},{"type":"localQuery","uses":"./javascript/frameworks/ui5/src/codeql-suites/javascript-security-extended.qls"},{"type":"localQuery","uses":"./javascript/frameworks/cap/src/codeql-suites/javascript-security-extended.qls"},{"type":"localQuery","uses":"./javascript/frameworks/xsjs/src/codeql-suites/javascript-security-extended.qls"}]},"jobRunUuid":"d47583d9-e7bb-4491-a65f-6ac3b783cb82"}}]}
\ No newline at end of file
+{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"CodeQL","organization":"GitHub","semanticVersion":"2.22.3","notifications":[{"id":"cli/expected-extracted-files/javascript","name":"cli/expected-extracted-files/javascript","shortDescription":{"text":"Expected extracted files"},"fullDescription":{"text":"Files appearing in the source archive that are expected to be extracted."},"defaultConfiguration":{"enabled":true},"properties":{"tags":["expected-extracted-files","telemetry"],"languageDisplayName":"JavaScript"}},{"id":"cli/expected-extracted-files/typescript","name":"cli/expected-extracted-files/typescript","shortDescription":{"text":"Expected extracted files"},"fullDescription":{"text":"Files appearing in the source archive that are expected to be extracted."},"defaultConfiguration":{"enabled":true},"properties":{"tags":["expected-extracted-files","telemetry"],"languageDisplayName":"TypeScript"}},{"id":"cli/expected-extracted-files/python","name":"cli/expected-extracted-files/python","shortDescription":{"text":"Expected extracted files"},"fullDescription":{"text":"Files appearing in the source archive that are expected to be extracted."},"defaultConfiguration":{"enabled":true},"properties":{"tags":["expected-extracted-files","telemetry"],"languageDisplayName":"Python"}},{"id":"cli/platform","name":"cli/platform","shortDescription":{"text":"Platform"},"fullDescription":{"text":"Platform"},"defaultConfiguration":{"enabled":true}},{"id":"codeql-action/zstd-availability","name":"codeql-action/zstd-availability","shortDescription":{"text":"Zstandard availability"},"fullDescription":{"text":"Zstandard availability"},"defaultConfiguration":{"enabled":true}}],"rules":[]},"extensions":[{"name":"generated/extension-pack","semanticVersion":"0.0.0","locations":[{"uri":"file:///home/runner/work/_temp/codeql-database/javascript/temp/extension-pack/","description":{"text":"The QL pack root directory."},"properties":{"tags":["CodeQL/LocalPackRoot"]}},{"uri":"file:///home/runner/work/_temp/codeql-database/javascript/temp/extension-pack/codeql-pack.yml","description":{"text":"The QL pack definition file."},"properties":{"tags":["CodeQL/LocalPackDefinitionFile"]}}],"properties":{"isCodeQLModelPack":true}},{"name":"codeql/javascript-queries","semanticVersion":"2.0.1+da3e5479df71bcec4a0b8e385187065dc6a63eeb","notifications":[{"id":"js/diagnostics/successfully-extracted-files","name":"js/diagnostics/successfully-extracted-files","shortDescription":{"text":"Extracted files"},"fullDescription":{"text":"Lists all files in the source code directory that were extracted."},"defaultConfiguration":{"enabled":true},"properties":{"tags":["successfully-extracted-files"],"description":"Lists all files in the source code directory that were extracted.","id":"js/diagnostics/successfully-extracted-files","kind":"diagnostic","name":"Extracted files"}},{"id":"js/diagnostics/extraction-errors","name":"js/diagnostics/extraction-errors","shortDescription":{"text":"Extraction errors"},"fullDescription":{"text":"List all extraction errors for files in the source code directory."},"defaultConfiguration":{"enabled":true},"properties":{"description":"List all extraction errors for files in the source code directory.","id":"js/diagnostics/extraction-errors","kind":"diagnostic","name":"Extraction errors"}}],"rules":[{"id":"js/angular/double-compilation","name":"js/angular/double-compilation","shortDescription":{"text":"Double compilation"},"fullDescription":{"text":"Recompiling an already compiled part of the DOM can lead to unexpected behavior of directives, performance problems, and memory leaks."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Double compilation\nThe AngularJS compiler processes (parts of) the DOM, determining which directives match which DOM elements, and then applies the directives to the elements. Each DOM element should only be compiled once, otherwise unexpected behavior may result.\n\n\n## Recommendation\nOnly compile new DOM elements.\n\n\n## Example\nThe following example (adapted from the AngularJS developer guide) shows a directive that adds a tooltip to a DOM element, and then compiles the entire element to apply nested directives.\n\n\n```javascript\nangular.module('myapp')\n .directive('addToolTip', function($compile) {\n return {\n link: function(scope, element, attrs) {\n var tooltip = angular.element('A tooltip');\n tooltip.on('mouseenter mouseleave', function() {\n scope.$apply('showToolTip = !showToolTip');\n });\n element.append(tooltip);\n $compile(element)(scope); // NOT OK\n }\n };\n});\n\n```\nThis is problematic, since it will recompile all of `element`, including parts that have already been compiled.\n\nInstead, only the new element should be compiled:\n\n\n```javascript\nangular.module('myapp')\n .directive('addToolTip', function($compile) {\n return {\n link: function(scope, element, attrs) {\n var tooltip = angular.element('A tooltip');\n tooltip.on('mouseenter mouseleave', function() {\n scope.$apply('showToolTip = !showToolTip');\n });\n element.append(tooltip);\n $compile(tooltip)(scope); // OK\n }\n };\n});\n\n```\n\n## References\n* AngularJS Developer Guide: [Double Compilation, and how to avoid it](https://docs.angularjs.org/guide/compiler#double-compilation-and-how-to-avoid-it).\n* Common Weakness Enumeration: [CWE-1176](https://cwe.mitre.org/data/definitions/1176.html).\n","markdown":"# Double compilation\nThe AngularJS compiler processes (parts of) the DOM, determining which directives match which DOM elements, and then applies the directives to the elements. Each DOM element should only be compiled once, otherwise unexpected behavior may result.\n\n\n## Recommendation\nOnly compile new DOM elements.\n\n\n## Example\nThe following example (adapted from the AngularJS developer guide) shows a directive that adds a tooltip to a DOM element, and then compiles the entire element to apply nested directives.\n\n\n```javascript\nangular.module('myapp')\n .directive('addToolTip', function($compile) {\n return {\n link: function(scope, element, attrs) {\n var tooltip = angular.element('A tooltip');\n tooltip.on('mouseenter mouseleave', function() {\n scope.$apply('showToolTip = !showToolTip');\n });\n element.append(tooltip);\n $compile(element)(scope); // NOT OK\n }\n };\n});\n\n```\nThis is problematic, since it will recompile all of `element`, including parts that have already been compiled.\n\nInstead, only the new element should be compiled:\n\n\n```javascript\nangular.module('myapp')\n .directive('addToolTip', function($compile) {\n return {\n link: function(scope, element, attrs) {\n var tooltip = angular.element('A tooltip');\n tooltip.on('mouseenter mouseleave', function() {\n scope.$apply('showToolTip = !showToolTip');\n });\n element.append(tooltip);\n $compile(tooltip)(scope); // OK\n }\n };\n});\n\n```\n\n## References\n* AngularJS Developer Guide: [Double Compilation, and how to avoid it](https://docs.angularjs.org/guide/compiler#double-compilation-and-how-to-avoid-it).\n* Common Weakness Enumeration: [CWE-1176](https://cwe.mitre.org/data/definitions/1176.html).\n"},"properties":{"tags":["reliability","frameworks/angularjs","security","external/cwe/cwe-1176"],"description":"Recompiling an already compiled part of the DOM can lead to\n unexpected behavior of directives, performance problems, and memory leaks.","id":"js/angular/double-compilation","kind":"problem","name":"Double compilation","precision":"very-high","problem.severity":"warning","security-severity":"8.8"}},{"id":"js/angular/disabling-sce","name":"js/angular/disabling-sce","shortDescription":{"text":"Disabling SCE"},"fullDescription":{"text":"Disabling strict contextual escaping (SCE) can cause security vulnerabilities."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Disabling SCE\nAngularJS is secure by default through automated sanitization and filtering of untrusted values that could cause vulnerabilities such as XSS. Strict Contextual Escaping (SCE) is an execution mode in AngularJS that provides this security mechanism.\n\nDisabling SCE in an AngularJS application is strongly discouraged. It is even more discouraged to disable SCE in a library, since it is an application-wide setting.\n\n\n## Recommendation\nDo not disable SCE.\n\n\n## Example\nThe following example shows an AngularJS application that disables SCE in order to dynamically construct an HTML fragment, which is later inserted into the DOM through `$scope.html`.\n\n\n```javascript\nangular.module('app', [])\n .config(function($sceProvider) {\n $sceProvider.enabled(false); // BAD\n }).controller('controller', function($scope) {\n // ...\n $scope.html = '
' + item.toString() + '
';\n });\n\n```\nThis is problematic, since it disables SCE for the entire AngularJS application.\n\nInstead, just mark the dynamically constructed HTML fragment as safe using `$sce.trustAsHtml`, before assigning it to `$scope.html`:\n\n\n```javascript\nangular.module('app', [])\n .controller('controller', function($scope, $sce) {\n // ...\n // GOOD (but should use the templating system instead)\n $scope.html = $sce.trustAsHtml('
' + item.toString() + '
'); \n });\n\n```\nPlease note that this example is for illustrative purposes only; use the AngularJS templating system to dynamically construct HTML when possible.\n\n\n## References\n* AngularJS Developer Guide: [Strict Contextual Escaping](https://docs.angularjs.org/api/ng/service/$sce)\n* AngularJS Developer Guide: [Can I disable SCE completely?](https://docs.angularjs.org/api/ng/service/$sce#can-i-disable-sce-completely-).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n","markdown":"# Disabling SCE\nAngularJS is secure by default through automated sanitization and filtering of untrusted values that could cause vulnerabilities such as XSS. Strict Contextual Escaping (SCE) is an execution mode in AngularJS that provides this security mechanism.\n\nDisabling SCE in an AngularJS application is strongly discouraged. It is even more discouraged to disable SCE in a library, since it is an application-wide setting.\n\n\n## Recommendation\nDo not disable SCE.\n\n\n## Example\nThe following example shows an AngularJS application that disables SCE in order to dynamically construct an HTML fragment, which is later inserted into the DOM through `$scope.html`.\n\n\n```javascript\nangular.module('app', [])\n .config(function($sceProvider) {\n $sceProvider.enabled(false); // BAD\n }).controller('controller', function($scope) {\n // ...\n $scope.html = '
' + item.toString() + '
';\n });\n\n```\nThis is problematic, since it disables SCE for the entire AngularJS application.\n\nInstead, just mark the dynamically constructed HTML fragment as safe using `$sce.trustAsHtml`, before assigning it to `$scope.html`:\n\n\n```javascript\nangular.module('app', [])\n .controller('controller', function($scope, $sce) {\n // ...\n // GOOD (but should use the templating system instead)\n $scope.html = $sce.trustAsHtml('
' + item.toString() + '
'); \n });\n\n```\nPlease note that this example is for illustrative purposes only; use the AngularJS templating system to dynamically construct HTML when possible.\n\n\n## References\n* AngularJS Developer Guide: [Strict Contextual Escaping](https://docs.angularjs.org/api/ng/service/$sce)\n* AngularJS Developer Guide: [Can I disable SCE completely?](https://docs.angularjs.org/api/ng/service/$sce#can-i-disable-sce-completely-).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n"},"properties":{"tags":["security","maintainability","frameworks/angularjs","external/cwe/cwe-116"],"description":"Disabling strict contextual escaping (SCE) can cause security vulnerabilities.","id":"js/angular/disabling-sce","kind":"problem","name":"Disabling SCE","precision":"very-high","problem.severity":"warning","security-severity":"7.8"}},{"id":"js/angular/insecure-url-whitelist","name":"js/angular/insecure-url-whitelist","shortDescription":{"text":"Insecure URL whitelist"},"fullDescription":{"text":"URL whitelists that are too permissive can cause security vulnerabilities."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Insecure URL whitelist\nAngularJS uses filters to ensure that the URLs used for sourcing AngularJS templates and other script-running URLs are safe. One such filter is a whitelist of URL patterns to allow.\n\nA URL pattern that is too permissive can cause security vulnerabilities.\n\n\n## Recommendation\nMake the whitelist URL patterns as restrictive as possible.\n\n\n## Example\nThe following example shows an AngularJS application with whitelist URL patterns that all are too permissive.\n\n\n```javascript\nangular.module('myApp', [])\n .config(function($sceDelegateProvider) {\n $sceDelegateProvider.resourceUrlWhitelist([\n \"*://example.org/*\", // BAD\n \"https://**.example.com/*\", // BAD\n \"https://example.**\", // BAD\n \"https://example.*\" // BAD\n ]);\n });\n\n```\nThis is problematic, since the four patterns match the following malicious URLs, respectively:\n\n* `javascript://example.org/a%0A%0Dalert(1)` (`%0A%0D` is a linebreak)\n* `https://evil.com/?ignore=://example.com/a`\n* `https://example.evil.com`\n* `https://example.evilTld`\n\n## References\n* OWASP/Google presentation: [Securing AngularJS Applications](https://www.owasp.org/images/6/6e/Benelus_day_20161125_S_Lekies_Securing_AngularJS_Applications.pdf)\n* AngularJS Developer Guide: [Format of items in resourceUrlWhitelist/Blacklist](https://docs.angularjs.org/api/ng/service/$sce#resourceUrlPatternItem).\n* Common Weakness Enumeration: [CWE-183](https://cwe.mitre.org/data/definitions/183.html).\n* Common Weakness Enumeration: [CWE-625](https://cwe.mitre.org/data/definitions/625.html).\n","markdown":"# Insecure URL whitelist\nAngularJS uses filters to ensure that the URLs used for sourcing AngularJS templates and other script-running URLs are safe. One such filter is a whitelist of URL patterns to allow.\n\nA URL pattern that is too permissive can cause security vulnerabilities.\n\n\n## Recommendation\nMake the whitelist URL patterns as restrictive as possible.\n\n\n## Example\nThe following example shows an AngularJS application with whitelist URL patterns that all are too permissive.\n\n\n```javascript\nangular.module('myApp', [])\n .config(function($sceDelegateProvider) {\n $sceDelegateProvider.resourceUrlWhitelist([\n \"*://example.org/*\", // BAD\n \"https://**.example.com/*\", // BAD\n \"https://example.**\", // BAD\n \"https://example.*\" // BAD\n ]);\n });\n\n```\nThis is problematic, since the four patterns match the following malicious URLs, respectively:\n\n* `javascript://example.org/a%0A%0Dalert(1)` (`%0A%0D` is a linebreak)\n* `https://evil.com/?ignore=://example.com/a`\n* `https://example.evil.com`\n* `https://example.evilTld`\n\n## References\n* OWASP/Google presentation: [Securing AngularJS Applications](https://www.owasp.org/images/6/6e/Benelus_day_20161125_S_Lekies_Securing_AngularJS_Applications.pdf)\n* AngularJS Developer Guide: [Format of items in resourceUrlWhitelist/Blacklist](https://docs.angularjs.org/api/ng/service/$sce#resourceUrlPatternItem).\n* Common Weakness Enumeration: [CWE-183](https://cwe.mitre.org/data/definitions/183.html).\n* Common Weakness Enumeration: [CWE-625](https://cwe.mitre.org/data/definitions/625.html).\n"},"properties":{"tags":["security","frameworks/angularjs","external/cwe/cwe-183","external/cwe/cwe-625"],"description":"URL whitelists that are too permissive can cause security vulnerabilities.","id":"js/angular/insecure-url-whitelist","kind":"problem","name":"Insecure URL whitelist","precision":"very-high","problem.severity":"warning","security-severity":"7.5"}},{"id":"js/identity-replacement","name":"js/identity-replacement","shortDescription":{"text":"Replacement of a substring with itself"},"fullDescription":{"text":"Replacing a substring with itself has no effect and may indicate a mistake."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Replacement of a substring with itself\nReplacing a substring with itself has no effect and usually indicates a mistake, such as misspelling a backslash escape.\n\n\n## Recommendation\nExamine the string replacement to find and correct any typos.\n\n\n## Example\nThe following code snippet attempts to backslash-escape all double quotes in `raw` by replacing all instances of `\"` with `\\\"`:\n\n\n```javascript\nvar escaped = raw.replace(/\"/g, '\\\"');\n\n```\nHowever, the replacement string `'\\\"'` is actually the same as `'\"'`, with `\\\"` interpreted as an identity escape, so the replacement does nothing. Instead, the replacement string should be `'\\\\\"'`:\n\n\n```javascript\nvar escaped = raw.replace(/\"/g, '\\\\\"');\n\n```\n\n## References\n* Mozilla Developer Network: [String escape notation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#Escape_notation).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n","markdown":"# Replacement of a substring with itself\nReplacing a substring with itself has no effect and usually indicates a mistake, such as misspelling a backslash escape.\n\n\n## Recommendation\nExamine the string replacement to find and correct any typos.\n\n\n## Example\nThe following code snippet attempts to backslash-escape all double quotes in `raw` by replacing all instances of `\"` with `\\\"`:\n\n\n```javascript\nvar escaped = raw.replace(/\"/g, '\\\"');\n\n```\nHowever, the replacement string `'\\\"'` is actually the same as `'\"'`, with `\\\"` interpreted as an identity escape, so the replacement does nothing. Instead, the replacement string should be `'\\\\\"'`:\n\n\n```javascript\nvar escaped = raw.replace(/\"/g, '\\\\\"');\n\n```\n\n## References\n* Mozilla Developer Network: [String escape notation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#Escape_notation).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n"},"properties":{"tags":["correctness","security","external/cwe/cwe-116"],"description":"Replacing a substring with itself has no effect and may indicate a mistake.","id":"js/identity-replacement","kind":"problem","name":"Replacement of a substring with itself","precision":"very-high","problem.severity":"warning","security-severity":"5.0"}},{"id":"js/disabling-electron-websecurity","name":"js/disabling-electron-websecurity","shortDescription":{"text":"Disabling Electron webSecurity"},"fullDescription":{"text":"Disabling webSecurity can cause critical security vulnerabilities."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Disabling Electron webSecurity\nElectron is secure by default through a same-origin policy requiring all JavaScript and CSS code to originate from the machine running the Electron application. Setting the `webSecurity` property of a `webPreferences` object to `false` will disable the same-origin policy.\n\nDisabling the same-origin policy is strongly discouraged.\n\n\n## Recommendation\nDo not disable `webSecurity`.\n\n\n## Example\nThe following example shows `webSecurity` being disabled.\n\n\n```javascript\nconst mainWindow = new BrowserWindow({\n webPreferences: {\n webSecurity: false\n }\n})\n```\nThis is problematic, since it allows the execution of insecure code from other domains.\n\n\n## References\n* Electron Documentation: [Security, Native Capabilities, and Your Responsibility](https://electronjs.org/docs/tutorial/security#5-do-not-disable-websecurity)\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n","markdown":"# Disabling Electron webSecurity\nElectron is secure by default through a same-origin policy requiring all JavaScript and CSS code to originate from the machine running the Electron application. Setting the `webSecurity` property of a `webPreferences` object to `false` will disable the same-origin policy.\n\nDisabling the same-origin policy is strongly discouraged.\n\n\n## Recommendation\nDo not disable `webSecurity`.\n\n\n## Example\nThe following example shows `webSecurity` being disabled.\n\n\n```javascript\nconst mainWindow = new BrowserWindow({\n webPreferences: {\n webSecurity: false\n }\n})\n```\nThis is problematic, since it allows the execution of insecure code from other domains.\n\n\n## References\n* Electron Documentation: [Security, Native Capabilities, and Your Responsibility](https://electronjs.org/docs/tutorial/security#5-do-not-disable-websecurity)\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n"},"properties":{"tags":["security","frameworks/electron","external/cwe/cwe-079"],"description":"Disabling webSecurity can cause critical security vulnerabilities.","id":"js/disabling-electron-websecurity","kind":"problem","name":"Disabling Electron webSecurity","precision":"very-high","problem.severity":"error","security-severity":"6.1"}},{"id":"js/enabling-electron-insecure-content","name":"js/enabling-electron-insecure-content","shortDescription":{"text":"Enabling Electron allowRunningInsecureContent"},"fullDescription":{"text":"Enabling allowRunningInsecureContent can allow remote code execution."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Enabling Electron allowRunningInsecureContent\nElectron is secure by default through a policy banning the execution of content loaded over HTTP. Setting the `allowRunningInsecureContent` property of a `webPreferences` object to `true` will disable this policy.\n\nEnabling the execution of insecure content is strongly discouraged.\n\n\n## Recommendation\nDo not enable the `allowRunningInsecureContent` property.\n\n\n## Example\nThe following example shows `allowRunningInsecureContent` being enabled.\n\n\n```javascript\nconst mainWindow = new BrowserWindow({\n webPreferences: {\n allowRunningInsecureContent: true\n }\n})\n```\nThis is problematic, since it allows the execution of code from an untrusted origin.\n\n\n## References\n* Electron Documentation: [Security, Native Capabilities, and Your Responsibility](https://electronjs.org/docs/tutorial/security#8-do-not-set-allowrunninginsecurecontent-to-true)\n* Common Weakness Enumeration: [CWE-494](https://cwe.mitre.org/data/definitions/494.html).\n","markdown":"# Enabling Electron allowRunningInsecureContent\nElectron is secure by default through a policy banning the execution of content loaded over HTTP. Setting the `allowRunningInsecureContent` property of a `webPreferences` object to `true` will disable this policy.\n\nEnabling the execution of insecure content is strongly discouraged.\n\n\n## Recommendation\nDo not enable the `allowRunningInsecureContent` property.\n\n\n## Example\nThe following example shows `allowRunningInsecureContent` being enabled.\n\n\n```javascript\nconst mainWindow = new BrowserWindow({\n webPreferences: {\n allowRunningInsecureContent: true\n }\n})\n```\nThis is problematic, since it allows the execution of code from an untrusted origin.\n\n\n## References\n* Electron Documentation: [Security, Native Capabilities, and Your Responsibility](https://electronjs.org/docs/tutorial/security#8-do-not-set-allowrunninginsecurecontent-to-true)\n* Common Weakness Enumeration: [CWE-494](https://cwe.mitre.org/data/definitions/494.html).\n"},"properties":{"tags":["security","frameworks/electron","external/cwe/cwe-494"],"description":"Enabling allowRunningInsecureContent can allow remote code execution.","id":"js/enabling-electron-insecure-content","kind":"problem","name":"Enabling Electron allowRunningInsecureContent","precision":"very-high","problem.severity":"error","security-severity":"8.8"}},{"id":"js/polynomial-redos","name":"js/polynomial-redos","shortDescription":{"text":"Polynomial regular expression used on uncontrolled data"},"fullDescription":{"text":"A regular expression that can require polynomial time to match may be vulnerable to denial-of-service attacks."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Polynomial regular expression used on uncontrolled data\nSome regular expressions take a long time to match certain input strings to the point where the time it takes to match a string of length *n* is proportional to *nk* or even *2n*. Such regular expressions can negatively affect performance, or even allow a malicious user to perform a Denial of Service (\"DoS\") attack by crafting an expensive input string for the regular expression to match.\n\nThe regular expression engines provided by many popular JavaScript platforms use backtracking non-deterministic finite automata to implement regular expression matching. While this approach is space-efficient and allows supporting advanced features like capture groups, it is not time-efficient in general. The worst-case time complexity of such an automaton can be polynomial or even exponential, meaning that for strings of a certain shape, increasing the input length by ten characters may make the automaton about 1000 times slower.\n\nTypically, a regular expression is affected by this problem if it contains a repetition of the form `r*` or `r+` where the sub-expression `r` is ambiguous in the sense that it can match some string in multiple ways. More information about the precise circumstances can be found in the references.\n\n\n## Recommendation\nModify the regular expression to remove the ambiguity, or ensure that the strings matched with the regular expression are short enough that the time-complexity does not matter.\n\n\n## Example\nConsider this use of a regular expression, which removes all leading and trailing whitespace in a string:\n\n```javascript\n\ntext.replace(/^\\s+|\\s+$/g, ''); // BAD\n```\nThe sub-expression `\"\\s+$\"` will match the whitespace characters in `text` from left to right, but it can start matching anywhere within a whitespace sequence. This is problematic for strings that do **not** end with a whitespace character. Such a string will force the regular expression engine to process each whitespace sequence once per whitespace character in the sequence.\n\nThis ultimately means that the time cost of trimming a string is quadratic in the length of the string. So a string like `\"a b\"` will take milliseconds to process, but a similar string with a million spaces instead of just one will take several minutes.\n\nAvoid this problem by rewriting the regular expression to not contain the ambiguity about when to start matching whitespace sequences. For instance, by using a negative look-behind (`/^\\s+|(? 1000) {\n throw new Error(\"Input too long\");\n}\n\n/^(\\+|-)?(\\d+|(\\d*\\.\\d*))?(E|e)?([-+])?(\\d+)?$/.test(str)\n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Wikipedia: [Time complexity](https://en.wikipedia.org/wiki/Time_complexity).\n* James Kirrage, Asiri Rathnayake, Hayo Thielecke: [Static Analysis for Regular Expression Denial-of-Service Attack](https://arxiv.org/abs/1301.0849).\n* Common Weakness Enumeration: [CWE-1333](https://cwe.mitre.org/data/definitions/1333.html).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n","markdown":"# Polynomial regular expression used on uncontrolled data\nSome regular expressions take a long time to match certain input strings to the point where the time it takes to match a string of length *n* is proportional to *nk* or even *2n*. Such regular expressions can negatively affect performance, or even allow a malicious user to perform a Denial of Service (\"DoS\") attack by crafting an expensive input string for the regular expression to match.\n\nThe regular expression engines provided by many popular JavaScript platforms use backtracking non-deterministic finite automata to implement regular expression matching. While this approach is space-efficient and allows supporting advanced features like capture groups, it is not time-efficient in general. The worst-case time complexity of such an automaton can be polynomial or even exponential, meaning that for strings of a certain shape, increasing the input length by ten characters may make the automaton about 1000 times slower.\n\nTypically, a regular expression is affected by this problem if it contains a repetition of the form `r*` or `r+` where the sub-expression `r` is ambiguous in the sense that it can match some string in multiple ways. More information about the precise circumstances can be found in the references.\n\n\n## Recommendation\nModify the regular expression to remove the ambiguity, or ensure that the strings matched with the regular expression are short enough that the time-complexity does not matter.\n\n\n## Example\nConsider this use of a regular expression, which removes all leading and trailing whitespace in a string:\n\n```javascript\n\ntext.replace(/^\\s+|\\s+$/g, ''); // BAD\n```\nThe sub-expression `\"\\s+$\"` will match the whitespace characters in `text` from left to right, but it can start matching anywhere within a whitespace sequence. This is problematic for strings that do **not** end with a whitespace character. Such a string will force the regular expression engine to process each whitespace sequence once per whitespace character in the sequence.\n\nThis ultimately means that the time cost of trimming a string is quadratic in the length of the string. So a string like `\"a b\"` will take milliseconds to process, but a similar string with a million spaces instead of just one will take several minutes.\n\nAvoid this problem by rewriting the regular expression to not contain the ambiguity about when to start matching whitespace sequences. For instance, by using a negative look-behind (`/^\\s+|(? 1000) {\n throw new Error(\"Input too long\");\n}\n\n/^(\\+|-)?(\\d+|(\\d*\\.\\d*))?(E|e)?([-+])?(\\d+)?$/.test(str)\n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Wikipedia: [Time complexity](https://en.wikipedia.org/wiki/Time_complexity).\n* James Kirrage, Asiri Rathnayake, Hayo Thielecke: [Static Analysis for Regular Expression Denial-of-Service Attack](https://arxiv.org/abs/1301.0849).\n* Common Weakness Enumeration: [CWE-1333](https://cwe.mitre.org/data/definitions/1333.html).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n"},"properties":{"tags":["security","external/cwe/cwe-1333","external/cwe/cwe-730","external/cwe/cwe-400"],"description":"A regular expression that can require polynomial time\n to match may be vulnerable to denial-of-service attacks.","id":"js/polynomial-redos","kind":"path-problem","name":"Polynomial regular expression used on uncontrolled data","precision":"high","problem.severity":"warning","security-severity":"7.5"}},{"id":"js/redos","name":"js/redos","shortDescription":{"text":"Inefficient regular expression"},"fullDescription":{"text":"A regular expression that requires exponential time to match certain inputs can be a performance bottleneck, and may be vulnerable to denial-of-service attacks."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Inefficient regular expression\nSome regular expressions take a long time to match certain input strings to the point where the time it takes to match a string of length *n* is proportional to *nk* or even *2n*. Such regular expressions can negatively affect performance, or even allow a malicious user to perform a Denial of Service (\"DoS\") attack by crafting an expensive input string for the regular expression to match.\n\nThe regular expression engines provided by many popular JavaScript platforms use backtracking non-deterministic finite automata to implement regular expression matching. While this approach is space-efficient and allows supporting advanced features like capture groups, it is not time-efficient in general. The worst-case time complexity of such an automaton can be polynomial or even exponential, meaning that for strings of a certain shape, increasing the input length by ten characters may make the automaton about 1000 times slower.\n\nTypically, a regular expression is affected by this problem if it contains a repetition of the form `r*` or `r+` where the sub-expression `r` is ambiguous in the sense that it can match some string in multiple ways. More information about the precise circumstances can be found in the references.\n\n\n## Recommendation\nModify the regular expression to remove the ambiguity, or ensure that the strings matched with the regular expression are short enough that the time-complexity does not matter.\n\n\n## Example\nConsider this regular expression:\n\n```javascript\n\n/^_(__|.)+_$/\n```\nIts sub-expression `\"(__|.)+?\"` can match the string `\"__\"` either by the first alternative `\"__\"` to the left of the `\"|\"` operator, or by two repetitions of the second alternative `\".\"` to the right. Thus, a string consisting of an odd number of underscores followed by some other character will cause the regular expression engine to run for an exponential amount of time before rejecting the input.\n\nThis problem can be avoided by rewriting the regular expression to remove the ambiguity between the two branches of the alternative inside the repetition:\n\n```javascript\n\n/^_(__|[^_])+_$/\n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Wikipedia: [Time complexity](https://en.wikipedia.org/wiki/Time_complexity).\n* James Kirrage, Asiri Rathnayake, Hayo Thielecke: [Static Analysis for Regular Expression Denial-of-Service Attack](https://arxiv.org/abs/1301.0849).\n* Common Weakness Enumeration: [CWE-1333](https://cwe.mitre.org/data/definitions/1333.html).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n","markdown":"# Inefficient regular expression\nSome regular expressions take a long time to match certain input strings to the point where the time it takes to match a string of length *n* is proportional to *nk* or even *2n*. Such regular expressions can negatively affect performance, or even allow a malicious user to perform a Denial of Service (\"DoS\") attack by crafting an expensive input string for the regular expression to match.\n\nThe regular expression engines provided by many popular JavaScript platforms use backtracking non-deterministic finite automata to implement regular expression matching. While this approach is space-efficient and allows supporting advanced features like capture groups, it is not time-efficient in general. The worst-case time complexity of such an automaton can be polynomial or even exponential, meaning that for strings of a certain shape, increasing the input length by ten characters may make the automaton about 1000 times slower.\n\nTypically, a regular expression is affected by this problem if it contains a repetition of the form `r*` or `r+` where the sub-expression `r` is ambiguous in the sense that it can match some string in multiple ways. More information about the precise circumstances can be found in the references.\n\n\n## Recommendation\nModify the regular expression to remove the ambiguity, or ensure that the strings matched with the regular expression are short enough that the time-complexity does not matter.\n\n\n## Example\nConsider this regular expression:\n\n```javascript\n\n/^_(__|.)+_$/\n```\nIts sub-expression `\"(__|.)+?\"` can match the string `\"__\"` either by the first alternative `\"__\"` to the left of the `\"|\"` operator, or by two repetitions of the second alternative `\".\"` to the right. Thus, a string consisting of an odd number of underscores followed by some other character will cause the regular expression engine to run for an exponential amount of time before rejecting the input.\n\nThis problem can be avoided by rewriting the regular expression to remove the ambiguity between the two branches of the alternative inside the repetition:\n\n```javascript\n\n/^_(__|[^_])+_$/\n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Wikipedia: [Time complexity](https://en.wikipedia.org/wiki/Time_complexity).\n* James Kirrage, Asiri Rathnayake, Hayo Thielecke: [Static Analysis for Regular Expression Denial-of-Service Attack](https://arxiv.org/abs/1301.0849).\n* Common Weakness Enumeration: [CWE-1333](https://cwe.mitre.org/data/definitions/1333.html).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n"},"properties":{"tags":["security","external/cwe/cwe-1333","external/cwe/cwe-730","external/cwe/cwe-400"],"description":"A regular expression that requires exponential time to match certain inputs\n can be a performance bottleneck, and may be vulnerable to denial-of-service\n attacks.","id":"js/redos","kind":"problem","name":"Inefficient regular expression","precision":"high","problem.severity":"error","security-severity":"7.5"}},{"id":"js/missing-rate-limiting","name":"js/missing-rate-limiting","shortDescription":{"text":"Missing rate limiting"},"fullDescription":{"text":"An HTTP request handler that performs expensive operations without restricting the rate at which operations can be carried out is vulnerable to denial-of-service attacks."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Missing rate limiting\nHTTP request handlers should not perform expensive operations such as accessing the file system, executing an operating system command or interacting with a database without limiting the rate at which requests are accepted. Otherwise, the application becomes vulnerable to denial-of-service attacks where an attacker can cause the application to crash or become unresponsive by issuing a large number of requests at the same time.\n\n\n## Recommendation\nA rate-limiting middleware should be used to prevent such attacks.\n\n\n## Example\nThe following example shows an Express application that serves static files without rate limiting:\n\n\n```javascript\nvar express = require('express');\nvar app = express();\n\napp.get('/:path', function(req, res) {\n let path = req.params.path;\n if (isValidPath(path))\n res.sendFile(path);\n});\n\n```\nTo prevent denial-of-service attacks, the `express-rate-limit` package can be used:\n\n\n```javascript\nvar express = require('express');\nvar app = express();\n\n// set up rate limiter: maximum of five requests per minute\nvar RateLimit = require('express-rate-limit');\nvar limiter = RateLimit({\n windowMs: 15 * 60 * 1000, // 15 minutes\n max: 100, // max 100 requests per windowMs\n});\n\n// apply rate limiter to all requests\napp.use(limiter);\n\napp.get('/:path', function(req, res) {\n let path = req.params.path;\n if (isValidPath(path))\n res.sendFile(path);\n});\n\n```\n\n## References\n* OWASP: [Denial of Service Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Denial_of_Service_Cheat_Sheet.html).\n* Wikipedia: [Denial-of-service attack](https://en.wikipedia.org/wiki/Denial-of-service_attack).\n* NPM: [express-rate-limit](https://www.npmjs.com/package/express-rate-limit).\n* Common Weakness Enumeration: [CWE-770](https://cwe.mitre.org/data/definitions/770.html).\n* Common Weakness Enumeration: [CWE-307](https://cwe.mitre.org/data/definitions/307.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n","markdown":"# Missing rate limiting\nHTTP request handlers should not perform expensive operations such as accessing the file system, executing an operating system command or interacting with a database without limiting the rate at which requests are accepted. Otherwise, the application becomes vulnerable to denial-of-service attacks where an attacker can cause the application to crash or become unresponsive by issuing a large number of requests at the same time.\n\n\n## Recommendation\nA rate-limiting middleware should be used to prevent such attacks.\n\n\n## Example\nThe following example shows an Express application that serves static files without rate limiting:\n\n\n```javascript\nvar express = require('express');\nvar app = express();\n\napp.get('/:path', function(req, res) {\n let path = req.params.path;\n if (isValidPath(path))\n res.sendFile(path);\n});\n\n```\nTo prevent denial-of-service attacks, the `express-rate-limit` package can be used:\n\n\n```javascript\nvar express = require('express');\nvar app = express();\n\n// set up rate limiter: maximum of five requests per minute\nvar RateLimit = require('express-rate-limit');\nvar limiter = RateLimit({\n windowMs: 15 * 60 * 1000, // 15 minutes\n max: 100, // max 100 requests per windowMs\n});\n\n// apply rate limiter to all requests\napp.use(limiter);\n\napp.get('/:path', function(req, res) {\n let path = req.params.path;\n if (isValidPath(path))\n res.sendFile(path);\n});\n\n```\n\n## References\n* OWASP: [Denial of Service Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Denial_of_Service_Cheat_Sheet.html).\n* Wikipedia: [Denial-of-service attack](https://en.wikipedia.org/wiki/Denial-of-service_attack).\n* NPM: [express-rate-limit](https://www.npmjs.com/package/express-rate-limit).\n* Common Weakness Enumeration: [CWE-770](https://cwe.mitre.org/data/definitions/770.html).\n* Common Weakness Enumeration: [CWE-307](https://cwe.mitre.org/data/definitions/307.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n"},"properties":{"tags":["security","external/cwe/cwe-770","external/cwe/cwe-307","external/cwe/cwe-400"],"description":"An HTTP request handler that performs expensive operations without\n restricting the rate at which operations can be carried out is vulnerable\n to denial-of-service attacks.","id":"js/missing-rate-limiting","kind":"problem","name":"Missing rate limiting","precision":"high","problem.severity":"warning","security-severity":"7.5"}},{"id":"js/resource-exhaustion","name":"js/resource-exhaustion","shortDescription":{"text":"Resource exhaustion"},"fullDescription":{"text":"Allocating objects or timers with user-controlled sizes or durations can cause resource exhaustion."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Resource exhaustion\nApplications are constrained by how many resources they can make use of. Failing to respect these constraints may cause the application to be unresponsive or crash. It is therefore problematic if attackers can control the sizes or lifetimes of allocated objects.\n\n\n## Recommendation\nEnsure that attackers can not control object sizes and their lifetimes. If object sizes and lifetimes must be controlled by external parties, ensure you restrict the object sizes and lifetimes so that they are within acceptable ranges.\n\n\n## Example\nThe following example allocates a buffer with a user-controlled size.\n\n\n```javascript\nvar http = require(\"http\"),\n url = require(\"url\");\n\nvar server = http.createServer(function(req, res) {\n\tvar size = parseInt(url.parse(req.url, true).query.size);\n\n\tlet buffer = Buffer.alloc(size); // BAD\n\n\t// ... use the buffer\n});\n```\nThis is problematic since an attacker can choose a size that makes the application run out of memory. Even worse, in older versions of Node.js, this could leak confidential memory. To prevent such attacks, limit the buffer size:\n\n\n```javascript\nvar http = require(\"http\"),\n url = require(\"url\");\n\nvar server = http.createServer(function(req, res) {\n\tvar size = parseInt(url.parse(req.url, true).query.size);\n\n\tif (size > 1024) {\n\t\tres.statusCode = 400;\n\t\tres.end(\"Bad request.\");\n\t\treturn;\n\t}\n\n\tlet buffer = Buffer.alloc(size); // GOOD\n\n\t// ... use the buffer\n});\n```\n\n## Example\nAs another example, consider an application that allocates an array with a user-controlled size, and then fills it with values:\n\n\n```javascript\nvar http = require(\"http\"),\n url = require(\"url\");\n\nvar server = http.createServer(function(req, res) {\n\tvar size = parseInt(url.parse(req.url, true).query.size);\n\n\tlet dogs = new Array(size).fill(\"dog\"); // BAD\n\n\t// ... use the dog\n});\n```\nThe allocation of the array itself is not problematic since arrays are allocated sparsely, but the subsequent filling of the array will take a long time, causing the application to be unresponsive, or even run out of memory. Again, a limit on the size will prevent the attack:\n\n\n```javascript\nvar http = require(\"http\"),\n url = require(\"url\");\n\nvar server = http.createServer(function(req, res) {\n\tvar size = parseInt(url.parse(req.url, true).query.size);\n\n\tif (size > 1024) {\n\t\tres.statusCode = 400;\n\t\tres.end(\"Bad request.\");\n\t\treturn;\n\t}\n\n\tlet dogs = new Array(size).fill(\"dog\"); // GOOD\n\n\t// ... use the dogs\n});\n```\n\n## Example\nFinally, the following example lets a user choose a delay after which a function is executed:\n\n\n```javascript\nvar http = require(\"http\"),\n url = require(\"url\");\n\nvar server = http.createServer(function(req, res) {\n\tvar delay = parseInt(url.parse(req.url, true).query.delay);\n\n\tsetTimeout(f, delay); // BAD\n\n});\n\n```\nThis is problematic because a large delay essentially makes the application wait indefinitely before executing the function. Repeated registrations of such delays will therefore use up all of the memory in the application. A limit on the delay will prevent the attack:\n\n\n```javascript\nvar http = require(\"http\"),\n url = require(\"url\");\n\nvar server = http.createServer(function(req, res) {\n\tvar delay = parseInt(url.parse(req.url, true).query.delay);\n\n\tif (delay > 1000) {\n\t\tres.statusCode = 400;\n\t\tres.end(\"Bad request.\");\n\t\treturn;\n\t}\n\n\tsetTimeout(f, delay); // GOOD\n\n});\n\n```\n\n## References\n* Wikipedia: [Denial-of-service attack](https://en.wikipedia.org/wiki/Denial-of-service_attack).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n* Common Weakness Enumeration: [CWE-770](https://cwe.mitre.org/data/definitions/770.html).\n","markdown":"# Resource exhaustion\nApplications are constrained by how many resources they can make use of. Failing to respect these constraints may cause the application to be unresponsive or crash. It is therefore problematic if attackers can control the sizes or lifetimes of allocated objects.\n\n\n## Recommendation\nEnsure that attackers can not control object sizes and their lifetimes. If object sizes and lifetimes must be controlled by external parties, ensure you restrict the object sizes and lifetimes so that they are within acceptable ranges.\n\n\n## Example\nThe following example allocates a buffer with a user-controlled size.\n\n\n```javascript\nvar http = require(\"http\"),\n url = require(\"url\");\n\nvar server = http.createServer(function(req, res) {\n\tvar size = parseInt(url.parse(req.url, true).query.size);\n\n\tlet buffer = Buffer.alloc(size); // BAD\n\n\t// ... use the buffer\n});\n```\nThis is problematic since an attacker can choose a size that makes the application run out of memory. Even worse, in older versions of Node.js, this could leak confidential memory. To prevent such attacks, limit the buffer size:\n\n\n```javascript\nvar http = require(\"http\"),\n url = require(\"url\");\n\nvar server = http.createServer(function(req, res) {\n\tvar size = parseInt(url.parse(req.url, true).query.size);\n\n\tif (size > 1024) {\n\t\tres.statusCode = 400;\n\t\tres.end(\"Bad request.\");\n\t\treturn;\n\t}\n\n\tlet buffer = Buffer.alloc(size); // GOOD\n\n\t// ... use the buffer\n});\n```\n\n## Example\nAs another example, consider an application that allocates an array with a user-controlled size, and then fills it with values:\n\n\n```javascript\nvar http = require(\"http\"),\n url = require(\"url\");\n\nvar server = http.createServer(function(req, res) {\n\tvar size = parseInt(url.parse(req.url, true).query.size);\n\n\tlet dogs = new Array(size).fill(\"dog\"); // BAD\n\n\t// ... use the dog\n});\n```\nThe allocation of the array itself is not problematic since arrays are allocated sparsely, but the subsequent filling of the array will take a long time, causing the application to be unresponsive, or even run out of memory. Again, a limit on the size will prevent the attack:\n\n\n```javascript\nvar http = require(\"http\"),\n url = require(\"url\");\n\nvar server = http.createServer(function(req, res) {\n\tvar size = parseInt(url.parse(req.url, true).query.size);\n\n\tif (size > 1024) {\n\t\tres.statusCode = 400;\n\t\tres.end(\"Bad request.\");\n\t\treturn;\n\t}\n\n\tlet dogs = new Array(size).fill(\"dog\"); // GOOD\n\n\t// ... use the dogs\n});\n```\n\n## Example\nFinally, the following example lets a user choose a delay after which a function is executed:\n\n\n```javascript\nvar http = require(\"http\"),\n url = require(\"url\");\n\nvar server = http.createServer(function(req, res) {\n\tvar delay = parseInt(url.parse(req.url, true).query.delay);\n\n\tsetTimeout(f, delay); // BAD\n\n});\n\n```\nThis is problematic because a large delay essentially makes the application wait indefinitely before executing the function. Repeated registrations of such delays will therefore use up all of the memory in the application. A limit on the delay will prevent the attack:\n\n\n```javascript\nvar http = require(\"http\"),\n url = require(\"url\");\n\nvar server = http.createServer(function(req, res) {\n\tvar delay = parseInt(url.parse(req.url, true).query.delay);\n\n\tif (delay > 1000) {\n\t\tres.statusCode = 400;\n\t\tres.end(\"Bad request.\");\n\t\treturn;\n\t}\n\n\tsetTimeout(f, delay); // GOOD\n\n});\n\n```\n\n## References\n* Wikipedia: [Denial-of-service attack](https://en.wikipedia.org/wiki/Denial-of-service_attack).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n* Common Weakness Enumeration: [CWE-770](https://cwe.mitre.org/data/definitions/770.html).\n"},"properties":{"tags":["security","external/cwe/cwe-400","external/cwe/cwe-770"],"description":"Allocating objects or timers with user-controlled\n sizes or durations can cause resource exhaustion.","id":"js/resource-exhaustion","kind":"path-problem","name":"Resource exhaustion","precision":"high","problem.severity":"warning","security-severity":"7.5"}},{"id":"js/client-side-unvalidated-url-redirection","name":"js/client-side-unvalidated-url-redirection","shortDescription":{"text":"Client-side URL redirect"},"fullDescription":{"text":"Client-side URL redirection based on unvalidated user input may cause redirection to malicious web sites."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Client-side URL redirect\nRedirecting to a URL that is constructed from parts of the DOM that may be controlled by an attacker can facilitate phishing attacks. In these attacks, unsuspecting users can be redirected to a malicious site that looks very similar to the real site they intend to visit, but which is controlled by the attacker.\n\n\n## Recommendation\nTo guard against untrusted URL redirection, it is advisable to avoid putting user input directly into a redirect URL. Instead, maintain a list of authorized redirects on the server; then choose from that list based on the user input provided.\n\n\n## Example\nThe following example uses a regular expression to extract a query parameter from the document URL, and then uses it to construct a new URL to redirect to without any further validation. This may allow an attacker to craft a link that redirects from a trusted website to some arbitrary website of their choosing, which facilitates phishing attacks:\n\n\n```javascript\nwindow.location = /.*redirect=([^&]*).*/.exec(document.location.href)[1];\n\n```\n\n## References\n* OWASP: [ XSS Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n* Common Weakness Enumeration: [CWE-601](https://cwe.mitre.org/data/definitions/601.html).\n","markdown":"# Client-side URL redirect\nRedirecting to a URL that is constructed from parts of the DOM that may be controlled by an attacker can facilitate phishing attacks. In these attacks, unsuspecting users can be redirected to a malicious site that looks very similar to the real site they intend to visit, but which is controlled by the attacker.\n\n\n## Recommendation\nTo guard against untrusted URL redirection, it is advisable to avoid putting user input directly into a redirect URL. Instead, maintain a list of authorized redirects on the server; then choose from that list based on the user input provided.\n\n\n## Example\nThe following example uses a regular expression to extract a query parameter from the document URL, and then uses it to construct a new URL to redirect to without any further validation. This may allow an attacker to craft a link that redirects from a trusted website to some arbitrary website of their choosing, which facilitates phishing attacks:\n\n\n```javascript\nwindow.location = /.*redirect=([^&]*).*/.exec(document.location.href)[1];\n\n```\n\n## References\n* OWASP: [ XSS Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n* Common Weakness Enumeration: [CWE-601](https://cwe.mitre.org/data/definitions/601.html).\n"},"properties":{"tags":["security","external/cwe/cwe-079","external/cwe/cwe-116","external/cwe/cwe-601"],"description":"Client-side URL redirection based on unvalidated user input\n may cause redirection to malicious web sites.","id":"js/client-side-unvalidated-url-redirection","kind":"path-problem","name":"Client-side URL redirect","precision":"high","problem.severity":"error","security-severity":"6.1"}},{"id":"js/server-side-unvalidated-url-redirection","name":"js/server-side-unvalidated-url-redirection","shortDescription":{"text":"Server-side URL redirect"},"fullDescription":{"text":"Server-side URL redirection based on unvalidated user input may cause redirection to malicious web sites."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Server-side URL redirect\nDirectly incorporating user input into a URL redirect request without validating the input can facilitate phishing attacks. In these attacks, unsuspecting users can be redirected to a malicious site that looks very similar to the real site they intend to visit, but which is controlled by the attacker.\n\n\n## Recommendation\nTo guard against untrusted URL redirection, it is advisable to avoid putting user input directly into a redirect URL. Instead, maintain a list of authorized redirects on the server; then choose from that list based on the user input provided.\n\nIf this is not possible, then the user input should be validated in some other way, for example, by verifying that the target URL is on the same host as the current page.\n\n\n## Example\nThe following example shows an HTTP request parameter being used directly in a URL redirect without validating the input, which facilitates phishing attacks:\n\n\n```javascript\nconst app = require(\"express\")();\n\napp.get(\"/redirect\", function (req, res) {\n // BAD: a request parameter is incorporated without validation into a URL redirect\n res.redirect(req.query[\"target\"]);\n});\n\n```\nOne way to remedy the problem is to validate the user input against a known fixed string before doing the redirection:\n\n\n```javascript\nconst app = require(\"express\")();\n\nconst VALID_REDIRECT = \"http://cwe.mitre.org/data/definitions/601.html\";\n\napp.get(\"/redirect\", function (req, res) {\n // GOOD: the request parameter is validated against a known fixed string\n let target = req.query[\"target\"];\n if (VALID_REDIRECT === target) {\n res.redirect(target);\n } else {\n res.redirect(\"/\");\n }\n});\n\n```\nAlternatively, we can check that the target URL does not redirect to a different host by parsing it relative to a base URL with a known host and verifying that the host stays the same:\n\n\n```javascript\nconst app = require(\"express\")();\n\nfunction isLocalUrl(path) {\n try {\n return (\n // TODO: consider substituting your own domain for example.com\n new URL(path, \"https://example.com\").origin === \"https://example.com\"\n );\n } catch (e) {\n return false;\n }\n}\n\napp.get(\"/redirect\", function (req, res) {\n // GOOD: check that we don't redirect to a different host\n let target = req.query[\"target\"];\n if (isLocalUrl(target)) {\n res.redirect(target);\n } else {\n res.redirect(\"/\");\n }\n});\n\n```\nNote that as written, the above code will allow redirects to URLs on `example.com`, which is harmless but perhaps not intended. You can substitute your own domain (if known) for `example.com` to prevent this.\n\n\n## References\n* OWASP: [ XSS Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-601](https://cwe.mitre.org/data/definitions/601.html).\n","markdown":"# Server-side URL redirect\nDirectly incorporating user input into a URL redirect request without validating the input can facilitate phishing attacks. In these attacks, unsuspecting users can be redirected to a malicious site that looks very similar to the real site they intend to visit, but which is controlled by the attacker.\n\n\n## Recommendation\nTo guard against untrusted URL redirection, it is advisable to avoid putting user input directly into a redirect URL. Instead, maintain a list of authorized redirects on the server; then choose from that list based on the user input provided.\n\nIf this is not possible, then the user input should be validated in some other way, for example, by verifying that the target URL is on the same host as the current page.\n\n\n## Example\nThe following example shows an HTTP request parameter being used directly in a URL redirect without validating the input, which facilitates phishing attacks:\n\n\n```javascript\nconst app = require(\"express\")();\n\napp.get(\"/redirect\", function (req, res) {\n // BAD: a request parameter is incorporated without validation into a URL redirect\n res.redirect(req.query[\"target\"]);\n});\n\n```\nOne way to remedy the problem is to validate the user input against a known fixed string before doing the redirection:\n\n\n```javascript\nconst app = require(\"express\")();\n\nconst VALID_REDIRECT = \"http://cwe.mitre.org/data/definitions/601.html\";\n\napp.get(\"/redirect\", function (req, res) {\n // GOOD: the request parameter is validated against a known fixed string\n let target = req.query[\"target\"];\n if (VALID_REDIRECT === target) {\n res.redirect(target);\n } else {\n res.redirect(\"/\");\n }\n});\n\n```\nAlternatively, we can check that the target URL does not redirect to a different host by parsing it relative to a base URL with a known host and verifying that the host stays the same:\n\n\n```javascript\nconst app = require(\"express\")();\n\nfunction isLocalUrl(path) {\n try {\n return (\n // TODO: consider substituting your own domain for example.com\n new URL(path, \"https://example.com\").origin === \"https://example.com\"\n );\n } catch (e) {\n return false;\n }\n}\n\napp.get(\"/redirect\", function (req, res) {\n // GOOD: check that we don't redirect to a different host\n let target = req.query[\"target\"];\n if (isLocalUrl(target)) {\n res.redirect(target);\n } else {\n res.redirect(\"/\");\n }\n});\n\n```\nNote that as written, the above code will allow redirects to URLs on `example.com`, which is harmless but perhaps not intended. You can substitute your own domain (if known) for `example.com` to prevent this.\n\n\n## References\n* OWASP: [ XSS Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-601](https://cwe.mitre.org/data/definitions/601.html).\n"},"properties":{"tags":["security","external/cwe/cwe-601"],"description":"Server-side URL redirection based on unvalidated user input\n may cause redirection to malicious web sites.","id":"js/server-side-unvalidated-url-redirection","kind":"path-problem","name":"Server-side URL redirect","precision":"high","problem.severity":"warning","security-severity":"6.1"}},{"id":"js/missing-token-validation","name":"js/missing-token-validation","shortDescription":{"text":"Missing CSRF middleware"},"fullDescription":{"text":"Using cookies without CSRF protection may allow malicious websites to submit requests on behalf of the user."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Missing CSRF middleware\nWebsites that rely on cookie-based authentication may be vulnerable to cross-site request forgery (CSRF). Specifically, a state-changing request should include a secret token so the request can't be forged by an attacker. Otherwise, unwanted requests can be submitted on behalf of a user who visits a malicious website.\n\nThis is typically mitigated by embedding a session-specific secret token in each request. This token is then checked as an additional authentication measure. A malicious website should have no way of guessing the correct token to embed in the request.\n\n\n## Recommendation\nUse a middleware package such as `lusca.csrf` to protect against CSRF attacks.\n\n\n## Example\nIn the example below, the server authenticates users before performing the `changeEmail` POST action:\n\n\n```javascript\nconst app = require(\"express\")(),\n cookieParser = require(\"cookie-parser\"),\n bodyParser = require(\"body-parser\"),\n session = require(\"express-session\");\n\napp.use(cookieParser());\napp.use(bodyParser.urlencoded({ extended: false }));\napp.use(session({ secret: process.env['SECRET'], cookie: { maxAge: 60000 } }));\n\n// ...\n\napp.post(\"/changeEmail\", function(req, res) {\n const userId = req.session.id;\n const email = req.body[\"email\"];\n // ... update email associated with userId\n});\n\n```\nThis is not secure. An attacker can submit a POST `changeEmail` request on behalf of a user who visited a malicious website. Since authentication happens without any action from the user, the `changeEmail` action would be executed, despite not being initiated by the user.\n\nThis vulnerability can be mitigated by installing a CSRF protecting middleware handler:\n\n\n```javascript\nconst app = require(\"express\")(),\n cookieParser = require(\"cookie-parser\"),\n bodyParser = require(\"body-parser\"),\n session = require(\"express-session\"),\n csrf = require('lusca').csrf;\n\napp.use(cookieParser());\napp.use(bodyParser.urlencoded({ extended: false }));\napp.use(session({ secret: process.env['SECRET'], cookie: { maxAge: 60000 } }));\napp.use(csrf());\n\n// ...\n\napp.post(\"/changeEmail\", function(req, res) {\n const userId = req.session.id;\n const email = req.body[\"email\"];\n // ... update email associated with userId\n});\n\n```\n\n## References\n* OWASP: [Cross-Site Request Forgery (CSRF)](https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF))\n* NPM: [lusca](https://www.npmjs.com/package/lusca)\n* Common Weakness Enumeration: [CWE-352](https://cwe.mitre.org/data/definitions/352.html).\n","markdown":"# Missing CSRF middleware\nWebsites that rely on cookie-based authentication may be vulnerable to cross-site request forgery (CSRF). Specifically, a state-changing request should include a secret token so the request can't be forged by an attacker. Otherwise, unwanted requests can be submitted on behalf of a user who visits a malicious website.\n\nThis is typically mitigated by embedding a session-specific secret token in each request. This token is then checked as an additional authentication measure. A malicious website should have no way of guessing the correct token to embed in the request.\n\n\n## Recommendation\nUse a middleware package such as `lusca.csrf` to protect against CSRF attacks.\n\n\n## Example\nIn the example below, the server authenticates users before performing the `changeEmail` POST action:\n\n\n```javascript\nconst app = require(\"express\")(),\n cookieParser = require(\"cookie-parser\"),\n bodyParser = require(\"body-parser\"),\n session = require(\"express-session\");\n\napp.use(cookieParser());\napp.use(bodyParser.urlencoded({ extended: false }));\napp.use(session({ secret: process.env['SECRET'], cookie: { maxAge: 60000 } }));\n\n// ...\n\napp.post(\"/changeEmail\", function(req, res) {\n const userId = req.session.id;\n const email = req.body[\"email\"];\n // ... update email associated with userId\n});\n\n```\nThis is not secure. An attacker can submit a POST `changeEmail` request on behalf of a user who visited a malicious website. Since authentication happens without any action from the user, the `changeEmail` action would be executed, despite not being initiated by the user.\n\nThis vulnerability can be mitigated by installing a CSRF protecting middleware handler:\n\n\n```javascript\nconst app = require(\"express\")(),\n cookieParser = require(\"cookie-parser\"),\n bodyParser = require(\"body-parser\"),\n session = require(\"express-session\"),\n csrf = require('lusca').csrf;\n\napp.use(cookieParser());\napp.use(bodyParser.urlencoded({ extended: false }));\napp.use(session({ secret: process.env['SECRET'], cookie: { maxAge: 60000 } }));\napp.use(csrf());\n\n// ...\n\napp.post(\"/changeEmail\", function(req, res) {\n const userId = req.session.id;\n const email = req.body[\"email\"];\n // ... update email associated with userId\n});\n\n```\n\n## References\n* OWASP: [Cross-Site Request Forgery (CSRF)](https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF))\n* NPM: [lusca](https://www.npmjs.com/package/lusca)\n* Common Weakness Enumeration: [CWE-352](https://cwe.mitre.org/data/definitions/352.html).\n"},"properties":{"tags":["security","external/cwe/cwe-352"],"description":"Using cookies without CSRF protection may allow malicious websites to\n submit requests on behalf of the user.","id":"js/missing-token-validation","kind":"problem","name":"Missing CSRF middleware","precision":"high","problem.severity":"error","security-severity":"8.8"}},{"id":"js/insecure-dependency","name":"js/insecure-dependency","shortDescription":{"text":"Dependency download using unencrypted communication channel"},"fullDescription":{"text":"Using unencrypted protocols to fetch dependencies can leave an application open to man-in-the-middle attacks."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Dependency download using unencrypted communication channel\nUsing an insecure protocol like HTTP or FTP to download build dependencies makes the build process vulnerable to a man-in-the-middle (MITM) attack.\n\nThis can allow attackers to inject malicious code into the downloaded dependencies, and thereby infect the build artifacts and execute arbitrary code on the machine building the artifacts.\n\n\n## Recommendation\nAlways use a secure protocol, such as HTTPS or SFTP, when downloading artifacts from an URL.\n\n\n## Example\nThe below example shows a `package.json` file that downloads a dependency using the insecure HTTP protocol.\n\n\n```json\n{\n \"name\": \"example-project\",\n \"dependencies\": {\n \"unencrypted\": \"http://example.org/foo/tarball/release/0.0.1\",\n \"lodash\": \"^4.0.0\"\n }\n}\n```\nThe fix is to change the protocol to HTTPS.\n\n\n```json\n{\n \"name\": \"example-project\",\n \"dependencies\": {\n \"unencrypted\": \"https://example.org/foo/tarball/release/0.0.1\",\n \"lodash\": \"^4.0.0\"\n }\n}\n```\n\n## References\n* Jonathan Leitschuh: [ Want to take over the Java ecosystem? All you need is a MITM! ](https://infosecwriteups.com/want-to-take-over-the-java-ecosystem-all-you-need-is-a-mitm-1fc329d898fb)\n* Max Veytsman: [ How to take over the computer of any Java (or Closure or Scala) Developer. ](https://max.computer/blog/how-to-take-over-the-computer-of-any-java-or-clojure-or-scala-developer/)\n* Wikipedia: [Supply chain attack.](https://en.wikipedia.org/wiki/Supply_chain_attack)\n* Wikipedia: [Man-in-the-middle attack.](https://en.wikipedia.org/wiki/Man-in-the-middle_attack)\n* Common Weakness Enumeration: [CWE-300](https://cwe.mitre.org/data/definitions/300.html).\n* Common Weakness Enumeration: [CWE-319](https://cwe.mitre.org/data/definitions/319.html).\n* Common Weakness Enumeration: [CWE-494](https://cwe.mitre.org/data/definitions/494.html).\n* Common Weakness Enumeration: [CWE-829](https://cwe.mitre.org/data/definitions/829.html).\n","markdown":"# Dependency download using unencrypted communication channel\nUsing an insecure protocol like HTTP or FTP to download build dependencies makes the build process vulnerable to a man-in-the-middle (MITM) attack.\n\nThis can allow attackers to inject malicious code into the downloaded dependencies, and thereby infect the build artifacts and execute arbitrary code on the machine building the artifacts.\n\n\n## Recommendation\nAlways use a secure protocol, such as HTTPS or SFTP, when downloading artifacts from an URL.\n\n\n## Example\nThe below example shows a `package.json` file that downloads a dependency using the insecure HTTP protocol.\n\n\n```json\n{\n \"name\": \"example-project\",\n \"dependencies\": {\n \"unencrypted\": \"http://example.org/foo/tarball/release/0.0.1\",\n \"lodash\": \"^4.0.0\"\n }\n}\n```\nThe fix is to change the protocol to HTTPS.\n\n\n```json\n{\n \"name\": \"example-project\",\n \"dependencies\": {\n \"unencrypted\": \"https://example.org/foo/tarball/release/0.0.1\",\n \"lodash\": \"^4.0.0\"\n }\n}\n```\n\n## References\n* Jonathan Leitschuh: [ Want to take over the Java ecosystem? All you need is a MITM! ](https://infosecwriteups.com/want-to-take-over-the-java-ecosystem-all-you-need-is-a-mitm-1fc329d898fb)\n* Max Veytsman: [ How to take over the computer of any Java (or Closure or Scala) Developer. ](https://max.computer/blog/how-to-take-over-the-computer-of-any-java-or-clojure-or-scala-developer/)\n* Wikipedia: [Supply chain attack.](https://en.wikipedia.org/wiki/Supply_chain_attack)\n* Wikipedia: [Man-in-the-middle attack.](https://en.wikipedia.org/wiki/Man-in-the-middle_attack)\n* Common Weakness Enumeration: [CWE-300](https://cwe.mitre.org/data/definitions/300.html).\n* Common Weakness Enumeration: [CWE-319](https://cwe.mitre.org/data/definitions/319.html).\n* Common Weakness Enumeration: [CWE-494](https://cwe.mitre.org/data/definitions/494.html).\n* Common Weakness Enumeration: [CWE-829](https://cwe.mitre.org/data/definitions/829.html).\n"},"properties":{"tags":["security","external/cwe/cwe-300","external/cwe/cwe-319","external/cwe/cwe-494","external/cwe/cwe-829"],"description":"Using unencrypted protocols to fetch dependencies can leave an application\n open to man-in-the-middle attacks.","id":"js/insecure-dependency","kind":"problem","name":"Dependency download using unencrypted communication channel","precision":"high","problem.severity":"warning","security-severity":"8.1"}},{"id":"js/sensitive-get-query","name":"js/sensitive-get-query","shortDescription":{"text":"Sensitive data read from GET request"},"fullDescription":{"text":"Placing sensitive data in a GET request increases the risk of the data being exposed to an attacker."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Sensitive data read from GET request\nSensitive information such as user passwords should not be transmitted within the query string of the requested URL. Sensitive information within URLs may be logged in various locations, including the user's browser, the web server, and any forward or reverse proxy servers between the two endpoints. URLs may also be displayed on-screen, bookmarked or emailed around by users. They may be disclosed to third parties via the Referer header when any off-site links are followed. Placing sensitive information into the URL therefore increases the risk that it will be captured by an attacker.\n\n\n## Recommendation\nUse HTTP POST to send sensitive information as part of the request body; for example, as form data.\n\n\n## Example\nThe following example shows two route handlers that both receive a username and a password. The first receives this sensitive information from the query parameters of a GET request, which is transmitted in the URL. The second receives this sensitive information from the request body of a POST request.\n\n\n```javascript\nconst express = require('express');\nconst app = express();\napp.use(require('body-parser').urlencoded({ extended: false }))\n\n// bad: sensitive information is read from query parameters\napp.get('/login1', (req, res) => {\n const user = req.query.user;\n const password = req.query.password;\n if (checkUser(user, password)) {\n res.send('Welcome');\n } else {\n res.send('Access denied');\n }\n});\n\n// good: sensitive information is read from post body\napp.post('/login2', (req, res) => {\n const user = req.body.user;\n const password = req.body.password;\n if (checkUser(user, password)) {\n res.send('Welcome');\n } else {\n res.send('Access denied');\n }\n});\n\n```\n\n## References\n* CWE: [CWE-598: Use of GET Request Method with Sensitive Query Strings](https://cwe.mitre.org/data/definitions/598.html)\n* PortSwigger (Burp): [Password Submitted using GET Method](https://portswigger.net/kb/issues/00400300_password-submitted-using-get-method)\n* OWASP: [Information Exposure through Query Strings in URL](https://owasp.org/www-community/vulnerabilities/Information_exposure_through_query_strings_in_url)\n* Common Weakness Enumeration: [CWE-598](https://cwe.mitre.org/data/definitions/598.html).\n","markdown":"# Sensitive data read from GET request\nSensitive information such as user passwords should not be transmitted within the query string of the requested URL. Sensitive information within URLs may be logged in various locations, including the user's browser, the web server, and any forward or reverse proxy servers between the two endpoints. URLs may also be displayed on-screen, bookmarked or emailed around by users. They may be disclosed to third parties via the Referer header when any off-site links are followed. Placing sensitive information into the URL therefore increases the risk that it will be captured by an attacker.\n\n\n## Recommendation\nUse HTTP POST to send sensitive information as part of the request body; for example, as form data.\n\n\n## Example\nThe following example shows two route handlers that both receive a username and a password. The first receives this sensitive information from the query parameters of a GET request, which is transmitted in the URL. The second receives this sensitive information from the request body of a POST request.\n\n\n```javascript\nconst express = require('express');\nconst app = express();\napp.use(require('body-parser').urlencoded({ extended: false }))\n\n// bad: sensitive information is read from query parameters\napp.get('/login1', (req, res) => {\n const user = req.query.user;\n const password = req.query.password;\n if (checkUser(user, password)) {\n res.send('Welcome');\n } else {\n res.send('Access denied');\n }\n});\n\n// good: sensitive information is read from post body\napp.post('/login2', (req, res) => {\n const user = req.body.user;\n const password = req.body.password;\n if (checkUser(user, password)) {\n res.send('Welcome');\n } else {\n res.send('Access denied');\n }\n});\n\n```\n\n## References\n* CWE: [CWE-598: Use of GET Request Method with Sensitive Query Strings](https://cwe.mitre.org/data/definitions/598.html)\n* PortSwigger (Burp): [Password Submitted using GET Method](https://portswigger.net/kb/issues/00400300_password-submitted-using-get-method)\n* OWASP: [Information Exposure through Query Strings in URL](https://owasp.org/www-community/vulnerabilities/Information_exposure_through_query_strings_in_url)\n* Common Weakness Enumeration: [CWE-598](https://cwe.mitre.org/data/definitions/598.html).\n"},"properties":{"tags":["security","external/cwe/cwe-598"],"description":"Placing sensitive data in a GET request increases the risk of\n the data being exposed to an attacker.","id":"js/sensitive-get-query","kind":"problem","name":"Sensitive data read from GET request","precision":"high","problem.severity":"warning","security-severity":"6.5"}},{"id":"js/insecure-helmet-configuration","name":"js/insecure-helmet-configuration","shortDescription":{"text":"Insecure configuration of Helmet security middleware"},"fullDescription":{"text":"The Helmet middleware is used to set security-related HTTP headers in Express applications. This query finds instances where the middleware is configured with important security features disabled."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Insecure configuration of Helmet security middleware\n[Helmet](https://helmetjs.github.io/) is a collection of middleware functions for securing Express apps. It sets various HTTP headers to guard against common web vulnerabilities. This query detects Helmet misconfigurations that can lead to security vulnerabilities, specifically:\n\n* Disabling frame protection\n* Disabling Content Security Policy\nContent Security Policy (CSP) helps spot and prevent injection attacks such as Cross-Site Scripting (XSS). Removing frame protections exposes an application to attacks such as clickjacking, where an attacker can trick a user into clicking on a button or link on a targeted page when they intended to click on the page carrying out the attack.\n\nUsers of the query can extend the set of required Helmet features by adding additional checks for them, using CodeQL [data extensions](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-javascript/) in a [CodeQL model pack](https://docs.github.com/en/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-and-working-with-codeql-packs#creating-a-codeql-model-pack). See `CUSTOMIZING.md` in the query source for more information.\n\n\n## Recommendation\nTo help mitigate these vulnerabilities, ensure that the following Helmet functions are not disabled, and are configured appropriately to your application:\n\n* `frameguard`\n* `contentSecurityPolicy`\n\n## Example\nThe following code snippet demonstrates Helmet configured in an insecure manner:\n\n\n```javascript\nconst helmet = require('helmet');\n\napp.use(helmet({\n frameguard: false,\n contentSecurityPolicy: false\n}));\n```\nIn this example, the defaults are used, which enables frame protection and a default Content Security Policy.\n\n\n```javascript\napp.use(helmet());\n```\nYou can also enable a custom Content Security Policy by passing an object to the `contentSecurityPolicy` key. For example, taken from the [Helmet docs](https://helmetjs.github.io/#content-security-policy):\n\n\n```javascript\napp.use(\n helmet({\n contentSecurityPolicy: {\n directives: {\n \"script-src\": [\"'self'\", \"example.com\"],\n \"style-src\": null,\n },\n },\n })\n);\n```\n\n## References\n* [helmet.js website](https://helmetjs.github.io/)\n* [Content Security Policy (CSP) | MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy)\n* [Mozilla Web Security Guidelines](https://infosec.mozilla.org/guidelines/web_security)\n* [Protect against clickjacking | MDN](https://developer.mozilla.org/en-US/docs/Web/Security#protect_against_clickjacking)\n* Common Weakness Enumeration: [CWE-693](https://cwe.mitre.org/data/definitions/693.html).\n* Common Weakness Enumeration: [CWE-1021](https://cwe.mitre.org/data/definitions/1021.html).\n","markdown":"# Insecure configuration of Helmet security middleware\n[Helmet](https://helmetjs.github.io/) is a collection of middleware functions for securing Express apps. It sets various HTTP headers to guard against common web vulnerabilities. This query detects Helmet misconfigurations that can lead to security vulnerabilities, specifically:\n\n* Disabling frame protection\n* Disabling Content Security Policy\nContent Security Policy (CSP) helps spot and prevent injection attacks such as Cross-Site Scripting (XSS). Removing frame protections exposes an application to attacks such as clickjacking, where an attacker can trick a user into clicking on a button or link on a targeted page when they intended to click on the page carrying out the attack.\n\nUsers of the query can extend the set of required Helmet features by adding additional checks for them, using CodeQL [data extensions](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-javascript/) in a [CodeQL model pack](https://docs.github.com/en/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-and-working-with-codeql-packs#creating-a-codeql-model-pack). See `CUSTOMIZING.md` in the query source for more information.\n\n\n## Recommendation\nTo help mitigate these vulnerabilities, ensure that the following Helmet functions are not disabled, and are configured appropriately to your application:\n\n* `frameguard`\n* `contentSecurityPolicy`\n\n## Example\nThe following code snippet demonstrates Helmet configured in an insecure manner:\n\n\n```javascript\nconst helmet = require('helmet');\n\napp.use(helmet({\n frameguard: false,\n contentSecurityPolicy: false\n}));\n```\nIn this example, the defaults are used, which enables frame protection and a default Content Security Policy.\n\n\n```javascript\napp.use(helmet());\n```\nYou can also enable a custom Content Security Policy by passing an object to the `contentSecurityPolicy` key. For example, taken from the [Helmet docs](https://helmetjs.github.io/#content-security-policy):\n\n\n```javascript\napp.use(\n helmet({\n contentSecurityPolicy: {\n directives: {\n \"script-src\": [\"'self'\", \"example.com\"],\n \"style-src\": null,\n },\n },\n })\n);\n```\n\n## References\n* [helmet.js website](https://helmetjs.github.io/)\n* [Content Security Policy (CSP) | MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy)\n* [Mozilla Web Security Guidelines](https://infosec.mozilla.org/guidelines/web_security)\n* [Protect against clickjacking | MDN](https://developer.mozilla.org/en-US/docs/Web/Security#protect_against_clickjacking)\n* Common Weakness Enumeration: [CWE-693](https://cwe.mitre.org/data/definitions/693.html).\n* Common Weakness Enumeration: [CWE-1021](https://cwe.mitre.org/data/definitions/1021.html).\n"},"properties":{"tags":["security","external/cwe/cwe-693","external/cwe/cwe-1021"],"description":"The Helmet middleware is used to set security-related HTTP headers in Express applications. This query finds instances where the middleware is configured with important security features disabled.","id":"js/insecure-helmet-configuration","kind":"problem","name":"Insecure configuration of Helmet security middleware","precision":"high","problem.severity":"error","security-severity":"7.0"}},{"id":"js/host-header-forgery-in-email-generation","name":"js/host-header-forgery-in-email-generation","shortDescription":{"text":"Host header poisoning in email generation"},"fullDescription":{"text":"Using the HTTP Host header to construct a link in an email can facilitate phishing attacks and leak password reset tokens."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Host header poisoning in email generation\nUsing the HTTP Host header to construct a link in an email can facilitate phishing attacks and leak password reset tokens. A malicious user can send an HTTP request to the targeted web site, but with a Host header that refers to his own web site. This means the emails will be sent out to potential victims, originating from a server they trust, but with links leading to a malicious web site.\n\nIf the email contains a password reset link, and should the victim click the link, the secret reset token will be leaked to the attacker. Using the leaked token, the attacker can then construct the real reset link and use it to change the victim's password.\n\n\n## Recommendation\nObtain the server's host name from a configuration file and avoid relying on the Host header.\n\n\n## Example\nThe following example uses the `req.host` to generate a password reset link. This value is derived from the Host header, and can thus be set to anything by an attacker:\n\n\n```javascript\nlet nodemailer = require('nodemailer');\nlet express = require('express');\nlet backend = require('./backend');\n\nlet app = express();\n\nlet config = JSON.parse(fs.readFileSync('config.json', 'utf8'));\n\napp.post('/resetpass', (req, res) => {\n let email = req.query.email;\n let transport = nodemailer.createTransport(config.smtp);\n let token = backend.getUserSecretResetToken(email);\n transport.sendMail({\n from: 'webmaster@example.com',\n to: email,\n subject: 'Forgot password',\n text: `Click to reset password: https://${req.host}/resettoken/${token}`,\n });\n});\n\n```\nTo ensure the link refers to the correct web site, get the host name from a configuration file:\n\n\n```javascript\nlet nodemailer = require('nodemailer');\nlet express = require('express');\nlet backend = require('./backend');\n\nlet app = express();\n\nlet config = JSON.parse(fs.readFileSync('config.json', 'utf8'));\n\napp.post('/resetpass', (req, res) => {\n let email = req.query.email;\n let transport = nodemailer.createTransport(config.smtp);\n let token = backend.getUserSecretResetToken(email);\n transport.sendMail({\n from: 'webmaster@example.com',\n to: email,\n subject: 'Forgot password',\n text: `Click to reset password: https://${config.hostname}/resettoken/${token}`,\n });\n});\n\n```\n\n## References\n* Mitre: [CWE-640: Weak Password Recovery Mechanism for Forgotten Password](https://cwe.mitre.org/data/definitions/640.html).\n* Ian Muscat: [What is a Host Header Attack?](https://www.acunetix.com/blog/articles/automated-detection-of-host-header-attacks/).\n* Common Weakness Enumeration: [CWE-640](https://cwe.mitre.org/data/definitions/640.html).\n","markdown":"# Host header poisoning in email generation\nUsing the HTTP Host header to construct a link in an email can facilitate phishing attacks and leak password reset tokens. A malicious user can send an HTTP request to the targeted web site, but with a Host header that refers to his own web site. This means the emails will be sent out to potential victims, originating from a server they trust, but with links leading to a malicious web site.\n\nIf the email contains a password reset link, and should the victim click the link, the secret reset token will be leaked to the attacker. Using the leaked token, the attacker can then construct the real reset link and use it to change the victim's password.\n\n\n## Recommendation\nObtain the server's host name from a configuration file and avoid relying on the Host header.\n\n\n## Example\nThe following example uses the `req.host` to generate a password reset link. This value is derived from the Host header, and can thus be set to anything by an attacker:\n\n\n```javascript\nlet nodemailer = require('nodemailer');\nlet express = require('express');\nlet backend = require('./backend');\n\nlet app = express();\n\nlet config = JSON.parse(fs.readFileSync('config.json', 'utf8'));\n\napp.post('/resetpass', (req, res) => {\n let email = req.query.email;\n let transport = nodemailer.createTransport(config.smtp);\n let token = backend.getUserSecretResetToken(email);\n transport.sendMail({\n from: 'webmaster@example.com',\n to: email,\n subject: 'Forgot password',\n text: `Click to reset password: https://${req.host}/resettoken/${token}`,\n });\n});\n\n```\nTo ensure the link refers to the correct web site, get the host name from a configuration file:\n\n\n```javascript\nlet nodemailer = require('nodemailer');\nlet express = require('express');\nlet backend = require('./backend');\n\nlet app = express();\n\nlet config = JSON.parse(fs.readFileSync('config.json', 'utf8'));\n\napp.post('/resetpass', (req, res) => {\n let email = req.query.email;\n let transport = nodemailer.createTransport(config.smtp);\n let token = backend.getUserSecretResetToken(email);\n transport.sendMail({\n from: 'webmaster@example.com',\n to: email,\n subject: 'Forgot password',\n text: `Click to reset password: https://${config.hostname}/resettoken/${token}`,\n });\n});\n\n```\n\n## References\n* Mitre: [CWE-640: Weak Password Recovery Mechanism for Forgotten Password](https://cwe.mitre.org/data/definitions/640.html).\n* Ian Muscat: [What is a Host Header Attack?](https://www.acunetix.com/blog/articles/automated-detection-of-host-header-attacks/).\n* Common Weakness Enumeration: [CWE-640](https://cwe.mitre.org/data/definitions/640.html).\n"},"properties":{"tags":["security","external/cwe/cwe-640"],"description":"Using the HTTP Host header to construct a link in an email can facilitate phishing\n attacks and leak password reset tokens.","id":"js/host-header-forgery-in-email-generation","kind":"path-problem","name":"Host header poisoning in email generation","precision":"high","problem.severity":"error","security-severity":"9.8"}},{"id":"js/unvalidated-dynamic-method-call","name":"js/unvalidated-dynamic-method-call","shortDescription":{"text":"Unvalidated dynamic method call"},"fullDescription":{"text":"Calling a method with a user-controlled name may dispatch to an unexpected target, which could cause an exception."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Unvalidated dynamic method call\nJavaScript makes it easy to look up object properties dynamically at runtime. In particular, methods can be looked up by name and then called. However, if the method name is user-controlled, an attacker could choose a name that makes the application invoke an unexpected method, which may cause a runtime exception. If this exception is not handled, it could be used to mount a denial-of-service attack.\n\nFor example, there might not be a method of the given name, or the result of the lookup might not be a function. In either case the method call will throw a `TypeError` at runtime.\n\nAnother, more subtle example is where the result of the lookup is a standard library method from `Object.prototype`, which most objects have on their prototype chain. Examples of such methods include `valueOf`, `hasOwnProperty` and `__defineSetter__`. If the method call passes the wrong number or kind of arguments to these methods, they will throw an exception.\n\n\n## Recommendation\nIt is best to avoid dynamic method lookup involving user-controlled names altogether, for instance by using a `Map` instead of a plain object.\n\nIf the dynamic method lookup cannot be avoided, consider whitelisting permitted method names. At the very least, check that the method is an own property and not inherited from the prototype object. If the object on which the method is looked up contains properties that are not methods, you should additionally check that the result of the lookup is a function. Even if the object only contains methods, it is still a good idea to perform this check in case other properties are added to the object later on.\n\n\n## Example\nIn the following example, an HTTP request parameter `action` property is used to dynamically look up a function in the `actions` map, which is then invoked with the `payload` parameter as its argument.\n\n\n```javascript\nvar express = require('express');\nvar app = express();\n\nvar actions = {\n play(data) {\n // ...\n },\n pause(data) {\n // ...\n }\n}\n\napp.get('/perform/:action/:payload', function(req, res) {\n let action = actions[req.params.action];\n // BAD: `action` may not be a function\n res.end(action(req.params.payload));\n});\n\n```\nThe intention is to allow clients to invoke the `play` or `pause` method, but there is no check that `action` is actually the name of a method stored in `actions`. If, for example, `action` is `rewind`, `action` will be `undefined` and the call will result in a runtime error.\n\nThe easiest way to prevent this is to turn `actions` into a `Map` and using `Map.prototype.has` to check whether the method name is valid before looking it up.\n\n\n```javascript\nvar express = require('express');\nvar app = express();\n\nvar actions = new Map();\nactions.set(\"play\", function play(data) {\n // ...\n});\nactions.set(\"pause\", function pause(data) {\n // ...\n});\n\napp.get('/perform/:action/:payload', function(req, res) {\n if (actions.has(req.params.action)) {\n if (typeof actions.get(req.params.action) === 'function'){\n let action = actions.get(req.params.action);\n }\n // GOOD: `action` is either the `play` or the `pause` function from above\n res.end(action(req.params.payload));\n } else {\n res.end(\"Unsupported action.\");\n }\n});\n\n```\nIf `actions` cannot be turned into a `Map`, a `hasOwnProperty` check should be added to validate the method name:\n\n\n```javascript\nvar express = require('express');\nvar app = express();\n\nvar actions = {\n play(data) {\n // ...\n },\n pause(data) {\n // ...\n }\n}\n\napp.get('/perform/:action/:payload', function(req, res) {\n if (actions.hasOwnProperty(req.params.action)) {\n let action = actions[req.params.action];\n if (typeof action === 'function') {\n // GOOD: `action` is an own method of `actions`\n res.end(action(req.params.payload));\n return;\n }\n }\n res.end(\"Unsupported action.\");\n});\n\n```\n\n## References\n* OWASP: [Denial of Service](https://www.owasp.org/index.php/Denial_of_Service).\n* MDN: [Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map).\n* MDN: [Object.prototype](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype).\n* Common Weakness Enumeration: [CWE-754](https://cwe.mitre.org/data/definitions/754.html).\n","markdown":"# Unvalidated dynamic method call\nJavaScript makes it easy to look up object properties dynamically at runtime. In particular, methods can be looked up by name and then called. However, if the method name is user-controlled, an attacker could choose a name that makes the application invoke an unexpected method, which may cause a runtime exception. If this exception is not handled, it could be used to mount a denial-of-service attack.\n\nFor example, there might not be a method of the given name, or the result of the lookup might not be a function. In either case the method call will throw a `TypeError` at runtime.\n\nAnother, more subtle example is where the result of the lookup is a standard library method from `Object.prototype`, which most objects have on their prototype chain. Examples of such methods include `valueOf`, `hasOwnProperty` and `__defineSetter__`. If the method call passes the wrong number or kind of arguments to these methods, they will throw an exception.\n\n\n## Recommendation\nIt is best to avoid dynamic method lookup involving user-controlled names altogether, for instance by using a `Map` instead of a plain object.\n\nIf the dynamic method lookup cannot be avoided, consider whitelisting permitted method names. At the very least, check that the method is an own property and not inherited from the prototype object. If the object on which the method is looked up contains properties that are not methods, you should additionally check that the result of the lookup is a function. Even if the object only contains methods, it is still a good idea to perform this check in case other properties are added to the object later on.\n\n\n## Example\nIn the following example, an HTTP request parameter `action` property is used to dynamically look up a function in the `actions` map, which is then invoked with the `payload` parameter as its argument.\n\n\n```javascript\nvar express = require('express');\nvar app = express();\n\nvar actions = {\n play(data) {\n // ...\n },\n pause(data) {\n // ...\n }\n}\n\napp.get('/perform/:action/:payload', function(req, res) {\n let action = actions[req.params.action];\n // BAD: `action` may not be a function\n res.end(action(req.params.payload));\n});\n\n```\nThe intention is to allow clients to invoke the `play` or `pause` method, but there is no check that `action` is actually the name of a method stored in `actions`. If, for example, `action` is `rewind`, `action` will be `undefined` and the call will result in a runtime error.\n\nThe easiest way to prevent this is to turn `actions` into a `Map` and using `Map.prototype.has` to check whether the method name is valid before looking it up.\n\n\n```javascript\nvar express = require('express');\nvar app = express();\n\nvar actions = new Map();\nactions.set(\"play\", function play(data) {\n // ...\n});\nactions.set(\"pause\", function pause(data) {\n // ...\n});\n\napp.get('/perform/:action/:payload', function(req, res) {\n if (actions.has(req.params.action)) {\n if (typeof actions.get(req.params.action) === 'function'){\n let action = actions.get(req.params.action);\n }\n // GOOD: `action` is either the `play` or the `pause` function from above\n res.end(action(req.params.payload));\n } else {\n res.end(\"Unsupported action.\");\n }\n});\n\n```\nIf `actions` cannot be turned into a `Map`, a `hasOwnProperty` check should be added to validate the method name:\n\n\n```javascript\nvar express = require('express');\nvar app = express();\n\nvar actions = {\n play(data) {\n // ...\n },\n pause(data) {\n // ...\n }\n}\n\napp.get('/perform/:action/:payload', function(req, res) {\n if (actions.hasOwnProperty(req.params.action)) {\n let action = actions[req.params.action];\n if (typeof action === 'function') {\n // GOOD: `action` is an own method of `actions`\n res.end(action(req.params.payload));\n return;\n }\n }\n res.end(\"Unsupported action.\");\n});\n\n```\n\n## References\n* OWASP: [Denial of Service](https://www.owasp.org/index.php/Denial_of_Service).\n* MDN: [Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map).\n* MDN: [Object.prototype](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype).\n* Common Weakness Enumeration: [CWE-754](https://cwe.mitre.org/data/definitions/754.html).\n"},"properties":{"tags":["security","external/cwe/cwe-754"],"description":"Calling a method with a user-controlled name may dispatch to\n an unexpected target, which could cause an exception.","id":"js/unvalidated-dynamic-method-call","kind":"path-problem","name":"Unvalidated dynamic method call","precision":"high","problem.severity":"warning","security-severity":"7.5"}},{"id":"js/tainted-format-string","name":"js/tainted-format-string","shortDescription":{"text":"Use of externally-controlled format string"},"fullDescription":{"text":"Using external input in format strings can lead to garbled output."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Use of externally-controlled format string\nFunctions like the Node.js standard library function `util.format` accept a format string that is used to format the remaining arguments by providing inline format specifiers. If the format string contains unsanitized input from an untrusted source, then that string may contain unexpected format specifiers that cause garbled output.\n\n\n## Recommendation\nEither sanitize the input before including it in the format string, or use a `%s` specifier in the format string, and pass the untrusted data as corresponding argument.\n\n\n## Example\nThe following program snippet logs information about an unauthorized access attempt. The log message includes the user name, and the user's IP address is passed as an additional argument to `console.log` to be appended to the message:\n\n\n```javascript\nconst app = require(\"express\")();\n\napp.get(\"unauthorized\", function handler(req, res) {\n let user = req.query.user;\n let ip = req.connection.remoteAddress;\n console.log(\"Unauthorized access attempt by \" + user, ip);\n});\n\n```\nHowever, if a malicious user provides `%d` as their user name, `console.log` will instead attempt to format the `ip` argument as a number. Since IP addresses are not valid numbers, the result of this conversion is `NaN`. The resulting log message will read \"Unauthorized access attempt by NaN\", missing all the information that it was trying to log in the first place.\n\nInstead, the user name should be included using the `%s` specifier:\n\n\n```javascript\nconst app = require(\"express\")();\n\napp.get(\"unauthorized\", function handler(req, res) {\n let user = req.query.user;\n let ip = req.connection.remoteAddress;\n console.log(\"Unauthorized access attempt by %s\", user, ip);\n});\n\n```\n\n## References\n* Node.js Documentation: [util.format](https://nodejs.org/api/util.html#util_util_format_format_args).\n* Common Weakness Enumeration: [CWE-134](https://cwe.mitre.org/data/definitions/134.html).\n","markdown":"# Use of externally-controlled format string\nFunctions like the Node.js standard library function `util.format` accept a format string that is used to format the remaining arguments by providing inline format specifiers. If the format string contains unsanitized input from an untrusted source, then that string may contain unexpected format specifiers that cause garbled output.\n\n\n## Recommendation\nEither sanitize the input before including it in the format string, or use a `%s` specifier in the format string, and pass the untrusted data as corresponding argument.\n\n\n## Example\nThe following program snippet logs information about an unauthorized access attempt. The log message includes the user name, and the user's IP address is passed as an additional argument to `console.log` to be appended to the message:\n\n\n```javascript\nconst app = require(\"express\")();\n\napp.get(\"unauthorized\", function handler(req, res) {\n let user = req.query.user;\n let ip = req.connection.remoteAddress;\n console.log(\"Unauthorized access attempt by \" + user, ip);\n});\n\n```\nHowever, if a malicious user provides `%d` as their user name, `console.log` will instead attempt to format the `ip` argument as a number. Since IP addresses are not valid numbers, the result of this conversion is `NaN`. The resulting log message will read \"Unauthorized access attempt by NaN\", missing all the information that it was trying to log in the first place.\n\nInstead, the user name should be included using the `%s` specifier:\n\n\n```javascript\nconst app = require(\"express\")();\n\napp.get(\"unauthorized\", function handler(req, res) {\n let user = req.query.user;\n let ip = req.connection.remoteAddress;\n console.log(\"Unauthorized access attempt by %s\", user, ip);\n});\n\n```\n\n## References\n* Node.js Documentation: [util.format](https://nodejs.org/api/util.html#util_util_format_format_args).\n* Common Weakness Enumeration: [CWE-134](https://cwe.mitre.org/data/definitions/134.html).\n"},"properties":{"tags":["security","external/cwe/cwe-134"],"description":"Using external input in format strings can lead to garbled output.","id":"js/tainted-format-string","kind":"path-problem","name":"Use of externally-controlled format string","precision":"high","problem.severity":"warning","security-severity":"7.3"}},{"id":"js/resource-exhaustion-from-deep-object-traversal","name":"js/resource-exhaustion-from-deep-object-traversal","shortDescription":{"text":"Resources exhaustion from deep object traversal"},"fullDescription":{"text":"Processing user-controlled object hierarchies inefficiently can lead to denial of service."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Resources exhaustion from deep object traversal\nProcessing user-controlled data with a method that allocates excessive amounts of memory can lead to denial of service.\n\nIf the JSON schema validation library `ajv` is configured with `allErrors: true` there is no limit to how many error objects will be allocated. An attacker can exploit this by sending an object that deliberately contains a huge number of errors, and in some cases, with longer and longer error messages. This can cause the service to become unresponsive due to the slow error-checking process.\n\n\n## Recommendation\nDo not use `allErrors: true` in production.\n\n\n## Example\nIn the example below, the user-submitted object `req.body` is validated using `ajv` and `allErrors: true`:\n\n\n```javascript\nimport express from 'express';\nimport Ajv from 'ajv';\n\nlet ajv = new Ajv({ allErrors: true });\najv.addSchema(require('./input-schema'), 'input');\n\nvar app = express();\napp.get('/user/:id', function(req, res) {\n\tif (!ajv.validate('input', req.body)) {\n\t\tres.end(ajv.errorsText());\n\t\treturn;\n\t}\n\t// ...\n});\n\n```\nAlthough this ensures that `req.body` conforms to the schema, the validation itself could be vulnerable to a denial-of-service attack. An attacker could send an object containing so many errors that the server runs out of memory.\n\nA solution is to not pass in `allErrors: true`, which means `ajv` will only report the first error, not all of them:\n\n\n```javascript\nimport express from 'express';\nimport Ajv from 'ajv';\n\nlet ajv = new Ajv({ allErrors: process.env['REST_DEBUG'] });\najv.addSchema(require('./input-schema'), 'input');\n\nvar app = express();\napp.get('/user/:id', function(req, res) {\n\tif (!ajv.validate('input', req.body)) {\n\t\tres.end(ajv.errorsText());\n\t\treturn;\n\t}\n\t// ...\n});\n\n```\n\n## References\n* Ajv documentation: [security considerations](https://github.com/ajv-validator/ajv/blob/master/docs/security.md#untrusted-schemas)\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n","markdown":"# Resources exhaustion from deep object traversal\nProcessing user-controlled data with a method that allocates excessive amounts of memory can lead to denial of service.\n\nIf the JSON schema validation library `ajv` is configured with `allErrors: true` there is no limit to how many error objects will be allocated. An attacker can exploit this by sending an object that deliberately contains a huge number of errors, and in some cases, with longer and longer error messages. This can cause the service to become unresponsive due to the slow error-checking process.\n\n\n## Recommendation\nDo not use `allErrors: true` in production.\n\n\n## Example\nIn the example below, the user-submitted object `req.body` is validated using `ajv` and `allErrors: true`:\n\n\n```javascript\nimport express from 'express';\nimport Ajv from 'ajv';\n\nlet ajv = new Ajv({ allErrors: true });\najv.addSchema(require('./input-schema'), 'input');\n\nvar app = express();\napp.get('/user/:id', function(req, res) {\n\tif (!ajv.validate('input', req.body)) {\n\t\tres.end(ajv.errorsText());\n\t\treturn;\n\t}\n\t// ...\n});\n\n```\nAlthough this ensures that `req.body` conforms to the schema, the validation itself could be vulnerable to a denial-of-service attack. An attacker could send an object containing so many errors that the server runs out of memory.\n\nA solution is to not pass in `allErrors: true`, which means `ajv` will only report the first error, not all of them:\n\n\n```javascript\nimport express from 'express';\nimport Ajv from 'ajv';\n\nlet ajv = new Ajv({ allErrors: process.env['REST_DEBUG'] });\najv.addSchema(require('./input-schema'), 'input');\n\nvar app = express();\napp.get('/user/:id', function(req, res) {\n\tif (!ajv.validate('input', req.body)) {\n\t\tres.end(ajv.errorsText());\n\t\treturn;\n\t}\n\t// ...\n});\n\n```\n\n## References\n* Ajv documentation: [security considerations](https://github.com/ajv-validator/ajv/blob/master/docs/security.md#untrusted-schemas)\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n"},"properties":{"tags":["security","external/cwe/cwe-400"],"description":"Processing user-controlled object hierarchies inefficiently can lead to denial of service.","id":"js/resource-exhaustion-from-deep-object-traversal","kind":"path-problem","name":"Resources exhaustion from deep object traversal","precision":"high","problem.severity":"warning","security-severity":"7.5"}},{"id":"js/cross-window-information-leak","name":"js/cross-window-information-leak","shortDescription":{"text":"Cross-window communication with unrestricted target origin"},"fullDescription":{"text":"When sending sensitive information to another window using `postMessage`, the origin of the target window should be restricted to avoid unintentional information leaks."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Cross-window communication with unrestricted target origin\nThe `window.postMessage` method allows different windows or iframes to communicate directly, even if they were loaded from different origins, circumventing the usual same-origin policy.\n\nThe sender of the message can restrict the origin of the receiver by specifying a target origin. If the receiver window does not come from this origin, the message is not sent.\n\nAlternatively, the sender can specify a target origin of `'*'`, which means that any origin is acceptable and the message is always sent.\n\nThis feature should not be used if the message being sent contains sensitive data such as user credentials: the target window may have been loaded from a malicious site, to which the data would then become available.\n\n\n## Recommendation\nIf possible, specify a target origin when using `window.postMessage`. Alternatively, encrypt the sensitive data before sending it to prevent an unauthorized receiver from accessing it.\n\n\n## Example\nThe following example code sends user credentials (in this case, their user name) to `window.parent` without checking its origin. If a malicious site loads the page containing this code into an iframe it would be able to gain access to the user name.\n\n\n```javascript\nwindow.parent.postMessage(userName, '*');\n\n```\nTo prevent this from happening, the origin of the target window should be restricted, as in this example:\n\n\n```javascript\nwindow.parent.postMessage(userName, 'https://github.com');\n\n```\n\n## References\n* Mozilla Developer Network: [Window.postMessage](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage).\n* Mozilla Developer Network: [Same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy).\n* Common Weakness Enumeration: [CWE-201](https://cwe.mitre.org/data/definitions/201.html).\n* Common Weakness Enumeration: [CWE-359](https://cwe.mitre.org/data/definitions/359.html).\n","markdown":"# Cross-window communication with unrestricted target origin\nThe `window.postMessage` method allows different windows or iframes to communicate directly, even if they were loaded from different origins, circumventing the usual same-origin policy.\n\nThe sender of the message can restrict the origin of the receiver by specifying a target origin. If the receiver window does not come from this origin, the message is not sent.\n\nAlternatively, the sender can specify a target origin of `'*'`, which means that any origin is acceptable and the message is always sent.\n\nThis feature should not be used if the message being sent contains sensitive data such as user credentials: the target window may have been loaded from a malicious site, to which the data would then become available.\n\n\n## Recommendation\nIf possible, specify a target origin when using `window.postMessage`. Alternatively, encrypt the sensitive data before sending it to prevent an unauthorized receiver from accessing it.\n\n\n## Example\nThe following example code sends user credentials (in this case, their user name) to `window.parent` without checking its origin. If a malicious site loads the page containing this code into an iframe it would be able to gain access to the user name.\n\n\n```javascript\nwindow.parent.postMessage(userName, '*');\n\n```\nTo prevent this from happening, the origin of the target window should be restricted, as in this example:\n\n\n```javascript\nwindow.parent.postMessage(userName, 'https://github.com');\n\n```\n\n## References\n* Mozilla Developer Network: [Window.postMessage](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage).\n* Mozilla Developer Network: [Same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy).\n* Common Weakness Enumeration: [CWE-201](https://cwe.mitre.org/data/definitions/201.html).\n* Common Weakness Enumeration: [CWE-359](https://cwe.mitre.org/data/definitions/359.html).\n"},"properties":{"tags":["security","external/cwe/cwe-201","external/cwe/cwe-359"],"description":"When sending sensitive information to another window using `postMessage`,\n the origin of the target window should be restricted to avoid unintentional\n information leaks.","id":"js/cross-window-information-leak","kind":"path-problem","name":"Cross-window communication with unrestricted target origin","precision":"high","problem.severity":"error","security-severity":"4.3"}},{"id":"js/sql-injection","name":"js/sql-injection","shortDescription":{"text":"Database query built from user-controlled sources"},"fullDescription":{"text":"Building a database query from user-controlled sources is vulnerable to insertion of malicious code by the user."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Database query built from user-controlled sources\nIf a database query (such as a SQL or NoSQL query) is built from user-provided data without sufficient sanitization, a malicious user may be able to run malicious database queries.\n\n\n## Recommendation\nMost database connector libraries offer a way of safely embedding untrusted data into a query by means of query parameters or prepared statements.\n\nFor NoSQL queries, make use of an operator like MongoDB's `$eq` to ensure that untrusted data is interpreted as a literal value and not as a query object. Alternatively, check that the untrusted data is a literal value and not a query object before using it in a query.\n\nFor SQL queries, use query parameters or prepared statements to embed untrusted data into the query string, or use a library like `sqlstring` to escape untrusted data.\n\n\n## Example\nIn the following example, assume the function `handler` is an HTTP request handler in a web application, whose parameter `req` contains the request object.\n\nThe handler constructs an SQL query string from user input and executes it as a database query using the `pg` library. The user input may contain quote characters, so this code is vulnerable to a SQL injection attack.\n\n\n```javascript\nconst app = require(\"express\")(),\n pg = require(\"pg\"),\n pool = new pg.Pool(config);\n\napp.get(\"search\", function handler(req, res) {\n // BAD: the category might have SQL special characters in it\n var query1 =\n \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='\" +\n req.params.category +\n \"' ORDER BY PRICE\";\n pool.query(query1, [], function(err, results) {\n // process results\n });\n});\n\n```\nTo fix this vulnerability, we can use query parameters to embed the user input into the query string. In this example, we use the API offered by the `pg` Postgres database connector library, but other libraries offer similar features. This version is immune to injection attacks.\n\n\n```javascript\nconst app = require(\"express\")(),\n pg = require(\"pg\"),\n pool = new pg.Pool(config);\n\napp.get(\"search\", function handler(req, res) {\n // GOOD: use parameters\n var query2 =\n \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=$1 ORDER BY PRICE\";\n pool.query(query2, [req.params.category], function(err, results) {\n // process results\n });\n});\n\n```\nAlternatively, we can use a library like `sqlstring` to escape the user input before embedding it into the query string:\n\n\n```javascript\nconst app = require(\"express\")(),\n pg = require(\"pg\"),\n SqlString = require('sqlstring'),\n pool = new pg.Pool(config);\n\napp.get(\"search\", function handler(req, res) {\n // GOOD: the category is escaped using mysql.escape\n var query1 =\n \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='\" +\n SqlString.escape(req.params.category) +\n \"' ORDER BY PRICE\";\n pool.query(query1, [], function(err, results) {\n // process results\n });\n});\n\n```\n\n## Example\nIn the following example, an express handler attempts to delete a single document from a MongoDB collection. The document to be deleted is identified by its `_id` field, which is constructed from user input. The user input may contain a query object, so this code is vulnerable to a NoSQL injection attack.\n\n\n```javascript\nconst express = require(\"express\");\nconst mongoose = require(\"mongoose\");\nconst Todo = mongoose.model(\n \"Todo\",\n new mongoose.Schema({ text: { type: String } }, { timestamps: true })\n);\n\nconst app = express();\napp.use(express.json());\napp.use(express.urlencoded({ extended: false }));\n\napp.delete(\"/api/delete\", async (req, res) => {\n let id = req.body.id;\n\n await Todo.deleteOne({ _id: id }); // BAD: id might be an object with special properties\n\n res.json({ status: \"ok\" });\n});\n\n```\nTo fix this vulnerability, we can use the `$eq` operator to ensure that the user input is interpreted as a literal value and not as a query object:\n\n\n```javascript\napp.delete(\"/api/delete\", async (req, res) => {\n let id = req.body.id;\n await Todo.deleteOne({ _id: { $eq: id } }); // GOOD: using $eq operator for the comparison\n\n res.json({ status: \"ok\" });\n});\n```\nAlternatively check that the user input is a literal value and not a query object before using it:\n\n\n```javascript\napp.delete(\"/api/delete\", async (req, res) => {\n let id = req.body.id;\n if (typeof id !== \"string\") {\n res.status(400).json({ status: \"error\" });\n return;\n }\n await Todo.deleteOne({ _id: id }); // GOOD: id is guaranteed to be a string\n\n res.json({ status: \"ok\" });\n});\n\n```\n\n## References\n* Wikipedia: [SQL injection](https://en.wikipedia.org/wiki/SQL_injection).\n* MongoDB: [$eq operator](https://docs.mongodb.com/manual/reference/operator/query/eq).\n* OWASP: [NoSQL injection](https://owasp.org/www-pdf-archive/GOD16-NOSQL.pdf).\n* Common Weakness Enumeration: [CWE-89](https://cwe.mitre.org/data/definitions/89.html).\n* Common Weakness Enumeration: [CWE-90](https://cwe.mitre.org/data/definitions/90.html).\n* Common Weakness Enumeration: [CWE-943](https://cwe.mitre.org/data/definitions/943.html).\n","markdown":"# Database query built from user-controlled sources\nIf a database query (such as a SQL or NoSQL query) is built from user-provided data without sufficient sanitization, a malicious user may be able to run malicious database queries.\n\n\n## Recommendation\nMost database connector libraries offer a way of safely embedding untrusted data into a query by means of query parameters or prepared statements.\n\nFor NoSQL queries, make use of an operator like MongoDB's `$eq` to ensure that untrusted data is interpreted as a literal value and not as a query object. Alternatively, check that the untrusted data is a literal value and not a query object before using it in a query.\n\nFor SQL queries, use query parameters or prepared statements to embed untrusted data into the query string, or use a library like `sqlstring` to escape untrusted data.\n\n\n## Example\nIn the following example, assume the function `handler` is an HTTP request handler in a web application, whose parameter `req` contains the request object.\n\nThe handler constructs an SQL query string from user input and executes it as a database query using the `pg` library. The user input may contain quote characters, so this code is vulnerable to a SQL injection attack.\n\n\n```javascript\nconst app = require(\"express\")(),\n pg = require(\"pg\"),\n pool = new pg.Pool(config);\n\napp.get(\"search\", function handler(req, res) {\n // BAD: the category might have SQL special characters in it\n var query1 =\n \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='\" +\n req.params.category +\n \"' ORDER BY PRICE\";\n pool.query(query1, [], function(err, results) {\n // process results\n });\n});\n\n```\nTo fix this vulnerability, we can use query parameters to embed the user input into the query string. In this example, we use the API offered by the `pg` Postgres database connector library, but other libraries offer similar features. This version is immune to injection attacks.\n\n\n```javascript\nconst app = require(\"express\")(),\n pg = require(\"pg\"),\n pool = new pg.Pool(config);\n\napp.get(\"search\", function handler(req, res) {\n // GOOD: use parameters\n var query2 =\n \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=$1 ORDER BY PRICE\";\n pool.query(query2, [req.params.category], function(err, results) {\n // process results\n });\n});\n\n```\nAlternatively, we can use a library like `sqlstring` to escape the user input before embedding it into the query string:\n\n\n```javascript\nconst app = require(\"express\")(),\n pg = require(\"pg\"),\n SqlString = require('sqlstring'),\n pool = new pg.Pool(config);\n\napp.get(\"search\", function handler(req, res) {\n // GOOD: the category is escaped using mysql.escape\n var query1 =\n \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='\" +\n SqlString.escape(req.params.category) +\n \"' ORDER BY PRICE\";\n pool.query(query1, [], function(err, results) {\n // process results\n });\n});\n\n```\n\n## Example\nIn the following example, an express handler attempts to delete a single document from a MongoDB collection. The document to be deleted is identified by its `_id` field, which is constructed from user input. The user input may contain a query object, so this code is vulnerable to a NoSQL injection attack.\n\n\n```javascript\nconst express = require(\"express\");\nconst mongoose = require(\"mongoose\");\nconst Todo = mongoose.model(\n \"Todo\",\n new mongoose.Schema({ text: { type: String } }, { timestamps: true })\n);\n\nconst app = express();\napp.use(express.json());\napp.use(express.urlencoded({ extended: false }));\n\napp.delete(\"/api/delete\", async (req, res) => {\n let id = req.body.id;\n\n await Todo.deleteOne({ _id: id }); // BAD: id might be an object with special properties\n\n res.json({ status: \"ok\" });\n});\n\n```\nTo fix this vulnerability, we can use the `$eq` operator to ensure that the user input is interpreted as a literal value and not as a query object:\n\n\n```javascript\napp.delete(\"/api/delete\", async (req, res) => {\n let id = req.body.id;\n await Todo.deleteOne({ _id: { $eq: id } }); // GOOD: using $eq operator for the comparison\n\n res.json({ status: \"ok\" });\n});\n```\nAlternatively check that the user input is a literal value and not a query object before using it:\n\n\n```javascript\napp.delete(\"/api/delete\", async (req, res) => {\n let id = req.body.id;\n if (typeof id !== \"string\") {\n res.status(400).json({ status: \"error\" });\n return;\n }\n await Todo.deleteOne({ _id: id }); // GOOD: id is guaranteed to be a string\n\n res.json({ status: \"ok\" });\n});\n\n```\n\n## References\n* Wikipedia: [SQL injection](https://en.wikipedia.org/wiki/SQL_injection).\n* MongoDB: [$eq operator](https://docs.mongodb.com/manual/reference/operator/query/eq).\n* OWASP: [NoSQL injection](https://owasp.org/www-pdf-archive/GOD16-NOSQL.pdf).\n* Common Weakness Enumeration: [CWE-89](https://cwe.mitre.org/data/definitions/89.html).\n* Common Weakness Enumeration: [CWE-90](https://cwe.mitre.org/data/definitions/90.html).\n* Common Weakness Enumeration: [CWE-943](https://cwe.mitre.org/data/definitions/943.html).\n"},"properties":{"tags":["security","external/cwe/cwe-089","external/cwe/cwe-090","external/cwe/cwe-943"],"description":"Building a database query from user-controlled sources is vulnerable to insertion of\n malicious code by the user.","id":"js/sql-injection","kind":"path-problem","name":"Database query built from user-controlled sources","precision":"high","problem.severity":"error","security-severity":"8.8"}},{"id":"js/incomplete-hostname-regexp","name":"js/incomplete-hostname-regexp","shortDescription":{"text":"Incomplete regular expression for hostnames"},"fullDescription":{"text":"Matching a URL or hostname against a regular expression that contains an unescaped dot as part of the hostname might match more hostnames than expected."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Incomplete regular expression for hostnames\nSanitizing untrusted URLs is an important technique for preventing attacks such as request forgeries and malicious redirections. Often, this is done by checking that the host of a URL is in a set of allowed hosts.\n\nIf a regular expression implements such a check, it is easy to accidentally make the check too permissive by not escaping the `.` meta-characters appropriately. Even if the check is not used in a security-critical context, the incomplete check may still cause undesirable behaviors when it accidentally succeeds.\n\n\n## Recommendation\nEscape all meta-characters appropriately when constructing regular expressions for security checks, and pay special attention to the `.` meta-character.\n\n\n## Example\nThe following example code checks that a URL redirection will reach the `example.com` domain, or one of its subdomains.\n\n\n```javascript\napp.get('/some/path', function(req, res) {\n let url = req.param('url'),\n host = urlLib.parse(url).host;\n // BAD: the host of `url` may be controlled by an attacker\n let regex = /^((www|beta).)?example.com/;\n if (host.match(regex)) {\n res.redirect(url);\n }\n});\n\n```\nThe check is however easy to bypass because the unescaped `.` allows for any character before `example.com`, effectively allowing the redirect to go to an attacker-controlled domain such as `wwwXexample.com`.\n\nAddress this vulnerability by escaping `.` appropriately: `let regex = /^((www|beta)\\.)?example\\.com/`.\n\n\n## References\n* MDN: [Regular Expressions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)\n* OWASP: [SSRF](https://www.owasp.org/index.php/Server_Side_Request_Forgery)\n* OWASP: [XSS Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n","markdown":"# Incomplete regular expression for hostnames\nSanitizing untrusted URLs is an important technique for preventing attacks such as request forgeries and malicious redirections. Often, this is done by checking that the host of a URL is in a set of allowed hosts.\n\nIf a regular expression implements such a check, it is easy to accidentally make the check too permissive by not escaping the `.` meta-characters appropriately. Even if the check is not used in a security-critical context, the incomplete check may still cause undesirable behaviors when it accidentally succeeds.\n\n\n## Recommendation\nEscape all meta-characters appropriately when constructing regular expressions for security checks, and pay special attention to the `.` meta-character.\n\n\n## Example\nThe following example code checks that a URL redirection will reach the `example.com` domain, or one of its subdomains.\n\n\n```javascript\napp.get('/some/path', function(req, res) {\n let url = req.param('url'),\n host = urlLib.parse(url).host;\n // BAD: the host of `url` may be controlled by an attacker\n let regex = /^((www|beta).)?example.com/;\n if (host.match(regex)) {\n res.redirect(url);\n }\n});\n\n```\nThe check is however easy to bypass because the unescaped `.` allows for any character before `example.com`, effectively allowing the redirect to go to an attacker-controlled domain such as `wwwXexample.com`.\n\nAddress this vulnerability by escaping `.` appropriately: `let regex = /^((www|beta)\\.)?example\\.com/`.\n\n\n## References\n* MDN: [Regular Expressions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)\n* OWASP: [SSRF](https://www.owasp.org/index.php/Server_Side_Request_Forgery)\n* OWASP: [XSS Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n"},"properties":{"tags":["correctness","security","external/cwe/cwe-020"],"description":"Matching a URL or hostname against a regular expression that contains an unescaped dot as part of the hostname might match more hostnames than expected.","id":"js/incomplete-hostname-regexp","kind":"problem","name":"Incomplete regular expression for hostnames","precision":"high","problem.severity":"warning","security-severity":"7.8"}},{"id":"js/incomplete-url-scheme-check","name":"js/incomplete-url-scheme-check","shortDescription":{"text":"Incomplete URL scheme check"},"fullDescription":{"text":"Checking for the \"javascript:\" URL scheme without also checking for \"vbscript:\" and \"data:\" suggests a logic error or even a security vulnerability."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Incomplete URL scheme check\nURLs starting with `javascript:` can be used to encode JavaScript code to be executed when the URL is visited. While this is a powerful mechanism for creating feature-rich and responsive web applications, it is also a potential security risk: if the URL comes from an untrusted source, it might contain harmful JavaScript code. For this reason, many frameworks and libraries first check the URL scheme of any untrusted URL, and reject URLs with the `javascript:` scheme.\n\nHowever, the `data:` and `vbscript:` schemes can be used to represent executable code in a very similar way, so any validation logic that checks against `javascript:`, but not against `data:` and `vbscript:`, is likely to be insufficient.\n\n\n## Recommendation\nAdd checks covering both `data:` and `vbscript:`.\n\n\n## Example\nThe following function validates a (presumably untrusted) URL `url`. If it starts with `javascript:` (case-insensitive and potentially preceded by whitespace), the harmless placeholder URL `about:blank` is returned to prevent code injection; otherwise `url` itself is returned.\n\n\n```javascript\nfunction sanitizeUrl(url) {\n let u = decodeURI(url).trim().toLowerCase();\n if (u.startsWith(\"javascript:\"))\n return \"about:blank\";\n return url;\n}\n\n```\nWhile this check provides partial projection, it should be extended to cover `data:` and `vbscript:` as well:\n\n\n```javascript\nfunction sanitizeUrl(url) {\n let u = decodeURI(url).trim().toLowerCase();\n if (u.startsWith(\"javascript:\") || u.startsWith(\"data:\") || u.startsWith(\"vbscript:\"))\n return \"about:blank\";\n return url;\n}\n\n```\n\n## References\n* WHATWG: [URL schemes](https://wiki.whatwg.org/wiki/URL_schemes).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n* Common Weakness Enumeration: [CWE-184](https://cwe.mitre.org/data/definitions/184.html).\n","markdown":"# Incomplete URL scheme check\nURLs starting with `javascript:` can be used to encode JavaScript code to be executed when the URL is visited. While this is a powerful mechanism for creating feature-rich and responsive web applications, it is also a potential security risk: if the URL comes from an untrusted source, it might contain harmful JavaScript code. For this reason, many frameworks and libraries first check the URL scheme of any untrusted URL, and reject URLs with the `javascript:` scheme.\n\nHowever, the `data:` and `vbscript:` schemes can be used to represent executable code in a very similar way, so any validation logic that checks against `javascript:`, but not against `data:` and `vbscript:`, is likely to be insufficient.\n\n\n## Recommendation\nAdd checks covering both `data:` and `vbscript:`.\n\n\n## Example\nThe following function validates a (presumably untrusted) URL `url`. If it starts with `javascript:` (case-insensitive and potentially preceded by whitespace), the harmless placeholder URL `about:blank` is returned to prevent code injection; otherwise `url` itself is returned.\n\n\n```javascript\nfunction sanitizeUrl(url) {\n let u = decodeURI(url).trim().toLowerCase();\n if (u.startsWith(\"javascript:\"))\n return \"about:blank\";\n return url;\n}\n\n```\nWhile this check provides partial projection, it should be extended to cover `data:` and `vbscript:` as well:\n\n\n```javascript\nfunction sanitizeUrl(url) {\n let u = decodeURI(url).trim().toLowerCase();\n if (u.startsWith(\"javascript:\") || u.startsWith(\"data:\") || u.startsWith(\"vbscript:\"))\n return \"about:blank\";\n return url;\n}\n\n```\n\n## References\n* WHATWG: [URL schemes](https://wiki.whatwg.org/wiki/URL_schemes).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n* Common Weakness Enumeration: [CWE-184](https://cwe.mitre.org/data/definitions/184.html).\n"},"properties":{"tags":["security","correctness","external/cwe/cwe-020","external/cwe/cwe-184"],"description":"Checking for the \"javascript:\" URL scheme without also checking for \"vbscript:\"\n and \"data:\" suggests a logic error or even a security vulnerability.","id":"js/incomplete-url-scheme-check","kind":"problem","name":"Incomplete URL scheme check","precision":"high","problem.severity":"warning","security-severity":"7.8"}},{"id":"js/overly-large-range","name":"js/overly-large-range","shortDescription":{"text":"Overly permissive regular expression range"},"fullDescription":{"text":"Overly permissive regular expression ranges match a wider range of characters than intended. This may allow an attacker to bypass a filter or sanitizer."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Overly permissive regular expression range\nIt's easy to write a regular expression range that matches a wider range of characters than you intended. For example, `/[a-zA-z]/` matches all lowercase and all uppercase letters, as you would expect, but it also matches the characters: `` [ \\ ] ^ _ ` ``.\n\nAnother common problem is failing to escape the dash character in a regular expression. An unescaped dash is interpreted as part of a range. For example, in the character class `[a-zA-Z0-9%=.,-_]` the last character range matches the 55 characters between `,` and `_` (both included), which overlaps with the range `[0-9]` and is clearly not intended by the writer.\n\n\n## Recommendation\nAvoid any confusion about which characters are included in the range by writing unambiguous regular expressions. Always check that character ranges match only the expected characters.\n\n\n## Example\nThe following example code is intended to check whether a string is a valid 6 digit hex color.\n\n```javascript\n\nfunction isValidHexColor(color) {\n return /^#[0-9a-fA-f]{6}$/i.test(color);\n}\n\n```\nHowever, the `A-f` range is overly large and matches every uppercase character. It would parse a \"color\" like `#XXYYZZ` as valid.\n\nThe fix is to use an uppercase `A-F` range instead.\n\n```javascript\n\nfunction isValidHexColor(color) {\n return /^#[0-9A-F]{6}$/i.test(color);\n}\n\n```\n\n## References\n* GitHub Advisory Database: [CVE-2021-42740: Improper Neutralization of Special Elements used in a Command in Shell-quote](https://github.com/advisories/GHSA-g4rg-993r-mgx7)\n* wh0.github.io: [Exploiting CVE-2021-42740](https://wh0.github.io/2021/10/28/shell-quote-rce-exploiting.html)\n* Yosuke Ota: [no-obscure-range](https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-obscure-range.html)\n* Paul Boyd: [The regex \\[,-.\\]](https://pboyd.io/posts/comma-dash-dot/)\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n","markdown":"# Overly permissive regular expression range\nIt's easy to write a regular expression range that matches a wider range of characters than you intended. For example, `/[a-zA-z]/` matches all lowercase and all uppercase letters, as you would expect, but it also matches the characters: `` [ \\ ] ^ _ ` ``.\n\nAnother common problem is failing to escape the dash character in a regular expression. An unescaped dash is interpreted as part of a range. For example, in the character class `[a-zA-Z0-9%=.,-_]` the last character range matches the 55 characters between `,` and `_` (both included), which overlaps with the range `[0-9]` and is clearly not intended by the writer.\n\n\n## Recommendation\nAvoid any confusion about which characters are included in the range by writing unambiguous regular expressions. Always check that character ranges match only the expected characters.\n\n\n## Example\nThe following example code is intended to check whether a string is a valid 6 digit hex color.\n\n```javascript\n\nfunction isValidHexColor(color) {\n return /^#[0-9a-fA-f]{6}$/i.test(color);\n}\n\n```\nHowever, the `A-f` range is overly large and matches every uppercase character. It would parse a \"color\" like `#XXYYZZ` as valid.\n\nThe fix is to use an uppercase `A-F` range instead.\n\n```javascript\n\nfunction isValidHexColor(color) {\n return /^#[0-9A-F]{6}$/i.test(color);\n}\n\n```\n\n## References\n* GitHub Advisory Database: [CVE-2021-42740: Improper Neutralization of Special Elements used in a Command in Shell-quote](https://github.com/advisories/GHSA-g4rg-993r-mgx7)\n* wh0.github.io: [Exploiting CVE-2021-42740](https://wh0.github.io/2021/10/28/shell-quote-rce-exploiting.html)\n* Yosuke Ota: [no-obscure-range](https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-obscure-range.html)\n* Paul Boyd: [The regex \\[,-.\\]](https://pboyd.io/posts/comma-dash-dot/)\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n"},"properties":{"tags":["correctness","security","external/cwe/cwe-020"],"description":"Overly permissive regular expression ranges match a wider range of characters than intended.\n This may allow an attacker to bypass a filter or sanitizer.","id":"js/overly-large-range","kind":"problem","name":"Overly permissive regular expression range","precision":"high","problem.severity":"warning","security-severity":"5.0"}},{"id":"js/incorrect-suffix-check","name":"js/incorrect-suffix-check","shortDescription":{"text":"Incorrect suffix check"},"fullDescription":{"text":"Using indexOf to implement endsWith functionality is error-prone if the -1 case is not explicitly handled."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Incorrect suffix check\nThe `indexOf` and `lastIndexOf` methods are sometimes used to check if a substring occurs at a certain position in a string. However, if the returned index is compared to an expression that might evaluate to -1, the check may pass in some cases where the substring was not found at all.\n\nSpecifically, this can easily happen when implementing `endsWith` using `indexOf`.\n\n\n## Recommendation\nUse `String.prototype.endsWith` if it is available. Otherwise, explicitly handle the -1 case, either by checking the relative lengths of the strings, or by checking if the returned index is -1.\n\n\n## Example\nThe following example uses `lastIndexOf` to determine if the string `x` ends with the string `y`:\n\n\n```javascript\nfunction endsWith(x, y) {\n return x.lastIndexOf(y) === x.length - y.length;\n}\n\n```\nHowever, if `y` is one character longer than `x`, the right-hand side `x.length - y.length` becomes -1, which then equals the return value of `lastIndexOf`. This will make the test pass, even though `x` does not end with `y`.\n\nTo avoid this, explicitly check for the -1 case:\n\n\n```javascript\nfunction endsWith(x, y) {\n let index = x.lastIndexOf(y);\n return index !== -1 && index === x.length - y.length;\n}\n\n```\n\n## References\n* MDN: [String.prototype.endsWith](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith)\n* MDN: [String.prototype.indexOf](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf)\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n","markdown":"# Incorrect suffix check\nThe `indexOf` and `lastIndexOf` methods are sometimes used to check if a substring occurs at a certain position in a string. However, if the returned index is compared to an expression that might evaluate to -1, the check may pass in some cases where the substring was not found at all.\n\nSpecifically, this can easily happen when implementing `endsWith` using `indexOf`.\n\n\n## Recommendation\nUse `String.prototype.endsWith` if it is available. Otherwise, explicitly handle the -1 case, either by checking the relative lengths of the strings, or by checking if the returned index is -1.\n\n\n## Example\nThe following example uses `lastIndexOf` to determine if the string `x` ends with the string `y`:\n\n\n```javascript\nfunction endsWith(x, y) {\n return x.lastIndexOf(y) === x.length - y.length;\n}\n\n```\nHowever, if `y` is one character longer than `x`, the right-hand side `x.length - y.length` becomes -1, which then equals the return value of `lastIndexOf`. This will make the test pass, even though `x` does not end with `y`.\n\nTo avoid this, explicitly check for the -1 case:\n\n\n```javascript\nfunction endsWith(x, y) {\n let index = x.lastIndexOf(y);\n return index !== -1 && index === x.length - y.length;\n}\n\n```\n\n## References\n* MDN: [String.prototype.endsWith](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith)\n* MDN: [String.prototype.indexOf](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf)\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n"},"properties":{"tags":["security","correctness","external/cwe/cwe-020"],"description":"Using indexOf to implement endsWith functionality is error-prone if the -1 case is not explicitly handled.","id":"js/incorrect-suffix-check","kind":"problem","name":"Incorrect suffix check","precision":"high","problem.severity":"error","security-severity":"7.8"}},{"id":"js/useless-regexp-character-escape","name":"js/useless-regexp-character-escape","shortDescription":{"text":"Useless regular-expression character escape"},"fullDescription":{"text":"Prepending a backslash to an ordinary character in a string does not have any effect, and may make regular expressions constructed from this string behave unexpectedly."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Useless regular-expression character escape\nWhen a character in a string literal or regular expression literal is preceded by a backslash, it is interpreted as part of an escape sequence. For example, the escape sequence `\\n` in a string literal corresponds to a single `newline` character, and not the `\\` and `n` characters. However, not all characters change meaning when used in an escape sequence. In this case, the backslash just makes the character appear to mean something else, and the backslash actually has no effect. For example, the escape sequence `\\k` in a string literal just means `k`. Such superfluous escape sequences are usually benign, and do not change the behavior of the program.\n\nThe set of characters that change meaning when in escape sequences is different for regular expression literals and string literals. This can be problematic when a regular expression literal is turned into a regular expression that is built from one or more string literals. The problem occurs when a regular expression escape sequence loses its special meaning in a string literal.\n\n\n## Recommendation\nEnsure that the right amount of backslashes is used when escaping characters in strings, template literals and regular expressions. Pay special attention to the number of backslashes when rewriting a regular expression as a string literal.\n\n\n## Example\nThe following example code checks that a string is `\"my-marker\"`, possibly surrounded by white space:\n\n\n```javascript\nlet regex = new RegExp('(^\\s*)my-marker(\\s*$)'),\n isMyMarkerText = regex.test(text);\n\n```\nHowever, the check does not work properly for white space as the two `\\s` occurrences are semantically equivalent to just `s`, meaning that the check will succeed for strings like `\"smy-markers\"` instead of `\" my-marker \"`. Address these shortcomings by either using a regular expression literal (`/(^\\s*)my-marker(\\s*$)/`), or by adding extra backslashes (`'(^\\\\s*)my-marker(\\\\s*$)'`).\n\n\n## References\n* MDN: [Regular expression escape notation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping)\n* MDN: [String escape notation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#Escape_notation)\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n","markdown":"# Useless regular-expression character escape\nWhen a character in a string literal or regular expression literal is preceded by a backslash, it is interpreted as part of an escape sequence. For example, the escape sequence `\\n` in a string literal corresponds to a single `newline` character, and not the `\\` and `n` characters. However, not all characters change meaning when used in an escape sequence. In this case, the backslash just makes the character appear to mean something else, and the backslash actually has no effect. For example, the escape sequence `\\k` in a string literal just means `k`. Such superfluous escape sequences are usually benign, and do not change the behavior of the program.\n\nThe set of characters that change meaning when in escape sequences is different for regular expression literals and string literals. This can be problematic when a regular expression literal is turned into a regular expression that is built from one or more string literals. The problem occurs when a regular expression escape sequence loses its special meaning in a string literal.\n\n\n## Recommendation\nEnsure that the right amount of backslashes is used when escaping characters in strings, template literals and regular expressions. Pay special attention to the number of backslashes when rewriting a regular expression as a string literal.\n\n\n## Example\nThe following example code checks that a string is `\"my-marker\"`, possibly surrounded by white space:\n\n\n```javascript\nlet regex = new RegExp('(^\\s*)my-marker(\\s*$)'),\n isMyMarkerText = regex.test(text);\n\n```\nHowever, the check does not work properly for white space as the two `\\s` occurrences are semantically equivalent to just `s`, meaning that the check will succeed for strings like `\"smy-markers\"` instead of `\" my-marker \"`. Address these shortcomings by either using a regular expression literal (`/(^\\s*)my-marker(\\s*$)/`), or by adding extra backslashes (`'(^\\\\s*)my-marker(\\\\s*$)'`).\n\n\n## References\n* MDN: [Regular expression escape notation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping)\n* MDN: [String escape notation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#Escape_notation)\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n"},"properties":{"tags":["correctness","security","external/cwe/cwe-020"],"description":"Prepending a backslash to an ordinary character in a string\n does not have any effect, and may make regular expressions constructed from this string\n behave unexpectedly.","id":"js/useless-regexp-character-escape","kind":"problem","name":"Useless regular-expression character escape","precision":"high","problem.severity":"error","security-severity":"7.8"}},{"id":"js/incomplete-url-substring-sanitization","name":"js/incomplete-url-substring-sanitization","shortDescription":{"text":"Incomplete URL substring sanitization"},"fullDescription":{"text":"Security checks on the substrings of an unparsed URL are often vulnerable to bypassing."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Incomplete URL substring sanitization\nSanitizing untrusted URLs is an important technique for preventing attacks such as request forgeries and malicious redirections. Usually, this is done by checking that the host of a URL is in a set of allowed hosts.\n\nHowever, treating the URL as a string and checking if one of the allowed hosts is a substring of the URL is very prone to errors. Malicious URLs can bypass such security checks by embedding one of the allowed hosts in an unexpected location.\n\nEven if the substring check is not used in a security-critical context, the incomplete check may still cause undesirable behaviors when the check succeeds accidentally.\n\n\n## Recommendation\nParse a URL before performing a check on its host value, and ensure that the check handles arbitrary subdomain sequences correctly.\n\n\n## Example\nThe following example code checks that a URL redirection will reach the `example.com` domain, or one of its subdomains, and not some malicious site.\n\n\n```javascript\napp.get('/some/path', function(req, res) {\n let url = req.param(\"url\");\n // BAD: the host of `url` may be controlled by an attacker\n if (url.includes(\"example.com\")) {\n res.redirect(url);\n }\n});\n\n```\nThe substring check is, however, easy to bypass. For example by embedding `example.com` in the path component: `http://evil-example.net/example.com`, or in the query string component: `http://evil-example.net/?x=example.com`. Address these shortcomings by checking the host of the parsed URL instead:\n\n\n```javascript\napp.get('/some/path', function(req, res) {\n let url = req.param(\"url\"),\n host = urlLib.parse(url).host;\n // BAD: the host of `url` may be controlled by an attacker\n if (host.includes(\"example.com\")) {\n res.redirect(url);\n }\n});\n\n```\nThis is still not a sufficient check as the following URLs bypass it: `http://evil-example.com` `http://example.com.evil-example.net`. Instead, use an explicit whitelist of allowed hosts to make the redirect secure:\n\n\n```javascript\napp.get('/some/path', function(req, res) {\n let url = req.param('url'),\n host = urlLib.parse(url).host;\n // GOOD: the host of `url` can not be controlled by an attacker\n let allowedHosts = [\n 'example.com',\n 'beta.example.com',\n 'www.example.com'\n ];\n if (allowedHosts.includes(host)) {\n res.redirect(url);\n }\n});\n\n```\n\n## References\n* OWASP: [SSRF](https://www.owasp.org/index.php/Server_Side_Request_Forgery)\n* OWASP: [XSS Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n","markdown":"# Incomplete URL substring sanitization\nSanitizing untrusted URLs is an important technique for preventing attacks such as request forgeries and malicious redirections. Usually, this is done by checking that the host of a URL is in a set of allowed hosts.\n\nHowever, treating the URL as a string and checking if one of the allowed hosts is a substring of the URL is very prone to errors. Malicious URLs can bypass such security checks by embedding one of the allowed hosts in an unexpected location.\n\nEven if the substring check is not used in a security-critical context, the incomplete check may still cause undesirable behaviors when the check succeeds accidentally.\n\n\n## Recommendation\nParse a URL before performing a check on its host value, and ensure that the check handles arbitrary subdomain sequences correctly.\n\n\n## Example\nThe following example code checks that a URL redirection will reach the `example.com` domain, or one of its subdomains, and not some malicious site.\n\n\n```javascript\napp.get('/some/path', function(req, res) {\n let url = req.param(\"url\");\n // BAD: the host of `url` may be controlled by an attacker\n if (url.includes(\"example.com\")) {\n res.redirect(url);\n }\n});\n\n```\nThe substring check is, however, easy to bypass. For example by embedding `example.com` in the path component: `http://evil-example.net/example.com`, or in the query string component: `http://evil-example.net/?x=example.com`. Address these shortcomings by checking the host of the parsed URL instead:\n\n\n```javascript\napp.get('/some/path', function(req, res) {\n let url = req.param(\"url\"),\n host = urlLib.parse(url).host;\n // BAD: the host of `url` may be controlled by an attacker\n if (host.includes(\"example.com\")) {\n res.redirect(url);\n }\n});\n\n```\nThis is still not a sufficient check as the following URLs bypass it: `http://evil-example.com` `http://example.com.evil-example.net`. Instead, use an explicit whitelist of allowed hosts to make the redirect secure:\n\n\n```javascript\napp.get('/some/path', function(req, res) {\n let url = req.param('url'),\n host = urlLib.parse(url).host;\n // GOOD: the host of `url` can not be controlled by an attacker\n let allowedHosts = [\n 'example.com',\n 'beta.example.com',\n 'www.example.com'\n ];\n if (allowedHosts.includes(host)) {\n res.redirect(url);\n }\n});\n\n```\n\n## References\n* OWASP: [SSRF](https://www.owasp.org/index.php/Server_Side_Request_Forgery)\n* OWASP: [XSS Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n"},"properties":{"tags":["correctness","security","external/cwe/cwe-020"],"description":"Security checks on the substrings of an unparsed URL are often vulnerable to bypassing.","id":"js/incomplete-url-substring-sanitization","kind":"problem","name":"Incomplete URL substring sanitization","precision":"high","problem.severity":"warning","security-severity":"7.8"}},{"id":"js/template-object-injection","name":"js/template-object-injection","shortDescription":{"text":"Template Object Injection"},"fullDescription":{"text":"Instantiating a template using a user-controlled object is vulnerable to local file read and potential remote code execution."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Template Object Injection\nDirectly using user-controlled objects as arguments to template engines might allow an attacker to do local file reads or even remote code execution.\n\n\n## Recommendation\nAvoid using user-controlled objects as arguments to a template engine. Instead, construct the object explicitly with the specific properties needed by the template.\n\n\n## Example\nIn the example below a server uses the user-controlled `profile` object to render the `index` template.\n\n\n```javascript\nvar app = require('express')();\napp.set('view engine', 'hbs');\n\napp.post('/', function (req, res, next) {\n var profile = req.body.profile;\n res.render('index', profile);\n});\n```\nHowever, if an attacker adds a `layout` property to the `profile` object then the server will load the file specified by the `layout` property, thereby allowing an attacker to do local file reads.\n\nThe fix is to have the server construct the object, and only add the properties that are needed by the template.\n\n\n```javascript\nvar app = require('express')();\napp.set('view engine', 'hbs');\n\napp.post('/', function (req, res, next) {\n var profile = req.body.profile;\n res.render('index', {\n name: profile.name,\n location: profile.location\n });\n});\n```\n\n## References\n* blog.shoebpatel.com: [The Secret Parameter, LFR, and Potential RCE in NodeJS Apps](https://blog.shoebpatel.com/2021/01/23/The-Secret-Parameter-LFR-and-Potential-RCE-in-NodeJS-Apps/).\n* cwe.mitre.org: [CWE-73: External Control of File Name or Path](https://cwe.mitre.org/data/definitions/73.html)\n* Common Weakness Enumeration: [CWE-73](https://cwe.mitre.org/data/definitions/73.html).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n","markdown":"# Template Object Injection\nDirectly using user-controlled objects as arguments to template engines might allow an attacker to do local file reads or even remote code execution.\n\n\n## Recommendation\nAvoid using user-controlled objects as arguments to a template engine. Instead, construct the object explicitly with the specific properties needed by the template.\n\n\n## Example\nIn the example below a server uses the user-controlled `profile` object to render the `index` template.\n\n\n```javascript\nvar app = require('express')();\napp.set('view engine', 'hbs');\n\napp.post('/', function (req, res, next) {\n var profile = req.body.profile;\n res.render('index', profile);\n});\n```\nHowever, if an attacker adds a `layout` property to the `profile` object then the server will load the file specified by the `layout` property, thereby allowing an attacker to do local file reads.\n\nThe fix is to have the server construct the object, and only add the properties that are needed by the template.\n\n\n```javascript\nvar app = require('express')();\napp.set('view engine', 'hbs');\n\napp.post('/', function (req, res, next) {\n var profile = req.body.profile;\n res.render('index', {\n name: profile.name,\n location: profile.location\n });\n});\n```\n\n## References\n* blog.shoebpatel.com: [The Secret Parameter, LFR, and Potential RCE in NodeJS Apps](https://blog.shoebpatel.com/2021/01/23/The-Secret-Parameter-LFR-and-Potential-RCE-in-NodeJS-Apps/).\n* cwe.mitre.org: [CWE-73: External Control of File Name or Path](https://cwe.mitre.org/data/definitions/73.html)\n* Common Weakness Enumeration: [CWE-73](https://cwe.mitre.org/data/definitions/73.html).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"},"properties":{"tags":["security","external/cwe/cwe-073","external/cwe/cwe-094"],"description":"Instantiating a template using a user-controlled object is vulnerable to local file read and potential remote code execution.","id":"js/template-object-injection","kind":"path-problem","name":"Template Object Injection","precision":"high","problem.severity":"error","security-severity":"9.3"}},{"id":"js/exposure-of-private-files","name":"js/exposure-of-private-files","shortDescription":{"text":"Exposure of private files"},"fullDescription":{"text":"Exposing a node_modules folder, or the project folder to the public, can cause exposure of private information."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Exposure of private files\nLibraries like `express` provide easy methods for serving entire directories of static files from a web server. However, using these can sometimes lead to accidental information exposure. If for example the `node_modules` folder is served, then an attacker can access the `_where` field from a `package.json` file, which gives access to the absolute path of the file.\n\n\n## Recommendation\nLimit which folders of static files are served from a web server.\n\n\n## Example\nIn the example below, all the files from the `node_modules` are served. This allows clients to easily access all the files inside that folder, which includes potentially private information inside `package.json` files.\n\n\n```javascript\n\nvar express = require('express');\n\nvar app = express();\n\napp.use('/node_modules', express.static(path.resolve(__dirname, '../node_modules')));\n```\nThe issue has been fixed below by only serving specific folders within the `node_modules` folder.\n\n\n```javascript\n\nvar express = require('express');\n\nvar app = express();\n\napp.use(\"jquery\", express.static('./node_modules/jquery/dist'));\napp.use(\"bootstrap\", express.static('./node_modules/bootstrap/dist'));\n```\n\n## References\n* OWASP: [Sensitive Data Exposure](https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure).\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n* Common Weakness Enumeration: [CWE-219](https://cwe.mitre.org/data/definitions/219.html).\n* Common Weakness Enumeration: [CWE-548](https://cwe.mitre.org/data/definitions/548.html).\n","markdown":"# Exposure of private files\nLibraries like `express` provide easy methods for serving entire directories of static files from a web server. However, using these can sometimes lead to accidental information exposure. If for example the `node_modules` folder is served, then an attacker can access the `_where` field from a `package.json` file, which gives access to the absolute path of the file.\n\n\n## Recommendation\nLimit which folders of static files are served from a web server.\n\n\n## Example\nIn the example below, all the files from the `node_modules` are served. This allows clients to easily access all the files inside that folder, which includes potentially private information inside `package.json` files.\n\n\n```javascript\n\nvar express = require('express');\n\nvar app = express();\n\napp.use('/node_modules', express.static(path.resolve(__dirname, '../node_modules')));\n```\nThe issue has been fixed below by only serving specific folders within the `node_modules` folder.\n\n\n```javascript\n\nvar express = require('express');\n\nvar app = express();\n\napp.use(\"jquery\", express.static('./node_modules/jquery/dist'));\napp.use(\"bootstrap\", express.static('./node_modules/bootstrap/dist'));\n```\n\n## References\n* OWASP: [Sensitive Data Exposure](https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure).\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n* Common Weakness Enumeration: [CWE-219](https://cwe.mitre.org/data/definitions/219.html).\n* Common Weakness Enumeration: [CWE-548](https://cwe.mitre.org/data/definitions/548.html).\n"},"properties":{"tags":["security","external/cwe/cwe-200","external/cwe/cwe-219","external/cwe/cwe-548"],"description":"Exposing a node_modules folder, or the project folder to the public, can cause exposure\n of private information.","id":"js/exposure-of-private-files","kind":"problem","name":"Exposure of private files","precision":"high","problem.severity":"warning","security-severity":"6.5"}},{"id":"js/xxe","name":"js/xxe","shortDescription":{"text":"XML external entity expansion"},"fullDescription":{"text":"Parsing user input as an XML document with external entity expansion is vulnerable to XXE attacks."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# XML external entity expansion\nParsing untrusted XML files with a weakly configured XML parser may lead to an XML External Entity (XXE) attack. This type of attack uses external entity references to access arbitrary files on a system, carry out denial-of-service (DoS) attacks, or server-side request forgery. Even when the result of parsing is not returned to the user, DoS attacks are still possible and out-of-band data retrieval techniques may allow attackers to steal sensitive data.\n\n\n## Recommendation\nThe easiest way to prevent XXE attacks is to disable external entity handling when parsing untrusted data. How this is done depends on the library being used. Note that some libraries, such as recent versions of `libxml`, disable entity expansion by default, so unless you have explicitly enabled entity expansion, no further action needs to be taken.\n\n\n## Example\nThe following example uses the `libxml` XML parser to parse a string `xmlSrc`. If that string is from an untrusted source, this code may be vulnerable to an XXE attack, since the parser is invoked with the `noent` option set to `true`:\n\n\n```javascript\nconst app = require(\"express\")(),\n libxml = require(\"libxmljs\");\n\napp.post(\"upload\", (req, res) => {\n let xmlSrc = req.body,\n doc = libxml.parseXml(xmlSrc, { noent: true });\n});\n\n```\nTo guard against XXE attacks, the `noent` option should be omitted or set to `false`. This means that no entity expansion is undertaken at all, not even for standard internal entities such as `&` or `>`. If desired, these entities can be expanded in a separate step using utility functions provided by libraries such as [underscore](http://underscorejs.org/#unescape), [lodash](https://lodash.com/docs/4.17.15#unescape) or [he](https://github.com/mathiasbynens/he).\n\n\n```javascript\nconst app = require(\"express\")(),\n libxml = require(\"libxmljs\");\n\napp.post(\"upload\", (req, res) => {\n let xmlSrc = req.body,\n doc = libxml.parseXml(xmlSrc);\n});\n\n```\n\n## References\n* OWASP: [XML External Entity (XXE) Processing](https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Processing).\n* Timothy Morgen: [XML Schema, DTD, and Entity Attacks](https://research.nccgroup.com/2014/05/19/xml-schema-dtd-and-entity-attacks-a-compendium-of-known-techniques/).\n* Timur Yunusov, Alexey Osipov: [XML Out-Of-Band Data Retrieval](https://www.slideshare.net/qqlan/bh-ready-v4).\n* Common Weakness Enumeration: [CWE-611](https://cwe.mitre.org/data/definitions/611.html).\n* Common Weakness Enumeration: [CWE-827](https://cwe.mitre.org/data/definitions/827.html).\n","markdown":"# XML external entity expansion\nParsing untrusted XML files with a weakly configured XML parser may lead to an XML External Entity (XXE) attack. This type of attack uses external entity references to access arbitrary files on a system, carry out denial-of-service (DoS) attacks, or server-side request forgery. Even when the result of parsing is not returned to the user, DoS attacks are still possible and out-of-band data retrieval techniques may allow attackers to steal sensitive data.\n\n\n## Recommendation\nThe easiest way to prevent XXE attacks is to disable external entity handling when parsing untrusted data. How this is done depends on the library being used. Note that some libraries, such as recent versions of `libxml`, disable entity expansion by default, so unless you have explicitly enabled entity expansion, no further action needs to be taken.\n\n\n## Example\nThe following example uses the `libxml` XML parser to parse a string `xmlSrc`. If that string is from an untrusted source, this code may be vulnerable to an XXE attack, since the parser is invoked with the `noent` option set to `true`:\n\n\n```javascript\nconst app = require(\"express\")(),\n libxml = require(\"libxmljs\");\n\napp.post(\"upload\", (req, res) => {\n let xmlSrc = req.body,\n doc = libxml.parseXml(xmlSrc, { noent: true });\n});\n\n```\nTo guard against XXE attacks, the `noent` option should be omitted or set to `false`. This means that no entity expansion is undertaken at all, not even for standard internal entities such as `&` or `>`. If desired, these entities can be expanded in a separate step using utility functions provided by libraries such as [underscore](http://underscorejs.org/#unescape), [lodash](https://lodash.com/docs/4.17.15#unescape) or [he](https://github.com/mathiasbynens/he).\n\n\n```javascript\nconst app = require(\"express\")(),\n libxml = require(\"libxmljs\");\n\napp.post(\"upload\", (req, res) => {\n let xmlSrc = req.body,\n doc = libxml.parseXml(xmlSrc);\n});\n\n```\n\n## References\n* OWASP: [XML External Entity (XXE) Processing](https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Processing).\n* Timothy Morgen: [XML Schema, DTD, and Entity Attacks](https://research.nccgroup.com/2014/05/19/xml-schema-dtd-and-entity-attacks-a-compendium-of-known-techniques/).\n* Timur Yunusov, Alexey Osipov: [XML Out-Of-Band Data Retrieval](https://www.slideshare.net/qqlan/bh-ready-v4).\n* Common Weakness Enumeration: [CWE-611](https://cwe.mitre.org/data/definitions/611.html).\n* Common Weakness Enumeration: [CWE-827](https://cwe.mitre.org/data/definitions/827.html).\n"},"properties":{"tags":["security","external/cwe/cwe-611","external/cwe/cwe-827"],"description":"Parsing user input as an XML document with external\n entity expansion is vulnerable to XXE attacks.","id":"js/xxe","kind":"path-problem","name":"XML external entity expansion","precision":"high","problem.severity":"error","security-severity":"9.1"}},{"id":"js/bad-code-sanitization","name":"js/bad-code-sanitization","shortDescription":{"text":"Improper code sanitization"},"fullDescription":{"text":"Escaping code as HTML does not provide protection against code injection."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Improper code sanitization\nUsing string concatenation to construct JavaScript code can be error-prone, or in the worst case, enable code injection if an input is constructed by an attacker.\n\n\n## Recommendation\nIf using `JSON.stringify` or an HTML sanitizer to sanitize a string inserted into JavaScript code, then make sure to perform additional sanitization or remove potentially dangerous characters.\n\n\n## Example\nThe example below constructs a function that assigns the number 42 to the property `key` on an object `obj`. However, if `key` contains ``, then the generated code will break out of a `` if inserted into a `` tag.\n\n\n```javascript\nfunction createObjectWrite() {\n const assignment = `obj[${JSON.stringify(key)}]=42`;\n return `(function(){${assignment}})` // NOT OK\n}\n```\nThe issue has been fixed by escaping potentially dangerous characters, as shown below.\n\n\n```javascript\nconst charMap = {\n '<': '\\\\u003C',\n '>' : '\\\\u003E',\n '/': '\\\\u002F',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029'\n};\n\nfunction escapeUnsafeChars(str) {\n return str.replace(/[<>\\b\\f\\n\\r\\t\\0\\u2028\\u2029]/g, x => charMap[x])\n}\n\nfunction createObjectWrite() {\n const assignment = `obj[${escapeUnsafeChars(JSON.stringify(key))}]=42`;\n return `(function(){${assignment}})` // OK\n}\n```\n\n## References\n* OWASP: [Code Injection](https://www.owasp.org/index.php/Code_Injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n","markdown":"# Improper code sanitization\nUsing string concatenation to construct JavaScript code can be error-prone, or in the worst case, enable code injection if an input is constructed by an attacker.\n\n\n## Recommendation\nIf using `JSON.stringify` or an HTML sanitizer to sanitize a string inserted into JavaScript code, then make sure to perform additional sanitization or remove potentially dangerous characters.\n\n\n## Example\nThe example below constructs a function that assigns the number 42 to the property `key` on an object `obj`. However, if `key` contains ``, then the generated code will break out of a `` if inserted into a `` tag.\n\n\n```javascript\nfunction createObjectWrite() {\n const assignment = `obj[${JSON.stringify(key)}]=42`;\n return `(function(){${assignment}})` // NOT OK\n}\n```\nThe issue has been fixed by escaping potentially dangerous characters, as shown below.\n\n\n```javascript\nconst charMap = {\n '<': '\\\\u003C',\n '>' : '\\\\u003E',\n '/': '\\\\u002F',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029'\n};\n\nfunction escapeUnsafeChars(str) {\n return str.replace(/[<>\\b\\f\\n\\r\\t\\0\\u2028\\u2029]/g, x => charMap[x])\n}\n\nfunction createObjectWrite() {\n const assignment = `obj[${escapeUnsafeChars(JSON.stringify(key))}]=42`;\n return `(function(){${assignment}})` // OK\n}\n```\n\n## References\n* OWASP: [Code Injection](https://www.owasp.org/index.php/Code_Injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n"},"properties":{"tags":["security","external/cwe/cwe-094","external/cwe/cwe-079","external/cwe/cwe-116"],"description":"Escaping code as HTML does not provide protection against code injection.","id":"js/bad-code-sanitization","kind":"path-problem","name":"Improper code sanitization","precision":"high","problem.severity":"error","security-severity":"6.1"}},{"id":"js/unsafe-dynamic-method-access","name":"js/unsafe-dynamic-method-access","shortDescription":{"text":"Unsafe dynamic method access"},"fullDescription":{"text":"Invoking user-controlled methods on certain objects can lead to remote code execution."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Unsafe dynamic method access\nCalling a user-controlled method on certain objects can lead to invocation of unsafe functions, such as `eval` or the `Function` constructor. In particular, the global object contains the `eval` function, and any function object contains the `Function` constructor in its `constructor` property.\n\n\n## Recommendation\nAvoid invoking user-controlled methods on the global object or on any function object. Whitelist the permitted method names or change the type of object the methods are stored on.\n\n\n## Example\nIn the following example, a message from the document's parent frame can invoke the `play` or `pause` method. However, it can also invoke `eval`. A malicious website could embed the page in an iframe and execute arbitrary code by sending a message with the name `eval`.\n\n\n```javascript\n// API methods\nfunction play(data) {\n // ...\n}\nfunction pause(data) {\n // ...\n}\n\nwindow.addEventListener(\"message\", (ev) => {\n let message = JSON.parse(ev.data);\n\n // Let the parent frame call the 'play' or 'pause' function \n window[message.name](message.payload);\n});\n\n```\nInstead of storing the API methods in the global scope, put them in an API object or Map. It is also good practice to prevent invocation of inherited methods like `toString` and `valueOf`.\n\n\n```javascript\n// API methods\nlet api = {\n play: function(data) {\n // ...\n },\n pause: function(data) {\n // ...\n }\n};\n\nwindow.addEventListener(\"message\", (ev) => {\n let message = JSON.parse(ev.data);\n\n // Let the parent frame call the 'play' or 'pause' function\n if (!api.hasOwnProperty(message.name)) {\n return;\n }\n api[message.name](message.payload);\n});\n\n```\n\n## References\n* OWASP: [Code Injection](https://www.owasp.org/index.php/Code_Injection).\n* MDN: [Global functions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects#Function_properties).\n* MDN: [Function constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n","markdown":"# Unsafe dynamic method access\nCalling a user-controlled method on certain objects can lead to invocation of unsafe functions, such as `eval` or the `Function` constructor. In particular, the global object contains the `eval` function, and any function object contains the `Function` constructor in its `constructor` property.\n\n\n## Recommendation\nAvoid invoking user-controlled methods on the global object or on any function object. Whitelist the permitted method names or change the type of object the methods are stored on.\n\n\n## Example\nIn the following example, a message from the document's parent frame can invoke the `play` or `pause` method. However, it can also invoke `eval`. A malicious website could embed the page in an iframe and execute arbitrary code by sending a message with the name `eval`.\n\n\n```javascript\n// API methods\nfunction play(data) {\n // ...\n}\nfunction pause(data) {\n // ...\n}\n\nwindow.addEventListener(\"message\", (ev) => {\n let message = JSON.parse(ev.data);\n\n // Let the parent frame call the 'play' or 'pause' function \n window[message.name](message.payload);\n});\n\n```\nInstead of storing the API methods in the global scope, put them in an API object or Map. It is also good practice to prevent invocation of inherited methods like `toString` and `valueOf`.\n\n\n```javascript\n// API methods\nlet api = {\n play: function(data) {\n // ...\n },\n pause: function(data) {\n // ...\n }\n};\n\nwindow.addEventListener(\"message\", (ev) => {\n let message = JSON.parse(ev.data);\n\n // Let the parent frame call the 'play' or 'pause' function\n if (!api.hasOwnProperty(message.name)) {\n return;\n }\n api[message.name](message.payload);\n});\n\n```\n\n## References\n* OWASP: [Code Injection](https://www.owasp.org/index.php/Code_Injection).\n* MDN: [Global functions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects#Function_properties).\n* MDN: [Function constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"},"properties":{"tags":["security","external/cwe/cwe-094"],"description":"Invoking user-controlled methods on certain objects can lead to remote code execution.","id":"js/unsafe-dynamic-method-access","kind":"path-problem","name":"Unsafe dynamic method access","precision":"high","problem.severity":"error","security-severity":"9.3"}},{"id":"js/code-injection","name":"js/code-injection","shortDescription":{"text":"Code injection"},"fullDescription":{"text":"Interpreting unsanitized user input as code allows a malicious user arbitrary code execution."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Code injection\nDirectly evaluating user input (for example, an HTTP request parameter) as code without properly sanitizing the input first allows an attacker arbitrary code execution. This can occur when user input is treated as JavaScript, or passed to a framework which interprets it as an expression to be evaluated. Examples include AngularJS expressions or JQuery selectors.\n\n\n## Recommendation\nAvoid including user input in any expression which may be dynamically evaluated. If user input must be included, use context-specific escaping before including it. It is important that the correct escaping is used for the type of evaluation that will occur.\n\n\n## Example\nThe following example shows part of the page URL being evaluated as JavaScript code. This allows an attacker to provide JavaScript within the URL. If an attacker can persuade a user to click on a link to such a URL, the attacker can evaluate arbitrary JavaScript in the browser of the user to, for example, steal cookies containing session information.\n\n\n```javascript\neval(document.location.href.substring(document.location.href.indexOf(\"default=\")+8))\n\n```\nThe following example shows a Pug template being constructed from user input, allowing attackers to run arbitrary code via a payload such as `#{global.process.exit(1)}`.\n\n\n```javascript\nconst express = require('express')\nvar pug = require('pug');\nconst app = express()\n\napp.post('/', (req, res) => {\n var input = req.query.username;\n var template = `\ndoctype\nhtml\nhead\n title= 'Hello world'\nbody\n form(action='/' method='post')\n input#name.form-control(type='text)\n button.btn.btn-primary(type='submit') Submit\n p Hello `+ input\n var fn = pug.compile(template);\n var html = fn();\n res.send(html);\n})\n\n```\nBelow is an example of how to use a template engine without any risk of template injection. The user input is included via an interpolation expression `#{username}` whose value is provided as an option to the template, instead of being part of the template string itself:\n\n\n```javascript\nconst express = require('express')\nvar pug = require('pug');\nconst app = express()\n\napp.post('/', (req, res) => {\n var input = req.query.username;\n var template = `\ndoctype\nhtml\nhead\n title= 'Hello world'\nbody\n form(action='/' method='post')\n input#name.form-control(type='text)\n button.btn.btn-primary(type='submit') Submit\n p Hello #{username}`\n var fn = pug.compile(template);\n var html = fn({username: input});\n res.send(html);\n})\n\n```\n\n## References\n* OWASP: [Code Injection](https://www.owasp.org/index.php/Code_Injection).\n* Wikipedia: [Code Injection](https://en.wikipedia.org/wiki/Code_injection).\n* PortSwigger Research Blog: [Server-Side Template Injection](https://portswigger.net/research/server-side-template-injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n* Common Weakness Enumeration: [CWE-95](https://cwe.mitre.org/data/definitions/95.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n","markdown":"# Code injection\nDirectly evaluating user input (for example, an HTTP request parameter) as code without properly sanitizing the input first allows an attacker arbitrary code execution. This can occur when user input is treated as JavaScript, or passed to a framework which interprets it as an expression to be evaluated. Examples include AngularJS expressions or JQuery selectors.\n\n\n## Recommendation\nAvoid including user input in any expression which may be dynamically evaluated. If user input must be included, use context-specific escaping before including it. It is important that the correct escaping is used for the type of evaluation that will occur.\n\n\n## Example\nThe following example shows part of the page URL being evaluated as JavaScript code. This allows an attacker to provide JavaScript within the URL. If an attacker can persuade a user to click on a link to such a URL, the attacker can evaluate arbitrary JavaScript in the browser of the user to, for example, steal cookies containing session information.\n\n\n```javascript\neval(document.location.href.substring(document.location.href.indexOf(\"default=\")+8))\n\n```\nThe following example shows a Pug template being constructed from user input, allowing attackers to run arbitrary code via a payload such as `#{global.process.exit(1)}`.\n\n\n```javascript\nconst express = require('express')\nvar pug = require('pug');\nconst app = express()\n\napp.post('/', (req, res) => {\n var input = req.query.username;\n var template = `\ndoctype\nhtml\nhead\n title= 'Hello world'\nbody\n form(action='/' method='post')\n input#name.form-control(type='text)\n button.btn.btn-primary(type='submit') Submit\n p Hello `+ input\n var fn = pug.compile(template);\n var html = fn();\n res.send(html);\n})\n\n```\nBelow is an example of how to use a template engine without any risk of template injection. The user input is included via an interpolation expression `#{username}` whose value is provided as an option to the template, instead of being part of the template string itself:\n\n\n```javascript\nconst express = require('express')\nvar pug = require('pug');\nconst app = express()\n\napp.post('/', (req, res) => {\n var input = req.query.username;\n var template = `\ndoctype\nhtml\nhead\n title= 'Hello world'\nbody\n form(action='/' method='post')\n input#name.form-control(type='text)\n button.btn.btn-primary(type='submit') Submit\n p Hello #{username}`\n var fn = pug.compile(template);\n var html = fn({username: input});\n res.send(html);\n})\n\n```\n\n## References\n* OWASP: [Code Injection](https://www.owasp.org/index.php/Code_Injection).\n* Wikipedia: [Code Injection](https://en.wikipedia.org/wiki/Code_injection).\n* PortSwigger Research Blog: [Server-Side Template Injection](https://portswigger.net/research/server-side-template-injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n* Common Weakness Enumeration: [CWE-95](https://cwe.mitre.org/data/definitions/95.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n"},"properties":{"tags":["security","external/cwe/cwe-094","external/cwe/cwe-095","external/cwe/cwe-079","external/cwe/cwe-116"],"description":"Interpreting unsanitized user input as code allows a malicious user arbitrary\n code execution.","id":"js/code-injection","kind":"path-problem","name":"Code injection","precision":"high","problem.severity":"error","security-severity":"9.3"}},{"id":"js/insecure-download","name":"js/insecure-download","shortDescription":{"text":"Download of sensitive file through insecure connection"},"fullDescription":{"text":"Downloading executables and other sensitive files over an insecure connection opens up for potential man-in-the-middle attacks."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Download of sensitive file through insecure connection\nDownloading executables or other sensitive files over an unencrypted connection can leave a server open to man-in-the-middle attacks (MITM). Such an attack can allow an attacker to insert arbitrary content into the downloaded file, and in the worst case, allow the attacker to execute arbitrary code on the vulnerable system.\n\n\n## Recommendation\nUse a secure transfer protocol when downloading executables or other sensitive files.\n\n\n## Example\nIn this example, a server downloads a shell script from a remote URL using the `node-fetch` library, and then executes this shell script.\n\n\n```javascript\nconst fetch = require(\"node-fetch\");\nconst cp = require(\"child_process\");\n\nfetch('http://mydownload.example.org/myscript.sh')\n .then(res => res.text())\n .then(script => cp.execSync(script));\n```\nThe HTTP protocol is vulnerable to MITM, and thus an attacker could potentially replace the downloaded shell script with arbitrary code, which gives the attacker complete control over the system.\n\nThe issue has been fixed in the example below by replacing the HTTP protocol with the HTTPS protocol.\n\n\n```javascript\nconst fetch = require(\"node-fetch\");\nconst cp = require(\"child_process\");\n\nfetch('https://mydownload.example.org/myscript.sh')\n .then(res => res.text())\n .then(script => cp.execSync(script));\n```\n\n## References\n* Wikipedia: [Man-in-the-middle attack](https://en.wikipedia.org/wiki/Man-in-the-middle_attack)\n* Common Weakness Enumeration: [CWE-829](https://cwe.mitre.org/data/definitions/829.html).\n","markdown":"# Download of sensitive file through insecure connection\nDownloading executables or other sensitive files over an unencrypted connection can leave a server open to man-in-the-middle attacks (MITM). Such an attack can allow an attacker to insert arbitrary content into the downloaded file, and in the worst case, allow the attacker to execute arbitrary code on the vulnerable system.\n\n\n## Recommendation\nUse a secure transfer protocol when downloading executables or other sensitive files.\n\n\n## Example\nIn this example, a server downloads a shell script from a remote URL using the `node-fetch` library, and then executes this shell script.\n\n\n```javascript\nconst fetch = require(\"node-fetch\");\nconst cp = require(\"child_process\");\n\nfetch('http://mydownload.example.org/myscript.sh')\n .then(res => res.text())\n .then(script => cp.execSync(script));\n```\nThe HTTP protocol is vulnerable to MITM, and thus an attacker could potentially replace the downloaded shell script with arbitrary code, which gives the attacker complete control over the system.\n\nThe issue has been fixed in the example below by replacing the HTTP protocol with the HTTPS protocol.\n\n\n```javascript\nconst fetch = require(\"node-fetch\");\nconst cp = require(\"child_process\");\n\nfetch('https://mydownload.example.org/myscript.sh')\n .then(res => res.text())\n .then(script => cp.execSync(script));\n```\n\n## References\n* Wikipedia: [Man-in-the-middle attack](https://en.wikipedia.org/wiki/Man-in-the-middle_attack)\n* Common Weakness Enumeration: [CWE-829](https://cwe.mitre.org/data/definitions/829.html).\n"},"properties":{"tags":["security","external/cwe/cwe-829"],"description":"Downloading executables and other sensitive files over an insecure connection\n opens up for potential man-in-the-middle attacks.","id":"js/insecure-download","kind":"path-problem","name":"Download of sensitive file through insecure connection","precision":"high","problem.severity":"error","security-severity":"8.1"}},{"id":"js/unsafe-html-expansion","name":"js/unsafe-html-expansion","shortDescription":{"text":"Unsafe expansion of self-closing HTML tag"},"fullDescription":{"text":"Using regular expressions to expand self-closing HTML tags may lead to cross-site scripting vulnerabilities."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Unsafe expansion of self-closing HTML tag\nSanitizing untrusted input for HTML meta-characters is a common technique for preventing cross-site scripting attacks. But even a sanitized input can be dangerous to use if it is modified further before a browser treats it as HTML. A seemingly innocent transformation that expands a self-closing HTML tag from `
` to `` may in fact cause cross-site scripting vulnerabilities.\n\n\n## Recommendation\nUse a well-tested sanitization library if at all possible, and avoid modifying sanitized values further before treating them as HTML.\n\nAn even safer alternative is to design the application so that sanitization is not needed, for instance by using HTML templates that are explicit about the values they treat as HTML.\n\n\n## Example\nThe following function transforms a self-closing HTML tag to a pair of open/close tags. It does so for all non-`img` and non-`area` tags, by using a regular expression with two capture groups. The first capture group corresponds to the name of the tag, and the second capture group to the content of the tag.\n\n\n```javascript\nfunction expandSelfClosingTags(html) {\n\tvar rxhtmlTag = /<(?!img|area)(([a-z][^\\w\\/>]*)[^>]*)\\/>/gi;\n\treturn html.replace(rxhtmlTag, \"<$1>$2>\"); // BAD\n}\n\n```\nWhile it is generally known regular expressions are ill-suited for parsing HTML, variants of this particular transformation pattern have long been considered safe.\n\nHowever, the function is not safe. As an example, consider the following string:\n\n\n```html\n
\n\"/>\n\n```\nWhen the above function transforms the string, it becomes a string that results in an alert when a browser treats it as HTML.\n\n\n```html\n
\n\"/>\n\n```\n\n## References\n* jQuery: [Security fixes in jQuery 3.5.0](https://blog.jquery.com/2020/04/10/jquery-3-5-0-released/)\n* OWASP: [DOM based XSS Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/DOM_based_XSS_Prevention_Cheat_Sheet.html).\n* OWASP: [XSS (Cross Site Scripting) Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html).\n* OWASP [Types of Cross-Site](https://owasp.org/www-community/Types_of_Cross-Site_Scripting).\n* Wikipedia: [Cross-site scripting](http://en.wikipedia.org/wiki/Cross-site_scripting).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n","markdown":"# Unsafe expansion of self-closing HTML tag\nSanitizing untrusted input for HTML meta-characters is a common technique for preventing cross-site scripting attacks. But even a sanitized input can be dangerous to use if it is modified further before a browser treats it as HTML. A seemingly innocent transformation that expands a self-closing HTML tag from `
` to `` may in fact cause cross-site scripting vulnerabilities.\n\n\n## Recommendation\nUse a well-tested sanitization library if at all possible, and avoid modifying sanitized values further before treating them as HTML.\n\nAn even safer alternative is to design the application so that sanitization is not needed, for instance by using HTML templates that are explicit about the values they treat as HTML.\n\n\n## Example\nThe following function transforms a self-closing HTML tag to a pair of open/close tags. It does so for all non-`img` and non-`area` tags, by using a regular expression with two capture groups. The first capture group corresponds to the name of the tag, and the second capture group to the content of the tag.\n\n\n```javascript\nfunction expandSelfClosingTags(html) {\n\tvar rxhtmlTag = /<(?!img|area)(([a-z][^\\w\\/>]*)[^>]*)\\/>/gi;\n\treturn html.replace(rxhtmlTag, \"<$1>$2>\"); // BAD\n}\n\n```\nWhile it is generally known regular expressions are ill-suited for parsing HTML, variants of this particular transformation pattern have long been considered safe.\n\nHowever, the function is not safe. As an example, consider the following string:\n\n\n```html\n
\n\"/>\n\n```\nWhen the above function transforms the string, it becomes a string that results in an alert when a browser treats it as HTML.\n\n\n```html\n
\n\"/>\n\n```\n\n## References\n* jQuery: [Security fixes in jQuery 3.5.0](https://blog.jquery.com/2020/04/10/jquery-3-5-0-released/)\n* OWASP: [DOM based XSS Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/DOM_based_XSS_Prevention_Cheat_Sheet.html).\n* OWASP: [XSS (Cross Site Scripting) Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html).\n* OWASP [Types of Cross-Site](https://owasp.org/www-community/Types_of_Cross-Site_Scripting).\n* Wikipedia: [Cross-site scripting](http://en.wikipedia.org/wiki/Cross-site_scripting).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n"},"properties":{"tags":["correctness","security","external/cwe/cwe-079","external/cwe/cwe-116"],"description":"Using regular expressions to expand self-closing HTML\n tags may lead to cross-site scripting vulnerabilities.","id":"js/unsafe-html-expansion","kind":"problem","name":"Unsafe expansion of self-closing HTML tag","precision":"very-high","problem.severity":"warning","security-severity":"6.1"}},{"id":"js/incomplete-html-attribute-sanitization","name":"js/incomplete-html-attribute-sanitization","shortDescription":{"text":"Incomplete HTML attribute sanitization"},"fullDescription":{"text":"Writing incompletely sanitized values to HTML attribute strings can lead to a cross-site scripting vulnerability."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Incomplete HTML attribute sanitization\nSanitizing untrusted input for HTML meta-characters is a common technique for preventing cross-site scripting attacks. Usually, this is done by escaping `<`, `>`, `&` and `\"`. However, the context in which the sanitized value is used decides the characters that need to be sanitized.\n\nAs a consequence, some programs only sanitize `<` and `>` since those are the most common dangerous characters. The lack of sanitization for `\"` is problematic when an incompletely sanitized value is used as an HTML attribute in a string that later is parsed as HTML.\n\n\n## Recommendation\nSanitize all relevant HTML meta-characters when constructing HTML dynamically, and pay special attention to where the sanitized value is used.\n\nAn even safer alternative is to design the application so that sanitization is not needed, for instance by using HTML templates that are explicit about the values they treat as HTML.\n\n\n## Example\nThe following example code writes part of an HTTP request (which is controlled by the user) to an HTML attribute of the server response. The user-controlled value is, however, not sanitized for `\"`. This leaves the website vulnerable to cross-site scripting since an attacker can use a string like `\" onclick=\"alert(42)` to inject JavaScript code into the response.\n\n\n```javascript\nvar app = require('express')();\n\napp.get('/user/:id', function(req, res) {\n\tlet id = req.params.id;\n\tid = id.replace(/<|>/g, \"\"); // BAD\n\tlet userHtml = `
${getUserName(id) || \"Unknown name\"}
`;\n\t// ...\n\tres.send(prefix + userHtml + suffix);\n});\n\n```\nSanitizing the user-controlled data for `\"` helps prevent the vulnerability:\n\n\n```javascript\nvar app = require('express')();\n\napp.get('/user/:id', function(req, res) {\n\tlet id = req.params.id;\n\tid = id.replace(/<|>|&|\"/g, \"\"); // GOOD\n\tlet userHtml = `
${getUserName(id) || \"Unknown name\"}
`;\n\t// ...\n\tres.send(prefix + userHtml + suffix);\n});\n\n```\n\n## References\n* OWASP: [DOM based XSS Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/DOM_based_XSS_Prevention_Cheat_Sheet.html).\n* OWASP: [XSS (Cross Site Scripting) Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html).\n* OWASP [Types of Cross-Site](https://owasp.org/www-community/Types_of_Cross-Site_Scripting).\n* Wikipedia: [Cross-site scripting](http://en.wikipedia.org/wiki/Cross-site_scripting).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n","markdown":"# Incomplete HTML attribute sanitization\nSanitizing untrusted input for HTML meta-characters is a common technique for preventing cross-site scripting attacks. Usually, this is done by escaping `<`, `>`, `&` and `\"`. However, the context in which the sanitized value is used decides the characters that need to be sanitized.\n\nAs a consequence, some programs only sanitize `<` and `>` since those are the most common dangerous characters. The lack of sanitization for `\"` is problematic when an incompletely sanitized value is used as an HTML attribute in a string that later is parsed as HTML.\n\n\n## Recommendation\nSanitize all relevant HTML meta-characters when constructing HTML dynamically, and pay special attention to where the sanitized value is used.\n\nAn even safer alternative is to design the application so that sanitization is not needed, for instance by using HTML templates that are explicit about the values they treat as HTML.\n\n\n## Example\nThe following example code writes part of an HTTP request (which is controlled by the user) to an HTML attribute of the server response. The user-controlled value is, however, not sanitized for `\"`. This leaves the website vulnerable to cross-site scripting since an attacker can use a string like `\" onclick=\"alert(42)` to inject JavaScript code into the response.\n\n\n```javascript\nvar app = require('express')();\n\napp.get('/user/:id', function(req, res) {\n\tlet id = req.params.id;\n\tid = id.replace(/<|>/g, \"\"); // BAD\n\tlet userHtml = `
${getUserName(id) || \"Unknown name\"}
`;\n\t// ...\n\tres.send(prefix + userHtml + suffix);\n});\n\n```\nSanitizing the user-controlled data for `\"` helps prevent the vulnerability:\n\n\n```javascript\nvar app = require('express')();\n\napp.get('/user/:id', function(req, res) {\n\tlet id = req.params.id;\n\tid = id.replace(/<|>|&|\"/g, \"\"); // GOOD\n\tlet userHtml = `
${getUserName(id) || \"Unknown name\"}
`;\n\t// ...\n\tres.send(prefix + userHtml + suffix);\n});\n\n```\n\n## References\n* OWASP: [DOM based XSS Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/DOM_based_XSS_Prevention_Cheat_Sheet.html).\n* OWASP: [XSS (Cross Site Scripting) Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html).\n* OWASP [Types of Cross-Site](https://owasp.org/www-community/Types_of_Cross-Site_Scripting).\n* Wikipedia: [Cross-site scripting](http://en.wikipedia.org/wiki/Cross-site_scripting).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n"},"properties":{"tags":["security","external/cwe/cwe-079","external/cwe/cwe-116","external/cwe/cwe-020"],"description":"Writing incompletely sanitized values to HTML\n attribute strings can lead to a cross-site\n scripting vulnerability.","id":"js/incomplete-html-attribute-sanitization","kind":"path-problem","name":"Incomplete HTML attribute sanitization","precision":"high","problem.severity":"warning","security-severity":"6.1"}},{"id":"js/double-escaping","name":"js/double-escaping","shortDescription":{"text":"Double escaping or unescaping"},"fullDescription":{"text":"When escaping special characters using a meta-character like backslash or ampersand, the meta-character has to be escaped first to avoid double-escaping, and conversely it has to be unescaped last to avoid double-unescaping."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Double escaping or unescaping\nEscaping meta-characters in untrusted input is an important technique for preventing injection attacks such as cross-site scripting. One particular example of this is HTML entity encoding, where HTML special characters are replaced by HTML character entities to prevent them from being interpreted as HTML markup. For example, the less-than character is encoded as `<` and the double-quote character as `"`. Other examples include backslash-escaping for including untrusted data in string literals and percent-encoding for URI components.\n\nThe reverse process of replacing escape sequences with the characters they represent is known as unescaping.\n\nNote that the escape characters themselves (such as ampersand in the case of HTML encoding) play a special role during escaping and unescaping: they are themselves escaped, but also form part of the escaped representations of other characters. Hence care must be taken to avoid double escaping and unescaping: when escaping, the escape character must be escaped first, when unescaping it has to be unescaped last.\n\nIf used in the context of sanitization, double unescaping may render the sanitization ineffective. Even if it is not used in a security-critical context, it may still result in confusing or garbled output.\n\n\n## Recommendation\nUse a (well-tested) sanitization library if at all possible. These libraries are much more likely to handle corner cases correctly than a custom implementation. For URI encoding, you can use the standard `encodeURIComponent` and `decodeURIComponent` functions.\n\nOtherwise, make sure to always escape the escape character first, and unescape it last.\n\n\n## Example\nThe following example shows a pair of hand-written HTML encoding and decoding functions:\n\n\n```javascript\nmodule.exports.encode = function(s) {\n return s.replace(/&/g, \"&\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n};\n\nmodule.exports.decode = function(s) {\n return s.replace(/&/g, \"&\")\n .replace(/"/g, \"\\\"\")\n .replace(/'/g, \"'\");\n};\n\n```\nThe encoding function correctly handles ampersand before the other characters. For example, the string `me & \"you\"` is encoded as `me & "you"`, and the string `"` is encoded as `"`.\n\nThe decoding function, however, incorrectly decodes `&` into `&` before handling the other characters. So while it correctly decodes the first example above, it decodes the second example (`"`) to `\"` (a single double quote), which is not correct.\n\nInstead, the decoding function should decode the ampersand last:\n\n\n```javascript\nmodule.exports.encode = function(s) {\n return s.replace(/&/g, \"&\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n};\n\nmodule.exports.decode = function(s) {\n return s.replace(/"/g, \"\\\"\")\n .replace(/'/g, \"'\")\n .replace(/&/g, \"&\");\n};\n\n```\n\n## References\n* OWASP Top 10: [A1 Injection](https://www.owasp.org/index.php/Top_10-2017_A1-Injection).\n* npm: [html-entities](https://www.npmjs.com/package/html-entities) package.\n* npm: [js-string-escape](https://www.npmjs.com/package/js-string-escape) package.\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n","markdown":"# Double escaping or unescaping\nEscaping meta-characters in untrusted input is an important technique for preventing injection attacks such as cross-site scripting. One particular example of this is HTML entity encoding, where HTML special characters are replaced by HTML character entities to prevent them from being interpreted as HTML markup. For example, the less-than character is encoded as `<` and the double-quote character as `"`. Other examples include backslash-escaping for including untrusted data in string literals and percent-encoding for URI components.\n\nThe reverse process of replacing escape sequences with the characters they represent is known as unescaping.\n\nNote that the escape characters themselves (such as ampersand in the case of HTML encoding) play a special role during escaping and unescaping: they are themselves escaped, but also form part of the escaped representations of other characters. Hence care must be taken to avoid double escaping and unescaping: when escaping, the escape character must be escaped first, when unescaping it has to be unescaped last.\n\nIf used in the context of sanitization, double unescaping may render the sanitization ineffective. Even if it is not used in a security-critical context, it may still result in confusing or garbled output.\n\n\n## Recommendation\nUse a (well-tested) sanitization library if at all possible. These libraries are much more likely to handle corner cases correctly than a custom implementation. For URI encoding, you can use the standard `encodeURIComponent` and `decodeURIComponent` functions.\n\nOtherwise, make sure to always escape the escape character first, and unescape it last.\n\n\n## Example\nThe following example shows a pair of hand-written HTML encoding and decoding functions:\n\n\n```javascript\nmodule.exports.encode = function(s) {\n return s.replace(/&/g, \"&\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n};\n\nmodule.exports.decode = function(s) {\n return s.replace(/&/g, \"&\")\n .replace(/"/g, \"\\\"\")\n .replace(/'/g, \"'\");\n};\n\n```\nThe encoding function correctly handles ampersand before the other characters. For example, the string `me & \"you\"` is encoded as `me & "you"`, and the string `"` is encoded as `"`.\n\nThe decoding function, however, incorrectly decodes `&` into `&` before handling the other characters. So while it correctly decodes the first example above, it decodes the second example (`"`) to `\"` (a single double quote), which is not correct.\n\nInstead, the decoding function should decode the ampersand last:\n\n\n```javascript\nmodule.exports.encode = function(s) {\n return s.replace(/&/g, \"&\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n};\n\nmodule.exports.decode = function(s) {\n return s.replace(/"/g, \"\\\"\")\n .replace(/'/g, \"'\")\n .replace(/&/g, \"&\");\n};\n\n```\n\n## References\n* OWASP Top 10: [A1 Injection](https://www.owasp.org/index.php/Top_10-2017_A1-Injection).\n* npm: [html-entities](https://www.npmjs.com/package/html-entities) package.\n* npm: [js-string-escape](https://www.npmjs.com/package/js-string-escape) package.\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n"},"properties":{"tags":["correctness","security","external/cwe/cwe-116","external/cwe/cwe-020"],"description":"When escaping special characters using a meta-character like backslash or\n ampersand, the meta-character has to be escaped first to avoid double-escaping,\n and conversely it has to be unescaped last to avoid double-unescaping.","id":"js/double-escaping","kind":"problem","name":"Double escaping or unescaping","precision":"high","problem.severity":"warning","security-severity":"7.8"}},{"id":"js/bad-tag-filter","name":"js/bad-tag-filter","shortDescription":{"text":"Bad HTML filtering regexp"},"fullDescription":{"text":"Matching HTML tags using regular expressions is hard to do right, and can easily lead to security issues."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Bad HTML filtering regexp\nIt is possible to match some single HTML tags using regular expressions (parsing general HTML using regular expressions is impossible). However, if the regular expression is not written well it might be possible to circumvent it, which can lead to cross-site scripting or other security issues.\n\nSome of these mistakes are caused by browsers having very forgiving HTML parsers, and will often render invalid HTML containing syntax errors. Regular expressions that attempt to match HTML should also recognize tags containing such syntax errors.\n\n\n## Recommendation\nUse a well-tested sanitization or parser library if at all possible. These libraries are much more likely to handle corner cases correctly than a custom implementation.\n\n\n## Example\nThe following example attempts to filters out all `` as script end tags, but also tags such as `` even though it is a parser error. This means that an attack string such as `` will not be filtered by the function, and `alert(1)` will be executed by a browser if the string is rendered as HTML.\n\nOther corner cases include that HTML comments can end with `--!>`, and that HTML tag names can contain upper case characters.\n\n\n## References\n* Securitum: [The Curious Case of Copy & Paste](https://research.securitum.com/the-curious-case-of-copy-paste/).\n* stackoverflow.com: [You can't parse \\[X\\]HTML with regex](https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags#answer-1732454).\n* HTML Standard: [Comment end bang state](https://html.spec.whatwg.org/multipage/parsing.html#comment-end-bang-state).\n* stackoverflow.com: [Why aren't browsers strict about HTML?](https://stackoverflow.com/questions/25559999/why-arent-browsers-strict-about-html).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n* Common Weakness Enumeration: [CWE-80](https://cwe.mitre.org/data/definitions/80.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n* Common Weakness Enumeration: [CWE-184](https://cwe.mitre.org/data/definitions/184.html).\n* Common Weakness Enumeration: [CWE-185](https://cwe.mitre.org/data/definitions/185.html).\n* Common Weakness Enumeration: [CWE-186](https://cwe.mitre.org/data/definitions/186.html).\n","markdown":"# Bad HTML filtering regexp\nIt is possible to match some single HTML tags using regular expressions (parsing general HTML using regular expressions is impossible). However, if the regular expression is not written well it might be possible to circumvent it, which can lead to cross-site scripting or other security issues.\n\nSome of these mistakes are caused by browsers having very forgiving HTML parsers, and will often render invalid HTML containing syntax errors. Regular expressions that attempt to match HTML should also recognize tags containing such syntax errors.\n\n\n## Recommendation\nUse a well-tested sanitization or parser library if at all possible. These libraries are much more likely to handle corner cases correctly than a custom implementation.\n\n\n## Example\nThe following example attempts to filters out all `` as script end tags, but also tags such as `` even though it is a parser error. This means that an attack string such as `` will not be filtered by the function, and `alert(1)` will be executed by a browser if the string is rendered as HTML.\n\nOther corner cases include that HTML comments can end with `--!>`, and that HTML tag names can contain upper case characters.\n\n\n## References\n* Securitum: [The Curious Case of Copy & Paste](https://research.securitum.com/the-curious-case-of-copy-paste/).\n* stackoverflow.com: [You can't parse \\[X\\]HTML with regex](https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags#answer-1732454).\n* HTML Standard: [Comment end bang state](https://html.spec.whatwg.org/multipage/parsing.html#comment-end-bang-state).\n* stackoverflow.com: [Why aren't browsers strict about HTML?](https://stackoverflow.com/questions/25559999/why-arent-browsers-strict-about-html).\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n* Common Weakness Enumeration: [CWE-80](https://cwe.mitre.org/data/definitions/80.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n* Common Weakness Enumeration: [CWE-184](https://cwe.mitre.org/data/definitions/184.html).\n* Common Weakness Enumeration: [CWE-185](https://cwe.mitre.org/data/definitions/185.html).\n* Common Weakness Enumeration: [CWE-186](https://cwe.mitre.org/data/definitions/186.html).\n"},"properties":{"tags":["correctness","security","external/cwe/cwe-020","external/cwe/cwe-080","external/cwe/cwe-116","external/cwe/cwe-184","external/cwe/cwe-185","external/cwe/cwe-186"],"description":"Matching HTML tags using regular expressions is hard to do right, and can easily lead to security issues.","id":"js/bad-tag-filter","kind":"problem","name":"Bad HTML filtering regexp","precision":"high","problem.severity":"warning","security-severity":"7.8"}},{"id":"js/incomplete-sanitization","name":"js/incomplete-sanitization","shortDescription":{"text":"Incomplete string escaping or encoding"},"fullDescription":{"text":"A string transformer that does not replace or escape all occurrences of a meta-character may be ineffective."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Incomplete string escaping or encoding\nSanitizing untrusted input is a common technique for preventing injection attacks such as SQL injection or cross-site scripting. Usually, this is done by escaping meta-characters such as quotes in a domain-specific way so that they are treated as normal characters.\n\nHowever, directly using the string `replace` method to perform escaping is notoriously error-prone. Common mistakes include only replacing the first occurrence of a meta-character, or backslash-escaping various meta-characters but not the backslash itself.\n\nIn the former case, later meta-characters are left undisturbed and can be used to subvert the sanitization. In the latter case, preceding a meta-character with a backslash leads to the backslash being escaped, but the meta-character appearing un-escaped, which again makes the sanitization ineffective.\n\nEven if the escaped string is not used in a security-critical context, incomplete escaping may still have undesirable effects, such as badly rendered or confusing output.\n\n\n## Recommendation\nUse a (well-tested) sanitization library if at all possible. These libraries are much more likely to handle corner cases correctly than a custom implementation.\n\nAn even safer alternative is to design the application so that sanitization is not needed, for instance by using prepared statements for SQL queries.\n\nOtherwise, make sure to use a regular expression with the `g` flag to ensure that all occurrences are replaced, and remember to escape backslashes if applicable.\n\n\n## Example\nFor example, assume that we want to embed a user-controlled string `accountNumber` into a SQL query as part of a string literal. To avoid SQL injection, we need to ensure that the string does not contain un-escaped single-quote characters. The following function attempts to ensure this by doubling single quotes, and thereby escaping them:\n\n\n```javascript\nfunction escapeQuotes(s) {\n return s.replace(\"'\", \"''\");\n}\n\n```\nAs written, this sanitizer is ineffective: if the first argument to `replace` is a string literal (as in this case), only the *first* occurrence of that string is replaced.\n\nAs mentioned above, the function `escapeQuotes` should be replaced with a purpose-built sanitization library, such as the npm module `sqlstring`. Many other sanitization libraries are available from npm and other sources.\n\nIf this is not an option, `escapeQuotes` should be rewritten to use a regular expression with the `g` (\"global\") flag instead:\n\n\n```javascript\nfunction escapeQuotes(s) {\n return s.replace(/'/g, \"''\");\n}\n\n```\nNote that it is very important to include the global flag: `s.replace(/'/, \"''\")` *without* the global flag is equivalent to the first example above and only replaces the first quote.\n\n\n## References\n* OWASP Top 10: [A1 Injection](https://www.owasp.org/index.php/Top_10-2017_A1-Injection).\n* npm: [sqlstring](https://www.npmjs.com/package/sqlstring) package.\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n* Common Weakness Enumeration: [CWE-80](https://cwe.mitre.org/data/definitions/80.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n","markdown":"# Incomplete string escaping or encoding\nSanitizing untrusted input is a common technique for preventing injection attacks such as SQL injection or cross-site scripting. Usually, this is done by escaping meta-characters such as quotes in a domain-specific way so that they are treated as normal characters.\n\nHowever, directly using the string `replace` method to perform escaping is notoriously error-prone. Common mistakes include only replacing the first occurrence of a meta-character, or backslash-escaping various meta-characters but not the backslash itself.\n\nIn the former case, later meta-characters are left undisturbed and can be used to subvert the sanitization. In the latter case, preceding a meta-character with a backslash leads to the backslash being escaped, but the meta-character appearing un-escaped, which again makes the sanitization ineffective.\n\nEven if the escaped string is not used in a security-critical context, incomplete escaping may still have undesirable effects, such as badly rendered or confusing output.\n\n\n## Recommendation\nUse a (well-tested) sanitization library if at all possible. These libraries are much more likely to handle corner cases correctly than a custom implementation.\n\nAn even safer alternative is to design the application so that sanitization is not needed, for instance by using prepared statements for SQL queries.\n\nOtherwise, make sure to use a regular expression with the `g` flag to ensure that all occurrences are replaced, and remember to escape backslashes if applicable.\n\n\n## Example\nFor example, assume that we want to embed a user-controlled string `accountNumber` into a SQL query as part of a string literal. To avoid SQL injection, we need to ensure that the string does not contain un-escaped single-quote characters. The following function attempts to ensure this by doubling single quotes, and thereby escaping them:\n\n\n```javascript\nfunction escapeQuotes(s) {\n return s.replace(\"'\", \"''\");\n}\n\n```\nAs written, this sanitizer is ineffective: if the first argument to `replace` is a string literal (as in this case), only the *first* occurrence of that string is replaced.\n\nAs mentioned above, the function `escapeQuotes` should be replaced with a purpose-built sanitization library, such as the npm module `sqlstring`. Many other sanitization libraries are available from npm and other sources.\n\nIf this is not an option, `escapeQuotes` should be rewritten to use a regular expression with the `g` (\"global\") flag instead:\n\n\n```javascript\nfunction escapeQuotes(s) {\n return s.replace(/'/g, \"''\");\n}\n\n```\nNote that it is very important to include the global flag: `s.replace(/'/, \"''\")` *without* the global flag is equivalent to the first example above and only replaces the first quote.\n\n\n## References\n* OWASP Top 10: [A1 Injection](https://www.owasp.org/index.php/Top_10-2017_A1-Injection).\n* npm: [sqlstring](https://www.npmjs.com/package/sqlstring) package.\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n* Common Weakness Enumeration: [CWE-80](https://cwe.mitre.org/data/definitions/80.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n"},"properties":{"tags":["correctness","security","external/cwe/cwe-020","external/cwe/cwe-080","external/cwe/cwe-116"],"description":"A string transformer that does not replace or escape all occurrences of a\n meta-character may be ineffective.","id":"js/incomplete-sanitization","kind":"problem","name":"Incomplete string escaping or encoding","precision":"high","problem.severity":"warning","security-severity":"7.8"}},{"id":"js/incomplete-multi-character-sanitization","name":"js/incomplete-multi-character-sanitization","shortDescription":{"text":"Incomplete multi-character sanitization"},"fullDescription":{"text":"A sanitizer that removes a sequence of characters may reintroduce the dangerous sequence."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Incomplete multi-character sanitization\nSanitizing untrusted input is a common technique for preventing injection attacks and other security vulnerabilities. Regular expressions are often used to perform this sanitization. However, when the regular expression matches multiple consecutive characters, replacing it just once can result in the unsafe text reappearing in the sanitized input.\n\nAttackers can exploit this issue by crafting inputs that, when sanitized with an ineffective regular expression, still contain malicious code or content. This can lead to code execution, data exposure, or other vulnerabilities.\n\n\n## Recommendation\nTo prevent this issue, it is highly recommended to use a well-tested sanitization library whenever possible. These libraries are more likely to handle corner cases and ensure effective sanitization.\n\nIf a library is not an option, you can consider alternative strategies to fix the issue. For example, applying the regular expression replacement repeatedly until no more replacements can be performed, or rewriting the regular expression to match single characters instead of the entire unsafe text.\n\n\n## Example\nConsider the following JavaScript code that aims to remove all HTML comment start and end tags:\n\n```javascript\n\nstr.replace(/\n \n\n```\n\n``` javascript\nsap.ui.define([\"sap/ui/core/mvc/Controller\", \"sap/ui/model/json/JSONModel\"],\n function (Controller, JSONModel) {\n return Controller.extend(\"vulnerable.controller.app\", {\n onInit: function () {\n var oData = { input: null };\n var oModel = new JSONModel(oData);\n this.getView().setModel(oModel);\n },\n });\n },\n);\n```\n\nThe issue can be resolved by setting the `HTML` control's `sanitizeContent` attribute to true.\n\n``` xml\n\n \n \n\n```\n\n## References\n\n- OWASP: [DOM Based XSS](https://owasp.org/www-community/attacks/DOM_Based_XSS).\n- SAP UI5 Documentation: [Cross-site Scripting](https://sapui5.hana.ondemand.com/sdk/#/topic/91f0bd316f4d1014b6dd926db0e91070.html) in UI5.\n- SAP UI5 Documentation: [Prevention of Cross-site Scripting](https://sapui5.hana.ondemand.com/sdk/#/topic/4de64e2e191f4a7297d4fd2d1e233a2d.html) in UI5.\n- SAP UI5 Documentation: [API Documentation of sap.ui.core.RenderManager](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.RenderManager).\n- SAP UI5 Documentation: [Defining Control Properties](https://sapui5.hana.ondemand.com/sdk/#/topic/ac56d92162ed47ff858fdf1ce26c18c4.html).\n- SAP UI5 Documentation: [Expression Binding](https://sapui5.hana.ondemand.com/sdk/#/topic/daf6852a04b44d118963968a1239d2c0).\n- SAP UI5 API Reference: [`sap.ui.core.HTML`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.HTML%23methods/setSanitizeContent).\n- Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n- Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n","markdown":"# Client-side cross-site scripting\n\nReceiving text from the user, most notably through a control, and rendering it as HTML in another control can lead to a cross-site scripting vulnerability.\n\n## Recommendation\n\n### Preventing XSS Involving User Defined Control\n\nIf the XSS attack vector includes a user-defined control, then we can mitigate the issue by sanitizing the user-provided input in the implementation of the control:\n- Where possible, define the property type to something other than `string` or `any`. If a value should be used, then opt for the `enum` type which only allows a predefined set of strings.\n- Use escaping functions in `sap.base.security`. Relevant sanitizers include `encodeXML` and `encodeHTML`.\n- When using API with `apiVersion: 2` (Semantic Rendering), do not use `RenderManager.unsafeHtml` unless the control property `sanitizeContent` is set to `true`.\n- When using the now-deprecated older API with `RenderManager.write` or `RenderManager.writeAttribute`, use their respective counterparts `RenderManager.writeEscaped` and `RenderManager.writeAttributeEscaped` which sanitizes their rendered contents.\n\n### Preventing XSS Not Involving User Defined Control\n\nAn XSS attack vector can still exist even when no user-defined control is used. In this case, a model property or a control property act as an intermediate step when external data is passed in.\nIn this case, the UI5 application should not use the property as is, but should sanitize the contents before reading it. Such sanitization can take place in the controller or in the view declaration using expression bindings.\n\n## Example\n\n### Custom Control with Custom Rendering Method\n\nThis custom control `vulnerable.control.xss` calls `unsafeHtml` on a given `RenderManager` instance in its static renderer function. Since its `text` property is an unrestricted string type, it can point to a string with contents that can be interpreted as HTML. If it is the case, `unsafeHtml` will render the string, running a possibly embedded JavaScript code in it.\n\n```javascript\nsap.ui.define([\"sap/ui/core/Control\"], function (Control) {\n return Control.extend(\"vulnerable.control.xss\", {\n metadata: { properties: { text: { type: \"string\" } } },\n renderer: {\n apiVersion: 2,\n render: function (oRm, oControl) {\n oRm.openStart(\"div\", oControl);\n oRm.unsafeHtml(oControl.getText()); // sink\n oRm.close(\"div\");\n }\n }\n });\n})\n```\n\nThis is the same custom control without the possibility of XSS using several means of sanitization: The property `text` is enforced to a non-string type, hence disallows unrestricted strings (This is espcially applicable if the expected input is a number anyways). Also, the `sap.base.security.encodeXML` function is used to escape HTML control characters.\n\n```javascript\nsap.ui.define([\"sap/ui/core/Control\", \"sap/base/security/encodeXML\"], function (Control, encodeXML) {\n return Control.extend(\"vulnerable.control.xss\", {\n metadata: { properties: { text: { type: \"int\" } } }, // constrain the type\n renderer: {\n apiVersion: 2,\n render: function (oRm, oControl) {\n oRm.openStart(\"div\", oControl);\n oRm.unsafeHtml(encodeXML(oControl.getText()); // encode using security functions\n oRm.close(\"div\");\n }\n }\n });\n})\n```\n\n### Library Control\n\nThis example contains only library controls that are not user-defined. The untrusted user input flows from `sap.m.Input` and directly flows out via `sap.ui.core.HTML` through the model property `input` as declared in the `onInit` method of the controller.\n\n``` xml\n\n \t \n \n\n```\n\n``` javascript\nsap.ui.define([\"sap/ui/core/mvc/Controller\", \"sap/ui/model/json/JSONModel\"],\n function (Controller, JSONModel) {\n return Controller.extend(\"vulnerable.controller.app\", {\n onInit: function () {\n var oData = { input: null };\n var oModel = new JSONModel(oData);\n this.getView().setModel(oModel);\n },\n });\n },\n);\n```\n\nThe issue can be resolved by setting the `HTML` control's `sanitizeContent` attribute to true.\n\n``` xml\n\n \n \n\n```\n\n## References\n\n- OWASP: [DOM Based XSS](https://owasp.org/www-community/attacks/DOM_Based_XSS).\n- SAP UI5 Documentation: [Cross-site Scripting](https://sapui5.hana.ondemand.com/sdk/#/topic/91f0bd316f4d1014b6dd926db0e91070.html) in UI5.\n- SAP UI5 Documentation: [Prevention of Cross-site Scripting](https://sapui5.hana.ondemand.com/sdk/#/topic/4de64e2e191f4a7297d4fd2d1e233a2d.html) in UI5.\n- SAP UI5 Documentation: [API Documentation of sap.ui.core.RenderManager](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.RenderManager).\n- SAP UI5 Documentation: [Defining Control Properties](https://sapui5.hana.ondemand.com/sdk/#/topic/ac56d92162ed47ff858fdf1ce26c18c4.html).\n- SAP UI5 Documentation: [Expression Binding](https://sapui5.hana.ondemand.com/sdk/#/topic/daf6852a04b44d118963968a1239d2c0).\n- SAP UI5 API Reference: [`sap.ui.core.HTML`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.HTML%23methods/setSanitizeContent).\n- Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n- Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n"},"properties":{"tags":["security","external/cwe/cwe-079","external/cwe/cwe-116"],"description":"Writing user input directly to a UI5 View allows for\n a cross-site scripting vulnerability.","id":"js/ui5-xss","kind":"path-problem","name":"UI5 Client-side cross-site scripting","precision":"high","problem.severity":"error","security-severity":"6.1"}},{"id":"js/ui5-formula-injection","name":"js/ui5-formula-injection","shortDescription":{"text":"UI5 Formula Injection"},"fullDescription":{"text":"Saving data from an uncontrolled remote source using filesystem or local storage leads to disclosure of sensitive information or forgery of entry."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Formula injection\n\nUI5 applications that save local data, fetched from an uncontrolled remote source, into a CSV file format using generic APIs such as [`sap.ui.core.util.File.save`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.util.File%23methods/sap.ui.core.util.File.save) are vulnerable to formula injection, or CSV injection.\n\n## Recommendation\n\n### Escape the leading special characters\n\nCSV cells containing leading special characters such as an equal sign (`=`) may be interpreted as spreadsheet formulas. To prevent them from being interpreted these prefixes should be escaped by surrounding the prefixes with single quotes in order to keep them as literal strings.\n\n### Use a dedicated API function\n\nManual construction of a CSV file using string concatenation is prone to mistakes that can lead to security issues. Instead, a dedicated library function should be used. For example, if the target being exported is a [`sap.m.Table`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.m.Table) and the resulting file is to intended to be opened using a spreadsheet program anyways, then using one of the API functions provided by [`sap.ui.export.Spreadsheet`](https://sapui5.hana.ondemand.com/#/entity/sap.ui.export.Spreadsheet) is the preferred method of achieving the same exporting functionality.\n\n## Example\n\nThe following controller is exporting a CSV file obtained from an event parameter by surrounding it in a pair of semicolons (`;`) as CSV separators.\n\n``` javascript\nsap.ui.define([\n \"sap/ui/core/Controller\",\n \"sap/ui/core/util/File\"\n ], function(Controller, File) {\n return Controller.extend(\"vulnerable.controller.app\", {\n onSomeEvent: function(oEvent) {\n let response = oEvent.getProperty(\"someProperty\").someField;\n let csvRow = \";\" + response + \";\";\n File.save(csvRow, \"someFile\", \"csv\", \"text/csv\", \"utf-8\");\n }\n });\n });\n```\n\n## References\n\n- OWASP: [CSV Injection](https://owasp.org/www-community/attacks/CSV_Injection).\n- Common Weakness Enumeration: [CWE-1236](https://cwe.mitre.org/data/definitions/1236.html).\n- SAP UI5 API Reference: [`sap.ui.export.Spreadsheet`](https://sapui5.hana.ondemand.com/#/entity/sap.ui.export.Spreadsheet).\n- SAP UI5 API Reference: [`sap.ui.core.util.File.save`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.util.File%23methods/sap.ui.core.util.File.save).\n","markdown":"# Formula injection\n\nUI5 applications that save local data, fetched from an uncontrolled remote source, into a CSV file format using generic APIs such as [`sap.ui.core.util.File.save`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.util.File%23methods/sap.ui.core.util.File.save) are vulnerable to formula injection, or CSV injection.\n\n## Recommendation\n\n### Escape the leading special characters\n\nCSV cells containing leading special characters such as an equal sign (`=`) may be interpreted as spreadsheet formulas. To prevent them from being interpreted these prefixes should be escaped by surrounding the prefixes with single quotes in order to keep them as literal strings.\n\n### Use a dedicated API function\n\nManual construction of a CSV file using string concatenation is prone to mistakes that can lead to security issues. Instead, a dedicated library function should be used. For example, if the target being exported is a [`sap.m.Table`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.m.Table) and the resulting file is to intended to be opened using a spreadsheet program anyways, then using one of the API functions provided by [`sap.ui.export.Spreadsheet`](https://sapui5.hana.ondemand.com/#/entity/sap.ui.export.Spreadsheet) is the preferred method of achieving the same exporting functionality.\n\n## Example\n\nThe following controller is exporting a CSV file obtained from an event parameter by surrounding it in a pair of semicolons (`;`) as CSV separators.\n\n``` javascript\nsap.ui.define([\n \"sap/ui/core/Controller\",\n \"sap/ui/core/util/File\"\n ], function(Controller, File) {\n return Controller.extend(\"vulnerable.controller.app\", {\n onSomeEvent: function(oEvent) {\n let response = oEvent.getProperty(\"someProperty\").someField;\n let csvRow = \";\" + response + \";\";\n File.save(csvRow, \"someFile\", \"csv\", \"text/csv\", \"utf-8\");\n }\n });\n });\n```\n\n## References\n\n- OWASP: [CSV Injection](https://owasp.org/www-community/attacks/CSV_Injection).\n- Common Weakness Enumeration: [CWE-1236](https://cwe.mitre.org/data/definitions/1236.html).\n- SAP UI5 API Reference: [`sap.ui.export.Spreadsheet`](https://sapui5.hana.ondemand.com/#/entity/sap.ui.export.Spreadsheet).\n- SAP UI5 API Reference: [`sap.ui.core.util.File.save`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.util.File%23methods/sap.ui.core.util.File.save).\n"},"properties":{"tags":["security","external/cwe/cwe-1236"],"description":"Saving data from an uncontrolled remote source using filesystem or local storage\n leads to disclosure of sensitive information or forgery of entry.","id":"js/ui5-formula-injection","kind":"path-problem","name":"UI5 Formula Injection","precision":"medium","problem.severity":"error","security-severity":"7.8"}},{"id":"js/ui5-path-injection","name":"js/ui5-path-injection","shortDescription":{"text":"UI5 Path Injection"},"fullDescription":{"text":"Constructing path from an uncontrolled remote source to be passed to a filesystem API allows for manipulation of the local filesystem."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Client-side path injection\n\nUI5 applications that access files using a dynamically configured path are vulnerable to injection attacks that allow an attacker to manipulate the file location.\n\n## Recommendation\n\n### Make path argument independent of the user input\n\nIf possible, do not parameterize the path on a user input. Either hardcode the path string in the source, or use only strings that are created within the application.\n\n### Keep an allow-list of safe paths\n\nKeep a strict allow-list of safe paths to load from or send requests to. Before loading a script from a location outside the application or making an API request to a location, check if the path is contained in the list of safe paths. Also, make sure that the allow-list is kept up to date.\n\n### Check the script into the repository or use package managers\n\nSince the URL of the script may be pointing to a web server vulnerable to being hijacked, it may be a good idea to check a stable version of the script into the repository to increase the degree of control. If not possible, use a trusted package manager such as `npm`.\n\n## Example\n\n### Including scripts from an untrusted domain\n\n``` javascript\nsap.ui.require([\n \"sap/ui/dom/includeScript\"\n ],\n function(includeScript) {\n includeScript(\"http://some.vulnerable.domain/some-script.js\");\n }\n);\n```\n\nIf the vulnerable domain is outside the organization and controlled by an untrusted third party, this may result in arbitrary code execution in the user's browser.\n\n### Using user input as a name of a file to be saved\n\nSuppose a controller is configured to receive a response from a server as follows.\n\n``` javascript\nsap.ui.define([\n \"sap/ui/core/mvc/Controller\",\n \"sap/ui/core/util/File\"\n ],\n function(Controller, File) {\n return Controller.extend(\"vulnerable.controller.app\", {\n onInit: function() {\n let oDataV2Model = this.getOwnerComponent().getModel(\"some-ODatav2-model\");\n this.getView().setModel(oDataV2Model);\n },\n \n onSomeEvent: function() {\n let remoteResponse = this.getView().getModel().getProperty(\"someProperty\");\n File.save(\"some-content\", remoteResponse, \"txt\", \"text/plain\", \"utf-8\");\n }\n });\n });\n```\n\nEven if the server which updates the OData V2 model is in a trusted domain such as within the organization, the server may still contain tainted information if the UI5 application in question is vulnerable to other security attacks, say XSS. This may allow an attacker to save a file in the victim's local filesystem.\n\n## References\n\n- Common Weakness Enumeration: [CWE-829](https://cwe.mitre.org/data/definitions/829.html).\n- Common Weakness Enumeration: [CWE-073](https://cwe.mitre.org/data/definitions/73.html).\n- SAP UI5 API Reference: [`sap.ui.core.util.File`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.util.File%23methods/sap.ui.core.util.File.save).\n- SAP UI5 API Reference: [`sap.ui.dom.includeScript`](https://sapui5.hana.ondemand.com/sdk/#/api/module:sap/ui/dom/includeScript) and [`sap.ui.dom.includeStyleSheet`](https://sapui5.hana.ondemand.com/sdk/#/api/module:sap/ui/dom/includeStylesheet).\n- SAP UI5 API Reference: [`jQuery.sap.includeScript`](https://sapui5.hana.ondemand.com/sdk/#/api/module:sap/ui/dom/includeScript) and [`jQuery.sap.includeStyleSheet`](https://sapui5.hana.ondemand.com/sdk/#/api/module:sap/ui/dom/includeScript).\n","markdown":"# Client-side path injection\n\nUI5 applications that access files using a dynamically configured path are vulnerable to injection attacks that allow an attacker to manipulate the file location.\n\n## Recommendation\n\n### Make path argument independent of the user input\n\nIf possible, do not parameterize the path on a user input. Either hardcode the path string in the source, or use only strings that are created within the application.\n\n### Keep an allow-list of safe paths\n\nKeep a strict allow-list of safe paths to load from or send requests to. Before loading a script from a location outside the application or making an API request to a location, check if the path is contained in the list of safe paths. Also, make sure that the allow-list is kept up to date.\n\n### Check the script into the repository or use package managers\n\nSince the URL of the script may be pointing to a web server vulnerable to being hijacked, it may be a good idea to check a stable version of the script into the repository to increase the degree of control. If not possible, use a trusted package manager such as `npm`.\n\n## Example\n\n### Including scripts from an untrusted domain\n\n``` javascript\nsap.ui.require([\n \"sap/ui/dom/includeScript\"\n ],\n function(includeScript) {\n includeScript(\"http://some.vulnerable.domain/some-script.js\");\n }\n);\n```\n\nIf the vulnerable domain is outside the organization and controlled by an untrusted third party, this may result in arbitrary code execution in the user's browser.\n\n### Using user input as a name of a file to be saved\n\nSuppose a controller is configured to receive a response from a server as follows.\n\n``` javascript\nsap.ui.define([\n \"sap/ui/core/mvc/Controller\",\n \"sap/ui/core/util/File\"\n ],\n function(Controller, File) {\n return Controller.extend(\"vulnerable.controller.app\", {\n onInit: function() {\n let oDataV2Model = this.getOwnerComponent().getModel(\"some-ODatav2-model\");\n this.getView().setModel(oDataV2Model);\n },\n \n onSomeEvent: function() {\n let remoteResponse = this.getView().getModel().getProperty(\"someProperty\");\n File.save(\"some-content\", remoteResponse, \"txt\", \"text/plain\", \"utf-8\");\n }\n });\n });\n```\n\nEven if the server which updates the OData V2 model is in a trusted domain such as within the organization, the server may still contain tainted information if the UI5 application in question is vulnerable to other security attacks, say XSS. This may allow an attacker to save a file in the victim's local filesystem.\n\n## References\n\n- Common Weakness Enumeration: [CWE-829](https://cwe.mitre.org/data/definitions/829.html).\n- Common Weakness Enumeration: [CWE-073](https://cwe.mitre.org/data/definitions/73.html).\n- SAP UI5 API Reference: [`sap.ui.core.util.File`](https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.core.util.File%23methods/sap.ui.core.util.File.save).\n- SAP UI5 API Reference: [`sap.ui.dom.includeScript`](https://sapui5.hana.ondemand.com/sdk/#/api/module:sap/ui/dom/includeScript) and [`sap.ui.dom.includeStyleSheet`](https://sapui5.hana.ondemand.com/sdk/#/api/module:sap/ui/dom/includeStylesheet).\n- SAP UI5 API Reference: [`jQuery.sap.includeScript`](https://sapui5.hana.ondemand.com/sdk/#/api/module:sap/ui/dom/includeScript) and [`jQuery.sap.includeStyleSheet`](https://sapui5.hana.ondemand.com/sdk/#/api/module:sap/ui/dom/includeScript).\n"},"properties":{"tags":["security","external/cwe/cwe-022","external/cwe/cwe-035"],"description":"Constructing path from an uncontrolled remote source to be passed\n to a filesystem API allows for manipulation of the local filesystem.","id":"js/ui5-path-injection","kind":"path-problem","name":"UI5 Path Injection","precision":"medium","problem.severity":"error","security-severity":"7.8"}},{"id":"js/ui5-log-injection-to-http","name":"js/ui5-log-injection-to-http","shortDescription":{"text":"UI5 Log injection in outbound network request"},"fullDescription":{"text":"Building log entries from user-controlled sources is vulnerable to insertion of forged log entries by a malicious user."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# UI5 Log injection in outbound network request\n\nSending user-controlled log data to a remote URL without further validation may lead to uncontrolled information exposure and to injection vulnerabilities. It may be an indication of malicious backdoor code that has been implanted into an otherwise trusted code base.\n\nUI5 applications can retrieve logs for further processing using `sap/base/Log.getLogEntries`, define custom listeners using `sap/base/Log.addLogListener` or directly display logs using the `sap/ui/vk/Notifications` control.\n\nThis query identifies instances where log entries from user input are forwarded to a remote URL. \n\n## Recommendation\n\nAvoid processing log entries that originate from user-controlled sources. Ensure that any log data is properly sanitized.\n\n## Example\n\nThe following example demonstrates a vulnerable code snippet:\n\n1. The UI5 application logs what the user submitted via the `sap.m.Input` control.\n```xml\n \n```\n```javascript\nvar input = oModel.getProperty(\"/input\");\njQuery.sap.log.debug(input); // user input is logged as is\n```\n2. A second component sends log entries to a remote URL without further validation.\n```javascript\nconst http = new XMLHttpRequest();\nconst url = \"https://some.remote.server/location\";\nhttp.open(\"POST\", url);\nhttp.send(Log.getLogEntries()[0].message); // log entry is forwarded to a remote URL\n```\n\n## References\n\n- OWASP: [Log Injection](https://owasp.org/www-community/attacks/Log_Injection).\n- OWASP: [Log Injection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).\n- SAP UI5 Documentation: [namespace `sap/base/Log`](https://sapui5.hana.ondemand.com/sdk/#api/module:sap/base/Log).\n","markdown":"# UI5 Log injection in outbound network request\n\nSending user-controlled log data to a remote URL without further validation may lead to uncontrolled information exposure and to injection vulnerabilities. It may be an indication of malicious backdoor code that has been implanted into an otherwise trusted code base.\n\nUI5 applications can retrieve logs for further processing using `sap/base/Log.getLogEntries`, define custom listeners using `sap/base/Log.addLogListener` or directly display logs using the `sap/ui/vk/Notifications` control.\n\nThis query identifies instances where log entries from user input are forwarded to a remote URL. \n\n## Recommendation\n\nAvoid processing log entries that originate from user-controlled sources. Ensure that any log data is properly sanitized.\n\n## Example\n\nThe following example demonstrates a vulnerable code snippet:\n\n1. The UI5 application logs what the user submitted via the `sap.m.Input` control.\n```xml\n \n```\n```javascript\nvar input = oModel.getProperty(\"/input\");\njQuery.sap.log.debug(input); // user input is logged as is\n```\n2. A second component sends log entries to a remote URL without further validation.\n```javascript\nconst http = new XMLHttpRequest();\nconst url = \"https://some.remote.server/location\";\nhttp.open(\"POST\", url);\nhttp.send(Log.getLogEntries()[0].message); // log entry is forwarded to a remote URL\n```\n\n## References\n\n- OWASP: [Log Injection](https://owasp.org/www-community/attacks/Log_Injection).\n- OWASP: [Log Injection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).\n- SAP UI5 Documentation: [namespace `sap/base/Log`](https://sapui5.hana.ondemand.com/sdk/#api/module:sap/base/Log).\n"},"properties":{"tags":["security","external/cwe/cwe-117"],"description":"Building log entries from user-controlled sources is vulnerable to\n insertion of forged log entries by a malicious user.","id":"js/ui5-log-injection-to-http","kind":"path-problem","name":"UI5 Log injection in outbound network request","precision":"medium","problem.severity":"warning","security-severity":"6.5"}},{"id":"js/ui5-unsafe-log-access","name":"js/ui5-unsafe-log-access","shortDescription":{"text":"Access to user-controlled UI5 Logs"},"fullDescription":{"text":"Log entries from user-controlled sources should not be further processed."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Access to user-controlled UI5 Logs\n\nProcessing user-controlled log entries can lead to injection vulnerabilities, where an attacker can manipulate user input to affect the application excution.\n\nUI5 applications can retrieve logs for further processing using `sap/base/Log.getLogEntries`, define custom listeners using `sap/base/Log.addLogListener` or directly display logs using the `sap/ui/vk/Notifications` control.\n\nThis query identifies instances where user-controlled log entries are accessed in a UI5 application. \n\n## Recommendation\n\nAvoid accessing log entries that originate from user-controlled sources. Ensure that any log data is properly sanitized.\n\n## Example\n\nThe following example demonstrates a vulnerable code snippet:\n\n1. The UI5 application logs what the user submitted via the `sap.m.Input` control.\n```xml\n \n```\n```javascript\nvar input = oModel.getProperty(\"/input\");\njQuery.sap.log.debug(input); // user input is logged as is\n```\n2. A second component retrieves log entries to further process them.\n```javascript\nlet message = Log.getLogEntries()[0].message; //access to user controlled logs\ndo_smth(message);\n```\n\n## References\n\n- OWASP: [Log Injection](https://owasp.org/www-community/attacks/Log_Injection).\n- OWASP: [Log Injection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).\n- SAP UI5 Documentation: [namespace `sap/base/Log`](https://sapui5.hana.ondemand.com/sdk/#api/module:sap/base/Log).\n","markdown":"# Access to user-controlled UI5 Logs\n\nProcessing user-controlled log entries can lead to injection vulnerabilities, where an attacker can manipulate user input to affect the application excution.\n\nUI5 applications can retrieve logs for further processing using `sap/base/Log.getLogEntries`, define custom listeners using `sap/base/Log.addLogListener` or directly display logs using the `sap/ui/vk/Notifications` control.\n\nThis query identifies instances where user-controlled log entries are accessed in a UI5 application. \n\n## Recommendation\n\nAvoid accessing log entries that originate from user-controlled sources. Ensure that any log data is properly sanitized.\n\n## Example\n\nThe following example demonstrates a vulnerable code snippet:\n\n1. The UI5 application logs what the user submitted via the `sap.m.Input` control.\n```xml\n \n```\n```javascript\nvar input = oModel.getProperty(\"/input\");\njQuery.sap.log.debug(input); // user input is logged as is\n```\n2. A second component retrieves log entries to further process them.\n```javascript\nlet message = Log.getLogEntries()[0].message; //access to user controlled logs\ndo_smth(message);\n```\n\n## References\n\n- OWASP: [Log Injection](https://owasp.org/www-community/attacks/Log_Injection).\n- OWASP: [Log Injection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).\n- SAP UI5 Documentation: [namespace `sap/base/Log`](https://sapui5.hana.ondemand.com/sdk/#api/module:sap/base/Log).\n"},"properties":{"tags":["security","external/cwe/cwe-117"],"description":"Log entries from user-controlled sources should not be further processed.","id":"js/ui5-unsafe-log-access","kind":"path-problem","name":"Access to user-controlled UI5 Logs","precision":"medium","problem.severity":"warning","security-severity":"5"}}],"locations":[{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/ui5/src/","description":{"text":"The QL pack root directory."},"properties":{"tags":["CodeQL/LocalPackRoot"]}},{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/ui5/src/qlpack.yml","description":{"text":"The QL pack definition file."},"properties":{"tags":["CodeQL/LocalPackDefinitionFile"]}}]},{"name":"advanced-security/javascript-sap-ui5-models","semanticVersion":"2.0.0","locations":[{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/.github/codeql/extensions/javascript/frameworks/ui5/ext/ext/","description":{"text":"The QL pack root directory."},"properties":{"tags":["CodeQL/LocalPackRoot"]}},{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/.github/codeql/extensions/javascript/frameworks/ui5/ext/ext/qlpack.yml","description":{"text":"The QL pack definition file."},"properties":{"tags":["CodeQL/LocalPackDefinitionFile"]}}],"properties":{"isCodeQLModelPack":true}},{"name":"codeql/javascript-all","semanticVersion":"2.6.8+da3e5479df71bcec4a0b8e385187065dc6a63eeb","locations":[{"uri":"file:///opt/hostedtoolcache/CodeQL/2.22.3/x64/codeql/qlpacks/codeql/javascript-all/2.6.8/","description":{"text":"The QL pack root directory."},"properties":{"tags":["CodeQL/LocalPackRoot"]}},{"uri":"file:///opt/hostedtoolcache/CodeQL/2.22.3/x64/codeql/qlpacks/codeql/javascript-all/2.6.8/qlpack.yml","description":{"text":"The QL pack definition file."},"properties":{"tags":["CodeQL/LocalPackDefinitionFile"]}}]},{"name":"codeql/threat-models","semanticVersion":"1.0.28+da3e5479df71bcec4a0b8e385187065dc6a63eeb","locations":[{"uri":"file:///opt/hostedtoolcache/CodeQL/2.22.3/x64/codeql/qlpacks/codeql/threat-models/1.0.28/","description":{"text":"The QL pack root directory."},"properties":{"tags":["CodeQL/LocalPackRoot"]}},{"uri":"file:///opt/hostedtoolcache/CodeQL/2.22.3/x64/codeql/qlpacks/codeql/threat-models/1.0.28/qlpack.yml","description":{"text":"The QL pack definition file."},"properties":{"tags":["CodeQL/LocalPackDefinitionFile"]}}]},{"name":"advanced-security/javascript-sap-cap-queries","semanticVersion":"2.0.0+1fd5019710edfaa8ef197f2a93bc1a63203b1561","rules":[{"id":"js/cap-sql-injection","name":"js/cap-sql-injection","shortDescription":{"text":"CQL query built from user-controlled sources"},"fullDescription":{"text":"Building a CQL query from user-controlled sources is vulnerable to insertion of malicious code by the user."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# CQL query built from user-controlled sources\n\nIf a database query is built from user-provided data without sufficient sanitization, a malicious user may be able to run malicious database queries.\n\n## Recommendation\n\nCAP's intrinsic data querying engine is immune with regards to SQL injections that are introduced by query parameter values that are derived from malicious user input. CQL statements are transformed into prepared statements that are executed in SQL databases such as SAP HANA. \nInjections are still possible even via CQL when the query structure (e.g. target entity, columns etc.) is based on user input.\n\n## Examples\n\nThis CAP application uses user submitted input as entity and column in a CQL query without any validation.\n\n``` javascript\nconst entity = \nconst column = \nSELECT.from(entity).columns(column)\n```\n\n## References\n\n- OWASP: [SQL Injection](https://owasp.org/www-community/attacks/SQL_Injectionn).\n- OWASP: [SQL Injection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html).\n- SAP CAPire Documentation: [Security Aspects](https://cap.cloud.sap/docs/guides/security/aspects#common-injection-attacks).\n","markdown":"# CQL query built from user-controlled sources\n\nIf a database query is built from user-provided data without sufficient sanitization, a malicious user may be able to run malicious database queries.\n\n## Recommendation\n\nCAP's intrinsic data querying engine is immune with regards to SQL injections that are introduced by query parameter values that are derived from malicious user input. CQL statements are transformed into prepared statements that are executed in SQL databases such as SAP HANA. \nInjections are still possible even via CQL when the query structure (e.g. target entity, columns etc.) is based on user input.\n\n## Examples\n\nThis CAP application uses user submitted input as entity and column in a CQL query without any validation.\n\n``` javascript\nconst entity = \nconst column = \nSELECT.from(entity).columns(column)\n```\n\n## References\n\n- OWASP: [SQL Injection](https://owasp.org/www-community/attacks/SQL_Injectionn).\n- OWASP: [SQL Injection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html).\n- SAP CAPire Documentation: [Security Aspects](https://cap.cloud.sap/docs/guides/security/aspects#common-injection-attacks).\n"},"properties":{"tags":["security"],"description":"Building a CQL query from user-controlled sources is vulnerable to insertion of\n malicious code by the user.","id":"js/cap-sql-injection","kind":"path-problem","name":"CQL query built from user-controlled sources","precision":"high","problem.severity":"error","security-severity":"8.8"}},{"id":"js/cap-log-injection","name":"js/cap-log-injection","shortDescription":{"text":"CAP Log injection"},"fullDescription":{"text":"Building log entries from user-controlled sources is vulnerable to insertion of forged log entries by a malicious user."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# CAP Log Injection\n\nIf unsanitized user input is written to a log entry using the CAP Node.js logging API, a malicious user may be able to forge new log entries.\n\nCAP Node.js offers a CLRF-safe logging API that should be used for application log entries that are logged as plaintext. If the entry is interpreted as HTML, then arbitrary HTML code my be included to forge log entries.\n\n## Recommendation\n\nCAP applications need to care for escaping user data that is used as input parameter for application logging. It's recommended to make use of an existing Encoder such as OWASP ESAPI.\n\n## Examples\n\nThis CAP service directly logs what the user submitted via the `req` request.\n\n``` javascript\nimport cds from '@sap/cds'\nconst { Books } = cds.entities ('sap.capire.bookshop')\n\nclass SampleVulnService extends cds.ApplicationService { init(){\n this.on ('submitOrder', async req => {\n const {book,quantity} = req.data\n const LOG = cds.log(\"nodejs\");\n LOG.info(\"test\" + book); // Log injection alert\n })\n\n return super.init()\n}}\n```\n\n## References\n\n- OWASP: [Log Injection](https://owasp.org/www-community/attacks/Log_Injection).\n- OWASP: [Log Injection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).\n- SAP CAPire Documentation: [Security Aspects](https://cap.cloud.sap/docs/guides/security/aspects#common-injection-attacks).\n","markdown":"# CAP Log Injection\n\nIf unsanitized user input is written to a log entry using the CAP Node.js logging API, a malicious user may be able to forge new log entries.\n\nCAP Node.js offers a CLRF-safe logging API that should be used for application log entries that are logged as plaintext. If the entry is interpreted as HTML, then arbitrary HTML code my be included to forge log entries.\n\n## Recommendation\n\nCAP applications need to care for escaping user data that is used as input parameter for application logging. It's recommended to make use of an existing Encoder such as OWASP ESAPI.\n\n## Examples\n\nThis CAP service directly logs what the user submitted via the `req` request.\n\n``` javascript\nimport cds from '@sap/cds'\nconst { Books } = cds.entities ('sap.capire.bookshop')\n\nclass SampleVulnService extends cds.ApplicationService { init(){\n this.on ('submitOrder', async req => {\n const {book,quantity} = req.data\n const LOG = cds.log(\"nodejs\");\n LOG.info(\"test\" + book); // Log injection alert\n })\n\n return super.init()\n}}\n```\n\n## References\n\n- OWASP: [Log Injection](https://owasp.org/www-community/attacks/Log_Injection).\n- OWASP: [Log Injection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).\n- SAP CAPire Documentation: [Security Aspects](https://cap.cloud.sap/docs/guides/security/aspects#common-injection-attacks).\n"},"properties":{"tags":["security"],"description":"Building log entries from user-controlled sources is vulnerable to\n insertion of forged log entries by a malicious user.","id":"js/cap-log-injection","kind":"path-problem","name":"CAP Log injection","precision":"medium","problem.severity":"error","security-severity":"6.1"}},{"id":"js/cap-default-user-is-privileged","name":"js/cap-default-user-is-privileged","shortDescription":{"text":"Default user is privileged"},"fullDescription":{"text":"Overriding the default user to the privileged user allows for authentication bypass."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Default User is overwritten as privileged\n\nUsers that cannot be verified as authenticated are represented as `cds.User.default` internally. Setting this property to `cds.User.Privileged` may result in providing protected assets to unauthorized users.\n\n## Recommendation\n\n### Set up a development profile that uses non-production authentication\n\nOverwriting `cds.User.default` as `cds.User.Privileged` for testing purposes is not recommended as such code may easily slip through production.\n\nInstead, set up a development profile and opt in to use a non-production strategy such as `\"basic\"`, `\"dummy\"`, or `\"mocked\"` during its use. This can be done in the file `package.json` in the root folder of the CAP application:\n\n``` json\n{\n \"requires\": {\n \"[dev]\": {\n \"auth\": \"dummy\"\n }\n }\n}\n```\n\nSetting `\"dummy\"` as the development authentication strategy has the effect of disabling `@requires` and `@restrict` annotations of CDS definitions that provides authorization. The application during development then can be run and tested with the `--profile dev` option.\n\n```shell\ncds serve --profile dev\n```\n\n## Example\n\nSetting `cds.User.default` to `cds.User.Privileged` may happen anywhere in the application. In the following example, the `server.js` file provides the top-level definition of a CAP application and overwrites the `default` user property with the `Privileged` class.\n\n``` javascript\nconst cds = require(\"@sap/cds\");\nconst app = require(\"express\")();\n\n/*\n * Antipattern: `cds.User.default` is overwritten to `cds.User.Privileged`\n */\ncds.User.default = cdsUser.Privileged;\n\ncds.serve(\"all\").in(app);\n```\n\n## References\n\n- SAP CAPire Documentation: [cds.User.default](https://cap.cloud.sap/docs/node.js/authentication#default-user).\n- SAP CAPire Documentation: [cds.User.Privileged](https://cap.cloud.sap/docs/node.js/authentication#privileged-user).\n- SAP CAPire Documentation: [Authentication Strategies](https://cap.cloud.sap/docs/node.js/authentication#strategies).\n- Common Weakness Enumeration: [CWE-250](https://cwe.mitre.org/data/definitions/250.html).\n","markdown":"# Default User is overwritten as privileged\n\nUsers that cannot be verified as authenticated are represented as `cds.User.default` internally. Setting this property to `cds.User.Privileged` may result in providing protected assets to unauthorized users.\n\n## Recommendation\n\n### Set up a development profile that uses non-production authentication\n\nOverwriting `cds.User.default` as `cds.User.Privileged` for testing purposes is not recommended as such code may easily slip through production.\n\nInstead, set up a development profile and opt in to use a non-production strategy such as `\"basic\"`, `\"dummy\"`, or `\"mocked\"` during its use. This can be done in the file `package.json` in the root folder of the CAP application:\n\n``` json\n{\n \"requires\": {\n \"[dev]\": {\n \"auth\": \"dummy\"\n }\n }\n}\n```\n\nSetting `\"dummy\"` as the development authentication strategy has the effect of disabling `@requires` and `@restrict` annotations of CDS definitions that provides authorization. The application during development then can be run and tested with the `--profile dev` option.\n\n```shell\ncds serve --profile dev\n```\n\n## Example\n\nSetting `cds.User.default` to `cds.User.Privileged` may happen anywhere in the application. In the following example, the `server.js` file provides the top-level definition of a CAP application and overwrites the `default` user property with the `Privileged` class.\n\n``` javascript\nconst cds = require(\"@sap/cds\");\nconst app = require(\"express\")();\n\n/*\n * Antipattern: `cds.User.default` is overwritten to `cds.User.Privileged`\n */\ncds.User.default = cdsUser.Privileged;\n\ncds.serve(\"all\").in(app);\n```\n\n## References\n\n- SAP CAPire Documentation: [cds.User.default](https://cap.cloud.sap/docs/node.js/authentication#default-user).\n- SAP CAPire Documentation: [cds.User.Privileged](https://cap.cloud.sap/docs/node.js/authentication#privileged-user).\n- SAP CAPire Documentation: [Authentication Strategies](https://cap.cloud.sap/docs/node.js/authentication#strategies).\n- Common Weakness Enumeration: [CWE-250](https://cwe.mitre.org/data/definitions/250.html).\n"},"properties":{"tags":["security"],"description":"Overriding the default user to the privileged user allows for authentication bypass.","id":"js/cap-default-user-is-privileged","kind":"problem","name":"Default user is privileged","precision":"high","problem.severity":"error","security-severity":"6"}},{"id":"js/cap-entity-exposed-without-authentication","name":"js/cap-entity-exposed-without-authentication","shortDescription":{"text":"Entity exposed without authentication"},"fullDescription":{"text":"Entities exposed to external protocols should require an CDS-based or JS-based access control."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# CAP Definitions Exposed without Access Controls\n\nAlthough using a production-level authentication strategy such as `jwt` ensures that all entities and services require the user to be authenticated, this does not guarantee any further authorization. Furthermore, the lack of required authentication or authorization may imply a gap in the design of the system.\n\n## Recommendation\n\n### Use CDS-based authorization\n\nCDL provides two annotations to declare access controls `@requires` and `@restrict` with the latter providing more granularity than the former. For example, to check if a request is being made by an authenticated user to the CDL entity or service, annotate it with `@requires: 'authenticated-user'`. On the other hand, if it needs to be read only via a certain group of users where the user has level greater than 2, use `@restrict: { grant: 'READ', to: 'SomeUser', where: { $user.level > 2 } }` (note the leading `$`).\n\n#### Check the original CDS entity it is derived from\n\nCDS entities may be derived from other entities by means of selection and projection. Derived definitions inherit access control conditions and optionally override them. In order to accurately determine what authorization an entity requires, the access control of the parent entity should be transitively inspected.\n\n### Enforce authorization with JavaScript\n\nAccess control may be enforced when a request handler for the relevant entity or service is registered. Both `cds.Service.before` and `cds.Service.on` may be used for enforcement. For example, to restrict writing to and updating an entity to a user satisfying certain requirements, either one of the below handler registrations may be used:\n\n``` javascript\n/**\n * Before serving a request to access SomeEntity, check if the request is coming from a user\n * with SomeRole and level greater than 3.\n */\nthis.before([\"WRITE\", \"UPDATE\"], \"SomeEntity\", (req) => {\n (req.user.is(\"SomeRole\") && req.user.attr.level > 3) || req.reject(403);\n});\n\n/**\n * On request to access SomeEntity, check if the request is coming from a user\n * with SomeRole and level greater than 3.\n */\nthis.on([\"WRITE\", \"UPDATE\"], \"SomeEntity\", (req) => {\n if (req.user.is(\"SomeRole\") && req.user.attr.level > 3) {\n /* Do something */\n } else req.reject(403);\n});\n```\n\n## Examples\n\nThe following CDS definition and its JavaScript implementation imposes no authorization on `SomeEntity`. Note that the `OriginalEntity` from which `DerivedEntity` derives from does not control the access either.\n\n### db/schema.cds\n\n``` cap-cds\nnamespace sample_namespace.sample_entities;\n\nentity OriginalEntity {\n Attribute1 : String(100);\n Attribute2 : String(100)\n}\n```\n\n### srv/service1.cds\n\n``` cap-cds\nusing { sample_namespace.sample_entities as db_schema } from '../db/schema';\n\nservice SomeService {\n entity DerivedEntity as projection on db_schema.OriginalEntity excluding { Attribute2 }\n}\n```\n\n### srv/service1.js\n\n``` javascript\n\nconst cds = require(\"@sap/cds\");\n\nmodule.exports = class Service1 extends cds.ApplicationService {\n init() {\n this.on(\"READ\", \"SomeService\", (req) => { })\n }\n}\n```\n\n## References\n\n- SAP CAPire Documentation: [Authorization Enforcement](https://cap.cloud.sap/docs/node.js/authentication#enforcement).\n- SAP CAPire Documentation: [@restrict](https://cap.cloud.sap/docs/guides/security/authorization#restrict-annotation).\n- SAP CAPire Documentation:\n[@requires](https://cap.cloud.sap/docs/guides/security/authorization#requires).\n- SAP CAPire Documentation: [Protecting Certain Entries](https://cap.cloud.sap/docs/cds/common#protecting-certain-entries).\n- SAP CAPire Documentation: [Inheritance of Restrictions](https://cap.cloud.sap/docs/guides/security/authorization#inheritance-of-restrictions).\n- SAP CAPire Documentation: [Authentication Enforced in Production](https://cap.cloud.sap/docs/node.js/authentication#authentication-enforced-in-production).\n- Common Weakness Enumeration: [CWE-862](https://cwe.mitre.org/data/definitions/862.html).\n- Common Weakness Enumeration: [CWE-306](https://cwe.mitre.org/data/definitions/306.html).\n","markdown":"# CAP Definitions Exposed without Access Controls\n\nAlthough using a production-level authentication strategy such as `jwt` ensures that all entities and services require the user to be authenticated, this does not guarantee any further authorization. Furthermore, the lack of required authentication or authorization may imply a gap in the design of the system.\n\n## Recommendation\n\n### Use CDS-based authorization\n\nCDL provides two annotations to declare access controls `@requires` and `@restrict` with the latter providing more granularity than the former. For example, to check if a request is being made by an authenticated user to the CDL entity or service, annotate it with `@requires: 'authenticated-user'`. On the other hand, if it needs to be read only via a certain group of users where the user has level greater than 2, use `@restrict: { grant: 'READ', to: 'SomeUser', where: { $user.level > 2 } }` (note the leading `$`).\n\n#### Check the original CDS entity it is derived from\n\nCDS entities may be derived from other entities by means of selection and projection. Derived definitions inherit access control conditions and optionally override them. In order to accurately determine what authorization an entity requires, the access control of the parent entity should be transitively inspected.\n\n### Enforce authorization with JavaScript\n\nAccess control may be enforced when a request handler for the relevant entity or service is registered. Both `cds.Service.before` and `cds.Service.on` may be used for enforcement. For example, to restrict writing to and updating an entity to a user satisfying certain requirements, either one of the below handler registrations may be used:\n\n``` javascript\n/**\n * Before serving a request to access SomeEntity, check if the request is coming from a user\n * with SomeRole and level greater than 3.\n */\nthis.before([\"WRITE\", \"UPDATE\"], \"SomeEntity\", (req) => {\n (req.user.is(\"SomeRole\") && req.user.attr.level > 3) || req.reject(403);\n});\n\n/**\n * On request to access SomeEntity, check if the request is coming from a user\n * with SomeRole and level greater than 3.\n */\nthis.on([\"WRITE\", \"UPDATE\"], \"SomeEntity\", (req) => {\n if (req.user.is(\"SomeRole\") && req.user.attr.level > 3) {\n /* Do something */\n } else req.reject(403);\n});\n```\n\n## Examples\n\nThe following CDS definition and its JavaScript implementation imposes no authorization on `SomeEntity`. Note that the `OriginalEntity` from which `DerivedEntity` derives from does not control the access either.\n\n### db/schema.cds\n\n``` cap-cds\nnamespace sample_namespace.sample_entities;\n\nentity OriginalEntity {\n Attribute1 : String(100);\n Attribute2 : String(100)\n}\n```\n\n### srv/service1.cds\n\n``` cap-cds\nusing { sample_namespace.sample_entities as db_schema } from '../db/schema';\n\nservice SomeService {\n entity DerivedEntity as projection on db_schema.OriginalEntity excluding { Attribute2 }\n}\n```\n\n### srv/service1.js\n\n``` javascript\n\nconst cds = require(\"@sap/cds\");\n\nmodule.exports = class Service1 extends cds.ApplicationService {\n init() {\n this.on(\"READ\", \"SomeService\", (req) => { })\n }\n}\n```\n\n## References\n\n- SAP CAPire Documentation: [Authorization Enforcement](https://cap.cloud.sap/docs/node.js/authentication#enforcement).\n- SAP CAPire Documentation: [@restrict](https://cap.cloud.sap/docs/guides/security/authorization#restrict-annotation).\n- SAP CAPire Documentation:\n[@requires](https://cap.cloud.sap/docs/guides/security/authorization#requires).\n- SAP CAPire Documentation: [Protecting Certain Entries](https://cap.cloud.sap/docs/cds/common#protecting-certain-entries).\n- SAP CAPire Documentation: [Inheritance of Restrictions](https://cap.cloud.sap/docs/guides/security/authorization#inheritance-of-restrictions).\n- SAP CAPire Documentation: [Authentication Enforced in Production](https://cap.cloud.sap/docs/node.js/authentication#authentication-enforced-in-production).\n- Common Weakness Enumeration: [CWE-862](https://cwe.mitre.org/data/definitions/862.html).\n- Common Weakness Enumeration: [CWE-306](https://cwe.mitre.org/data/definitions/306.html).\n"},"properties":{"tags":["security"],"description":"Entities exposed to external protocols should require an\n CDS-based or JS-based access control.","id":"js/cap-entity-exposed-without-authentication","kind":"problem","name":"Entity exposed without authentication","precision":"high","problem.severity":"warning","security-severity":"6"}},{"id":"js/cap-non-prod-auth-strategy","name":"js/cap-non-prod-auth-strategy","shortDescription":{"text":"Non-production authentication strategy used"},"fullDescription":{"text":"Using non-production authentication strategies can lead to unwanted authentication behavior in production."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Non-Production Authentication Strategy Used without Profiles\n\nUsing a non-production authentication strategy without setting up a distinct profile for development may pose allow unintended authentication and/or authorization if the application is deployed into production.\n\n## Recommendation\n\n### Isolate the use of development-level strategies to a development profile\n\nUse separate profiles for development and deployment and select one as needed. In this way, properties including authentication strategies can be substituted by changing a single command line option: `--profile`. For example, having the following section in the application's `package.json` states that the `\"dummy\"` authentication strategy must be used while `\"xsuaa\"`, a production-grade strategy, should be used when deployed:\n\n``` json\n{\n \"requires\": {\n \"[dev]\": {\n \"auth\": \"dummy\"\n },\n \"[deploy]\": {\n \"auth\": \"xsuaa\"\n }\n }\n}\n```\n\nThe application can be now run in different modes depending on the `--profile` command line option:\n\n``` shell\n$ cds serve --profile dev # Runs the application in development profile with strategy \"dummy\"\n$ cds serve --profile deploy # Runs the application in development profile with strategy \"xsuaa\"\n```\n\n## Example\n\nThe following CAP application states that it uses `\"basic\"` authentication strategy along with mocked credentials. Using the pair of username and password, an attacker can gain access to certain assets by signing in to the application.\n\n``` json\n{\n \"cds\": {\n \"requires\": {\n \"auth\": {\n \"kind\": \"basic\",\n \"users\": {\n \"JohnDoe\": {\n \"password\": \"JohnDoesPassword\",\n \"roles\": [\"JohnDoesRole\"],\n \"attr\": {}\n },\n \"JaneDoe\": {\n \"password\": \"JaneDoesPassword\",\n \"roles\": [\"JaneDoesRole\"],\n \"attr\": {}\n }\n }\n }\n }\n }\n}\n```\n\n## References\n\n- Common Weakness Enumeration: [CWE-288](https://cwe.mitre.org/data/definitions/288.html).\n- Common Weakness Enumeration: [CWE-798](https://cwe.mitre.org/data/definitions/798.html).\n- SAP CAPire Documentation: [Authentication Strategies](https://cap.cloud.sap/docs/node.js/authentication#strategies).\n","markdown":"# Non-Production Authentication Strategy Used without Profiles\n\nUsing a non-production authentication strategy without setting up a distinct profile for development may pose allow unintended authentication and/or authorization if the application is deployed into production.\n\n## Recommendation\n\n### Isolate the use of development-level strategies to a development profile\n\nUse separate profiles for development and deployment and select one as needed. In this way, properties including authentication strategies can be substituted by changing a single command line option: `--profile`. For example, having the following section in the application's `package.json` states that the `\"dummy\"` authentication strategy must be used while `\"xsuaa\"`, a production-grade strategy, should be used when deployed:\n\n``` json\n{\n \"requires\": {\n \"[dev]\": {\n \"auth\": \"dummy\"\n },\n \"[deploy]\": {\n \"auth\": \"xsuaa\"\n }\n }\n}\n```\n\nThe application can be now run in different modes depending on the `--profile` command line option:\n\n``` shell\n$ cds serve --profile dev # Runs the application in development profile with strategy \"dummy\"\n$ cds serve --profile deploy # Runs the application in development profile with strategy \"xsuaa\"\n```\n\n## Example\n\nThe following CAP application states that it uses `\"basic\"` authentication strategy along with mocked credentials. Using the pair of username and password, an attacker can gain access to certain assets by signing in to the application.\n\n``` json\n{\n \"cds\": {\n \"requires\": {\n \"auth\": {\n \"kind\": \"basic\",\n \"users\": {\n \"JohnDoe\": {\n \"password\": \"JohnDoesPassword\",\n \"roles\": [\"JohnDoesRole\"],\n \"attr\": {}\n },\n \"JaneDoe\": {\n \"password\": \"JaneDoesPassword\",\n \"roles\": [\"JaneDoesRole\"],\n \"attr\": {}\n }\n }\n }\n }\n }\n}\n```\n\n## References\n\n- Common Weakness Enumeration: [CWE-288](https://cwe.mitre.org/data/definitions/288.html).\n- Common Weakness Enumeration: [CWE-798](https://cwe.mitre.org/data/definitions/798.html).\n- SAP CAPire Documentation: [Authentication Strategies](https://cap.cloud.sap/docs/node.js/authentication#strategies).\n"},"properties":{"tags":["security"],"description":"Using non-production authentication strategies can lead to unwanted authentication behavior in production.","id":"js/cap-non-prod-auth-strategy","kind":"problem","name":"Non-production authentication strategy used","precision":"high","problem.severity":"warning","security-severity":"6"}},{"id":"js/cap-unnecessarily-granted-privileged-access-rights","name":"js/cap-unnecessarily-granted-privileged-access-rights","shortDescription":{"text":"Access rights to an entity is unnecessarily elevated to privileged"},"fullDescription":{"text":"An entity requiring authorization is being accessed with privileged rights."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Access rights to an entity is unnecessarily elevated to privileged\n\nThe privileged user `cds.User.Privileged` is used to access an entity that requires authorization. If the application does not verify the actual user rights, it may expose protected entities to unauthorized users.\n\nThis is especially important when the accessed entity belongs to a remote service. By default, when using a production-grade authentication strategy all CAP endpoints are authenticated. However, if the entity is outside the application, there is no guarantee that the user is authenticated in the remote service.\n\n## Recommendations\n\n### Avoid using `cds.User.Privileged` when accessing an access-controlled entity\n\nAny entity that requires authorization should be accessed within the context of the authenticated user. When using a transaction, prefer using `cds.User` as the `user` attribute of the option argument to the call of `cds.ApplicationService.tx()` in order to check the required access rights of the entity against that of the user.\n\n## Examples\n\nThe following service, named Service1 and implemented in the file service1.js, is accessing an entity that belongs to another service named Service2 and defined in the file service2.cds. The entity, Service2Entity, demands that the user have level greater than 2.\n\n### `service1.js`\n\n``` javascript\nthis.on(\"action1\", async (req) => {\n const Service2 = await cds.connect.to(\"Service2\");\n const { Service2Entity } = Service2.entities;\n return this.tx({ user: new cds.User.Privileged(\"\") }, (tx) =>\n tx.run(\n SELECT.from(Service2Entity) // Declared in service2.cds\n .where`Attribute4=${req.data.messageToPass}`,\n ),\n );\n});\n```\n\n### `service2.cds`\n\n``` cds\nservice Service2 @(path: 'service-2') {\n /* Read access only to users with access level greater than 2. */\n @(restrict: [ { grant: 'READ', to: '$user.level > 2' } ])\n entity Service2Entity {\n Attribute1 : String(100);\n Attribute2 : String(100)\n }\n}\n```\n\n## References\n\n- SAP CAPire Documentation: [cds.User.Privileged](https://cap.cloud.sap/docs/node.js/authentication#privileged-user).\n- SAP CAPire Documentation: [cds.tx()](https://cap.cloud.sap/docs/node.js/cds-tx#srv-tx-ctx).\n- Common Weakness Enumeration: [CWE-250](https://cwe.mitre.org/data/definitions/250.html).\n- Common Weakness Enumeration: [CWE-266](https://cwe.mitre.org/data/definitions/266.html).\n","markdown":"# Access rights to an entity is unnecessarily elevated to privileged\n\nThe privileged user `cds.User.Privileged` is used to access an entity that requires authorization. If the application does not verify the actual user rights, it may expose protected entities to unauthorized users.\n\nThis is especially important when the accessed entity belongs to a remote service. By default, when using a production-grade authentication strategy all CAP endpoints are authenticated. However, if the entity is outside the application, there is no guarantee that the user is authenticated in the remote service.\n\n## Recommendations\n\n### Avoid using `cds.User.Privileged` when accessing an access-controlled entity\n\nAny entity that requires authorization should be accessed within the context of the authenticated user. When using a transaction, prefer using `cds.User` as the `user` attribute of the option argument to the call of `cds.ApplicationService.tx()` in order to check the required access rights of the entity against that of the user.\n\n## Examples\n\nThe following service, named Service1 and implemented in the file service1.js, is accessing an entity that belongs to another service named Service2 and defined in the file service2.cds. The entity, Service2Entity, demands that the user have level greater than 2.\n\n### `service1.js`\n\n``` javascript\nthis.on(\"action1\", async (req) => {\n const Service2 = await cds.connect.to(\"Service2\");\n const { Service2Entity } = Service2.entities;\n return this.tx({ user: new cds.User.Privileged(\"\") }, (tx) =>\n tx.run(\n SELECT.from(Service2Entity) // Declared in service2.cds\n .where`Attribute4=${req.data.messageToPass}`,\n ),\n );\n});\n```\n\n### `service2.cds`\n\n``` cds\nservice Service2 @(path: 'service-2') {\n /* Read access only to users with access level greater than 2. */\n @(restrict: [ { grant: 'READ', to: '$user.level > 2' } ])\n entity Service2Entity {\n Attribute1 : String(100);\n Attribute2 : String(100)\n }\n}\n```\n\n## References\n\n- SAP CAPire Documentation: [cds.User.Privileged](https://cap.cloud.sap/docs/node.js/authentication#privileged-user).\n- SAP CAPire Documentation: [cds.tx()](https://cap.cloud.sap/docs/node.js/cds-tx#srv-tx-ctx).\n- Common Weakness Enumeration: [CWE-250](https://cwe.mitre.org/data/definitions/250.html).\n- Common Weakness Enumeration: [CWE-266](https://cwe.mitre.org/data/definitions/266.html).\n"},"properties":{"tags":["security"],"description":"An entity requiring authorization is being accessed with privileged rights.","id":"js/cap-unnecessarily-granted-privileged-access-rights","kind":"problem","name":"Access rights to an entity is unnecessarily elevated to privileged","precision":"high","problem.severity":"error","security-severity":"6"}},{"id":"js/cap-sensitive-log","name":"js/cap-sensitive-log","shortDescription":{"text":"Insertion of sensitive information into log files"},"fullDescription":{"text":"Writing sensitive information to log files can allow that information to be leaked to an attacker more easily."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# CAP Insertion of Sensitive Information into Log File\n\nIf sensitive information is written to a log entry using the CAP Node.js logging API, a malicious user may be able to gain access to user data.\n\nData annotated as `@PersonalData` should not be logged.\n\n## Recommendation\n\nCAP applications should not log sensitive information. Check CDS declarations for annotations before logging certain data types or fields.\n\n## Examples\n\nThis CAP service directly logs the sensitive information.\n\n```cds\nnamespace advanced_security.log_exposure.sample_entities;\n\nentity Sample {\n name : String(111);\n}\n\n// annotations for Data Privacy\nannotate Sample with\n@PersonalData : { DataSubjectRole : 'Sample', EntitySemantics : 'DataSubject' }\n{\n name @PersonalData.IsPotentiallySensitive;\n}\n```\n\n``` javascript\nimport cds from '@sap/cds'\nconst LOG = cds.log(\"logger\");\n\nconst { Sample } = cds.entities('advanced_security.log_exposure.sample_entities')\n\nclass SampleVulnService extends cds.ApplicationService {\n init() {\n LOG.info(\"Received: \", Sample.name); // CAP log exposure alert\n }\n}\n```\n\n## References\n\n- OWASP 2021: [Security Logging and Monitoring Failures](https://owasp.org/Top10/A09_2021-Security_Logging_and_Monitoring_Failures/).\n- OWASP: [Logging Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).\n- OWASP: [User Privacy Protection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/User_Privacy_Protection_Cheat_Sheet.html).\n- SAP CAPire Documentation: [PersonalData Annotations](https://cap.cloud.sap/docs/guides/data-privacy/annotations).","markdown":"# CAP Insertion of Sensitive Information into Log File\n\nIf sensitive information is written to a log entry using the CAP Node.js logging API, a malicious user may be able to gain access to user data.\n\nData annotated as `@PersonalData` should not be logged.\n\n## Recommendation\n\nCAP applications should not log sensitive information. Check CDS declarations for annotations before logging certain data types or fields.\n\n## Examples\n\nThis CAP service directly logs the sensitive information.\n\n```cds\nnamespace advanced_security.log_exposure.sample_entities;\n\nentity Sample {\n name : String(111);\n}\n\n// annotations for Data Privacy\nannotate Sample with\n@PersonalData : { DataSubjectRole : 'Sample', EntitySemantics : 'DataSubject' }\n{\n name @PersonalData.IsPotentiallySensitive;\n}\n```\n\n``` javascript\nimport cds from '@sap/cds'\nconst LOG = cds.log(\"logger\");\n\nconst { Sample } = cds.entities('advanced_security.log_exposure.sample_entities')\n\nclass SampleVulnService extends cds.ApplicationService {\n init() {\n LOG.info(\"Received: \", Sample.name); // CAP log exposure alert\n }\n}\n```\n\n## References\n\n- OWASP 2021: [Security Logging and Monitoring Failures](https://owasp.org/Top10/A09_2021-Security_Logging_and_Monitoring_Failures/).\n- OWASP: [Logging Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html).\n- OWASP: [User Privacy Protection Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/User_Privacy_Protection_Cheat_Sheet.html).\n- SAP CAPire Documentation: [PersonalData Annotations](https://cap.cloud.sap/docs/guides/data-privacy/annotations)."},"properties":{"tags":["security","external/cwe/cwe-532"],"description":"Writing sensitive information to log files can allow that\n information to be leaked to an attacker more easily.","id":"js/cap-sensitive-log","kind":"path-problem","name":"Insertion of sensitive information into log files","precision":"medium","problem.severity":"warning","security-severity":"7.5"}},{"id":"js/cap-path-injection","name":"js/cap-path-injection","shortDescription":{"text":"Use of user controlled input in CAP CDS file system utilies"},"fullDescription":{"text":"Using unchecked user controlled values can allow an attacker to affect paths constructed and accessed in the filesystem."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# CAP CDS Utils used with user-controlled sources\n\nIf a path is constructed from user-provided input without sufficient sanitization, a malicious user may be able to manipulate the contents of the filesystem without proper authorization.\n\nAdditionally if user-provided input is used to create file contents this can also result in a malicious user manipulating the filesystem in an unchecked way.\n\n## Recommendation\n\nCAP applications using CDS Utils should not use user-provided input without sanitization.\n\n## Examples\n\nThis CAP service directly uses user-provided input to construct a path.\n\n``` javascript\nconst cds = require(\"@sap/cds\");\nconst { rm } = cds.utils\n\nmodule.exports = class Service1 extends cds.ApplicationService {\n\n init() {\n this.on(\"send1\", async (req) => {\n let userinput = req.data\n await rm(userinput, 'db', 'data') // Path injection alert\n }\n }\n}\n```\n\nThis CAP service directly uses user-provided input to add content to a file.\n\n``` javascript\nconst cds = require(\"@sap/cds\");\nconst { rm } = cds.utils\n\nmodule.exports = class Service1 extends cds.ApplicationService {\n\n init() {\n this.on(\"send1\", async (req) => {\n let userinput = req.data\n await write(userinput).to('db/data') // Path injection alert\n }\n }\n}\n\n```\n\n## References\n\n- OWASP 2021: [Injection](https://owasp.org/Top10/A03_2021-Injection/).\n- SAP CAP CDS Utils : [Documentation](https://cap.cloud.sap/docs/node.js/cds-utils).","markdown":"# CAP CDS Utils used with user-controlled sources\n\nIf a path is constructed from user-provided input without sufficient sanitization, a malicious user may be able to manipulate the contents of the filesystem without proper authorization.\n\nAdditionally if user-provided input is used to create file contents this can also result in a malicious user manipulating the filesystem in an unchecked way.\n\n## Recommendation\n\nCAP applications using CDS Utils should not use user-provided input without sanitization.\n\n## Examples\n\nThis CAP service directly uses user-provided input to construct a path.\n\n``` javascript\nconst cds = require(\"@sap/cds\");\nconst { rm } = cds.utils\n\nmodule.exports = class Service1 extends cds.ApplicationService {\n\n init() {\n this.on(\"send1\", async (req) => {\n let userinput = req.data\n await rm(userinput, 'db', 'data') // Path injection alert\n }\n }\n}\n```\n\nThis CAP service directly uses user-provided input to add content to a file.\n\n``` javascript\nconst cds = require(\"@sap/cds\");\nconst { rm } = cds.utils\n\nmodule.exports = class Service1 extends cds.ApplicationService {\n\n init() {\n this.on(\"send1\", async (req) => {\n let userinput = req.data\n await write(userinput).to('db/data') // Path injection alert\n }\n }\n}\n\n```\n\n## References\n\n- OWASP 2021: [Injection](https://owasp.org/Top10/A03_2021-Injection/).\n- SAP CAP CDS Utils : [Documentation](https://cap.cloud.sap/docs/node.js/cds-utils)."},"properties":{"tags":["security","external/cwe/cwe-020","external/cwe/cwe-022"],"description":"Using unchecked user controlled values can allow an\n attacker to affect paths constructed and accessed in\n the filesystem.","id":"js/cap-path-injection","kind":"path-problem","name":"Use of user controlled input in CAP CDS file system utilies","precision":"medium","problem.severity":"warning","security-severity":"7.5"}}],"locations":[{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/src/","description":{"text":"The QL pack root directory."},"properties":{"tags":["CodeQL/LocalPackRoot"]}},{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/src/qlpack.yml","description":{"text":"The QL pack definition file."},"properties":{"tags":["CodeQL/LocalPackDefinitionFile"]}}]},{"name":"advanced-security/javascript-sap-xsjs-queries","semanticVersion":"2.0.0+1fd5019710edfaa8ef197f2a93bc1a63203b1561","rules":[{"id":"js/xsjs-sql-injection","name":"js/xsjs-sql-injection","shortDescription":{"text":"XSJS SQL injection"},"fullDescription":{"text":"Directly concatenating an uncontrolled value with an SQL query allows for an SQL injection vulnerability."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# SQL Injection\n\nParameterizing an SQL statement in an unsafe way by directly concatenating the parameter to the statement body may allow arbitrary SQL code fragments to be included to the statement, resulting in possibly destructive behavior.\n\n## Recommendation\n\n### Use XSJS APIs that prepares SQL statements\n\nThere are two versions of API to communicate with SAP HANA, and both APIs provide means of preparing SQL statements that not only facilitates code reuse but also protects the parameterize statement from SQL injections.\n\nThese functions take as first argument an SQL string with placeholders represented as a question mark surrounded with parentheses (`(?)`), and the rest of the arguments consist of JavaScript expressions whose values are filled into the position of the respective placeholders.\n\n#### Using the older API (`$.db`)\n\nIf you are using the older API that belongs to `$.db`, consider replacing string concatentation with `$.db.executeQuery`. For example, the following XSJS application substitutes the value of `someParameterValue1` and `someParameterValue2` into the position of the first and second placeholder positions, respectively.\n\n``` javascript\nlet query = \"INSERT INTO (?) (COL1) VALUES (?)\";\n\nlet dbConnection = $.db.getConnection();\ndbConnection.executeQuery(query, someParameterValue1, someParameterValue2);\n```\n\n#### Using the newer API (`$.hdb`)\n\nIf you are using the newer API that belongs to `$.hdb`, consider replacing string concatentation with `$.hdb.Connection.prepareStatement` followed by `$.db.PreparedStatement.executeUpdate`. For example, the following XSJS application substitues the value of `someParameterValue1` and `someParameterValue2` into the position of the first and second placeholder positions, respectively. After preparation, the application executes the prepared statement and then commits it to the SAP HANA database.\n\n``` javascript\nlet query = \"INSERT INTO (?) (COL1) VALUES (?)\";\nlet dbConnection = $.db.getConnection();\nlet preparedStatement = dbConnection.prepareStatement(query, someParameterValue1, someParameterValue2);\npreparedStatement.executeUpdate();\ndbConnection.commit();\n```\n\n## Example\n\nEach of the following XSJS applications directly concatenates the values of two request paremeters with fragments of an SQL query and executes it.\n\n#### Using the older API (`$.db`)\n\n``` javascript\nlet someParameterValue1 = JSON.parse(requestParameters.get(\"someParameter1\"));\nlet someParameterValue2 = JSON.parse(requestParameters.get(\"someParameter2\"));\nlet query = \"INSERT INTO \" + someParameterValue1 + \".ENTITY (COL1) VALUES (\" + someParameterValue2 + \")\";\n\nlet dbConnection = $.db.getConnection();\nlet preparedStatement = dbConnection.prepareStatement(query);\npreparedStatement.executeUpdate();\ndbConnection.commit();\n```\n\n#### Using the newer API (`$.hdb`)\n\n``` javascript\nlet someParameterValue1 = JSON.parse(requestParameters.get(\"someParameter1\"));\nlet someParameterValue2 = JSON.parse(requestParameters.get(\"someParameter2\"));\nlet query = \"INSERT INTO \" + someParameterValue1 + \" (COL1) VALUES (\" + someParameterValue2 + \")\";\n\nlet dbConnection = $.db.getConnection();\ndbConnection.executeQuery(query);\ndbConnection.commit();\n```\n\n## References\n\n* SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/b5e65421b48c48fa87312a6023f4c414.html).\n* SAP: [Server-Side JavaScript: Injection Flaws\n](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/3e9a0491d2af4b908081fbbee12bc8ba.html).\n* OWASP: [SQL Injection](https://owasp.org/www-community/attacks/SQL_Injection).\n* Common Weakness Enumeration: [CWE-89](https://cwe.mitre.org/data/definitions/89.html).\n* Common Weakness Enumeration: [CWE-943](https://cwe.mitre.org/data/definitions/943.html).\n","markdown":"# SQL Injection\n\nParameterizing an SQL statement in an unsafe way by directly concatenating the parameter to the statement body may allow arbitrary SQL code fragments to be included to the statement, resulting in possibly destructive behavior.\n\n## Recommendation\n\n### Use XSJS APIs that prepares SQL statements\n\nThere are two versions of API to communicate with SAP HANA, and both APIs provide means of preparing SQL statements that not only facilitates code reuse but also protects the parameterize statement from SQL injections.\n\nThese functions take as first argument an SQL string with placeholders represented as a question mark surrounded with parentheses (`(?)`), and the rest of the arguments consist of JavaScript expressions whose values are filled into the position of the respective placeholders.\n\n#### Using the older API (`$.db`)\n\nIf you are using the older API that belongs to `$.db`, consider replacing string concatentation with `$.db.executeQuery`. For example, the following XSJS application substitutes the value of `someParameterValue1` and `someParameterValue2` into the position of the first and second placeholder positions, respectively.\n\n``` javascript\nlet query = \"INSERT INTO (?) (COL1) VALUES (?)\";\n\nlet dbConnection = $.db.getConnection();\ndbConnection.executeQuery(query, someParameterValue1, someParameterValue2);\n```\n\n#### Using the newer API (`$.hdb`)\n\nIf you are using the newer API that belongs to `$.hdb`, consider replacing string concatentation with `$.hdb.Connection.prepareStatement` followed by `$.db.PreparedStatement.executeUpdate`. For example, the following XSJS application substitues the value of `someParameterValue1` and `someParameterValue2` into the position of the first and second placeholder positions, respectively. After preparation, the application executes the prepared statement and then commits it to the SAP HANA database.\n\n``` javascript\nlet query = \"INSERT INTO (?) (COL1) VALUES (?)\";\nlet dbConnection = $.db.getConnection();\nlet preparedStatement = dbConnection.prepareStatement(query, someParameterValue1, someParameterValue2);\npreparedStatement.executeUpdate();\ndbConnection.commit();\n```\n\n## Example\n\nEach of the following XSJS applications directly concatenates the values of two request paremeters with fragments of an SQL query and executes it.\n\n#### Using the older API (`$.db`)\n\n``` javascript\nlet someParameterValue1 = JSON.parse(requestParameters.get(\"someParameter1\"));\nlet someParameterValue2 = JSON.parse(requestParameters.get(\"someParameter2\"));\nlet query = \"INSERT INTO \" + someParameterValue1 + \".ENTITY (COL1) VALUES (\" + someParameterValue2 + \")\";\n\nlet dbConnection = $.db.getConnection();\nlet preparedStatement = dbConnection.prepareStatement(query);\npreparedStatement.executeUpdate();\ndbConnection.commit();\n```\n\n#### Using the newer API (`$.hdb`)\n\n``` javascript\nlet someParameterValue1 = JSON.parse(requestParameters.get(\"someParameter1\"));\nlet someParameterValue2 = JSON.parse(requestParameters.get(\"someParameter2\"));\nlet query = \"INSERT INTO \" + someParameterValue1 + \" (COL1) VALUES (\" + someParameterValue2 + \")\";\n\nlet dbConnection = $.db.getConnection();\ndbConnection.executeQuery(query);\ndbConnection.commit();\n```\n\n## References\n\n* SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/b5e65421b48c48fa87312a6023f4c414.html).\n* SAP: [Server-Side JavaScript: Injection Flaws\n](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/3e9a0491d2af4b908081fbbee12bc8ba.html).\n* OWASP: [SQL Injection](https://owasp.org/www-community/attacks/SQL_Injection).\n* Common Weakness Enumeration: [CWE-89](https://cwe.mitre.org/data/definitions/89.html).\n* Common Weakness Enumeration: [CWE-943](https://cwe.mitre.org/data/definitions/943.html).\n"},"properties":{"tags":["security"],"description":"Directly concatenating an uncontrolled value with an SQL query allows\n for an SQL injection vulnerability.","id":"js/xsjs-sql-injection","kind":"path-problem","name":"XSJS SQL injection","precision":"medium","problem.severity":"error","security-severity":"8.8"}},{"id":"js/xsjs-disabled-csrf-protection","name":"js/xsjs-disabled-csrf-protection","shortDescription":{"text":"Disabled XSJS CSRF protection"},"fullDescription":{"text":"Disabling CSRF protection makes the application vulnerable to a Cross-Site Request Forgery (CSRF) attack."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# CSRF protection disabled in HANA XS application\n\nThis XS application is not protected against CSRF (cross-site request forgery) because it either disables the protection or fails to enable the protection explicitly.\n\n## Overview\n\nA web server that receives a request from a client without verifying that it was intentionally sent might be vulnerable to Cross Site Request Forgery (CSRF). An attacker can trick a client into making an unintended request to the web server that will be treated as an authentic request. This can be done via a URL, image load, `XMLHttpRequest`, etc. and can result in exposure of data or unintended code execution.\n\n## Recommendation\n\nSAP’s recommendation is to use CSRF protection for any request that could be processed by a browser client by normal users.\n- If `XS Advanced` is used, CSRF protection is configured with the `\"csrfProtection\"` property of `xs-app.json`. It is **enabled by default and should not be disabled.**\n- If `XS Classic` is used, CSRF protection is configured with the `\"prevent_xsrf\"` property of `.xsaccess`. It is **disabled by default and should be enabled explicitly.**\n\n## Example\n\nThe following `xs-app.json` fragment disables CSRF protection of the application it configures.\n\n```json\n\"routes\": [\n {\n \"source\": \"/bad/(.*)\",\n \"destination\": \"srv_api\",\n \"csrfProtection\": false,\n ...\n },\n ...\n]\n```\n\n## References\n\n- SAP: [XS Advanced Application Router Configuration Syntax](https://help.sap.com/docs/SAP_HANA_PLATFORM/b3d0daf2a98e49ada00bf31b7ca7a42e/a9fc5c220d744180850996e2f5d34d6c.html?version=2.0.03#loioa9fc5c220d744180850996e2f5d34d6c__section_N101F7_N10016_N10001), relavant to XS Classic applications.\n- SAP: [Application-Access File Keyword Options, prevent_xsrf](https://help.sap.com/docs/SAP_HANA_PLATFORM/4505d0bdaf4948449b7f7379d24d0f0d/5f77e58ec01b46f6b64ee1e2afe3ead7.html#authenticationmethod), relevant to XS Advanced applications.\n- SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/e8a6bc904c0c48a182288604f467e84a.html).\n- Common Weakness Enumeration: [CWE-352](https://cwe.mitre.org/data/definitions/352.html).\n- OWASP: [Cross-Site Request Forgery (CSRF)](https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)).\n","markdown":"# CSRF protection disabled in HANA XS application\n\nThis XS application is not protected against CSRF (cross-site request forgery) because it either disables the protection or fails to enable the protection explicitly.\n\n## Overview\n\nA web server that receives a request from a client without verifying that it was intentionally sent might be vulnerable to Cross Site Request Forgery (CSRF). An attacker can trick a client into making an unintended request to the web server that will be treated as an authentic request. This can be done via a URL, image load, `XMLHttpRequest`, etc. and can result in exposure of data or unintended code execution.\n\n## Recommendation\n\nSAP’s recommendation is to use CSRF protection for any request that could be processed by a browser client by normal users.\n- If `XS Advanced` is used, CSRF protection is configured with the `\"csrfProtection\"` property of `xs-app.json`. It is **enabled by default and should not be disabled.**\n- If `XS Classic` is used, CSRF protection is configured with the `\"prevent_xsrf\"` property of `.xsaccess`. It is **disabled by default and should be enabled explicitly.**\n\n## Example\n\nThe following `xs-app.json` fragment disables CSRF protection of the application it configures.\n\n```json\n\"routes\": [\n {\n \"source\": \"/bad/(.*)\",\n \"destination\": \"srv_api\",\n \"csrfProtection\": false,\n ...\n },\n ...\n]\n```\n\n## References\n\n- SAP: [XS Advanced Application Router Configuration Syntax](https://help.sap.com/docs/SAP_HANA_PLATFORM/b3d0daf2a98e49ada00bf31b7ca7a42e/a9fc5c220d744180850996e2f5d34d6c.html?version=2.0.03#loioa9fc5c220d744180850996e2f5d34d6c__section_N101F7_N10016_N10001), relavant to XS Classic applications.\n- SAP: [Application-Access File Keyword Options, prevent_xsrf](https://help.sap.com/docs/SAP_HANA_PLATFORM/4505d0bdaf4948449b7f7379d24d0f0d/5f77e58ec01b46f6b64ee1e2afe3ead7.html#authenticationmethod), relevant to XS Advanced applications.\n- SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/e8a6bc904c0c48a182288604f467e84a.html).\n- Common Weakness Enumeration: [CWE-352](https://cwe.mitre.org/data/definitions/352.html).\n- OWASP: [Cross-Site Request Forgery (CSRF)](https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)).\n"},"properties":{"tags":["security","external/cwe/cwe-352"],"description":"Disabling CSRF protection makes the application vulnerable to a Cross-Site Request Forgery (CSRF) attack.","id":"js/xsjs-disabled-csrf-protection","kind":"problem","name":"Disabled XSJS CSRF protection","precision":"high","problem.severity":"error","security-severity":"8.8"}},{"id":"js/xsjs-reflected-xss","name":"js/xsjs-reflected-xss","shortDescription":{"text":"XSJS Reflected XSS"},"fullDescription":{"text":"Including uncontrolled value into a response body and setting it to a scriptable MIME type allows for cross-site scripting vulnerability."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Reflected Cross-site Scripting\n\nIncluding a text, received from a client browser typically through an XSJS request parameter, to be rendered as HTML in a request body may execute arbitrary JavaScript code on the client.\n\n## Recommendation\n\nThe XSJS application should always validate or sanitize the submitted string from a client before including it into a response body to be rendered in a client browser.\n\n### Validate the input string\n\nValidate the submitted input by looking for a sensitive HTML tag such as ``. The pattern may be encoded to a regular expression and matched against the input; If there is a match, then the XSJS application may decide to abort the process and instead return an HTTP code stating that the application rejected the request (e.g. `$.net.FORBIDDEN`). XSJS does not provide a function to reliably perform the above, therefore using a third-party library is recommended.\n\n### Sanitize the input string\n\n#### Server-side sanitization\n\nThe XSJS application may instead allow any user input, but sanitize it before it integrates it into the response body. This is achieved by escaping special characters that are treated as part of the HTML syntax, such as `\"`, `&`, `'`, `<`, and `>`. Since XSJS does not provide a function to escape these, using a third-party library is recommended.\n\n#### Client-side sanitization\n\nAlternatively, if SAP UI5 is used on the frontend, there are client-side escaping mechanisms such as `sap.base.security.encodeXML` and `sap.base.security.encodeHTML`. If `sap.ui.core.HTML` is used in the frontend view, consider setting its `sanitizeContent` property explicitly to `true`, since its default value is `false`.\n\n## Example\n\nThe following XSJS application sets the response body directly to a string received from a user without any validation or sanitization. The header's content type is set as an HTML document, which allows for any embedded JavaScript to be run in the request body. Note that even if `clientData` was not enclosed in a `div`, the vulnerability would still exist.\n\n``` javascript\nlet clientData = requestParameters.get(\"someParameter\");\n$.response.contentType = \"text/html\";\n$.response.setBody(\"
\" + clientData + \"
\");\n$.response.status = $.net.http.OK;\n```\n\n## References\n\n* SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/b5e65421b48c48fa87312a6023f4c414.html).\n* SAP: [Server-Side JavaScript: Cross-Site Scripting\n](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/0e1c9fff826a4583be715386578fffc7.html).\n* OWASP: [Types of Cross-site Scripting](https://owasp.org/www-community/Types_of_Cross-Site_Scripting).\n* OWASP: [Cross Site Scripting Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n\n","markdown":"# Reflected Cross-site Scripting\n\nIncluding a text, received from a client browser typically through an XSJS request parameter, to be rendered as HTML in a request body may execute arbitrary JavaScript code on the client.\n\n## Recommendation\n\nThe XSJS application should always validate or sanitize the submitted string from a client before including it into a response body to be rendered in a client browser.\n\n### Validate the input string\n\nValidate the submitted input by looking for a sensitive HTML tag such as ``. The pattern may be encoded to a regular expression and matched against the input; If there is a match, then the XSJS application may decide to abort the process and instead return an HTTP code stating that the application rejected the request (e.g. `$.net.FORBIDDEN`). XSJS does not provide a function to reliably perform the above, therefore using a third-party library is recommended.\n\n### Sanitize the input string\n\n#### Server-side sanitization\n\nThe XSJS application may instead allow any user input, but sanitize it before it integrates it into the response body. This is achieved by escaping special characters that are treated as part of the HTML syntax, such as `\"`, `&`, `'`, `<`, and `>`. Since XSJS does not provide a function to escape these, using a third-party library is recommended.\n\n#### Client-side sanitization\n\nAlternatively, if SAP UI5 is used on the frontend, there are client-side escaping mechanisms such as `sap.base.security.encodeXML` and `sap.base.security.encodeHTML`. If `sap.ui.core.HTML` is used in the frontend view, consider setting its `sanitizeContent` property explicitly to `true`, since its default value is `false`.\n\n## Example\n\nThe following XSJS application sets the response body directly to a string received from a user without any validation or sanitization. The header's content type is set as an HTML document, which allows for any embedded JavaScript to be run in the request body. Note that even if `clientData` was not enclosed in a `div`, the vulnerability would still exist.\n\n``` javascript\nlet clientData = requestParameters.get(\"someParameter\");\n$.response.contentType = \"text/html\";\n$.response.setBody(\"
\" + clientData + \"
\");\n$.response.status = $.net.http.OK;\n```\n\n## References\n\n* SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/b5e65421b48c48fa87312a6023f4c414.html).\n* SAP: [Server-Side JavaScript: Cross-Site Scripting\n](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/0e1c9fff826a4583be715386578fffc7.html).\n* OWASP: [Types of Cross-site Scripting](https://owasp.org/www-community/Types_of_Cross-Site_Scripting).\n* OWASP: [Cross Site Scripting Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n\n"},"properties":{"tags":["security"],"description":"Including uncontrolled value into a response body and setting it to\n a scriptable MIME type allows for cross-site scripting vulnerability.","id":"js/xsjs-reflected-xss","kind":"path-problem","name":"XSJS Reflected XSS","precision":"medium","problem.severity":"error","security-severity":"7.8"}},{"id":"js/xsjs-url-redirect","name":"js/xsjs-url-redirect","shortDescription":{"text":"XSJS URL Redirect"},"fullDescription":{"text":"Setting the `location` response header to an uncontrolled value allows for redirection to an arbitrary URL."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# URL Redirect\n\nAn HTTP response sent by an XSJS server whose value of the `location` header is dependent on a user input can redirect the client to an arbitrary location on the web by a malicious actor. For example, the redirected URL may point to a carefully imitated webpage of a genuine one, thus may lure a victim to submit its sign-in credentials.\n\n## Recommendation\n\nAvoid setting the entirety of URL or the domain part of it, which is obtained in any way from an external user, to the `location` header value, to keep redirection within the organization's domain. The URL to redirect the user to may be safely restricted by following one or more of the below strategies.\n\n### Redirect to a URL from an internal allow-list\n\nSelect the URL from a predefined allow-list that is kept internal. It may be shared across organizations, but should be kept confidential to any external actors.\n\n### Hardcode the domain part of the URL\n\nIf the URL to redirect the user to needs to be dependent upon a remote value, consider parameterizing only the request parameter portion and hardcode the rest of it, including the domain part. This way the redirection is kept within the organization.\n\n### Use a server-side template engine\n\nThere can be a single URL to which all redirection of the same type can happen where the redirected page can be customized to the customer with the help from a template engine. The details of the page can be filled from the server-side, not the client side through a request parameter. This way the URL does not need to be parameterized in any way while also filling the need for a customized redirect page.\n\n## Example\n\nThe following XSJS application sets the entire value of the location of its response to some URL retrieved from a request parameter.\n\n``` javascript\nlet someParameterValue = requestParameters.get(\"someParameter\");\n$.response.status = $.net.http.OK;\n$.response.headers.set(\"location\", someParameterValue);\n```\n\n## References\n\n* SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/b5e65421b48c48fa87312a6023f4c414.html).\n* SAP: [Server-Side JavaScript: Invalid Redirection](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/8c5ec75c27f543cb8b4c65c337b285ae.html).\n* Mozilla: [Location](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Location).\n* OWASP: [XSS Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n* Common Weakness Enumeration: [CWE-601](https://cwe.mitre.org/data/definitions/601.html).\n* SAP XSJS Documentation: [$.web.WebRequest](https://help.sap.com/doc/3de842783af24336b6305a3c0223a369/2.0.03/en-US/$.web.WebRequest.html).\n* SAP XSJS Documentation: [$.web.WebResponse](https://help.sap.com/doc/3de842783af24336b6305a3c0223a369/2.0.03/en-US/$.web.WebResponse.html).\n","markdown":"# URL Redirect\n\nAn HTTP response sent by an XSJS server whose value of the `location` header is dependent on a user input can redirect the client to an arbitrary location on the web by a malicious actor. For example, the redirected URL may point to a carefully imitated webpage of a genuine one, thus may lure a victim to submit its sign-in credentials.\n\n## Recommendation\n\nAvoid setting the entirety of URL or the domain part of it, which is obtained in any way from an external user, to the `location` header value, to keep redirection within the organization's domain. The URL to redirect the user to may be safely restricted by following one or more of the below strategies.\n\n### Redirect to a URL from an internal allow-list\n\nSelect the URL from a predefined allow-list that is kept internal. It may be shared across organizations, but should be kept confidential to any external actors.\n\n### Hardcode the domain part of the URL\n\nIf the URL to redirect the user to needs to be dependent upon a remote value, consider parameterizing only the request parameter portion and hardcode the rest of it, including the domain part. This way the redirection is kept within the organization.\n\n### Use a server-side template engine\n\nThere can be a single URL to which all redirection of the same type can happen where the redirected page can be customized to the customer with the help from a template engine. The details of the page can be filled from the server-side, not the client side through a request parameter. This way the URL does not need to be parameterized in any way while also filling the need for a customized redirect page.\n\n## Example\n\nThe following XSJS application sets the entire value of the location of its response to some URL retrieved from a request parameter.\n\n``` javascript\nlet someParameterValue = requestParameters.get(\"someParameter\");\n$.response.status = $.net.http.OK;\n$.response.headers.set(\"location\", someParameterValue);\n```\n\n## References\n\n* SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/b5e65421b48c48fa87312a6023f4c414.html).\n* SAP: [Server-Side JavaScript: Invalid Redirection](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/8c5ec75c27f543cb8b4c65c337b285ae.html).\n* Mozilla: [Location](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Location).\n* OWASP: [XSS Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n* Common Weakness Enumeration: [CWE-116](https://cwe.mitre.org/data/definitions/116.html).\n* Common Weakness Enumeration: [CWE-601](https://cwe.mitre.org/data/definitions/601.html).\n* SAP XSJS Documentation: [$.web.WebRequest](https://help.sap.com/doc/3de842783af24336b6305a3c0223a369/2.0.03/en-US/$.web.WebRequest.html).\n* SAP XSJS Documentation: [$.web.WebResponse](https://help.sap.com/doc/3de842783af24336b6305a3c0223a369/2.0.03/en-US/$.web.WebResponse.html).\n"},"properties":{"tags":["security"],"description":"Setting the `location` response header to an uncontrolled value\n allows for redirection to an arbitrary URL.","id":"js/xsjs-url-redirect","kind":"path-problem","name":"XSJS URL Redirect","precision":"medium","problem.severity":"error","security-severity":"6.1"}},{"id":"js/xsjs-zip-slip","name":"js/xsjs-zip-slip","shortDescription":{"text":"XSJS Zip Slip"},"fullDescription":{"text":"Saving an entry of a zip archive into a file with its stated path allows for a path traversal and writing to an arbitrary location."},"defaultConfiguration":{"enabled":true,"level":"error"},"help":{"text":"# Zip Slip\n\nA zip archive received from a remote location may contain arbitrary paths which, when translated to an absolute path, may escape the directory where it is extracted. Such paths may include one or more `../` to traverse the directory tree upwards to write to an arbitrary location, such as the root directory (`/`) or a sensitive path like `/usr/local/`. A sophisticated attack may also attempt to overwrite an existing file by making the filename identical as that of the target file.\n\n## Recommendation\n\nValidate the path of each zip entry before writing them to a file. Several different tactics may be used to prevent the path traversal by one or more of `../` occuring in a zip entry's path.\n\n### Check if the path string contains `../`\n\nA naive but effective way to validate the path of a zip entry is to check if its path, converted to string, contains any occurrences of `../`. If a path does have one, then it can be suspected that the creator of the zip archive is attempting a path traversal attack.\n\n### Resolve the path and check if the target directory is its prefix \n\nA more sophisticated way is to use a JavaScript library function that can be used to check if a substring is a prefix of a string. For example, the following XSJS application uses `String.indexOf(substring)` to check if the name of the directory is indeed the directory resolved by `path.join(prefix, suffix)`. If the absolute path obtained by the `join` function does not start with the target folder's name, the `entryPath` contains bits such as `../` that traverses the path.\n\n``` javascript\nvar zipArchive = new $.util.Zip(requestBody.asArrayBuffer());\nvar targetFolderName = \"unzipped\";\n\nfor (var entryPath in zipArchive) {\n var targetFilePath = require(\"path\").join(targetFolderName, entryPath)\n if (targetFilePath.indexOf(targetFolderName) === 0) {\n require(\"fs\").createWriteStream(targetFilePath).write(zip[entryPath]);\n }\n}\n```\n\n### Example\n\nThis XSJS application simply appends the path of each entry to a target directory name and a separator then saves it to a file with the concatenated path, thereby skipping any validation on it.\n\n``` javascript\nvar zipArchive = new $.util.Zip(requestBody.asArrayBuffer());\nvar targetFolderName = \"unzipped\";\n\nfor (var entryPath in zipArchive) {\n var targetFilePath = targetFolderName + \"/\" + entryPath;\n require(\"fs\").createWriteStream(targetFilePath).write(zip[entryPath]);\n}\n```\n\n## References\n\n* SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/b5e65421b48c48fa87312a6023f4c414.html).\n* OWASP: [Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* SAP XSJS Documentation: [$.util.Zip](https://help.sap.com/doc/3de842783af24336b6305a3c0223a369/2.0.03/en-US/$.util.Zip.html).\n* Common Weakness Enumeration: [CWE-23](https://cwe.mitre.org/data/definitions/23.html).\n* Common Weakness Enumeration: [CWE-59](https://cwe.mitre.org/data/definitions/59.html).\n","markdown":"# Zip Slip\n\nA zip archive received from a remote location may contain arbitrary paths which, when translated to an absolute path, may escape the directory where it is extracted. Such paths may include one or more `../` to traverse the directory tree upwards to write to an arbitrary location, such as the root directory (`/`) or a sensitive path like `/usr/local/`. A sophisticated attack may also attempt to overwrite an existing file by making the filename identical as that of the target file.\n\n## Recommendation\n\nValidate the path of each zip entry before writing them to a file. Several different tactics may be used to prevent the path traversal by one or more of `../` occuring in a zip entry's path.\n\n### Check if the path string contains `../`\n\nA naive but effective way to validate the path of a zip entry is to check if its path, converted to string, contains any occurrences of `../`. If a path does have one, then it can be suspected that the creator of the zip archive is attempting a path traversal attack.\n\n### Resolve the path and check if the target directory is its prefix \n\nA more sophisticated way is to use a JavaScript library function that can be used to check if a substring is a prefix of a string. For example, the following XSJS application uses `String.indexOf(substring)` to check if the name of the directory is indeed the directory resolved by `path.join(prefix, suffix)`. If the absolute path obtained by the `join` function does not start with the target folder's name, the `entryPath` contains bits such as `../` that traverses the path.\n\n``` javascript\nvar zipArchive = new $.util.Zip(requestBody.asArrayBuffer());\nvar targetFolderName = \"unzipped\";\n\nfor (var entryPath in zipArchive) {\n var targetFilePath = require(\"path\").join(targetFolderName, entryPath)\n if (targetFilePath.indexOf(targetFolderName) === 0) {\n require(\"fs\").createWriteStream(targetFilePath).write(zip[entryPath]);\n }\n}\n```\n\n### Example\n\nThis XSJS application simply appends the path of each entry to a target directory name and a separator then saves it to a file with the concatenated path, thereby skipping any validation on it.\n\n``` javascript\nvar zipArchive = new $.util.Zip(requestBody.asArrayBuffer());\nvar targetFolderName = \"unzipped\";\n\nfor (var entryPath in zipArchive) {\n var targetFilePath = targetFolderName + \"/\" + entryPath;\n require(\"fs\").createWriteStream(targetFilePath).write(zip[entryPath]);\n}\n```\n\n## References\n\n* SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/b5e65421b48c48fa87312a6023f4c414.html).\n* OWASP: [Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* SAP XSJS Documentation: [$.util.Zip](https://help.sap.com/doc/3de842783af24336b6305a3c0223a369/2.0.03/en-US/$.util.Zip.html).\n* Common Weakness Enumeration: [CWE-23](https://cwe.mitre.org/data/definitions/23.html).\n* Common Weakness Enumeration: [CWE-59](https://cwe.mitre.org/data/definitions/59.html).\n"},"properties":{"tags":["security"],"description":"Saving an entry of a zip archive into a file with its stated path\n allows for a path traversal and writing to an arbitrary location.","id":"js/xsjs-zip-slip","kind":"path-problem","name":"XSJS Zip Slip","precision":"medium","problem.severity":"error","security-severity":"7.5"}},{"id":"js/xsjs-broken-authentication","name":"js/xsjs-broken-authentication","shortDescription":{"text":"Broken XSJS authentication"},"fullDescription":{"text":"Disabling XSJS authentication makes the application vulnerable to unauthorized access."},"defaultConfiguration":{"enabled":true,"level":"warning"},"help":{"text":"# Authentication not enforced in HANA XS application\n\nThis HANA XS application does not enforce authentication on the requests it handles.\n\n## Overview\n\nSAP HANA XS applications are called via HTTP requests to process a connected HANA database, and this makes it critical to authenticate the sender of the request. Failing to do so allows attackers to impersonate users and gain access to underlying systems and data.\n\n## Recommendation\n\nUse the built-in SAP HANA XS authentication mechanism and session management (cookies).\n- If `XS Advanced` is used, authentication **is enabled by default**, and the `authenticationMethod` property indicates which authentication will be applied. However, avoid setting the property to something else than `none`, as doing so turns off all authentication on all routes.\n- If `XS Classic` is used, authentication is **not enabled by default**, so the `authentication` property in the application's `.xsaccess` file should be set to enable authentication. Set the value of the property according to the method you want to implement (`LogonTicket`, `Form`, or `Basic`).\n\n## Example\n\nThe fragment from an `xs-app.json` file shows the application in question having its authentication explicitly disabled.\n\n```json\n{\n \"welcomeFile\": \"index.html\",\n \"authenticationMethod\": \"none\",\n ...\n}\n```\n\n## References\n\n- SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/2040c1b7e478448cb9904c55ac06cac8.html).\n- SAP: [XS Advanced Application Router Configuration](https://help.sap.com/docs/SAP_HANA_PLATFORM/4505d0bdaf4948449b7f7379d24d0f0d/5f77e58ec01b46f6b64ee1e2afe3ead7.html#authenticationmethod), relevant to XS Advanced applications.\n- SAP: [Application-Access File Keyword Options: Authentication](https://help.sap.com/docs/SAP_HANA_PLATFORM/b3d0daf2a98e49ada00bf31b7ca7a42e/a9fc5c220d744180850996e2f5d34d6c.html?version=2.0.03&locale=en-US#authentication), relevant to XS Classic applications.\n- Common Weakness Enumeration: [CWE-306](https://cwe.mitre.org/data/definitions/306.html).\n","markdown":"# Authentication not enforced in HANA XS application\n\nThis HANA XS application does not enforce authentication on the requests it handles.\n\n## Overview\n\nSAP HANA XS applications are called via HTTP requests to process a connected HANA database, and this makes it critical to authenticate the sender of the request. Failing to do so allows attackers to impersonate users and gain access to underlying systems and data.\n\n## Recommendation\n\nUse the built-in SAP HANA XS authentication mechanism and session management (cookies).\n- If `XS Advanced` is used, authentication **is enabled by default**, and the `authenticationMethod` property indicates which authentication will be applied. However, avoid setting the property to something else than `none`, as doing so turns off all authentication on all routes.\n- If `XS Classic` is used, authentication is **not enabled by default**, so the `authentication` property in the application's `.xsaccess` file should be set to enable authentication. Set the value of the property according to the method you want to implement (`LogonTicket`, `Form`, or `Basic`).\n\n## Example\n\nThe fragment from an `xs-app.json` file shows the application in question having its authentication explicitly disabled.\n\n```json\n{\n \"welcomeFile\": \"index.html\",\n \"authenticationMethod\": \"none\",\n ...\n}\n```\n\n## References\n\n- SAP: [Server-Side JavaScript Security Considerations](https://help.sap.com/docs/SAP_HANA_PLATFORM/d89d4595fae647eabc14002c0340a999/2040c1b7e478448cb9904c55ac06cac8.html).\n- SAP: [XS Advanced Application Router Configuration](https://help.sap.com/docs/SAP_HANA_PLATFORM/4505d0bdaf4948449b7f7379d24d0f0d/5f77e58ec01b46f6b64ee1e2afe3ead7.html#authenticationmethod), relevant to XS Advanced applications.\n- SAP: [Application-Access File Keyword Options: Authentication](https://help.sap.com/docs/SAP_HANA_PLATFORM/b3d0daf2a98e49ada00bf31b7ca7a42e/a9fc5c220d744180850996e2f5d34d6c.html?version=2.0.03&locale=en-US#authentication), relevant to XS Classic applications.\n- Common Weakness Enumeration: [CWE-306](https://cwe.mitre.org/data/definitions/306.html).\n"},"properties":{"tags":["security","external/cwe/cwe-306"],"description":"Disabling XSJS authentication makes the application vulnerable to unauthorized access.","id":"js/xsjs-broken-authentication","kind":"problem","name":"Broken XSJS authentication","precision":"medium","problem.severity":"warning","security-severity":"7.5"}}],"locations":[{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/xsjs/src/","description":{"text":"The QL pack root directory."},"properties":{"tags":["CodeQL/LocalPackRoot"]}},{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/xsjs/src/qlpack.yml","description":{"text":"The QL pack definition file."},"properties":{"tags":["CodeQL/LocalPackDefinitionFile"]}}]},{"name":"advanced-security/javascript-sap-xsjs-models","semanticVersion":"2.0.0","locations":[{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/.github/codeql/extensions/javascript/frameworks/xsjs/ext/ext/","description":{"text":"The QL pack root directory."},"properties":{"tags":["CodeQL/LocalPackRoot"]}},{"uri":"file:///home/runner/work/codeql-sap-js/codeql-sap-js/.github/codeql/extensions/javascript/frameworks/xsjs/ext/ext/qlpack.yml","description":{"text":"The QL pack definition file."},"properties":{"tags":["CodeQL/LocalPackDefinitionFile"]}}],"properties":{"isCodeQLModelPack":true}}]},"invocations":[{"toolExecutionNotifications":[{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".cds-extractor-cache/cds-5821ca4a7405c17bc03fe9c833aa52212563b6d17f24eb61f8af574bf1095ef1/node_modules/@sap/cds-dk/node_modules/encoding/node_modules/iconv-lite/.idea/inspectionProfiles/Project_Default.xml","uriBaseId":"%SRCROOT%","index":4}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".cds-extractor-cache/cds-5821ca4a7405c17bc03fe9c833aa52212563b6d17f24eb61f8af574bf1095ef1/node_modules/@sap/cds-dk/node_modules/encoding/node_modules/iconv-lite/.idea/codeStyles/Project.xml","uriBaseId":"%SRCROOT%","index":5}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".cds-extractor-cache/cds-5821ca4a7405c17bc03fe9c833aa52212563b6d17f24eb61f8af574bf1095ef1/node_modules/@sap/cds-dk/node_modules/encoding/node_modules/iconv-lite/.idea/modules.xml","uriBaseId":"%SRCROOT%","index":6}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".cds-extractor-cache/cds-5821ca4a7405c17bc03fe9c833aa52212563b6d17f24eb61f8af574bf1095ef1/node_modules/@sap/cds-dk/node_modules/encoding/node_modules/iconv-lite/.idea/codeStyles/codeStyleConfig.xml","uriBaseId":"%SRCROOT%","index":7}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".cds-extractor-cache/cds-5821ca4a7405c17bc03fe9c833aa52212563b6d17f24eb61f8af574bf1095ef1/node_modules/@sap/cds-dk/node_modules/encoding/node_modules/iconv-lite/.idea/vcs.xml","uriBaseId":"%SRCROOT%","index":8}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".cds-extractor-cache/cds-5821ca4a7405c17bc03fe9c833aa52212563b6d17f24eb61f8af574bf1095ef1/node_modules/@sap/cds-dk/node_modules/xml-js/bin/test.xml","uriBaseId":"%SRCROOT%","index":9}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".cds-extractor-cache/cds-d20d7f35d8d2b1de2767beb1055abf4331038f25229257ce6f632c13aced065c/node_modules/@sap/cds-dk/node_modules/xml-js/bin/test.xml","uriBaseId":"%SRCROOT%","index":10}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/codeql-config.yaml","uriBaseId":"%SRCROOT%","index":11}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/frameworks/ui5/ext/ext/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":12}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/frameworks/xsjs/ext/ext/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":13}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/frameworks/ui5/ext/ext/qlpack.yml","uriBaseId":"%SRCROOT%","index":14}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/frameworks/ui5/ext/ext/ui5.model.yml","uriBaseId":"%SRCROOT%","index":15}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/frameworks/xsjs/ext/ext/qlpack.yml","uriBaseId":"%SRCROOT%","index":16}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/heuristic-models/ext/ext/additional-sources.model.yml","uriBaseId":"%SRCROOT%","index":17}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/frameworks/xsjs/ext/ext/xsjs.model.yml","uriBaseId":"%SRCROOT%","index":18}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/heuristic-models/ext/ext/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":19}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/codeql/extensions/javascript/heuristic-models/ext/ext/qlpack.yml","uriBaseId":"%SRCROOT%","index":20}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/workflows/cds-extractor-dist-bundle.yml","uriBaseId":"%SRCROOT%","index":21}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/workflows/code_scanning.yml","uriBaseId":"%SRCROOT%","index":22}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/workflows/run-codeql-unit-tests-javascript.yml","uriBaseId":"%SRCROOT%","index":23}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/workflows/update-codeql.yml","uriBaseId":"%SRCROOT%","index":24}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"codeql-workspace.yml","uriBaseId":"%SRCROOT%","index":25}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/codeql-extractor.yml","uriBaseId":"%SRCROOT%","index":26}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/cds-extractor.ts","uriBaseId":"%SRCROOT%","index":27}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/.prettierrc.js","uriBaseId":"%SRCROOT%","index":28}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/dist/cds-extractor.bundle.js","uriBaseId":"%SRCROOT%","index":29}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/esbuild.config.mjs","uriBaseId":"%SRCROOT%","index":30}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/eslint.config.mjs","uriBaseId":"%SRCROOT%","index":31}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/jest.config.js","uriBaseId":"%SRCROOT%","index":32}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/package-lock.json","uriBaseId":"%SRCROOT%","index":33}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/package.json","uriBaseId":"%SRCROOT%","index":34}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/command.ts","uriBaseId":"%SRCROOT%","index":35}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/compile.ts","uriBaseId":"%SRCROOT%","index":36}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/graph.ts","uriBaseId":"%SRCROOT%","index":37}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/index.ts","uriBaseId":"%SRCROOT%","index":38}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/project.ts","uriBaseId":"%SRCROOT%","index":39}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/retry.ts","uriBaseId":"%SRCROOT%","index":40}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/types.ts","uriBaseId":"%SRCROOT%","index":41}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/validator.ts","uriBaseId":"%SRCROOT%","index":42}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/version.ts","uriBaseId":"%SRCROOT%","index":43}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/parser/functions.ts","uriBaseId":"%SRCROOT%","index":44}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/parser/graph.ts","uriBaseId":"%SRCROOT%","index":45}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/parser/index.ts","uriBaseId":"%SRCROOT%","index":46}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/parser/types.ts","uriBaseId":"%SRCROOT%","index":47}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/codeql.ts","uriBaseId":"%SRCROOT%","index":48}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/constants.ts","uriBaseId":"%SRCROOT%","index":49}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/diagnostics.ts","uriBaseId":"%SRCROOT%","index":50}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/environment.ts","uriBaseId":"%SRCROOT%","index":51}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/filesystem.ts","uriBaseId":"%SRCROOT%","index":52}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/logging/cdsExtractorLog.ts","uriBaseId":"%SRCROOT%","index":53}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/logging/index.ts","uriBaseId":"%SRCROOT%","index":54}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/logging/statusReport.ts","uriBaseId":"%SRCROOT%","index":55}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/logging/types.ts","uriBaseId":"%SRCROOT%","index":56}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/packageManager/cacheInstaller.ts","uriBaseId":"%SRCROOT%","index":57}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/packageManager/index.ts","uriBaseId":"%SRCROOT%","index":58}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/packageManager/projectInstaller.ts","uriBaseId":"%SRCROOT%","index":59}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/packageManager/types.ts","uriBaseId":"%SRCROOT%","index":60}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/utils.ts","uriBaseId":"%SRCROOT%","index":61}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/packageManager/versionResolver.ts","uriBaseId":"%SRCROOT%","index":62}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/cds-extractor.test.ts","uriBaseId":"%SRCROOT%","index":63}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/jest.setup.ts","uriBaseId":"%SRCROOT%","index":64}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/compiler/compile.test.ts","uriBaseId":"%SRCROOT%","index":65}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/compiler/command.test.ts","uriBaseId":"%SRCROOT%","index":66}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/compiler/graph.test.ts","uriBaseId":"%SRCROOT%","index":67}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/compiler/index.test.ts","uriBaseId":"%SRCROOT%","index":68}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/compiler/project.test.ts","uriBaseId":"%SRCROOT%","index":69}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/compiler/retry.test.ts","uriBaseId":"%SRCROOT%","index":70}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/compiler/validator.test.ts","uriBaseId":"%SRCROOT%","index":71}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/compiler/version.test.ts","uriBaseId":"%SRCROOT%","index":72}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/parser/build-graph.test.ts","uriBaseId":"%SRCROOT%","index":73}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/parser/files-to-compile.test.ts","uriBaseId":"%SRCROOT%","index":74}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/parser/monorepo-support.test.ts","uriBaseId":"%SRCROOT%","index":75}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/parser/project-aware-compilation.test.ts","uriBaseId":"%SRCROOT%","index":76}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/parser/self-parser.test.ts","uriBaseId":"%SRCROOT%","index":77}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/parser/subdirectory-detection.test.ts","uriBaseId":"%SRCROOT%","index":78}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/codeql.test.ts","uriBaseId":"%SRCROOT%","index":79}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/diagnostics.test.ts","uriBaseId":"%SRCROOT%","index":80}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/environment.test.ts","uriBaseId":"%SRCROOT%","index":81}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/filesystem.test.ts","uriBaseId":"%SRCROOT%","index":82}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/logging/cdsExtractorLog.test.ts","uriBaseId":"%SRCROOT%","index":83}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/logging/performanceTrackingIntegration.test.ts","uriBaseId":"%SRCROOT%","index":84}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/logging/statusReport.test.ts","uriBaseId":"%SRCROOT%","index":85}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/logging/types.test.ts","uriBaseId":"%SRCROOT%","index":86}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/packageManager/cacheInstaller.test.ts","uriBaseId":"%SRCROOT%","index":87}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/packageManager/index.test.ts","uriBaseId":"%SRCROOT%","index":88}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/packageManager/projectInstaller.test.ts","uriBaseId":"%SRCROOT%","index":89}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/packageManager/types.test.ts","uriBaseId":"%SRCROOT%","index":90}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/packageManager/versionResolver.test.ts","uriBaseId":"%SRCROOT%","index":91}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/utils.test.ts","uriBaseId":"%SRCROOT%","index":92}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/tsconfig.json","uriBaseId":"%SRCROOT%","index":93}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/validate-bundle.js","uriBaseId":"%SRCROOT%","index":94}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/ext/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":95}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/ext/qlpack.yml","uriBaseId":"%SRCROOT%","index":96}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/lib/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":97}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/src/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":98}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/lib/qlpack.yml","uriBaseId":"%SRCROOT%","index":99}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/src/qlpack.yml","uriBaseId":"%SRCROOT%","index":100}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":101}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/qlpack.yml","uriBaseId":"%SRCROOT%","index":102}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":103}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/package.json","uriBaseId":"%SRCROOT%","index":104}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/model.cds.json","uriBaseId":"%SRCROOT%","index":105}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/server.js","uriBaseId":"%SRCROOT%","index":106}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":107}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":108}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":109}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":110}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.cds","uriBaseId":"%SRCROOT%","index":111}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.js","uriBaseId":"%SRCROOT%","index":112}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":113}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/package.json","uriBaseId":"%SRCROOT%","index":114}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/model.cds.json","uriBaseId":"%SRCROOT%","index":115}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/server.js","uriBaseId":"%SRCROOT%","index":116}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":117}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":118}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":119}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":120}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/db/schema.cds","uriBaseId":"%SRCROOT%","index":121}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/model.cds.json","uriBaseId":"%SRCROOT%","index":122}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/package.json","uriBaseId":"%SRCROOT%","index":123}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/server.js","uriBaseId":"%SRCROOT%","index":124}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.cds","uriBaseId":"%SRCROOT%","index":125}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.js","uriBaseId":"%SRCROOT%","index":126}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.cds","uriBaseId":"%SRCROOT%","index":127}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.js","uriBaseId":"%SRCROOT%","index":128}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":129}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/package.json","uriBaseId":"%SRCROOT%","index":130}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/model.cds.json","uriBaseId":"%SRCROOT%","index":131}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/server.js","uriBaseId":"%SRCROOT%","index":132}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":133}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":134}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":135}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":136}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/db/schema.cds","uriBaseId":"%SRCROOT%","index":137}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/model.cds.json","uriBaseId":"%SRCROOT%","index":138}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/package.json","uriBaseId":"%SRCROOT%","index":139}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/server.js","uriBaseId":"%SRCROOT%","index":140}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.cds","uriBaseId":"%SRCROOT%","index":141}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.js","uriBaseId":"%SRCROOT%","index":142}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.cds","uriBaseId":"%SRCROOT%","index":143}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.js","uriBaseId":"%SRCROOT%","index":144}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/db/schema.cds","uriBaseId":"%SRCROOT%","index":145}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/model.cds.json","uriBaseId":"%SRCROOT%","index":146}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/package-lock.json","uriBaseId":"%SRCROOT%","index":147}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/package.json","uriBaseId":"%SRCROOT%","index":148}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/server.js","uriBaseId":"%SRCROOT%","index":149}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/privileged-user.js","uriBaseId":"%SRCROOT%","index":150}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.js","uriBaseId":"%SRCROOT%","index":151}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds","uriBaseId":"%SRCROOT%","index":152}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.cds","uriBaseId":"%SRCROOT%","index":153}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.js","uriBaseId":"%SRCROOT%","index":154}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":155}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/package.json","uriBaseId":"%SRCROOT%","index":156}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/server.js","uriBaseId":"%SRCROOT%","index":157}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":158}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/model.cds.json","uriBaseId":"%SRCROOT%","index":159}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":160}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":161}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":162}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":163}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/package.json","uriBaseId":"%SRCROOT%","index":164}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/model.cds.json","uriBaseId":"%SRCROOT%","index":165}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":166}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":167}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/server.js","uriBaseId":"%SRCROOT%","index":168}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":169}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":170}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":171}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/model.cds.json","uriBaseId":"%SRCROOT%","index":172}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/package.json","uriBaseId":"%SRCROOT%","index":173}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/server.js","uriBaseId":"%SRCROOT%","index":174}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":175}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":176}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":177}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":178}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/db/schema.cds","uriBaseId":"%SRCROOT%","index":179}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/package.json","uriBaseId":"%SRCROOT%","index":180}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/server.js","uriBaseId":"%SRCROOT%","index":181}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.cds","uriBaseId":"%SRCROOT%","index":182}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.cds","uriBaseId":"%SRCROOT%","index":183}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.js","uriBaseId":"%SRCROOT%","index":184}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/db/schema.cds","uriBaseId":"%SRCROOT%","index":185}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/model.cds.json","uriBaseId":"%SRCROOT%","index":186}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/model.cds.json","uriBaseId":"%SRCROOT%","index":187}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/package.json","uriBaseId":"%SRCROOT%","index":188}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/server.js","uriBaseId":"%SRCROOT%","index":189}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.cds","uriBaseId":"%SRCROOT%","index":190}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.js","uriBaseId":"%SRCROOT%","index":191}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.cds","uriBaseId":"%SRCROOT%","index":192}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.js","uriBaseId":"%SRCROOT%","index":193}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/db/schema.cds","uriBaseId":"%SRCROOT%","index":194}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/model.cds.json","uriBaseId":"%SRCROOT%","index":195}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/package.json","uriBaseId":"%SRCROOT%","index":196}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/server.js","uriBaseId":"%SRCROOT%","index":197}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.js","uriBaseId":"%SRCROOT%","index":198}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds","uriBaseId":"%SRCROOT%","index":199}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":200}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/model.cds.json","uriBaseId":"%SRCROOT%","index":201}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":202}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":203}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":204}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":205}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":206}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":207}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":208}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/model.cds.json","uriBaseId":"%SRCROOT%","index":209}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":210}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":211}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":212}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":213}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":214}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":215}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":216}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/model.cds.json","uriBaseId":"%SRCROOT%","index":217}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":218}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":219}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":220}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":221}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":222}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":223}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":224}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/model.cds.json","uriBaseId":"%SRCROOT%","index":225}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":226}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":227}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":228}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":229}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":230}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":231}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/model.cds.json","uriBaseId":"%SRCROOT%","index":233}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure-js-all-sinks/sensitive-exposure-heuristic-source.js","uriBaseId":"%SRCROOT%","index":234}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.cds","uriBaseId":"%SRCROOT%","index":235}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.js","uriBaseId":"%SRCROOT%","index":236}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/lib/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":237}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/lib/qlpack.yml","uriBaseId":"%SRCROOT%","index":238}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/src/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":239}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/src/qlpack.yml","uriBaseId":"%SRCROOT%","index":240}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":241}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.js","uriBaseId":"%SRCROOT%","index":242}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/BindingStringParser/test.js","uriBaseId":"%SRCROOT%","index":243}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.view.html","uriBaseId":"%SRCROOT%","index":244}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.view.json","uriBaseId":"%SRCROOT%","index":245}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.view.xml","uriBaseId":"%SRCROOT%","index":246}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/JsonParser/test.js","uriBaseId":"%SRCROOT%","index":247}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/models/attachDisplay_detachDisplay/webapp/view/App.view.xml","uriBaseId":"%SRCROOT%","index":248}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/models/binding_path/bindingComposite.xml","uriBaseId":"%SRCROOT%","index":249}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/models/binding_path/binding1.xml","uriBaseId":"%SRCROOT%","index":250}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/models/multiple_models/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":251}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/models/property_getter_setter/webapp/view/App.view.xml","uriBaseId":"%SRCROOT%","index":252}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/models/sink/sink1.xml","uriBaseId":"%SRCROOT%","index":253}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/models/source/source1.xml","uriBaseId":"%SRCROOT%","index":254}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/qlpack.yml","uriBaseId":"%SRCROOT%","index":255}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-allow-all/index.html","uriBaseId":"%SRCROOT%","index":256}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-allow-all/ui5.yaml","uriBaseId":"%SRCROOT%","index":257}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-default-all/index.html","uriBaseId":"%SRCROOT%","index":258}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-default-all/ui5.yaml","uriBaseId":"%SRCROOT%","index":259}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-deny-all/index.html","uriBaseId":"%SRCROOT%","index":260}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-deny-all/ui5.yaml","uriBaseId":"%SRCROOT%","index":261}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":262}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/package.json","uriBaseId":"%SRCROOT%","index":263}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":264}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":265}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":266}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":267}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":268}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":269}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":270}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":271}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":272}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/package.json","uriBaseId":"%SRCROOT%","index":273}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":274}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":275}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":276}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":277}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":278}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":279}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/package-lock.json","uriBaseId":"%SRCROOT%","index":280}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/package.json","uriBaseId":"%SRCROOT%","index":281}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/ui5.yaml","uriBaseId":"%SRCROOT%","index":282}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":283}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/index.html","uriBaseId":"%SRCROOT%","index":284}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":285}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":286}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":287}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":288}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/package.json","uriBaseId":"%SRCROOT%","index":289}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":290}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":291}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":292}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":293}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":294}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":295}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":296}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":297}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/package.json","uriBaseId":"%SRCROOT%","index":298}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":299}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":300}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":301}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":302}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":303}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":304}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":305}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/package-lock.json","uriBaseId":"%SRCROOT%","index":306}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/ui5.yaml","uriBaseId":"%SRCROOT%","index":307}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":308}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/package.json","uriBaseId":"%SRCROOT%","index":309}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/index.js","uriBaseId":"%SRCROOT%","index":310}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/index.html","uriBaseId":"%SRCROOT%","index":311}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":312}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":313}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":314}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/package-lock.json","uriBaseId":"%SRCROOT%","index":315}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/package.json","uriBaseId":"%SRCROOT%","index":316}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/ui5.yaml","uriBaseId":"%SRCROOT%","index":317}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":318}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/index.html","uriBaseId":"%SRCROOT%","index":319}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/index.js","uriBaseId":"%SRCROOT%","index":320}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":321}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":322}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/package-lock.json","uriBaseId":"%SRCROOT%","index":323}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/package.json","uriBaseId":"%SRCROOT%","index":324}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/ui5.yaml","uriBaseId":"%SRCROOT%","index":325}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":326}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/index.html","uriBaseId":"%SRCROOT%","index":327}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/index.js","uriBaseId":"%SRCROOT%","index":328}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":329}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":330}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":331}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/package-lock.json","uriBaseId":"%SRCROOT%","index":332}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/ui5.yaml","uriBaseId":"%SRCROOT%","index":333}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/package.json","uriBaseId":"%SRCROOT%","index":334}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/index.html","uriBaseId":"%SRCROOT%","index":335}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":336}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/index.js","uriBaseId":"%SRCROOT%","index":337}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":338}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":339}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":340}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/package-lock.json","uriBaseId":"%SRCROOT%","index":341}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/package.json","uriBaseId":"%SRCROOT%","index":342}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/ui5.yaml","uriBaseId":"%SRCROOT%","index":343}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":344}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/index.html","uriBaseId":"%SRCROOT%","index":345}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/index.js","uriBaseId":"%SRCROOT%","index":346}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":347}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":348}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/package-lock.json","uriBaseId":"%SRCROOT%","index":349}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/package.json","uriBaseId":"%SRCROOT%","index":350}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/ui5.yaml","uriBaseId":"%SRCROOT%","index":351}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/index.html","uriBaseId":"%SRCROOT%","index":353}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/index.js","uriBaseId":"%SRCROOT%","index":354}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":355}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":356}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":357}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/package-lock.json","uriBaseId":"%SRCROOT%","index":358}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/package.json","uriBaseId":"%SRCROOT%","index":359}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":360}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/ui5.yaml","uriBaseId":"%SRCROOT%","index":361}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":362}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/index.html","uriBaseId":"%SRCROOT%","index":363}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":364}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":365}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":366}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":367}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/package.json","uriBaseId":"%SRCROOT%","index":368}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":369}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":370}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":371}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":372}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":373}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":374}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":375}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/package.json","uriBaseId":"%SRCROOT%","index":376}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":377}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":378}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":379}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":380}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":381}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":382}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":383}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":384}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/package-lock.json","uriBaseId":"%SRCROOT%","index":385}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/package.json","uriBaseId":"%SRCROOT%","index":386}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/ui5.yaml","uriBaseId":"%SRCROOT%","index":387}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":388}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/index.html","uriBaseId":"%SRCROOT%","index":389}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":390}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":391}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":392}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/.eslintrc.json","uriBaseId":"%SRCROOT%","index":393}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/package-lock.json","uriBaseId":"%SRCROOT%","index":394}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/package.json","uriBaseId":"%SRCROOT%","index":395}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/ui5.yaml","uriBaseId":"%SRCROOT%","index":396}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/Component.js","uriBaseId":"%SRCROOT%","index":397}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controller/App.Controller.js","uriBaseId":"%SRCROOT%","index":398}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controls/Book.js","uriBaseId":"%SRCROOT%","index":399}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/index.html","uriBaseId":"%SRCROOT%","index":400}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":401}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/model/todoitems.json","uriBaseId":"%SRCROOT%","index":402}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/AllJourneys.js","uriBaseId":"%SRCROOT%","index":403}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/FilterJourney.js","uriBaseId":"%SRCROOT%","index":404}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/SearchJourney.js","uriBaseId":"%SRCROOT%","index":405}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/TodoListJourney.js","uriBaseId":"%SRCROOT%","index":406}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/opaTests.qunit.html","uriBaseId":"%SRCROOT%","index":407}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/arrangements/Startup.js","uriBaseId":"%SRCROOT%","index":408}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/opaTests.qunit.js","uriBaseId":"%SRCROOT%","index":409}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/pages/App.js","uriBaseId":"%SRCROOT%","index":410}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/testsuite.qunit.html","uriBaseId":"%SRCROOT%","index":411}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/testsuite.qunit.js","uriBaseId":"%SRCROOT%","index":412}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/AllTests.js","uriBaseId":"%SRCROOT%","index":413}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/controller/App.controller.js","uriBaseId":"%SRCROOT%","index":414}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/unitTests.qunit.html","uriBaseId":"%SRCROOT%","index":415}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/unitTests.qunit.js","uriBaseId":"%SRCROOT%","index":416}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/util/Helper.js","uriBaseId":"%SRCROOT%","index":417}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/view/App.view.xml","uriBaseId":"%SRCROOT%","index":418}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/package-lock.json","uriBaseId":"%SRCROOT%","index":419}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/package.json","uriBaseId":"%SRCROOT%","index":420}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/ui5.yaml","uriBaseId":"%SRCROOT%","index":421}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":422}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":423}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/index.html","uriBaseId":"%SRCROOT%","index":424}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/index.js","uriBaseId":"%SRCROOT%","index":425}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":426}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":427}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/package-lock.json","uriBaseId":"%SRCROOT%","index":428}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/package.json","uriBaseId":"%SRCROOT%","index":429}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/ui5.yaml","uriBaseId":"%SRCROOT%","index":430}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":431}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":432}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/index.js","uriBaseId":"%SRCROOT%","index":433}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/index.html","uriBaseId":"%SRCROOT%","index":434}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":435}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":436}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/package-lock.json","uriBaseId":"%SRCROOT%","index":437}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/package.json","uriBaseId":"%SRCROOT%","index":438}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/ui5.yaml","uriBaseId":"%SRCROOT%","index":439}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":440}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":441}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/index.html","uriBaseId":"%SRCROOT%","index":442}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/index.js","uriBaseId":"%SRCROOT%","index":443}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":444}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":445}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/package.json","uriBaseId":"%SRCROOT%","index":446}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":447}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":448}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":449}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":450}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":451}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":452}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":453}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":454}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/package.json","uriBaseId":"%SRCROOT%","index":455}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":456}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":457}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":458}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":459}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":460}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":461}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":462}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":463}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/package-lock.json","uriBaseId":"%SRCROOT%","index":464}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/ui5.yaml","uriBaseId":"%SRCROOT%","index":465}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/package.json","uriBaseId":"%SRCROOT%","index":466}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/index.html","uriBaseId":"%SRCROOT%","index":468}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/index.js","uriBaseId":"%SRCROOT%","index":469}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":470}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":471}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/package-lock.json","uriBaseId":"%SRCROOT%","index":472}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/package.json","uriBaseId":"%SRCROOT%","index":473}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/ui5.yaml","uriBaseId":"%SRCROOT%","index":474}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":475}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/index.html","uriBaseId":"%SRCROOT%","index":476}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":477}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":478}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/package-lock.json","uriBaseId":"%SRCROOT%","index":479}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/package.json","uriBaseId":"%SRCROOT%","index":480}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/ui5.yaml","uriBaseId":"%SRCROOT%","index":481}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":482}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/index.html","uriBaseId":"%SRCROOT%","index":484}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":485}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":486}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":487}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/package-lock.json","uriBaseId":"%SRCROOT%","index":488}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/ui5.yaml","uriBaseId":"%SRCROOT%","index":489}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/package.json","uriBaseId":"%SRCROOT%","index":490}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":491}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/index.html","uriBaseId":"%SRCROOT%","index":492}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/index.js","uriBaseId":"%SRCROOT%","index":493}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":494}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":495}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/package-lock.json","uriBaseId":"%SRCROOT%","index":496}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/package.json","uriBaseId":"%SRCROOT%","index":497}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":498}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/ui5.yaml","uriBaseId":"%SRCROOT%","index":499}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/controller/model.json","uriBaseId":"%SRCROOT%","index":500}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/index.html","uriBaseId":"%SRCROOT%","index":501}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/index.js","uriBaseId":"%SRCROOT%","index":502}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":503}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":504}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/package.json","uriBaseId":"%SRCROOT%","index":505}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/package-lock.json","uriBaseId":"%SRCROOT%","index":506}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/ui5.yaml","uriBaseId":"%SRCROOT%","index":507}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":508}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/index.html","uriBaseId":"%SRCROOT%","index":509}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":510}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":511}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/view/app.view.html","uriBaseId":"%SRCROOT%","index":512}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/package-lock.json","uriBaseId":"%SRCROOT%","index":513}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/package.json","uriBaseId":"%SRCROOT%","index":514}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/ui5.yaml","uriBaseId":"%SRCROOT%","index":515}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":516}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssBase.js","uriBaseId":"%SRCROOT%","index":517}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":518}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":519}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/index.html","uriBaseId":"%SRCROOT%","index":520}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":521}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":522}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":523}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/package-lock.json","uriBaseId":"%SRCROOT%","index":524}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/package.json","uriBaseId":"%SRCROOT%","index":525}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/ui5.yaml","uriBaseId":"%SRCROOT%","index":526}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":527}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/index.html","uriBaseId":"%SRCROOT%","index":528}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":529}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":530}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/view/app.view.js","uriBaseId":"%SRCROOT%","index":531}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/package-lock.json","uriBaseId":"%SRCROOT%","index":532}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/package.json","uriBaseId":"%SRCROOT%","index":533}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/ui5.yaml","uriBaseId":"%SRCROOT%","index":534}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":535}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/index.html","uriBaseId":"%SRCROOT%","index":536}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":537}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":538}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/view/app.view.json","uriBaseId":"%SRCROOT%","index":539}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/package-lock.json","uriBaseId":"%SRCROOT%","index":540}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/package.json","uriBaseId":"%SRCROOT%","index":541}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/ui5.yaml","uriBaseId":"%SRCROOT%","index":542}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/renderer.js","uriBaseId":"%SRCROOT%","index":543}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":544}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":545}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/index.html","uriBaseId":"%SRCROOT%","index":546}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/index.js","uriBaseId":"%SRCROOT%","index":547}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":548}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/package-lock.json","uriBaseId":"%SRCROOT%","index":549}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":550}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/ui5.yaml","uriBaseId":"%SRCROOT%","index":551}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":552}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":553}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/package.json","uriBaseId":"%SRCROOT%","index":554}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":555}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/index.html","uriBaseId":"%SRCROOT%","index":556}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/index.js","uriBaseId":"%SRCROOT%","index":557}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":558}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":559}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/package-lock.json","uriBaseId":"%SRCROOT%","index":560}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/package.json","uriBaseId":"%SRCROOT%","index":561}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":562}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/ui5.yaml","uriBaseId":"%SRCROOT%","index":563}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/index.html","uriBaseId":"%SRCROOT%","index":564}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":565}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":566}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":567}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/lib/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":568}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/lib/qlpack.yml","uriBaseId":"%SRCROOT%","index":569}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/src/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":570}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/src/qlpack.yml","uriBaseId":"%SRCROOT%","index":571}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":572}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/qlpack.yml","uriBaseId":"%SRCROOT%","index":573}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/.xsaccess","uriBaseId":"%SRCROOT%","index":574}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/missing_auth/.xsaccess","uriBaseId":"%SRCROOT%","index":575}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/exposed/.xsaccess","uriBaseId":"%SRCROOT%","index":576}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/service.xsjs","uriBaseId":"%SRCROOT%","index":577}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/xs-app.json","uriBaseId":"%SRCROOT%","index":578}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":579}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSUrlRedirect/XSJSUrlRedirect.xsjs","uriBaseId":"%SRCROOT%","index":581}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":582}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/heuristic-models/tests/Sources/test.js","uriBaseId":"%SRCROOT%","index":3}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/heuristic-models/tests/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":583}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/heuristic-models/tests/qlpack.yml","uriBaseId":"%SRCROOT%","index":584}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"qlt.conf.json","uriBaseId":"%SRCROOT%","index":585}}}],"message":{"text":""},"level":"none","descriptor":{"id":"js/diagnostics/successfully-extracted-files","index":0,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":103},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":107},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":109},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.cds","uriBaseId":"%SRCROOT%","index":111},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":113},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":117},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":119},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/db/schema.cds","uriBaseId":"%SRCROOT%","index":121},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.cds","uriBaseId":"%SRCROOT%","index":125},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.cds","uriBaseId":"%SRCROOT%","index":127},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":129},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":133},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":135},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/db/schema.cds","uriBaseId":"%SRCROOT%","index":137},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.cds","uriBaseId":"%SRCROOT%","index":141},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.cds","uriBaseId":"%SRCROOT%","index":143},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/db/schema.cds","uriBaseId":"%SRCROOT%","index":145},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds","uriBaseId":"%SRCROOT%","index":152},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.cds","uriBaseId":"%SRCROOT%","index":153},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":155},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":158},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":162},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":163},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":166},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":169},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":171},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":175},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":177},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/db/schema.cds","uriBaseId":"%SRCROOT%","index":179},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/cqlinjection/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/cqlinjection/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.cds","uriBaseId":"%SRCROOT%","index":182},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.cds","uriBaseId":"%SRCROOT%","index":183},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/db/schema.cds","uriBaseId":"%SRCROOT%","index":185},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.cds","uriBaseId":"%SRCROOT%","index":190},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.cds","uriBaseId":"%SRCROOT%","index":192},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/db/schema.cds","uriBaseId":"%SRCROOT%","index":194},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds","uriBaseId":"%SRCROOT%","index":199},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":200},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":203},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":207},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":208},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":212},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":214},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":216},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":220},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":223},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":224},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/db/schema.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/db/schema.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":229},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":230},"region":{"startLine":1,"endColumn":2}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.cds with error Error: Unexpected token"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.cds with error Error: Unexpected token"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.cds","uriBaseId":"%SRCROOT%","index":235},"region":{"startLine":1,"startColumn":2,"endColumn":3}}}],"message":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.cds with error Error: Expected u found a"},"level":"error","descriptor":{"id":"js/diagnostics/extraction-errors","index":1,"toolComponent":{"index":1}},"properties":{"formattedMessage":{"text":"Extraction failed in /home/runner/work/codeql-sap-js/codeql-sap-js/javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.cds with error Error: Expected u found a"}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/Component.js","uriBaseId":"%SRCROOT%","index":397}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":108}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.js","uriBaseId":"%SRCROOT%","index":236}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":274}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/server.js","uriBaseId":"%SRCROOT%","index":197}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":283}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/SearchJourney.js","uriBaseId":"%SRCROOT%","index":405}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/server.js","uriBaseId":"%SRCROOT%","index":149}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":228}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/server.js","uriBaseId":"%SRCROOT%","index":174}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/renderer.js","uriBaseId":"%SRCROOT%","index":543}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":357}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":422}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/FilterJourney.js","uriBaseId":"%SRCROOT%","index":404}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":356}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/esbuild.config.mjs","uriBaseId":"%SRCROOT%","index":30}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":441}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":213}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":178}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":432}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":457}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":382}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssBase.js","uriBaseId":"%SRCROOT%","index":517}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":330}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":160}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":529}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":291}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":527}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":562}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":378}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":379}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":535}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/arrangements/Startup.js","uriBaseId":"%SRCROOT%","index":408}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.js","uriBaseId":"%SRCROOT%","index":154}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/pages/App.js","uriBaseId":"%SRCROOT%","index":410}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":222}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/server.js","uriBaseId":"%SRCROOT%","index":189}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/eslint.config.mjs","uriBaseId":"%SRCROOT%","index":31}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":545}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":204}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":339}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":553}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":167}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/index.js","uriBaseId":"%SRCROOT%","index":557}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.js","uriBaseId":"%SRCROOT%","index":126}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":312}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":294}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/index.js","uriBaseId":"%SRCROOT%","index":433}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.js","uriBaseId":"%SRCROOT%","index":242}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":302}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":498}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":275}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/TodoListJourney.js","uriBaseId":"%SRCROOT%","index":406}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":227}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":308}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/index.js","uriBaseId":"%SRCROOT%","index":337}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":134}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":364}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":521}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.js","uriBaseId":"%SRCROOT%","index":142}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/JsonParser/test.js","uriBaseId":"%SRCROOT%","index":247}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":326}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":110}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":269}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":518}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/index.js","uriBaseId":"%SRCROOT%","index":354}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":475}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":219}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":215}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":491}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":519}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":516}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":299}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":161}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":552}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":477}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/server.js","uriBaseId":"%SRCROOT%","index":106}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.js","uriBaseId":"%SRCROOT%","index":193}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/server.js","uriBaseId":"%SRCROOT%","index":168}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":170}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/view/app.view.js","uriBaseId":"%SRCROOT%","index":531}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/server.js","uriBaseId":"%SRCROOT%","index":181}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/testsuite.qunit.js","uriBaseId":"%SRCROOT%","index":412}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":267}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":485}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.js","uriBaseId":"%SRCROOT%","index":144}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":510}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/index.js","uriBaseId":"%SRCROOT%","index":493}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/index.js","uriBaseId":"%SRCROOT%","index":310}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":221}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":292}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/heuristic-models/tests/Sources/test.js","uriBaseId":"%SRCROOT%","index":3}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/index.js","uriBaseId":"%SRCROOT%","index":502}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":537}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controller/App.Controller.js","uriBaseId":"%SRCROOT%","index":398}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":206}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":371}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":544}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":459}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":508}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":318}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure-js-all-sinks/sensitive-exposure-heuristic-source.js","uriBaseId":"%SRCROOT%","index":234}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/.prettierrc.js","uriBaseId":"%SRCROOT%","index":28}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":211}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/index.js","uriBaseId":"%SRCROOT%","index":328}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/validate-bundle.js","uriBaseId":"%SRCROOT%","index":94}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":231}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/index.js","uriBaseId":"%SRCROOT%","index":547}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.js","uriBaseId":"%SRCROOT%","index":198}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/server.js","uriBaseId":"%SRCROOT%","index":157}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":120}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/AllTests.js","uriBaseId":"%SRCROOT%","index":413}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":176}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":370}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":285}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/server.js","uriBaseId":"%SRCROOT%","index":116}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":388}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":450}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/jest.config.js","uriBaseId":"%SRCROOT%","index":32}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":336}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":136}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/index.js","uriBaseId":"%SRCROOT%","index":346}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":266}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/util/Helper.js","uriBaseId":"%SRCROOT%","index":417}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":118}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/privileged-user.js","uriBaseId":"%SRCROOT%","index":150}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/index.js","uriBaseId":"%SRCROOT%","index":443}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":344}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.js","uriBaseId":"%SRCROOT%","index":151}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.js","uriBaseId":"%SRCROOT%","index":112}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":452}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":277}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":448}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":362}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/server.js","uriBaseId":"%SRCROOT%","index":124}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":205}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/index.js","uriBaseId":"%SRCROOT%","index":425}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/index.js","uriBaseId":"%SRCROOT%","index":320}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":565}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":431}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/lib/BindingStringParser/test.js","uriBaseId":"%SRCROOT%","index":243}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":440}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/controller/App.controller.js","uriBaseId":"%SRCROOT%","index":414}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/unitTests.qunit.js","uriBaseId":"%SRCROOT%","index":416}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":461}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/index.js","uriBaseId":"%SRCROOT%","index":469}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.js","uriBaseId":"%SRCROOT%","index":191}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":390}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":555}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.js","uriBaseId":"%SRCROOT%","index":184}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":380}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":423}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/dist/cds-extractor.bundle.js","uriBaseId":"%SRCROOT%","index":29}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/server.js","uriBaseId":"%SRCROOT%","index":132}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/AllJourneys.js","uriBaseId":"%SRCROOT%","index":403}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/opaTests.qunit.js","uriBaseId":"%SRCROOT%","index":409}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.js","uriBaseId":"%SRCROOT%","index":128}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controls/Book.js","uriBaseId":"%SRCROOT%","index":399}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/server.js","uriBaseId":"%SRCROOT%","index":140}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":303}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/javascript","index":0},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/packageManager/projectInstaller.ts","uriBaseId":"%SRCROOT%","index":59}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/parser/files-to-compile.test.ts","uriBaseId":"%SRCROOT%","index":74}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/graph.ts","uriBaseId":"%SRCROOT%","index":37}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/packageManager/projectInstaller.test.ts","uriBaseId":"%SRCROOT%","index":89}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/compiler/compile.test.ts","uriBaseId":"%SRCROOT%","index":65}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/cds-extractor.test.ts","uriBaseId":"%SRCROOT%","index":63}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/parser/graph.ts","uriBaseId":"%SRCROOT%","index":45}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/project.ts","uriBaseId":"%SRCROOT%","index":39}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/cds-extractor.ts","uriBaseId":"%SRCROOT%","index":27}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/logging/index.ts","uriBaseId":"%SRCROOT%","index":54}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/command.ts","uriBaseId":"%SRCROOT%","index":35}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/diagnostics.ts","uriBaseId":"%SRCROOT%","index":50}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/logging/statusReport.ts","uriBaseId":"%SRCROOT%","index":55}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/compiler/index.test.ts","uriBaseId":"%SRCROOT%","index":68}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/validator.ts","uriBaseId":"%SRCROOT%","index":42}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/packageManager/cacheInstaller.test.ts","uriBaseId":"%SRCROOT%","index":87}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/logging/types.test.ts","uriBaseId":"%SRCROOT%","index":86}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/logging/types.ts","uriBaseId":"%SRCROOT%","index":56}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/logging/statusReport.test.ts","uriBaseId":"%SRCROOT%","index":85}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/packageManager/index.test.ts","uriBaseId":"%SRCROOT%","index":88}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/codeql.ts","uriBaseId":"%SRCROOT%","index":48}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/packageManager/index.ts","uriBaseId":"%SRCROOT%","index":58}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/logging/cdsExtractorLog.ts","uriBaseId":"%SRCROOT%","index":53}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/compiler/version.test.ts","uriBaseId":"%SRCROOT%","index":72}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/compiler/command.test.ts","uriBaseId":"%SRCROOT%","index":66}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/constants.ts","uriBaseId":"%SRCROOT%","index":49}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/logging/performanceTrackingIntegration.test.ts","uriBaseId":"%SRCROOT%","index":84}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/packageManager/types.ts","uriBaseId":"%SRCROOT%","index":60}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/compiler/validator.test.ts","uriBaseId":"%SRCROOT%","index":71}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/parser/monorepo-support.test.ts","uriBaseId":"%SRCROOT%","index":75}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/utils.ts","uriBaseId":"%SRCROOT%","index":61}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/parser/build-graph.test.ts","uriBaseId":"%SRCROOT%","index":73}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/compile.ts","uriBaseId":"%SRCROOT%","index":36}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/parser/types.ts","uriBaseId":"%SRCROOT%","index":47}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/parser/project-aware-compilation.test.ts","uriBaseId":"%SRCROOT%","index":76}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/parser/index.ts","uriBaseId":"%SRCROOT%","index":46}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/parser/subdirectory-detection.test.ts","uriBaseId":"%SRCROOT%","index":78}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/compiler/retry.test.ts","uriBaseId":"%SRCROOT%","index":70}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/logging/cdsExtractorLog.test.ts","uriBaseId":"%SRCROOT%","index":83}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/jest.setup.ts","uriBaseId":"%SRCROOT%","index":64}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/retry.ts","uriBaseId":"%SRCROOT%","index":40}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/diagnostics.test.ts","uriBaseId":"%SRCROOT%","index":80}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/utils.test.ts","uriBaseId":"%SRCROOT%","index":92}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/types.ts","uriBaseId":"%SRCROOT%","index":41}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/index.ts","uriBaseId":"%SRCROOT%","index":38}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/compiler/project.test.ts","uriBaseId":"%SRCROOT%","index":69}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/compiler/graph.test.ts","uriBaseId":"%SRCROOT%","index":67}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/cds/parser/self-parser.test.ts","uriBaseId":"%SRCROOT%","index":77}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/environment.test.ts","uriBaseId":"%SRCROOT%","index":81}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/packageManager/versionResolver.test.ts","uriBaseId":"%SRCROOT%","index":91}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/environment.ts","uriBaseId":"%SRCROOT%","index":51}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/compiler/version.ts","uriBaseId":"%SRCROOT%","index":43}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/packageManager/versionResolver.ts","uriBaseId":"%SRCROOT%","index":62}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/packageManager/types.test.ts","uriBaseId":"%SRCROOT%","index":90}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/packageManager/cacheInstaller.ts","uriBaseId":"%SRCROOT%","index":57}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/cds/parser/functions.ts","uriBaseId":"%SRCROOT%","index":44}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/src/filesystem.ts","uriBaseId":"%SRCROOT%","index":52}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/codeql.test.ts","uriBaseId":"%SRCROOT%","index":79}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"extractors/cds/tools/test/src/filesystem.test.ts","uriBaseId":"%SRCROOT%","index":82}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/typescript","index":1},"properties":{"formattedMessage":{"text":""}}},{"locations":[{"physicalLocation":{"artifactLocation":{"uri":"scripts/CreateTestsFromYaml.py","uriBaseId":"%SRCROOT%","index":586}}}],"message":{"text":""},"level":"none","descriptor":{"id":"cli/expected-extracted-files/python","index":2},"properties":{"formattedMessage":{"text":""}}},{"message":{"text":"On the Linux (amd64; 6.11.0-1018-azure) platform.","markdown":"On the Linux (amd64; 6.11.0-1018-azure) platform."},"level":"none","timeUtc":"2025-08-21T19:50:30.967947983Z","descriptor":{"id":"cli/platform","index":3},"properties":{"attributes":{"arch":"amd64","name":"Linux","version":"6.11.0-1018-azure"},"visibility":{"statusPage":false,"telemetry":true}}},{"message":{"text":""},"level":"none","timeUtc":"2025-08-21T19:50:18.873Z","descriptor":{"id":"codeql-action/zstd-availability","index":4},"properties":{"attributes":{"available":true,"foundZstdBinary":true,"version":{"type":"gnu","version":"1.35"}},"visibility":{"statusPage":false,"telemetry":true}}}],"executionSuccessful":true}],"artifacts":[{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2}},{"location":{"uri":"javascript/heuristic-models/tests/Sources/test.js","uriBaseId":"%SRCROOT%","index":3}},{"location":{"uri":".cds-extractor-cache/cds-5821ca4a7405c17bc03fe9c833aa52212563b6d17f24eb61f8af574bf1095ef1/node_modules/@sap/cds-dk/node_modules/encoding/node_modules/iconv-lite/.idea/inspectionProfiles/Project_Default.xml","uriBaseId":"%SRCROOT%","index":4}},{"location":{"uri":".cds-extractor-cache/cds-5821ca4a7405c17bc03fe9c833aa52212563b6d17f24eb61f8af574bf1095ef1/node_modules/@sap/cds-dk/node_modules/encoding/node_modules/iconv-lite/.idea/codeStyles/Project.xml","uriBaseId":"%SRCROOT%","index":5}},{"location":{"uri":".cds-extractor-cache/cds-5821ca4a7405c17bc03fe9c833aa52212563b6d17f24eb61f8af574bf1095ef1/node_modules/@sap/cds-dk/node_modules/encoding/node_modules/iconv-lite/.idea/modules.xml","uriBaseId":"%SRCROOT%","index":6}},{"location":{"uri":".cds-extractor-cache/cds-5821ca4a7405c17bc03fe9c833aa52212563b6d17f24eb61f8af574bf1095ef1/node_modules/@sap/cds-dk/node_modules/encoding/node_modules/iconv-lite/.idea/codeStyles/codeStyleConfig.xml","uriBaseId":"%SRCROOT%","index":7}},{"location":{"uri":".cds-extractor-cache/cds-5821ca4a7405c17bc03fe9c833aa52212563b6d17f24eb61f8af574bf1095ef1/node_modules/@sap/cds-dk/node_modules/encoding/node_modules/iconv-lite/.idea/vcs.xml","uriBaseId":"%SRCROOT%","index":8}},{"location":{"uri":".cds-extractor-cache/cds-5821ca4a7405c17bc03fe9c833aa52212563b6d17f24eb61f8af574bf1095ef1/node_modules/@sap/cds-dk/node_modules/xml-js/bin/test.xml","uriBaseId":"%SRCROOT%","index":9}},{"location":{"uri":".cds-extractor-cache/cds-d20d7f35d8d2b1de2767beb1055abf4331038f25229257ce6f632c13aced065c/node_modules/@sap/cds-dk/node_modules/xml-js/bin/test.xml","uriBaseId":"%SRCROOT%","index":10}},{"location":{"uri":".github/codeql/codeql-config.yaml","uriBaseId":"%SRCROOT%","index":11}},{"location":{"uri":".github/codeql/extensions/javascript/frameworks/ui5/ext/ext/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":12}},{"location":{"uri":".github/codeql/extensions/javascript/frameworks/xsjs/ext/ext/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":13}},{"location":{"uri":".github/codeql/extensions/javascript/frameworks/ui5/ext/ext/qlpack.yml","uriBaseId":"%SRCROOT%","index":14}},{"location":{"uri":".github/codeql/extensions/javascript/frameworks/ui5/ext/ext/ui5.model.yml","uriBaseId":"%SRCROOT%","index":15}},{"location":{"uri":".github/codeql/extensions/javascript/frameworks/xsjs/ext/ext/qlpack.yml","uriBaseId":"%SRCROOT%","index":16}},{"location":{"uri":".github/codeql/extensions/javascript/heuristic-models/ext/ext/additional-sources.model.yml","uriBaseId":"%SRCROOT%","index":17}},{"location":{"uri":".github/codeql/extensions/javascript/frameworks/xsjs/ext/ext/xsjs.model.yml","uriBaseId":"%SRCROOT%","index":18}},{"location":{"uri":".github/codeql/extensions/javascript/heuristic-models/ext/ext/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":19}},{"location":{"uri":".github/codeql/extensions/javascript/heuristic-models/ext/ext/qlpack.yml","uriBaseId":"%SRCROOT%","index":20}},{"location":{"uri":".github/workflows/cds-extractor-dist-bundle.yml","uriBaseId":"%SRCROOT%","index":21}},{"location":{"uri":".github/workflows/code_scanning.yml","uriBaseId":"%SRCROOT%","index":22}},{"location":{"uri":".github/workflows/run-codeql-unit-tests-javascript.yml","uriBaseId":"%SRCROOT%","index":23}},{"location":{"uri":".github/workflows/update-codeql.yml","uriBaseId":"%SRCROOT%","index":24}},{"location":{"uri":"codeql-workspace.yml","uriBaseId":"%SRCROOT%","index":25}},{"location":{"uri":"extractors/cds/codeql-extractor.yml","uriBaseId":"%SRCROOT%","index":26}},{"location":{"uri":"extractors/cds/tools/cds-extractor.ts","uriBaseId":"%SRCROOT%","index":27}},{"location":{"uri":"extractors/cds/tools/.prettierrc.js","uriBaseId":"%SRCROOT%","index":28}},{"location":{"uri":"extractors/cds/tools/dist/cds-extractor.bundle.js","uriBaseId":"%SRCROOT%","index":29}},{"location":{"uri":"extractors/cds/tools/esbuild.config.mjs","uriBaseId":"%SRCROOT%","index":30}},{"location":{"uri":"extractors/cds/tools/eslint.config.mjs","uriBaseId":"%SRCROOT%","index":31}},{"location":{"uri":"extractors/cds/tools/jest.config.js","uriBaseId":"%SRCROOT%","index":32}},{"location":{"uri":"extractors/cds/tools/package-lock.json","uriBaseId":"%SRCROOT%","index":33}},{"location":{"uri":"extractors/cds/tools/package.json","uriBaseId":"%SRCROOT%","index":34}},{"location":{"uri":"extractors/cds/tools/src/cds/compiler/command.ts","uriBaseId":"%SRCROOT%","index":35}},{"location":{"uri":"extractors/cds/tools/src/cds/compiler/compile.ts","uriBaseId":"%SRCROOT%","index":36}},{"location":{"uri":"extractors/cds/tools/src/cds/compiler/graph.ts","uriBaseId":"%SRCROOT%","index":37}},{"location":{"uri":"extractors/cds/tools/src/cds/compiler/index.ts","uriBaseId":"%SRCROOT%","index":38}},{"location":{"uri":"extractors/cds/tools/src/cds/compiler/project.ts","uriBaseId":"%SRCROOT%","index":39}},{"location":{"uri":"extractors/cds/tools/src/cds/compiler/retry.ts","uriBaseId":"%SRCROOT%","index":40}},{"location":{"uri":"extractors/cds/tools/src/cds/compiler/types.ts","uriBaseId":"%SRCROOT%","index":41}},{"location":{"uri":"extractors/cds/tools/src/cds/compiler/validator.ts","uriBaseId":"%SRCROOT%","index":42}},{"location":{"uri":"extractors/cds/tools/src/cds/compiler/version.ts","uriBaseId":"%SRCROOT%","index":43}},{"location":{"uri":"extractors/cds/tools/src/cds/parser/functions.ts","uriBaseId":"%SRCROOT%","index":44}},{"location":{"uri":"extractors/cds/tools/src/cds/parser/graph.ts","uriBaseId":"%SRCROOT%","index":45}},{"location":{"uri":"extractors/cds/tools/src/cds/parser/index.ts","uriBaseId":"%SRCROOT%","index":46}},{"location":{"uri":"extractors/cds/tools/src/cds/parser/types.ts","uriBaseId":"%SRCROOT%","index":47}},{"location":{"uri":"extractors/cds/tools/src/codeql.ts","uriBaseId":"%SRCROOT%","index":48}},{"location":{"uri":"extractors/cds/tools/src/constants.ts","uriBaseId":"%SRCROOT%","index":49}},{"location":{"uri":"extractors/cds/tools/src/diagnostics.ts","uriBaseId":"%SRCROOT%","index":50}},{"location":{"uri":"extractors/cds/tools/src/environment.ts","uriBaseId":"%SRCROOT%","index":51}},{"location":{"uri":"extractors/cds/tools/src/filesystem.ts","uriBaseId":"%SRCROOT%","index":52}},{"location":{"uri":"extractors/cds/tools/src/logging/cdsExtractorLog.ts","uriBaseId":"%SRCROOT%","index":53}},{"location":{"uri":"extractors/cds/tools/src/logging/index.ts","uriBaseId":"%SRCROOT%","index":54}},{"location":{"uri":"extractors/cds/tools/src/logging/statusReport.ts","uriBaseId":"%SRCROOT%","index":55}},{"location":{"uri":"extractors/cds/tools/src/logging/types.ts","uriBaseId":"%SRCROOT%","index":56}},{"location":{"uri":"extractors/cds/tools/src/packageManager/cacheInstaller.ts","uriBaseId":"%SRCROOT%","index":57}},{"location":{"uri":"extractors/cds/tools/src/packageManager/index.ts","uriBaseId":"%SRCROOT%","index":58}},{"location":{"uri":"extractors/cds/tools/src/packageManager/projectInstaller.ts","uriBaseId":"%SRCROOT%","index":59}},{"location":{"uri":"extractors/cds/tools/src/packageManager/types.ts","uriBaseId":"%SRCROOT%","index":60}},{"location":{"uri":"extractors/cds/tools/src/utils.ts","uriBaseId":"%SRCROOT%","index":61}},{"location":{"uri":"extractors/cds/tools/src/packageManager/versionResolver.ts","uriBaseId":"%SRCROOT%","index":62}},{"location":{"uri":"extractors/cds/tools/test/cds-extractor.test.ts","uriBaseId":"%SRCROOT%","index":63}},{"location":{"uri":"extractors/cds/tools/test/jest.setup.ts","uriBaseId":"%SRCROOT%","index":64}},{"location":{"uri":"extractors/cds/tools/test/src/cds/compiler/compile.test.ts","uriBaseId":"%SRCROOT%","index":65}},{"location":{"uri":"extractors/cds/tools/test/src/cds/compiler/command.test.ts","uriBaseId":"%SRCROOT%","index":66}},{"location":{"uri":"extractors/cds/tools/test/src/cds/compiler/graph.test.ts","uriBaseId":"%SRCROOT%","index":67}},{"location":{"uri":"extractors/cds/tools/test/src/cds/compiler/index.test.ts","uriBaseId":"%SRCROOT%","index":68}},{"location":{"uri":"extractors/cds/tools/test/src/cds/compiler/project.test.ts","uriBaseId":"%SRCROOT%","index":69}},{"location":{"uri":"extractors/cds/tools/test/src/cds/compiler/retry.test.ts","uriBaseId":"%SRCROOT%","index":70}},{"location":{"uri":"extractors/cds/tools/test/src/cds/compiler/validator.test.ts","uriBaseId":"%SRCROOT%","index":71}},{"location":{"uri":"extractors/cds/tools/test/src/cds/compiler/version.test.ts","uriBaseId":"%SRCROOT%","index":72}},{"location":{"uri":"extractors/cds/tools/test/src/cds/parser/build-graph.test.ts","uriBaseId":"%SRCROOT%","index":73}},{"location":{"uri":"extractors/cds/tools/test/src/cds/parser/files-to-compile.test.ts","uriBaseId":"%SRCROOT%","index":74}},{"location":{"uri":"extractors/cds/tools/test/src/cds/parser/monorepo-support.test.ts","uriBaseId":"%SRCROOT%","index":75}},{"location":{"uri":"extractors/cds/tools/test/src/cds/parser/project-aware-compilation.test.ts","uriBaseId":"%SRCROOT%","index":76}},{"location":{"uri":"extractors/cds/tools/test/src/cds/parser/self-parser.test.ts","uriBaseId":"%SRCROOT%","index":77}},{"location":{"uri":"extractors/cds/tools/test/src/cds/parser/subdirectory-detection.test.ts","uriBaseId":"%SRCROOT%","index":78}},{"location":{"uri":"extractors/cds/tools/test/src/codeql.test.ts","uriBaseId":"%SRCROOT%","index":79}},{"location":{"uri":"extractors/cds/tools/test/src/diagnostics.test.ts","uriBaseId":"%SRCROOT%","index":80}},{"location":{"uri":"extractors/cds/tools/test/src/environment.test.ts","uriBaseId":"%SRCROOT%","index":81}},{"location":{"uri":"extractors/cds/tools/test/src/filesystem.test.ts","uriBaseId":"%SRCROOT%","index":82}},{"location":{"uri":"extractors/cds/tools/test/src/logging/cdsExtractorLog.test.ts","uriBaseId":"%SRCROOT%","index":83}},{"location":{"uri":"extractors/cds/tools/test/src/logging/performanceTrackingIntegration.test.ts","uriBaseId":"%SRCROOT%","index":84}},{"location":{"uri":"extractors/cds/tools/test/src/logging/statusReport.test.ts","uriBaseId":"%SRCROOT%","index":85}},{"location":{"uri":"extractors/cds/tools/test/src/logging/types.test.ts","uriBaseId":"%SRCROOT%","index":86}},{"location":{"uri":"extractors/cds/tools/test/src/packageManager/cacheInstaller.test.ts","uriBaseId":"%SRCROOT%","index":87}},{"location":{"uri":"extractors/cds/tools/test/src/packageManager/index.test.ts","uriBaseId":"%SRCROOT%","index":88}},{"location":{"uri":"extractors/cds/tools/test/src/packageManager/projectInstaller.test.ts","uriBaseId":"%SRCROOT%","index":89}},{"location":{"uri":"extractors/cds/tools/test/src/packageManager/types.test.ts","uriBaseId":"%SRCROOT%","index":90}},{"location":{"uri":"extractors/cds/tools/test/src/packageManager/versionResolver.test.ts","uriBaseId":"%SRCROOT%","index":91}},{"location":{"uri":"extractors/cds/tools/test/src/utils.test.ts","uriBaseId":"%SRCROOT%","index":92}},{"location":{"uri":"extractors/cds/tools/tsconfig.json","uriBaseId":"%SRCROOT%","index":93}},{"location":{"uri":"extractors/cds/tools/validate-bundle.js","uriBaseId":"%SRCROOT%","index":94}},{"location":{"uri":"javascript/frameworks/cap/ext/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":95}},{"location":{"uri":"javascript/frameworks/cap/ext/qlpack.yml","uriBaseId":"%SRCROOT%","index":96}},{"location":{"uri":"javascript/frameworks/cap/lib/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":97}},{"location":{"uri":"javascript/frameworks/cap/src/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":98}},{"location":{"uri":"javascript/frameworks/cap/lib/qlpack.yml","uriBaseId":"%SRCROOT%","index":99}},{"location":{"uri":"javascript/frameworks/cap/src/qlpack.yml","uriBaseId":"%SRCROOT%","index":100}},{"location":{"uri":"javascript/frameworks/cap/test/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":101}},{"location":{"uri":"javascript/frameworks/cap/test/qlpack.yml","uriBaseId":"%SRCROOT%","index":102}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":103}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/package.json","uriBaseId":"%SRCROOT%","index":104}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/model.cds.json","uriBaseId":"%SRCROOT%","index":105}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/server.js","uriBaseId":"%SRCROOT%","index":106}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":107}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":108}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":109}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":110}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.cds","uriBaseId":"%SRCROOT%","index":111}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-cds-authz/srv/service3.js","uriBaseId":"%SRCROOT%","index":112}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":113}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/package.json","uriBaseId":"%SRCROOT%","index":114}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/model.cds.json","uriBaseId":"%SRCROOT%","index":115}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/server.js","uriBaseId":"%SRCROOT%","index":116}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":117}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":118}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":119}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":120}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/db/schema.cds","uriBaseId":"%SRCROOT%","index":121}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/model.cds.json","uriBaseId":"%SRCROOT%","index":122}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/package.json","uriBaseId":"%SRCROOT%","index":123}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/server.js","uriBaseId":"%SRCROOT%","index":124}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.cds","uriBaseId":"%SRCROOT%","index":125}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service1.js","uriBaseId":"%SRCROOT%","index":126}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.cds","uriBaseId":"%SRCROOT%","index":127}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-js-authz-cds-serve/srv/service2.js","uriBaseId":"%SRCROOT%","index":128}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/db/schema.cds","uriBaseId":"%SRCROOT%","index":129}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/package.json","uriBaseId":"%SRCROOT%","index":130}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/model.cds.json","uriBaseId":"%SRCROOT%","index":131}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/server.js","uriBaseId":"%SRCROOT%","index":132}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.cds","uriBaseId":"%SRCROOT%","index":133}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service1.js","uriBaseId":"%SRCROOT%","index":134}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.cds","uriBaseId":"%SRCROOT%","index":135}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/entities-with-no-authz/entities-exposed-with-no-authz/srv/service2.js","uriBaseId":"%SRCROOT%","index":136}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/db/schema.cds","uriBaseId":"%SRCROOT%","index":137}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/model.cds.json","uriBaseId":"%SRCROOT%","index":138}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/package.json","uriBaseId":"%SRCROOT%","index":139}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/server.js","uriBaseId":"%SRCROOT%","index":140}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.cds","uriBaseId":"%SRCROOT%","index":141}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.js","uriBaseId":"%SRCROOT%","index":142}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.cds","uriBaseId":"%SRCROOT%","index":143}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.js","uriBaseId":"%SRCROOT%","index":144}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/db/schema.cds","uriBaseId":"%SRCROOT%","index":145}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/model.cds.json","uriBaseId":"%SRCROOT%","index":146}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/package-lock.json","uriBaseId":"%SRCROOT%","index":147}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/package.json","uriBaseId":"%SRCROOT%","index":148}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/server.js","uriBaseId":"%SRCROOT%","index":149}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/privileged-user.js","uriBaseId":"%SRCROOT%","index":150}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.js","uriBaseId":"%SRCROOT%","index":151}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds","uriBaseId":"%SRCROOT%","index":152}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.cds","uriBaseId":"%SRCROOT%","index":153}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.js","uriBaseId":"%SRCROOT%","index":154}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":155}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/package.json","uriBaseId":"%SRCROOT%","index":156}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/server.js","uriBaseId":"%SRCROOT%","index":157}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":158}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/model.cds.json","uriBaseId":"%SRCROOT%","index":159}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":160}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":161}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":162}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":163}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/package.json","uriBaseId":"%SRCROOT%","index":164}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/model.cds.json","uriBaseId":"%SRCROOT%","index":165}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":166}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":167}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/server.js","uriBaseId":"%SRCROOT%","index":168}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":169}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":170}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/db/schema.cds","uriBaseId":"%SRCROOT%","index":171}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/model.cds.json","uriBaseId":"%SRCROOT%","index":172}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/package.json","uriBaseId":"%SRCROOT%","index":173}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/server.js","uriBaseId":"%SRCROOT%","index":174}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.cds","uriBaseId":"%SRCROOT%","index":175}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service1.js","uriBaseId":"%SRCROOT%","index":176}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.cds","uriBaseId":"%SRCROOT%","index":177}},{"location":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/srv/service2.js","uriBaseId":"%SRCROOT%","index":178}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/db/schema.cds","uriBaseId":"%SRCROOT%","index":179}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/package.json","uriBaseId":"%SRCROOT%","index":180}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/server.js","uriBaseId":"%SRCROOT%","index":181}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.cds","uriBaseId":"%SRCROOT%","index":182}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.cds","uriBaseId":"%SRCROOT%","index":183}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service2.js","uriBaseId":"%SRCROOT%","index":184}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/db/schema.cds","uriBaseId":"%SRCROOT%","index":185}},{"location":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/model.cds.json","uriBaseId":"%SRCROOT%","index":186}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/model.cds.json","uriBaseId":"%SRCROOT%","index":187}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/package.json","uriBaseId":"%SRCROOT%","index":188}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/server.js","uriBaseId":"%SRCROOT%","index":189}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.cds","uriBaseId":"%SRCROOT%","index":190}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service1.js","uriBaseId":"%SRCROOT%","index":191}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.cds","uriBaseId":"%SRCROOT%","index":192}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-not-depending-on-request/srv/service2.js","uriBaseId":"%SRCROOT%","index":193}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/db/schema.cds","uriBaseId":"%SRCROOT%","index":194}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/model.cds.json","uriBaseId":"%SRCROOT%","index":195}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/package.json","uriBaseId":"%SRCROOT%","index":196}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/server.js","uriBaseId":"%SRCROOT%","index":197}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.js","uriBaseId":"%SRCROOT%","index":198}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds","uriBaseId":"%SRCROOT%","index":199}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":200}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/model.cds.json","uriBaseId":"%SRCROOT%","index":201}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":202}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":203}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":204}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":205}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":206}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-complete-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":207}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":208}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/model.cds.json","uriBaseId":"%SRCROOT%","index":209}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":210}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":211}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":212}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":213}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":214}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":215}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":216}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/model.cds.json","uriBaseId":"%SRCROOT%","index":217}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":218}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":219}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":220}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":221}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":222}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":223}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/db/schema.cds","uriBaseId":"%SRCROOT%","index":224}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/model.cds.json","uriBaseId":"%SRCROOT%","index":225}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/package.json","uriBaseId":"%SRCROOT%","index":226}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/server.js","uriBaseId":"%SRCROOT%","index":227}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":228}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.cds","uriBaseId":"%SRCROOT%","index":229}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.cds","uriBaseId":"%SRCROOT%","index":230}},{"location":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":231}},{"location":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232}},{"location":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/model.cds.json","uriBaseId":"%SRCROOT%","index":233}},{"location":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure-js-all-sinks/sensitive-exposure-heuristic-source.js","uriBaseId":"%SRCROOT%","index":234}},{"location":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.cds","uriBaseId":"%SRCROOT%","index":235}},{"location":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.js","uriBaseId":"%SRCROOT%","index":236}},{"location":{"uri":"javascript/frameworks/ui5/lib/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":237}},{"location":{"uri":"javascript/frameworks/ui5/lib/qlpack.yml","uriBaseId":"%SRCROOT%","index":238}},{"location":{"uri":"javascript/frameworks/ui5/src/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":239}},{"location":{"uri":"javascript/frameworks/ui5/src/qlpack.yml","uriBaseId":"%SRCROOT%","index":240}},{"location":{"uri":"javascript/frameworks/ui5/test/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":241}},{"location":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.js","uriBaseId":"%SRCROOT%","index":242}},{"location":{"uri":"javascript/frameworks/ui5/test/lib/BindingStringParser/test.js","uriBaseId":"%SRCROOT%","index":243}},{"location":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.view.html","uriBaseId":"%SRCROOT%","index":244}},{"location":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.view.json","uriBaseId":"%SRCROOT%","index":245}},{"location":{"uri":"javascript/frameworks/ui5/test/lib/Bindings/test.view.xml","uriBaseId":"%SRCROOT%","index":246}},{"location":{"uri":"javascript/frameworks/ui5/test/lib/JsonParser/test.js","uriBaseId":"%SRCROOT%","index":247}},{"location":{"uri":"javascript/frameworks/ui5/test/models/attachDisplay_detachDisplay/webapp/view/App.view.xml","uriBaseId":"%SRCROOT%","index":248}},{"location":{"uri":"javascript/frameworks/ui5/test/models/binding_path/bindingComposite.xml","uriBaseId":"%SRCROOT%","index":249}},{"location":{"uri":"javascript/frameworks/ui5/test/models/binding_path/binding1.xml","uriBaseId":"%SRCROOT%","index":250}},{"location":{"uri":"javascript/frameworks/ui5/test/models/multiple_models/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":251}},{"location":{"uri":"javascript/frameworks/ui5/test/models/property_getter_setter/webapp/view/App.view.xml","uriBaseId":"%SRCROOT%","index":252}},{"location":{"uri":"javascript/frameworks/ui5/test/models/sink/sink1.xml","uriBaseId":"%SRCROOT%","index":253}},{"location":{"uri":"javascript/frameworks/ui5/test/models/source/source1.xml","uriBaseId":"%SRCROOT%","index":254}},{"location":{"uri":"javascript/frameworks/ui5/test/qlpack.yml","uriBaseId":"%SRCROOT%","index":255}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-allow-all/index.html","uriBaseId":"%SRCROOT%","index":256}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-allow-all/ui5.yaml","uriBaseId":"%SRCROOT%","index":257}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-default-all/index.html","uriBaseId":"%SRCROOT%","index":258}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-default-all/ui5.yaml","uriBaseId":"%SRCROOT%","index":259}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-deny-all/index.html","uriBaseId":"%SRCROOT%","index":260}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-deny-all/ui5.yaml","uriBaseId":"%SRCROOT%","index":261}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":262}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/package.json","uriBaseId":"%SRCROOT%","index":263}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":264}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":265}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":266}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":267}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":268}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":269}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":270}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":271}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":272}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/package.json","uriBaseId":"%SRCROOT%","index":273}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":274}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":275}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":276}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":277}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":278}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":279}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/package-lock.json","uriBaseId":"%SRCROOT%","index":280}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/package.json","uriBaseId":"%SRCROOT%","index":281}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/ui5.yaml","uriBaseId":"%SRCROOT%","index":282}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":283}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/index.html","uriBaseId":"%SRCROOT%","index":284}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":285}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":286}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":287}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":288}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/package.json","uriBaseId":"%SRCROOT%","index":289}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":290}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":291}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":292}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":293}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":294}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":295}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":296}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":297}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/package.json","uriBaseId":"%SRCROOT%","index":298}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":299}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":300}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":301}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":302}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":303}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":304}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":305}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/package-lock.json","uriBaseId":"%SRCROOT%","index":306}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/ui5.yaml","uriBaseId":"%SRCROOT%","index":307}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":308}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/package.json","uriBaseId":"%SRCROOT%","index":309}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/index.js","uriBaseId":"%SRCROOT%","index":310}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/index.html","uriBaseId":"%SRCROOT%","index":311}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":312}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":313}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":314}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/package-lock.json","uriBaseId":"%SRCROOT%","index":315}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/package.json","uriBaseId":"%SRCROOT%","index":316}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/ui5.yaml","uriBaseId":"%SRCROOT%","index":317}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":318}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/index.html","uriBaseId":"%SRCROOT%","index":319}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/index.js","uriBaseId":"%SRCROOT%","index":320}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":321}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":322}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/package-lock.json","uriBaseId":"%SRCROOT%","index":323}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/package.json","uriBaseId":"%SRCROOT%","index":324}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/ui5.yaml","uriBaseId":"%SRCROOT%","index":325}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":326}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/index.html","uriBaseId":"%SRCROOT%","index":327}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/index.js","uriBaseId":"%SRCROOT%","index":328}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":329}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":330}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":331}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/package-lock.json","uriBaseId":"%SRCROOT%","index":332}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/ui5.yaml","uriBaseId":"%SRCROOT%","index":333}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/package.json","uriBaseId":"%SRCROOT%","index":334}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/index.html","uriBaseId":"%SRCROOT%","index":335}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":336}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/index.js","uriBaseId":"%SRCROOT%","index":337}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":338}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":339}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module-imported/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":340}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/package-lock.json","uriBaseId":"%SRCROOT%","index":341}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/package.json","uriBaseId":"%SRCROOT%","index":342}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/ui5.yaml","uriBaseId":"%SRCROOT%","index":343}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":344}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/index.html","uriBaseId":"%SRCROOT%","index":345}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/index.js","uriBaseId":"%SRCROOT%","index":346}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":347}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":348}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/package-lock.json","uriBaseId":"%SRCROOT%","index":349}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/package.json","uriBaseId":"%SRCROOT%","index":350}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/ui5.yaml","uriBaseId":"%SRCROOT%","index":351}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/index.html","uriBaseId":"%SRCROOT%","index":353}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/index.js","uriBaseId":"%SRCROOT%","index":354}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":355}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":356}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":357}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/package-lock.json","uriBaseId":"%SRCROOT%","index":358}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/package.json","uriBaseId":"%SRCROOT%","index":359}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":360}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/ui5.yaml","uriBaseId":"%SRCROOT%","index":361}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":362}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/index.html","uriBaseId":"%SRCROOT%","index":363}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":364}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":365}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-html-control-df/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":366}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":367}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/package.json","uriBaseId":"%SRCROOT%","index":368}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":369}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":370}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":371}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":372}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":373}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":374}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":375}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/package.json","uriBaseId":"%SRCROOT%","index":376}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":377}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":378}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":379}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":380}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":381}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":382}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":383}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":384}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/package-lock.json","uriBaseId":"%SRCROOT%","index":385}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/package.json","uriBaseId":"%SRCROOT%","index":386}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/ui5.yaml","uriBaseId":"%SRCROOT%","index":387}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":388}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/index.html","uriBaseId":"%SRCROOT%","index":389}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":390}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":391}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":392}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/.eslintrc.json","uriBaseId":"%SRCROOT%","index":393}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/package-lock.json","uriBaseId":"%SRCROOT%","index":394}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/package.json","uriBaseId":"%SRCROOT%","index":395}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/ui5.yaml","uriBaseId":"%SRCROOT%","index":396}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/Component.js","uriBaseId":"%SRCROOT%","index":397}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controller/App.Controller.js","uriBaseId":"%SRCROOT%","index":398}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controls/Book.js","uriBaseId":"%SRCROOT%","index":399}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/index.html","uriBaseId":"%SRCROOT%","index":400}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":401}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/model/todoitems.json","uriBaseId":"%SRCROOT%","index":402}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/AllJourneys.js","uriBaseId":"%SRCROOT%","index":403}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/FilterJourney.js","uriBaseId":"%SRCROOT%","index":404}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/SearchJourney.js","uriBaseId":"%SRCROOT%","index":405}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/TodoListJourney.js","uriBaseId":"%SRCROOT%","index":406}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/opaTests.qunit.html","uriBaseId":"%SRCROOT%","index":407}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/arrangements/Startup.js","uriBaseId":"%SRCROOT%","index":408}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/opaTests.qunit.js","uriBaseId":"%SRCROOT%","index":409}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/integration/pages/App.js","uriBaseId":"%SRCROOT%","index":410}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/testsuite.qunit.html","uriBaseId":"%SRCROOT%","index":411}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/testsuite.qunit.js","uriBaseId":"%SRCROOT%","index":412}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/AllTests.js","uriBaseId":"%SRCROOT%","index":413}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/controller/App.controller.js","uriBaseId":"%SRCROOT%","index":414}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/unitTests.qunit.html","uriBaseId":"%SRCROOT%","index":415}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/test/unit/unitTests.qunit.js","uriBaseId":"%SRCROOT%","index":416}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/util/Helper.js","uriBaseId":"%SRCROOT%","index":417}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/view/App.view.xml","uriBaseId":"%SRCROOT%","index":418}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/package-lock.json","uriBaseId":"%SRCROOT%","index":419}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/package.json","uriBaseId":"%SRCROOT%","index":420}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/ui5.yaml","uriBaseId":"%SRCROOT%","index":421}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":422}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":423}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/index.html","uriBaseId":"%SRCROOT%","index":424}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/index.js","uriBaseId":"%SRCROOT%","index":425}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":426}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":427}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/package-lock.json","uriBaseId":"%SRCROOT%","index":428}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/package.json","uriBaseId":"%SRCROOT%","index":429}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/ui5.yaml","uriBaseId":"%SRCROOT%","index":430}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":431}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":432}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/index.js","uriBaseId":"%SRCROOT%","index":433}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/index.html","uriBaseId":"%SRCROOT%","index":434}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":435}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":436}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/package-lock.json","uriBaseId":"%SRCROOT%","index":437}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/package.json","uriBaseId":"%SRCROOT%","index":438}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/ui5.yaml","uriBaseId":"%SRCROOT%","index":439}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":440}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":441}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/index.html","uriBaseId":"%SRCROOT%","index":442}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/index.js","uriBaseId":"%SRCROOT%","index":443}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":444}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":445}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/package.json","uriBaseId":"%SRCROOT%","index":446}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":447}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":448}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":449}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":450}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":451}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":452}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":453}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":454}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/package.json","uriBaseId":"%SRCROOT%","index":455}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/package-lock.json","uriBaseId":"%SRCROOT%","index":456}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":457}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/ui5.yaml","uriBaseId":"%SRCROOT%","index":458}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":459}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/index.html","uriBaseId":"%SRCROOT%","index":460}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/index.js","uriBaseId":"%SRCROOT%","index":461}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":462}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":463}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/package-lock.json","uriBaseId":"%SRCROOT%","index":464}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/ui5.yaml","uriBaseId":"%SRCROOT%","index":465}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/package.json","uriBaseId":"%SRCROOT%","index":466}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/index.html","uriBaseId":"%SRCROOT%","index":468}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/index.js","uriBaseId":"%SRCROOT%","index":469}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":470}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":471}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/package-lock.json","uriBaseId":"%SRCROOT%","index":472}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/package.json","uriBaseId":"%SRCROOT%","index":473}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/ui5.yaml","uriBaseId":"%SRCROOT%","index":474}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":475}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/index.html","uriBaseId":"%SRCROOT%","index":476}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":477}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":478}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/package-lock.json","uriBaseId":"%SRCROOT%","index":479}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/package.json","uriBaseId":"%SRCROOT%","index":480}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/ui5.yaml","uriBaseId":"%SRCROOT%","index":481}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":482}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/index.html","uriBaseId":"%SRCROOT%","index":484}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/index.js","uriBaseId":"%SRCROOT%","index":485}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":486}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":487}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/package-lock.json","uriBaseId":"%SRCROOT%","index":488}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/ui5.yaml","uriBaseId":"%SRCROOT%","index":489}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/package.json","uriBaseId":"%SRCROOT%","index":490}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":491}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/index.html","uriBaseId":"%SRCROOT%","index":492}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/index.js","uriBaseId":"%SRCROOT%","index":493}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":494}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-oneway/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":495}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/package-lock.json","uriBaseId":"%SRCROOT%","index":496}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/package.json","uriBaseId":"%SRCROOT%","index":497}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":498}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/ui5.yaml","uriBaseId":"%SRCROOT%","index":499}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/controller/model.json","uriBaseId":"%SRCROOT%","index":500}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/index.html","uriBaseId":"%SRCROOT%","index":501}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/index.js","uriBaseId":"%SRCROOT%","index":502}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":503}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":504}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/package.json","uriBaseId":"%SRCROOT%","index":505}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/package-lock.json","uriBaseId":"%SRCROOT%","index":506}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/ui5.yaml","uriBaseId":"%SRCROOT%","index":507}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":508}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/index.html","uriBaseId":"%SRCROOT%","index":509}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":510}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":511}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/view/app.view.html","uriBaseId":"%SRCROOT%","index":512}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/package-lock.json","uriBaseId":"%SRCROOT%","index":513}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/package.json","uriBaseId":"%SRCROOT%","index":514}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/ui5.yaml","uriBaseId":"%SRCROOT%","index":515}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":516}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssBase.js","uriBaseId":"%SRCROOT%","index":517}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":518}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":519}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/index.html","uriBaseId":"%SRCROOT%","index":520}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":521}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":522}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":523}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/package-lock.json","uriBaseId":"%SRCROOT%","index":524}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/package.json","uriBaseId":"%SRCROOT%","index":525}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/ui5.yaml","uriBaseId":"%SRCROOT%","index":526}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":527}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/index.html","uriBaseId":"%SRCROOT%","index":528}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":529}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":530}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/view/app.view.js","uriBaseId":"%SRCROOT%","index":531}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/package-lock.json","uriBaseId":"%SRCROOT%","index":532}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/package.json","uriBaseId":"%SRCROOT%","index":533}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/ui5.yaml","uriBaseId":"%SRCROOT%","index":534}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":535}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/index.html","uriBaseId":"%SRCROOT%","index":536}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/index.js","uriBaseId":"%SRCROOT%","index":537}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":538}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/view/app.view.json","uriBaseId":"%SRCROOT%","index":539}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/package-lock.json","uriBaseId":"%SRCROOT%","index":540}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/package.json","uriBaseId":"%SRCROOT%","index":541}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/ui5.yaml","uriBaseId":"%SRCROOT%","index":542}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/renderer.js","uriBaseId":"%SRCROOT%","index":543}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":544}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":545}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/index.html","uriBaseId":"%SRCROOT%","index":546}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/index.js","uriBaseId":"%SRCROOT%","index":547}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":548}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/package-lock.json","uriBaseId":"%SRCROOT%","index":549}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":550}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/ui5.yaml","uriBaseId":"%SRCROOT%","index":551}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":552}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":553}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/package.json","uriBaseId":"%SRCROOT%","index":554}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":555}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/index.html","uriBaseId":"%SRCROOT%","index":556}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/index.js","uriBaseId":"%SRCROOT%","index":557}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":558}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":559}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/package-lock.json","uriBaseId":"%SRCROOT%","index":560}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/package.json","uriBaseId":"%SRCROOT%","index":561}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":562}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/ui5.yaml","uriBaseId":"%SRCROOT%","index":563}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/index.html","uriBaseId":"%SRCROOT%","index":564}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/index.js","uriBaseId":"%SRCROOT%","index":565}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/manifest.json","uriBaseId":"%SRCROOT%","index":566}},{"location":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":567}},{"location":{"uri":"javascript/frameworks/xsjs/lib/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":568}},{"location":{"uri":"javascript/frameworks/xsjs/lib/qlpack.yml","uriBaseId":"%SRCROOT%","index":569}},{"location":{"uri":"javascript/frameworks/xsjs/src/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":570}},{"location":{"uri":"javascript/frameworks/xsjs/src/qlpack.yml","uriBaseId":"%SRCROOT%","index":571}},{"location":{"uri":"javascript/frameworks/xsjs/test/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":572}},{"location":{"uri":"javascript/frameworks/xsjs/test/qlpack.yml","uriBaseId":"%SRCROOT%","index":573}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/.xsaccess","uriBaseId":"%SRCROOT%","index":574}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/missing_auth/.xsaccess","uriBaseId":"%SRCROOT%","index":575}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/exposed/.xsaccess","uriBaseId":"%SRCROOT%","index":576}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/service.xsjs","uriBaseId":"%SRCROOT%","index":577}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/xs-app.json","uriBaseId":"%SRCROOT%","index":578}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":579}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSUrlRedirect/XSJSUrlRedirect.xsjs","uriBaseId":"%SRCROOT%","index":581}},{"location":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":582}},{"location":{"uri":"javascript/heuristic-models/tests/codeql-pack.lock.yml","uriBaseId":"%SRCROOT%","index":583}},{"location":{"uri":"javascript/heuristic-models/tests/qlpack.yml","uriBaseId":"%SRCROOT%","index":584}},{"location":{"uri":"qlt.conf.json","uriBaseId":"%SRCROOT%","index":585}},{"location":{"uri":"scripts/CreateTestsFromYaml.py","uriBaseId":"%SRCROOT%","index":586}}],"results":[{"ruleId":"js/missing-rate-limiting","rule":{"id":"js/missing-rate-limiting","index":8,"toolComponent":{"index":1}},"message":{"text":"This route handler performs [a database access](1), but is not rate-limited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":781,"startColumn":23,"endLine":784,"endColumn":6}}}],"partialFingerprints":{"primaryLocationLineHash":"ac6d3bdd3d52ea9b:1","primaryLocationStartColumnFingerprint":"18"},"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":782,"startColumn":7,"endLine":783,"endColumn":9}},"message":{"text":"a database access"}}]},{"ruleId":"js/sql-injection","rule":{"id":"js/sql-injection","index":21,"toolComponent":{"index":1}},"message":{"text":"This query string depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":782,"startColumn":18,"endColumn":38}}}],"partialFingerprints":{"primaryLocationLineHash":"e7f0d59b4cbe0ccc:1","primaryLocationStartColumnFingerprint":"11"},"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":782,"startColumn":18,"endColumn":38}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/xss","rule":{"id":"js/xss","index":51,"toolComponent":{"index":1}},"message":{"text":"Cross-site scripting vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":4,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"6311a9ed7e4091a4:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":3,"startColumn":17,"endColumn":51}},"message":{"text":"jQuery. ... param\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":3,"startColumn":9,"endColumn":51}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":4,"startColumn":20,"endColumn":25}},"message":{"text":"value"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":3,"startColumn":17,"endColumn":51}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/xss","rule":{"id":"js/xss","index":51,"toolComponent":{"index":1}},"message":{"text":"Cross-site scripting vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":11,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"8e517fc6fdf32a1a:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":10,"startColumn":17,"endColumn":41}},"message":{"text":"documen ... .search"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":10,"startColumn":9,"endColumn":41}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":11,"startColumn":20,"endColumn":25}},"message":{"text":"value"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":10,"startColumn":17,"endColumn":41}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/xss","rule":{"id":"js/xss","index":51,"toolComponent":{"index":1}},"message":{"text":"Cross-site scripting vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":19,"startColumn":20,"endColumn":26}}}],"partialFingerprints":{"primaryLocationLineHash":"c51cf11a085c01f4:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":17,"startColumn":17,"endColumn":41}},"message":{"text":"documen ... .search"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":17,"startColumn":9,"endColumn":41}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":18,"startColumn":39,"endColumn":44}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":18,"startColumn":18,"endColumn":45}},"message":{"text":"jQuery. ... (value)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":18,"startColumn":9,"endColumn":45}},"message":{"text":"value1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":19,"startColumn":20,"endColumn":26}},"message":{"text":"value1"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":17,"startColumn":17,"endColumn":41}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/xss","rule":{"id":"js/xss","index":51,"toolComponent":{"index":1}},"message":{"text":"Cross-site scripting vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":27,"startColumn":20,"endColumn":26}}}],"partialFingerprints":{"primaryLocationLineHash":"e309bf8540256a05:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":25,"startColumn":17,"endColumn":41}},"message":{"text":"documen ... .search"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":25,"startColumn":9,"endColumn":41}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":26,"startColumn":39,"endColumn":44}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":26,"startColumn":18,"endColumn":45}},"message":{"text":"jQuery. ... (value)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":26,"startColumn":9,"endColumn":45}},"message":{"text":"value1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":27,"startColumn":20,"endColumn":26}},"message":{"text":"value1"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":25,"startColumn":17,"endColumn":41}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/log-injection","rule":{"id":"js/log-injection","index":94,"toolComponent":{"index":1}},"message":{"text":"Log entry depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":7,"startColumn":18,"endColumn":41}}}],"partialFingerprints":{"primaryLocationLineHash":"be9a18716e55d497:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":6,"startColumn":17,"endColumn":51}},"message":{"text":"jQuery. ... param\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":6,"startColumn":9,"endColumn":51}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":7,"startColumn":34,"endColumn":39}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":7,"startColumn":18,"endColumn":41}},"message":{"text":"`[INFO] ... value}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":6,"startColumn":17,"endColumn":51}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/log-injection","rule":{"id":"js/log-injection","index":94,"toolComponent":{"index":1}},"message":{"text":"Log entry depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":15,"startColumn":18,"endColumn":41}}}],"partialFingerprints":{"primaryLocationLineHash":"be9a18716e55d497:2","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":13,"startColumn":23,"endColumn":30}},"message":{"text":"req.url"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":13,"startColumn":13,"endColumn":37}},"message":{"text":"url.par ... , true)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":13,"startColumn":9,"endColumn":37}},"message":{"text":"q"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":14,"startColumn":17,"endColumn":18}},"message":{"text":"q"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":14,"startColumn":9,"endColumn":33}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":15,"startColumn":34,"endColumn":39}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":15,"startColumn":18,"endColumn":41}},"message":{"text":"`[INFO] ... value}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":13,"startColumn":23,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/log-injection","rule":{"id":"js/log-injection","index":94,"toolComponent":{"index":1}},"message":{"text":"Log entry depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":24,"startColumn":18,"endColumn":42}}}],"partialFingerprints":{"primaryLocationLineHash":"e197b363f9dc3962:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":21,"startColumn":23,"endColumn":30}},"message":{"text":"req.url"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":21,"startColumn":13,"endColumn":37}},"message":{"text":"url.par ... , true)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":21,"startColumn":9,"endColumn":37}},"message":{"text":"q"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":22,"startColumn":17,"endColumn":18}},"message":{"text":"q"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":22,"startColumn":9,"endColumn":33}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":23,"startColumn":39,"endColumn":44}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":23,"startColumn":18,"endColumn":45}},"message":{"text":"jQuery. ... (value)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":23,"startColumn":9,"endColumn":45}},"message":{"text":"value1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":24,"startColumn":34,"endColumn":40}},"message":{"text":"value1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":24,"startColumn":18,"endColumn":42}},"message":{"text":"`[INFO] ... alue1}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/avoid-duplicate-alerts/LogInjectionTest.js","uriBaseId":"%SRCROOT%","index":2},"region":{"startLine":21,"startColumn":23,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/log-injection","rule":{"id":"js/log-injection","index":94,"toolComponent":{"index":1}},"message":{"text":"Log entry depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/heuristic-models/tests/Sources/test.js","uriBaseId":"%SRCROOT%","index":3},"region":{"startLine":5,"startColumn":17,"endColumn":33}}}],"partialFingerprints":{"primaryLocationLineHash":"45280b24f3d81287:1","primaryLocationStartColumnFingerprint":"12"},"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/heuristic-models/tests/Sources/test.js","uriBaseId":"%SRCROOT%","index":3},"region":{"startLine":5,"startColumn":17,"endColumn":33}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-clickjacking","rule":{"id":"js/ui5-clickjacking","index":0,"toolComponent":{"index":4}},"message":{"text":"Possible clickjacking vulnerability due to window\\[ ... onfig\"\\] being set to `allow`."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-allow-all/index.html","uriBaseId":"%SRCROOT%","index":256},"region":{"startLine":9,"startColumn":9,"endColumn":32}}}],"partialFingerprints":{"primaryLocationLineHash":"6152b8f74a1abdf5:1","primaryLocationStartColumnFingerprint":"0"}},{"ruleId":"js/ui5-clickjacking","rule":{"id":"js/ui5-clickjacking","index":0,"toolComponent":{"index":4}},"message":{"text":"Possible clickjacking vulnerability due to data-sap-ui-frameOptions=allow being set to `allow`."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-allow-all/index.html","uriBaseId":"%SRCROOT%","index":256},"region":{"startLine":28,"startColumn":34,"endColumn":66}}}],"partialFingerprints":{"primaryLocationLineHash":"b01bd23ca3666824:1","primaryLocationStartColumnFingerprint":"25"}},{"ruleId":"js/ui5-clickjacking","rule":{"id":"js/ui5-clickjacking","index":0,"toolComponent":{"index":4}},"message":{"text":"Possible clickjacking vulnerability due to missing frame options."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Clickjacking/clickjacking-default-all/index.html","uriBaseId":"%SRCROOT%","index":258},"region":{"startLine":2,"endColumn":16}}}],"partialFingerprints":{"primaryLocationLineHash":"7fe81114896a63c:1","primaryLocationStartColumnFingerprint":"0"}},{"ruleId":"js/ui5-clickjacking","rule":{"id":"js/ui5-clickjacking","index":0,"toolComponent":{"index":4}},"message":{"text":"Possible clickjacking vulnerability due to missing frame options."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/index.html","uriBaseId":"%SRCROOT%","index":400},"region":{"startLine":2,"endColumn":16}}}],"partialFingerprints":{"primaryLocationLineHash":"df700c15dad274b2:1","primaryLocationStartColumnFingerprint":"0"}},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":356},"region":{"startLine":16,"startColumn":31,"endColumn":45}}}],"partialFingerprints":{"primaryLocationLineHash":"3bb21c52eb38cf8:1","primaryLocationStartColumnFingerprint":"22"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":360},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":356},"region":{"startLine":9,"startColumn":29,"endColumn":35}},"message":{"text":"oEvent"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":356},"region":{"startLine":16,"startColumn":31,"endColumn":37}},"message":{"text":"oEvent"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":356},"region":{"startLine":16,"startColumn":31,"endColumn":45}},"message":{"text":"oEvent.message"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":360},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":5,"startColumn":27,"endColumn":32}}}],"partialFingerprints":{"primaryLocationLineHash":"92dbc37bdafc7694:1","primaryLocationStartColumnFingerprint":"22"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":3,"startColumn":17,"endColumn":51}},"message":{"text":"jQuery. ... param\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":3,"startColumn":9,"endColumn":51}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":5,"startColumn":27,"endColumn":32}},"message":{"text":"value"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":3,"startColumn":17,"endColumn":51}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":12,"startColumn":27,"endColumn":32}}}],"partialFingerprints":{"primaryLocationLineHash":"faa1832c387d2ee5:1","primaryLocationStartColumnFingerprint":"22"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":10,"startColumn":17,"endColumn":41}},"message":{"text":"documen ... .search"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":10,"startColumn":9,"endColumn":41}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":12,"startColumn":27,"endColumn":32}},"message":{"text":"value"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":10,"startColumn":17,"endColumn":41}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":20,"startColumn":27,"endColumn":33}}}],"partialFingerprints":{"primaryLocationLineHash":"8291f53a2e235d15:1","primaryLocationStartColumnFingerprint":"22"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":17,"startColumn":17,"endColumn":41}},"message":{"text":"documen ... .search"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":17,"startColumn":9,"endColumn":41}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":18,"startColumn":39,"endColumn":44}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":18,"startColumn":18,"endColumn":45}},"message":{"text":"jQuery. ... (value)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":18,"startColumn":9,"endColumn":45}},"message":{"text":"value1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":20,"startColumn":27,"endColumn":33}},"message":{"text":"value1"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/avoid-duplicate-alerts/XssTest.js","uriBaseId":"%SRCROOT%","index":1},"region":{"startLine":17,"startColumn":17,"endColumn":41}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controls/Book.js","uriBaseId":"%SRCROOT%","index":399},"region":{"startLine":132,"startColumn":7,"endLine":134,"endColumn":16}}}],"partialFingerprints":{"primaryLocationLineHash":"63ace7b071639814:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controller/App.Controller.js","uriBaseId":"%SRCROOT%","index":398},"region":{"startLine":23,"startColumn":25,"endColumn":48}},"message":{"text":"oSearch ... Value()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controller/App.Controller.js","uriBaseId":"%SRCROOT%","index":398},"region":{"startLine":23,"startColumn":11,"endColumn":48}},"message":{"text":"searchValue"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controller/App.Controller.js","uriBaseId":"%SRCROOT%","index":398},"region":{"startLine":27,"startColumn":34,"endColumn":45}},"message":{"text":"searchValue"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controls/Book.js","uriBaseId":"%SRCROOT%","index":399},"region":{"startLine":17,"startColumn":13,"endColumn":31}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controls/Book.js","uriBaseId":"%SRCROOT%","index":399},"region":{"startLine":133,"startColumn":8,"endColumn":27}},"message":{"text":"oControl.getTitle()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controls/Book.js","uriBaseId":"%SRCROOT%","index":399},"region":{"startLine":132,"startColumn":7,"endLine":134,"endColumn":16}},"message":{"text":"\"
T ...
\""}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-book-example/webapp/controller/App.Controller.js","uriBaseId":"%SRCROOT%","index":398},"region":{"startLine":23,"startColumn":25,"endColumn":48}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":422},"region":{"startLine":14,"startColumn":23,"endColumn":41}}}],"partialFingerprints":{"primaryLocationLineHash":"fc87b07640e9d85:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":427},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":423},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":422},"region":{"startLine":7,"startColumn":23,"endColumn":41}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":422},"region":{"startLine":14,"startColumn":23,"endColumn":41}},"message":{"text":"oControl.getText()"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":427},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":431},"region":{"startLine":14,"startColumn":32,"endColumn":50}}}],"partialFingerprints":{"primaryLocationLineHash":"352d5eac262ae765:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":436},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":432},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":431},"region":{"startLine":7,"startColumn":23,"endColumn":41}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":431},"region":{"startLine":14,"startColumn":32,"endColumn":50}},"message":{"text":"oControl.getText()"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":436},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":440},"region":{"startLine":14,"startColumn":28,"endColumn":46}}}],"partialFingerprints":{"primaryLocationLineHash":"352d5ec8b0c3bb0d:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":444},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":441},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":440},"region":{"startLine":7,"startColumn":19,"endColumn":37}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":440},"region":{"startLine":14,"startColumn":28,"endColumn":46}},"message":{"text":"oControl.getText()"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":444},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467},"region":{"startLine":27,"startColumn":36,"endColumn":41}}}],"partialFingerprints":{"primaryLocationLineHash":"8ceecee7055f4fa2:1","primaryLocationStartColumnFingerprint":"23"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467},"region":{"startLine":26,"startColumn":25,"endColumn":42}},"message":{"text":"oInput.getValue()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467},"region":{"startLine":26,"startColumn":17,"endColumn":42}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467},"region":{"startLine":27,"startColumn":36,"endColumn":41}},"message":{"text":"value"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467},"region":{"startLine":26,"startColumn":25,"endColumn":42}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":518},"region":{"startLine":8,"startColumn":28,"endColumn":46}}}],"partialFingerprints":{"primaryLocationLineHash":"353ad97f4bff4eae:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":523},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":519},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssBase.js","uriBaseId":"%SRCROOT%","index":517},"region":{"startLine":5,"startColumn":15,"endColumn":33}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":518},"region":{"startLine":8,"startColumn":28,"endColumn":46}},"message":{"text":"oControl.getText()"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":523},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/renderer.js","uriBaseId":"%SRCROOT%","index":543},"region":{"startLine":8,"startColumn":28,"endColumn":46}}}],"partialFingerprints":{"primaryLocationLineHash":"353ad97f4bff4eae:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":550},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":545},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":544},"region":{"startLine":7,"startColumn":23,"endColumn":41}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/control/renderer.js","uriBaseId":"%SRCROOT%","index":543},"region":{"startLine":8,"startColumn":28,"endColumn":46}},"message":{"text":"oControl.getText()"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":550},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":553},"region":{"startLine":8,"startColumn":28,"endColumn":46}}}],"partialFingerprints":{"primaryLocationLineHash":"353ad97f4bff4eae:1","primaryLocationStartColumnFingerprint":"15"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":559},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":555},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":552},"region":{"startLine":7,"startColumn":23,"endColumn":41}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/control/xssRenderer.js","uriBaseId":"%SRCROOT%","index":553},"region":{"startLine":8,"startColumn":28,"endColumn":46}},"message":{"text":"oControl.getText()"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":559},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/view/app.view.js","uriBaseId":"%SRCROOT%","index":531},"region":{"startLine":21,"startColumn":22,"endColumn":32}}}],"partialFingerprints":{"primaryLocationLineHash":"5d5122f6c75b5d01:1","primaryLocationStartColumnFingerprint":"9"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/view/app.view.js","uriBaseId":"%SRCROOT%","index":531},"region":{"startLine":18,"startColumn":20,"endColumn":30}},"message":{"text":"/input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":527},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/view/app.view.js","uriBaseId":"%SRCROOT%","index":531},"region":{"startLine":21,"startColumn":22,"endColumn":32}},"message":{"text":"/input"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-js-view/webapp/view/app.view.js","uriBaseId":"%SRCROOT%","index":531},"region":{"startLine":18,"startColumn":20,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/view/app.view.json","uriBaseId":"%SRCROOT%","index":539},"region":{"startLine":13,"startColumn":15,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"c18df3aa119b40dc:1","primaryLocationStartColumnFingerprint":"11"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/view/app.view.json","uriBaseId":"%SRCROOT%","index":539},"region":{"startLine":9,"startColumn":13,"endColumn":23}},"message":{"text":"\"value\": \"{/input}\""}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":535},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/view/app.view.json","uriBaseId":"%SRCROOT%","index":539},"region":{"startLine":13,"startColumn":15,"endColumn":25}},"message":{"text":"\"content\": \"{/input}\""}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-json-view/webapp/view/app.view.json","uriBaseId":"%SRCROOT%","index":539},"region":{"startLine":9,"startColumn":13,"endColumn":23}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":287},"region":{"startLine":8,"startColumn":5,"endColumn":50}}}],"partialFingerprints":{"primaryLocationLineHash":"74b35e217af6aa05:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":287},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":283},"region":{"startLine":10,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":287},"region":{"startLine":8,"startColumn":5,"endColumn":50}},"message":{"text":"content={/input}"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":287},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":471},"region":{"startLine":9,"startColumn":5,"endColumn":40}}}],"partialFingerprints":{"primaryLocationLineHash":"9caa0f252fbe2993:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":471},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467},"region":{"startLine":31,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467},"region":{"startLine":9,"startColumn":25,"endColumn":53}},"message":{"text":"oModel. ... input')"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467},"region":{"startLine":9,"startColumn":17,"endColumn":53}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467},"region":{"startLine":10,"startColumn":44,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467},"region":{"startLine":32,"startColumn":17,"endColumn":30}},"message":{"text":"output1: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":471},"region":{"startLine":9,"startColumn":5,"endColumn":40}},"message":{"text":"content={/output1}"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":471},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":471},"region":{"startLine":17,"startColumn":5,"endColumn":40}}}],"partialFingerprints":{"primaryLocationLineHash":"2963bbd458e69924:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467},"region":{"startLine":18,"startColumn":31,"endColumn":60}},"message":{"text":"oEvent. ... Value()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467},"region":{"startLine":18,"startColumn":17,"endColumn":60}},"message":{"text":"sInputValue"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467},"region":{"startLine":19,"startColumn":44,"endColumn":55}},"message":{"text":"sInputValue"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467},"region":{"startLine":34,"startColumn":17,"endColumn":30}},"message":{"text":"output3: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":471},"region":{"startLine":17,"startColumn":5,"endColumn":40}},"message":{"text":"content={/output3}"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-event-handlers/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":467},"region":{"startLine":18,"startColumn":31,"endColumn":60}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":478},"region":{"startLine":8,"startColumn":5,"endColumn":37}}}],"partialFingerprints":{"primaryLocationLineHash":"97b29ed20ac04ff0:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":478},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":475},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":478},"region":{"startLine":8,"startColumn":5,"endColumn":37}},"message":{"text":"content={/input}"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":478},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":487},"region":{"startLine":8,"startColumn":5,"endColumn":38}}}],"partialFingerprints":{"primaryLocationLineHash":"1406455ac263a2d9:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":487},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483},"region":{"startLine":12,"startColumn":26,"endColumn":46}},"message":{"text":"new JSONModel(oData)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":487},"region":{"startLine":8,"startColumn":5,"endColumn":38}},"message":{"text":"content={/output}"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":487},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483},"region":{"startLine":15,"startColumn":25,"endColumn":53}},"message":{"text":"oModel. ... input')"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483},"region":{"startLine":15,"startColumn":17,"endColumn":53}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483},"region":{"startLine":16,"startColumn":43,"endColumn":48}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":483},"region":{"startLine":10,"startColumn":17,"endColumn":29}},"message":{"text":"output: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":487},"region":{"startLine":8,"startColumn":5,"endColumn":38}},"message":{"text":"content={/output}"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":487},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":504},"region":{"startLine":8,"startColumn":5,"endColumn":37}}}],"partialFingerprints":{"primaryLocationLineHash":"97b29ed20ac04ff0:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":504},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":498},"region":{"startLine":8,"startColumn":40,"endColumn":63}},"message":{"text":"\"contro ... l.json\""}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":504},"region":{"startLine":8,"startColumn":5,"endColumn":37}},"message":{"text":"content={/input}"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-external-model/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":504},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/view/app.view.html","uriBaseId":"%SRCROOT%","index":512},"region":{"startLine":8,"startColumn":11,"endColumn":34}}}],"partialFingerprints":{"primaryLocationLineHash":"5edd24be658b61a4:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/view/app.view.html","uriBaseId":"%SRCROOT%","index":512},"region":{"startLine":5,"startColumn":11,"endColumn":32}},"message":{"text":"data-value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":508},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/view/app.view.html","uriBaseId":"%SRCROOT%","index":512},"region":{"startLine":8,"startColumn":11,"endColumn":34}},"message":{"text":"data-content={/input}"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-html-view/webapp/view/app.view.html","uriBaseId":"%SRCROOT%","index":512},"region":{"startLine":5,"startColumn":11,"endColumn":32}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-xss","rule":{"id":"js/ui5-xss","index":1,"toolComponent":{"index":4}},"message":{"text":"XSS vulnerability due to [user-provided value](1).\nXSS vulnerability due to [user-provided value](2)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":567},"region":{"startLine":22,"startColumn":5,"endColumn":38}}}],"partialFingerprints":{"primaryLocationLineHash":"6e0d8f690e30e24a:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":567},"region":{"startLine":8,"startColumn":5,"endLine":10,"endColumn":27}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":562},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":567},"region":{"startLine":22,"startColumn":5,"endColumn":38}},"message":{"text":"content={/input}"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":567},"region":{"startLine":15,"startColumn":5,"endLine":18,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":562},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":567},"region":{"startLine":22,"startColumn":5,"endColumn":38}},"message":{"text":"content={/input}"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":567},"region":{"startLine":8,"startColumn":5,"endLine":10,"endColumn":27}},"message":{"text":"user-provided value"}},{"id":2,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5Xss/xss-webc-control/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":567},"region":{"startLine":15,"startColumn":5,"endLine":18,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-formula-injection","rule":{"id":"js/ui5-formula-injection","index":2,"toolComponent":{"index":4}},"message":{"text":"The content of a saved file depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":266},"region":{"startLine":17,"startColumn":27,"endColumn":45}}}],"partialFingerprints":{"primaryLocationLineHash":"41899ff1a967017d:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":271},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":267},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":266},"region":{"startLine":8,"startColumn":23,"endColumn":38}},"message":{"text":"{ type: \"int\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":266},"region":{"startLine":17,"startColumn":27,"endColumn":45}},"message":{"text":"oControl.getText()"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":271},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-formula-injection","rule":{"id":"js/ui5-formula-injection","index":2,"toolComponent":{"index":4}},"message":{"text":"The content of a saved file depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":274},"region":{"startLine":23,"startColumn":27,"endColumn":39}}}],"partialFingerprints":{"primaryLocationLineHash":"9afa5fd07ee36af6:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":279},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":275},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":274},"region":{"startLine":9,"startColumn":23,"endColumn":41}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":274},"region":{"startLine":15,"startColumn":29,"endColumn":47}},"message":{"text":"oControl.getText()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":274},"region":{"startLine":15,"startColumn":21,"endColumn":47}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":274},"region":{"startLine":17,"startColumn":53,"endColumn":58}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":274},"region":{"startLine":17,"startColumn":46,"endColumn":59}},"message":{"text":"String(value)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":274},"region":{"startLine":17,"startColumn":36,"endColumn":60}},"message":{"text":"encodeX ... value))"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":274},"region":{"startLine":17,"startColumn":21,"endColumn":60}},"message":{"text":"xssSanitized"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":274},"region":{"startLine":23,"startColumn":27,"endColumn":39}},"message":{"text":"xssSanitized"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":279},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-formula-injection","rule":{"id":"js/ui5-formula-injection","index":2,"toolComponent":{"index":4}},"message":{"text":"The content of a saved file depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":283},"region":{"startLine":16,"startColumn":23,"endColumn":51}}}],"partialFingerprints":{"primaryLocationLineHash":"e701acdf85af03b4:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":287},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":283},"region":{"startLine":10,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":283},"region":{"startLine":16,"startColumn":23,"endColumn":51}},"message":{"text":"oModel. ... input')"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5FormulaInjection/formula-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":287},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-path-injection","rule":{"id":"js/ui5-path-injection","index":3,"toolComponent":{"index":4}},"message":{"text":"The path of a saved file depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":370},"region":{"startLine":17,"startColumn":43,"endColumn":61}}}],"partialFingerprints":{"primaryLocationLineHash":"68e5ff83e2198ff5:1","primaryLocationStartColumnFingerprint":"26"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":374},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":371},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":370},"region":{"startLine":8,"startColumn":23,"endColumn":38}},"message":{"text":"{ type: \"int\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":370},"region":{"startLine":17,"startColumn":43,"endColumn":61}},"message":{"text":"oControl.getText()"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-property-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":374},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-path-injection","rule":{"id":"js/ui5-path-injection","index":3,"toolComponent":{"index":4}},"message":{"text":"The path of a saved file depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":378},"region":{"startLine":23,"startColumn":43,"endColumn":55}}}],"partialFingerprints":{"primaryLocationLineHash":"b79de9dff4d8f842:1","primaryLocationStartColumnFingerprint":"26"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":384},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":380},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":378},"region":{"startLine":9,"startColumn":23,"endColumn":41}},"message":{"text":"{ type: \"string\" }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":378},"region":{"startLine":15,"startColumn":29,"endColumn":47}},"message":{"text":"oControl.getText()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":378},"region":{"startLine":15,"startColumn":21,"endColumn":47}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":378},"region":{"startLine":17,"startColumn":53,"endColumn":58}},"message":{"text":"value"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":378},"region":{"startLine":17,"startColumn":46,"endColumn":59}},"message":{"text":"String(value)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":378},"region":{"startLine":17,"startColumn":36,"endColumn":60}},"message":{"text":"encodeX ... value))"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":378},"region":{"startLine":17,"startColumn":21,"endColumn":60}},"message":{"text":"xssSanitized"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/control/xss.js","uriBaseId":"%SRCROOT%","index":378},"region":{"startLine":23,"startColumn":43,"endColumn":55}},"message":{"text":"xssSanitized"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-custom-control-sanitized/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":384},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-path-injection","rule":{"id":"js/ui5-path-injection","index":3,"toolComponent":{"index":4}},"message":{"text":"The path of a saved file depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":388},"region":{"startLine":16,"startColumn":39,"endColumn":67}}}],"partialFingerprints":{"primaryLocationLineHash":"de27f6d546a116e8:1","primaryLocationStartColumnFingerprint":"26"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":392},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":388},"region":{"startLine":10,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":388},"region":{"startLine":16,"startColumn":39,"endColumn":67}},"message":{"text":"oModel. ... input')"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5PathInjection/path-html-control-df/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":392},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/ui5-log-injection-to-http","rule":{"id":"js/ui5-log-injection-to-http","index":4,"toolComponent":{"index":4}},"message":{"text":"Outbound network request depends on [user-provided](1) log data."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":312},"region":{"startLine":11,"startColumn":19,"endColumn":26}}}],"partialFingerprints":{"primaryLocationLineHash":"83472515fe67207a:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":314},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":308},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":308},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":308},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":308},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":312},"region":{"startLine":7,"startColumn":23,"endColumn":42}},"message":{"text":"Log.getLogEntries()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":312},"region":{"startLine":7,"startColumn":23,"endColumn":45}},"message":{"text":"Log.get ... es()[0]"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":312},"region":{"startLine":7,"startColumn":23,"endColumn":53}},"message":{"text":"Log.get ... message"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":312},"region":{"startLine":7,"startColumn":13,"endColumn":53}},"message":{"text":"message"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":312},"region":{"startLine":11,"startColumn":19,"endColumn":26}},"message":{"text":"message"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":314},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided"}}]},{"ruleId":"js/ui5-log-injection-to-http","rule":{"id":"js/ui5-log-injection-to-http","index":4,"toolComponent":{"index":4}},"message":{"text":"Outbound network request depends on [user-provided](1) log data."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":318},"region":{"startLine":24,"startColumn":23,"endColumn":40}}}],"partialFingerprints":{"primaryLocationLineHash":"de5157ed7a614f91:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":322},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":318},"region":{"startLine":8,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":318},"region":{"startLine":14,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":318},"region":{"startLine":14,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":318},"region":{"startLine":17,"startColumn":19,"endColumn":24}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":318},"region":{"startLine":20,"startColumn":33,"endColumn":42}},"message":{"text":"oLogEntry"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":318},"region":{"startLine":24,"startColumn":23,"endColumn":32}},"message":{"text":"oLogEntry"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":318},"region":{"startLine":24,"startColumn":23,"endColumn":40}},"message":{"text":"oLogEntry.message"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":322},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided"}}]},{"ruleId":"js/ui5-log-injection-to-http","rule":{"id":"js/ui5-log-injection-to-http","index":4,"toolComponent":{"index":4}},"message":{"text":"Outbound network request depends on [user-provided](1) log data."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":330},"region":{"startLine":13,"startColumn":19,"endColumn":36}}}],"partialFingerprints":{"primaryLocationLineHash":"d67a8ded95b9934b:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":331},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":326},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":326},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":326},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":326},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":330},"region":{"startLine":9,"startColumn":29,"endColumn":38}},"message":{"text":"oLogEntry"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":330},"region":{"startLine":13,"startColumn":19,"endColumn":28}},"message":{"text":"oLogEntry"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":330},"region":{"startLine":13,"startColumn":19,"endColumn":36}},"message":{"text":"oLogEntry.message"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":331},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided"}}]},{"ruleId":"js/ui5-log-injection-to-http","rule":{"id":"js/ui5-log-injection-to-http","index":4,"toolComponent":{"index":4}},"message":{"text":"Outbound network request depends on [user-provided](1) log data."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":356},"region":{"startLine":13,"startColumn":19,"endColumn":33}}}],"partialFingerprints":{"primaryLocationLineHash":"84768bf2b1d6e5a5:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":360},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":356},"region":{"startLine":9,"startColumn":29,"endColumn":35}},"message":{"text":"oEvent"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":356},"region":{"startLine":13,"startColumn":19,"endColumn":25}},"message":{"text":"oEvent"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":356},"region":{"startLine":13,"startColumn":19,"endColumn":33}},"message":{"text":"oEvent.message"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":360},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided"}}]},{"ruleId":"js/ui5-log-injection-to-http","rule":{"id":"js/ui5-log-injection-to-http","index":4,"toolComponent":{"index":4}},"message":{"text":"Outbound network request depends on [user-provided](1) log data."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":357},"region":{"startLine":11,"startColumn":19,"endColumn":26}}}],"partialFingerprints":{"primaryLocationLineHash":"83472515fe67207a:1","primaryLocationStartColumnFingerprint":"10"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":360},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":357},"region":{"startLine":7,"startColumn":23,"endColumn":42}},"message":{"text":"Log.getLogEntries()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":357},"region":{"startLine":7,"startColumn":23,"endColumn":45}},"message":{"text":"Log.get ... es()[0]"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":357},"region":{"startLine":7,"startColumn":23,"endColumn":53}},"message":{"text":"Log.get ... message"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":357},"region":{"startLine":7,"startColumn":13,"endColumn":53}},"message":{"text":"message"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":357},"region":{"startLine":11,"startColumn":19,"endColumn":26}},"message":{"text":"message"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":360},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided"}}]},{"ruleId":"js/ui5-unsafe-log-access","rule":{"id":"js/ui5-unsafe-log-access","index":5,"toolComponent":{"index":4}},"message":{"text":"Accessed log entries depend on [user-provided data](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":348},"region":{"startLine":5,"startColumn":9,"endLine":24,"endColumn":10}}}],"partialFingerprints":{"primaryLocationLineHash":"fad475448f62563d:1","primaryLocationStartColumnFingerprint":"-139"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":348},"region":{"startLine":6,"startColumn":5,"endLine":8,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":344},"region":{"startLine":9,"startColumn":17,"endColumn":28}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":344},"region":{"startLine":15,"startColumn":25,"endColumn":53}},"message":{"text":"oModel. ... input')"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":344},"region":{"startLine":15,"startColumn":17,"endColumn":53}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":344},"region":{"startLine":17,"startColumn":34,"endColumn":39}},"message":{"text":"input"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-notifications/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":348},"region":{"startLine":6,"startColumn":5,"endLine":8,"endColumn":29}},"message":{"text":"user-provided data"}}]},{"ruleId":"js/ui5-unsafe-log-access","rule":{"id":"js/ui5-unsafe-log-access","index":5,"toolComponent":{"index":4}},"message":{"text":"Accessed log entries depend on [user-provided data](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":312},"region":{"startLine":7,"startColumn":23,"endColumn":42}}}],"partialFingerprints":{"primaryLocationLineHash":"20e0edf06769f248:1","primaryLocationStartColumnFingerprint":"14"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":314},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":308},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":308},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":308},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":308},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-getLogEntries/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":314},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided data"}}]},{"ruleId":"js/ui5-unsafe-log-access","rule":{"id":"js/ui5-unsafe-log-access","index":5,"toolComponent":{"index":4}},"message":{"text":"Accessed log entries depend on [user-provided data](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":318},"region":{"startLine":20,"startColumn":33,"endColumn":42}}}],"partialFingerprints":{"primaryLocationLineHash":"eb64edf724fde59e:1","primaryLocationStartColumnFingerprint":"22"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":322},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":318},"region":{"startLine":8,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":318},"region":{"startLine":14,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":318},"region":{"startLine":14,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":318},"region":{"startLine":17,"startColumn":19,"endColumn":24}},"message":{"text":"input"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-js-object/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":322},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided data"}}]},{"ruleId":"js/ui5-unsafe-log-access","rule":{"id":"js/ui5-unsafe-log-access","index":5,"toolComponent":{"index":4}},"message":{"text":"Accessed log entries depend on [user-provided data](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":330},"region":{"startLine":9,"startColumn":29,"endColumn":38}}}],"partialFingerprints":{"primaryLocationLineHash":"eb64edf724fde59e:1","primaryLocationStartColumnFingerprint":"22"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":331},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":326},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":326},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":326},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":326},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-http-log-listener-sap-module/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":331},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided data"}}]},{"ruleId":"js/ui5-unsafe-log-access","rule":{"id":"js/ui5-unsafe-log-access","index":5,"toolComponent":{"index":4}},"message":{"text":"Accessed log entries depend on [user-provided data](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/CustomLogListener.js","uriBaseId":"%SRCROOT%","index":356},"region":{"startLine":9,"startColumn":29,"endColumn":35}}}],"partialFingerprints":{"primaryLocationLineHash":"e10e4681e4f3a5f2:1","primaryLocationStartColumnFingerprint":"22"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":360},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":360},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided data"}}]},{"ruleId":"js/ui5-unsafe-log-access","rule":{"id":"js/ui5-unsafe-log-access","index":5,"toolComponent":{"index":4}},"message":{"text":"Accessed log entries depend on [user-provided data](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/utils/LogEntriesToHttp.js","uriBaseId":"%SRCROOT%","index":357},"region":{"startLine":7,"startColumn":23,"endColumn":42}}}],"partialFingerprints":{"primaryLocationLineHash":"20e0edf06769f248:1","primaryLocationStartColumnFingerprint":"14"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":360},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"value={/input}"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":11,"startColumn":11,"endColumn":22}},"message":{"text":"input: null"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":17,"startColumn":21,"endColumn":49}},"message":{"text":"oModel. ... input\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":17,"startColumn":13,"endColumn":49}},"message":{"text":"input"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/controller/app.controller.js","uriBaseId":"%SRCROOT%","index":352},"region":{"startLine":18,"startColumn":30,"endColumn":35}},"message":{"text":"input"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/ui5/test/queries/UI5LogInjection/log-entry-flows-to-sinks/webapp/view/app.view.xml","uriBaseId":"%SRCROOT%","index":360},"region":{"startLine":5,"startColumn":5,"endLine":7,"endColumn":29}},"message":{"text":"user-provided data"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":15,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"77d560033d30e171:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":13,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":13,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":13,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":14,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":14,"startColumn":48,"endColumn":58}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":14,"startColumn":21,"endColumn":59}},"message":{"text":"SELECT. ... \" + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":14,"startColumn":13,"endColumn":59}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":15,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":13,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":21,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"8ebfcdb6d8e3226a:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":19,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":19,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":19,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":20,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":20,"startColumn":48,"endColumn":58}},"message":{"text":"`ID=` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":20,"startColumn":21,"endColumn":59}},"message":{"text":"SELECT. ... ` + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":20,"startColumn":13,"endColumn":59}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":21,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":19,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":27,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"d00fe3143fd387fc:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":25,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":25,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":25,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":26,"startColumn":54,"endColumn":56}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":26,"startColumn":48,"endColumn":58}},"message":{"text":"`ID=${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":26,"startColumn":21,"endColumn":59}},"message":{"text":"SELECT. ... ${id}`)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":26,"startColumn":13,"endColumn":59}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":27,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":25,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":38,"startColumn":7,"endColumn":45}}}],"partialFingerprints":{"primaryLocationLineHash":"29bf643a411d8976:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":37,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":37,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":37,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":38,"startColumn":42,"endColumn":44}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":38,"startColumn":33,"endColumn":44}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":37,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":43,"startColumn":7,"endColumn":45}}}],"partialFingerprints":{"primaryLocationLineHash":"ef21b26f64e7e417:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":42,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":42,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":42,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":43,"startColumn":42,"endColumn":44}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":43,"startColumn":33,"endColumn":44}},"message":{"text":"`ID =` + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":42,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":48,"startColumn":7,"endColumn":44}}}],"partialFingerprints":{"primaryLocationLineHash":"9d03b555ff929ea0:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":47,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":47,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":47,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":48,"startColumn":39,"endColumn":41}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":48,"startColumn":33,"endColumn":43}},"message":{"text":"`ID=${id}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":47,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":73,"startColumn":7,"endColumn":78}}}],"partialFingerprints":{"primaryLocationLineHash":"b7f3fae4cc5d3224:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":73,"startColumn":49,"endColumn":55}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":73,"startColumn":33,"endColumn":55}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":73,"startColumn":75,"endColumn":77}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":73,"startColumn":63,"endColumn":77}},"message":{"text":"\"col1 = \" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":72,"startColumn":30,"endColumn":38}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":78,"startColumn":7,"endColumn":78}}}],"partialFingerprints":{"primaryLocationLineHash":"6a3ab8595760f6c0:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":78,"startColumn":49,"endColumn":55}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":78,"startColumn":33,"endColumn":55}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":78,"startColumn":75,"endColumn":77}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":78,"startColumn":63,"endColumn":77}},"message":{"text":"`col1 = ` + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":77,"startColumn":30,"endColumn":38}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":83,"startColumn":7,"endColumn":78}}}],"partialFingerprints":{"primaryLocationLineHash":"342691d0eacbdb40:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":83,"startColumn":49,"endColumn":55}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":83,"startColumn":33,"endColumn":55}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":83,"startColumn":73,"endColumn":75}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":83,"startColumn":63,"endColumn":77}},"message":{"text":"`col1 = ${id}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":82,"startColumn":30,"endColumn":38}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":88,"startColumn":7,"endColumn":76}}}],"partialFingerprints":{"primaryLocationLineHash":"e84c1b8cf5608a54:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":87,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":87,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":87,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":88,"startColumn":49,"endColumn":55}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":88,"startColumn":33,"endColumn":55}},"message":{"text":"\"col1 = ... amount"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":87,"startColumn":30,"endColumn":38}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":123,"startColumn":7,"endColumn":47}}}],"partialFingerprints":{"primaryLocationLineHash":"c8e83fb2aff22206:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":122,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":122,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":122,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":123,"startColumn":44,"endColumn":46}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":123,"startColumn":35,"endColumn":46}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":122,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":128,"startColumn":7,"endColumn":47}}}],"partialFingerprints":{"primaryLocationLineHash":"980ed798eb9fd08f:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":127,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":127,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":127,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":128,"startColumn":44,"endColumn":46}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":128,"startColumn":35,"endColumn":46}},"message":{"text":"`ID =` + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":127,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":133,"startColumn":7,"endColumn":48}}}],"partialFingerprints":{"primaryLocationLineHash":"580b744db9ff8fbe:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":132,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":132,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":132,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":133,"startColumn":43,"endColumn":45}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":133,"startColumn":35,"endColumn":47}},"message":{"text":"`ID = ${id}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":132,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":145,"startColumn":13,"endColumn":58}}}],"partialFingerprints":{"primaryLocationLineHash":"d28f5758e8f2b020:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":143,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":143,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":143,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":145,"startColumn":55,"endColumn":57}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":145,"startColumn":47,"endColumn":57}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":145,"startColumn":13,"endColumn":58}},"message":{"text":"SELECT. ... \" + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":145,"startColumn":7,"endColumn":58}},"message":{"text":"await S ... \" + id)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":143,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":151,"startColumn":13,"endColumn":58}}}],"partialFingerprints":{"primaryLocationLineHash":"39e9cbf3cbd9ae3c:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":149,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":149,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":149,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":151,"startColumn":55,"endColumn":57}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":151,"startColumn":47,"endColumn":57}},"message":{"text":"`ID=` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":151,"startColumn":13,"endColumn":58}},"message":{"text":"SELECT. ... ` + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":151,"startColumn":7,"endColumn":58}},"message":{"text":"await S ... ` + id)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":149,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":157,"startColumn":13,"endColumn":58}}}],"partialFingerprints":{"primaryLocationLineHash":"b86271478f0d53f6:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":155,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":155,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":155,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":157,"startColumn":53,"endColumn":55}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":157,"startColumn":47,"endColumn":57}},"message":{"text":"`ID=${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":157,"startColumn":13,"endColumn":58}},"message":{"text":"SELECT. ... ${id}`)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":157,"startColumn":7,"endColumn":58}},"message":{"text":"await S ... ${id}`)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":155,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":13,"endColumn":88}}}],"partialFingerprints":{"primaryLocationLineHash":"12cb305ba21e438f:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":66,"endColumn":68}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":47,"endColumn":68}},"message":{"text":"\"col1 = ... \" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":13,"endColumn":88}},"message":{"text":"UPDATE. ... \" + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":7,"endColumn":88}},"message":{"text":"await U ... \" + id)"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":85,"endColumn":87}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":76,"endColumn":87}},"message":{"text":"\"ID =\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":13,"endColumn":88}},"message":{"text":"UPDATE. ... \" + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":187,"startColumn":7,"endColumn":88}},"message":{"text":"await U ... \" + id)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":185,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":13,"endColumn":88}}}],"partialFingerprints":{"primaryLocationLineHash":"16a5323b901d361b:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":66,"endColumn":68}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":47,"endColumn":68}},"message":{"text":"\"col1 = ... \" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":13,"endColumn":88}},"message":{"text":"UPDATE. ... ` + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":7,"endColumn":88}},"message":{"text":"await U ... ` + id)"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":85,"endColumn":87}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":76,"endColumn":87}},"message":{"text":"`ID =` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":13,"endColumn":88}},"message":{"text":"UPDATE. ... ` + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":193,"startColumn":7,"endColumn":88}},"message":{"text":"await U ... ` + id)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":191,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":13,"endColumn":89}}}],"partialFingerprints":{"primaryLocationLineHash":"ec3b26f51764a997:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":66,"endColumn":68}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":47,"endColumn":68}},"message":{"text":"\"col1 = ... \" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":13,"endColumn":89}},"message":{"text":"UPDATE. ... ${id}`)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":7,"endColumn":89}},"message":{"text":"await U ... ${id}`)"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":84,"endColumn":86}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":76,"endColumn":88}},"message":{"text":"`ID = ${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":13,"endColumn":89}},"message":{"text":"UPDATE. ... ${id}`)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":199,"startColumn":7,"endColumn":89}},"message":{"text":"await U ... ${id}`)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":197,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":205,"startColumn":13,"endColumn":87}}}],"partialFingerprints":{"primaryLocationLineHash":"1ab4a8658ea07927:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":203,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":203,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":203,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":205,"startColumn":66,"endColumn":68}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":205,"startColumn":47,"endColumn":68}},"message":{"text":"\"col1 = ... \" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":205,"startColumn":13,"endColumn":87}},"message":{"text":"UPDATE. ... ${id}`"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":205,"startColumn":7,"endColumn":87}},"message":{"text":"await U ... ${id}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":203,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":229,"startColumn":13,"endColumn":59}}}],"partialFingerprints":{"primaryLocationLineHash":"c191f9b82574b477:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":227,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":227,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":227,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":229,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":229,"startColumn":47,"endColumn":58}},"message":{"text":"\"ID =\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":229,"startColumn":13,"endColumn":59}},"message":{"text":"DELETE. ... \" + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":229,"startColumn":7,"endColumn":59}},"message":{"text":"await D ... \" + id)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":227,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":235,"startColumn":13,"endColumn":59}}}],"partialFingerprints":{"primaryLocationLineHash":"28ec6e53085bb293:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":233,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":233,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":233,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":235,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":235,"startColumn":47,"endColumn":58}},"message":{"text":"`ID =` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":235,"startColumn":13,"endColumn":59}},"message":{"text":"DELETE. ... ` + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":235,"startColumn":7,"endColumn":59}},"message":{"text":"await D ... ` + id)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":233,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":241,"startColumn":13,"endColumn":60}}}],"partialFingerprints":{"primaryLocationLineHash":"a76513a6cb8f584d:1","primaryLocationStartColumnFingerprint":"6"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":239,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":239,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":239,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":241,"startColumn":55,"endColumn":57}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":241,"startColumn":47,"endColumn":59}},"message":{"text":"`ID = ${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":241,"startColumn":13,"endColumn":60}},"message":{"text":"DELETE. ... ${id}`)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":241,"startColumn":7,"endColumn":60}},"message":{"text":"await D ... ${id}`)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":239,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":254,"startColumn":16,"endColumn":21}}}],"partialFingerprints":{"primaryLocationLineHash":"e396e28dff49f821:1","primaryLocationStartColumnFingerprint":"9"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":252,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":252,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":252,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":253,"startColumn":63,"endColumn":65}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":253,"startColumn":55,"endColumn":65}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":253,"startColumn":21,"endColumn":66}},"message":{"text":"SELECT. ... \" + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":253,"startColumn":13,"endColumn":66}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":254,"startColumn":16,"endColumn":21}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":252,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":259,"startColumn":7,"endColumn":53}}}],"partialFingerprints":{"primaryLocationLineHash":"4710d78c10aa291b:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":258,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":258,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":258,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":259,"startColumn":50,"endColumn":52}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":259,"startColumn":41,"endColumn":52}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":258,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":269,"startColumn":7,"endColumn":86}}}],"partialFingerprints":{"primaryLocationLineHash":"6f850daa3f58c276:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":269,"startColumn":57,"endColumn":63}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":269,"startColumn":41,"endColumn":63}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":269,"startColumn":83,"endColumn":85}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":269,"startColumn":71,"endColumn":85}},"message":{"text":"\"col1 = \" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":268,"startColumn":30,"endColumn":38}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":284,"startColumn":7,"endColumn":55}}}],"partialFingerprints":{"primaryLocationLineHash":"b9f8b15603ad6b38:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":283,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":283,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":283,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":284,"startColumn":52,"endColumn":54}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":284,"startColumn":43,"endColumn":54}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":283,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":292,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"d576c66caddc969a:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":289,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":289,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":289,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":291,"startColumn":63,"endColumn":65}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":291,"startColumn":55,"endColumn":65}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":291,"startColumn":21,"endColumn":66}},"message":{"text":"SELECT. ... \" + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":291,"startColumn":13,"endColumn":66}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":292,"startColumn":20,"endColumn":25}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":289,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":298,"startColumn":7,"endColumn":57}}}],"partialFingerprints":{"primaryLocationLineHash":"3b0cd005704d307:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":296,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":296,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":296,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":298,"startColumn":54,"endColumn":56}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":298,"startColumn":45,"endColumn":56}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":296,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":310,"startColumn":7,"endColumn":90}}}],"partialFingerprints":{"primaryLocationLineHash":"a2422d95f31b0028:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":310,"startColumn":61,"endColumn":67}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":310,"startColumn":45,"endColumn":67}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":310,"startColumn":87,"endColumn":89}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":310,"startColumn":75,"endColumn":89}},"message":{"text":"\"col1 = \" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":308,"startColumn":30,"endColumn":38}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":328,"startColumn":7,"endColumn":59}}}],"partialFingerprints":{"primaryLocationLineHash":"53b68a547e06f5f5:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":326,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":326,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":326,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":328,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":328,"startColumn":47,"endColumn":58}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":326,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":336,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"ef4fafb0cb633d3e:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":333,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":333,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":333,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":335,"startColumn":72,"endColumn":74}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":335,"startColumn":28,"endColumn":74}},"message":{"text":"\"SELECT ... =\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":335,"startColumn":21,"endColumn":75}},"message":{"text":"cds.ql( ... \" + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":335,"startColumn":13,"endColumn":75}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":336,"startColumn":20,"endColumn":25}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":333,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":343,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"70bf4adf3ece4680:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":340,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":340,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":340,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":342,"startColumn":72,"endColumn":74}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":342,"startColumn":28,"endColumn":74}},"message":{"text":"`SELECT ... =` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":342,"startColumn":21,"endColumn":75}},"message":{"text":"cds.ql( ... ` + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":342,"startColumn":13,"endColumn":75}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":343,"startColumn":20,"endColumn":25}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":340,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":350,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"b17718767883cb21:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":347,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":347,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":347,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":349,"startColumn":71,"endColumn":73}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":349,"startColumn":28,"endColumn":75}},"message":{"text":"`SELECT ... ${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":349,"startColumn":21,"endColumn":76}},"message":{"text":"cds.ql( ... ${id}`)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":349,"startColumn":13,"endColumn":76}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":350,"startColumn":20,"endColumn":25}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":347,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":364,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"a684f52297f0c4e5:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":362,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":362,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":362,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":363,"startColumn":72,"endColumn":74}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":363,"startColumn":35,"endColumn":74}},"message":{"text":"\"SELECT ... =\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":363,"startColumn":21,"endColumn":75}},"message":{"text":"cds.par ... \" + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":363,"startColumn":13,"endColumn":75}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":364,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":362,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":370,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"d550e0002cd278da:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":368,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":368,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":368,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":369,"startColumn":72,"endColumn":74}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":369,"startColumn":35,"endColumn":74}},"message":{"text":"`SELECT ... =` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":369,"startColumn":21,"endColumn":75}},"message":{"text":"cds.par ... ` + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":369,"startColumn":13,"endColumn":75}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":370,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":368,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":376,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"6a27aa8587353580:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":374,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":374,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":374,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":375,"startColumn":71,"endColumn":73}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":375,"startColumn":35,"endColumn":75}},"message":{"text":"`SELECT ... ${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":375,"startColumn":21,"endColumn":76}},"message":{"text":"cds.par ... ${id}`)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":375,"startColumn":13,"endColumn":76}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":376,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":374,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":389,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"69fde7291c8fc74e:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":387,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":387,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":387,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":388,"startColumn":62,"endColumn":64}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":388,"startColumn":25,"endColumn":64}},"message":{"text":"\"SELECT ... =\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":388,"startColumn":21,"endColumn":65}},"message":{"text":"CQL(\"SE ... \" + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":388,"startColumn":13,"endColumn":65}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":389,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":387,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":395,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"98c9d206b1717b43:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":393,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":393,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":393,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":394,"startColumn":62,"endColumn":64}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":394,"startColumn":25,"endColumn":64}},"message":{"text":"`SELECT ... =` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":394,"startColumn":21,"endColumn":65}},"message":{"text":"CQL(`SE ... ` + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":394,"startColumn":13,"endColumn":65}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":395,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":393,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":401,"startColumn":15,"endColumn":20}}}],"partialFingerprints":{"primaryLocationLineHash":"d013e7d9793c061d:1","primaryLocationStartColumnFingerprint":"8"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":399,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":399,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":399,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":400,"startColumn":61,"endColumn":63}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":400,"startColumn":25,"endColumn":65}},"message":{"text":"`SELECT ... ${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":400,"startColumn":21,"endColumn":66}},"message":{"text":"CQL(`SE ... ${id}`)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":400,"startColumn":13,"endColumn":66}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":401,"startColumn":15,"endColumn":20}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":399,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":415,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"3fb9a1da0acd43ae:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":412,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":412,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":412,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":414,"startColumn":58,"endColumn":60}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":414,"startColumn":13,"endColumn":60}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":415,"startColumn":20,"endColumn":25}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":412,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":422,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"80716f714482c84f:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":419,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":419,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":419,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":421,"startColumn":58,"endColumn":60}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":421,"startColumn":13,"endColumn":60}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":422,"startColumn":20,"endColumn":25}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":419,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":429,"startColumn":20,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"442267e255b8b54f:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":426,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":426,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":426,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":428,"startColumn":57,"endColumn":59}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":428,"startColumn":13,"endColumn":61}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":429,"startColumn":20,"endColumn":25}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":426,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":438,"startColumn":16,"endColumn":21}}}],"partialFingerprints":{"primaryLocationLineHash":"9e2cec8d31f74921:1","primaryLocationStartColumnFingerprint":"7"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":434,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":434,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":434,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":436,"startColumn":63,"endColumn":65}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":436,"startColumn":55,"endColumn":65}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":436,"startColumn":21,"endColumn":66}},"message":{"text":"SELECT. ... \" + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":436,"startColumn":13,"endColumn":66}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":438,"startColumn":16,"endColumn":21}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":434,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":446,"startColumn":9,"endColumn":53}}}],"partialFingerprints":{"primaryLocationLineHash":"73ba3ff2097c8fd1:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":443,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":443,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":443,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":446,"startColumn":50,"endColumn":52}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":446,"startColumn":41,"endColumn":52}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":443,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":462,"startColumn":9,"endColumn":86}}}],"partialFingerprints":{"primaryLocationLineHash":"b6b098d76a485f57:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":462,"startColumn":57,"endColumn":63}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":462,"startColumn":41,"endColumn":63}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":462,"startColumn":83,"endColumn":85}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":462,"startColumn":71,"endColumn":85}},"message":{"text":"\"col1 = \" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":459,"startColumn":30,"endColumn":38}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":486,"startColumn":9,"endColumn":55}}}],"partialFingerprints":{"primaryLocationLineHash":"930f7b78e736551b:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":483,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":483,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":483,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":486,"startColumn":52,"endColumn":54}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":486,"startColumn":43,"endColumn":54}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":483,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":495,"startColumn":16,"endColumn":21}}}],"partialFingerprints":{"primaryLocationLineHash":"cd8266cd9539b760:1","primaryLocationStartColumnFingerprint":"7"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":492,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":492,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":492,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":493,"startColumn":63,"endColumn":65}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":493,"startColumn":55,"endColumn":65}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":493,"startColumn":21,"endColumn":66}},"message":{"text":"SELECT. ... \" + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":493,"startColumn":13,"endColumn":66}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":495,"startColumn":16,"endColumn":21}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":492,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":502,"startColumn":9,"endColumn":53}}}],"partialFingerprints":{"primaryLocationLineHash":"5298b55f76bd7434:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":500,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":500,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":500,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":502,"startColumn":50,"endColumn":52}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":502,"startColumn":41,"endColumn":52}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":500,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":516,"startColumn":9,"endColumn":86}}}],"partialFingerprints":{"primaryLocationLineHash":"f72e0c4e0d3cd372:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":516,"startColumn":57,"endColumn":63}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":516,"startColumn":41,"endColumn":63}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":516,"startColumn":83,"endColumn":85}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":516,"startColumn":71,"endColumn":85}},"message":{"text":"\"col1 = \" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":514,"startColumn":30,"endColumn":38}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":537,"startColumn":9,"endColumn":55}}}],"partialFingerprints":{"primaryLocationLineHash":"d38ceeef8a2ac936:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":535,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":535,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":535,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":537,"startColumn":52,"endColumn":54}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":537,"startColumn":43,"endColumn":54}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":535,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":546,"startColumn":16,"endColumn":21}}}],"partialFingerprints":{"primaryLocationLineHash":"e46cd48130ebf859:1","primaryLocationStartColumnFingerprint":"7"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":543,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":543,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":543,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":544,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":544,"startColumn":48,"endColumn":58}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":544,"startColumn":21,"endColumn":59}},"message":{"text":"SELECT. ... \" + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":544,"startColumn":13,"endColumn":59}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":546,"startColumn":16,"endColumn":21}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":543,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":553,"startColumn":9,"endColumn":46}}}],"partialFingerprints":{"primaryLocationLineHash":"ecbeb50b953c6892:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":551,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":551,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":551,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":553,"startColumn":43,"endColumn":45}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":553,"startColumn":34,"endColumn":45}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":551,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":567,"startColumn":9,"endColumn":79}}}],"partialFingerprints":{"primaryLocationLineHash":"558b998facd3da37:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":567,"startColumn":50,"endColumn":56}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":567,"startColumn":34,"endColumn":56}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":567,"startColumn":76,"endColumn":78}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":567,"startColumn":64,"endColumn":78}},"message":{"text":"\"col1 = \" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":565,"startColumn":30,"endColumn":38}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":588,"startColumn":9,"endColumn":48}}}],"partialFingerprints":{"primaryLocationLineHash":"91becd2fa07cdcc9:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":586,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":586,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":586,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":588,"startColumn":45,"endColumn":47}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":588,"startColumn":36,"endColumn":47}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":586,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":597,"startColumn":16,"endColumn":21}}}],"partialFingerprints":{"primaryLocationLineHash":"fb574234cc9e3952:1","primaryLocationStartColumnFingerprint":"7"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":594,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":594,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":594,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":595,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":595,"startColumn":48,"endColumn":58}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":595,"startColumn":21,"endColumn":59}},"message":{"text":"SELECT. ... \" + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":595,"startColumn":13,"endColumn":59}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":597,"startColumn":16,"endColumn":21}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":594,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":604,"startColumn":9,"endColumn":46}}}],"partialFingerprints":{"primaryLocationLineHash":"ecbeb50b995e8367:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":602,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":602,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":602,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":604,"startColumn":43,"endColumn":45}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":604,"startColumn":34,"endColumn":45}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":602,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":618,"startColumn":9,"endColumn":79}}}],"partialFingerprints":{"primaryLocationLineHash":"558b998facd3da37:2","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":618,"startColumn":50,"endColumn":56}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":618,"startColumn":34,"endColumn":56}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":618,"startColumn":76,"endColumn":78}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":618,"startColumn":64,"endColumn":78}},"message":{"text":"\"col1 = \" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":616,"startColumn":30,"endColumn":38}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":639,"startColumn":9,"endColumn":48}}}],"partialFingerprints":{"primaryLocationLineHash":"91becd2fa09975ba:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":637,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":637,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":637,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":639,"startColumn":45,"endColumn":47}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":639,"startColumn":36,"endColumn":47}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":637,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":647,"startColumn":18,"endColumn":23}}}],"partialFingerprints":{"primaryLocationLineHash":"1e42917dcc40a599:1","primaryLocationStartColumnFingerprint":"11"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":645,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":645,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":645,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":646,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":646,"startColumn":48,"endColumn":58}},"message":{"text":"\"ID=\" + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":646,"startColumn":21,"endColumn":59}},"message":{"text":"SELECT. ... \" + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":646,"startColumn":13,"endColumn":59}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":647,"startColumn":18,"endColumn":23}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":645,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":653,"startColumn":18,"endColumn":23}}}],"partialFingerprints":{"primaryLocationLineHash":"e6651c34faab8e22:1","primaryLocationStartColumnFingerprint":"11"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":651,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":651,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":651,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":652,"startColumn":56,"endColumn":58}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":652,"startColumn":48,"endColumn":58}},"message":{"text":"`ID=` + id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":652,"startColumn":21,"endColumn":59}},"message":{"text":"SELECT. ... ` + id)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":652,"startColumn":13,"endColumn":59}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":653,"startColumn":18,"endColumn":23}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":651,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":659,"startColumn":18,"endColumn":23}}}],"partialFingerprints":{"primaryLocationLineHash":"35109df28cbbc5c:1","primaryLocationStartColumnFingerprint":"11"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":657,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":657,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":657,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":658,"startColumn":54,"endColumn":56}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":658,"startColumn":48,"endColumn":58}},"message":{"text":"`ID=${id}`"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":658,"startColumn":21,"endColumn":59}},"message":{"text":"SELECT. ... ${id}`)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":658,"startColumn":13,"endColumn":59}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":659,"startColumn":18,"endColumn":23}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":657,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":670,"startColumn":7,"endColumn":48}}}],"partialFingerprints":{"primaryLocationLineHash":"efbe9cdee9ed72b8:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":669,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":669,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":669,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":670,"startColumn":45,"endColumn":47}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":670,"startColumn":36,"endColumn":47}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":669,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":675,"startColumn":7,"endColumn":48}}}],"partialFingerprints":{"primaryLocationLineHash":"3a884df2f960d319:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":674,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":674,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":674,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":675,"startColumn":45,"endColumn":47}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":675,"startColumn":36,"endColumn":47}},"message":{"text":"`ID =` + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":674,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":680,"startColumn":7,"endColumn":47}}}],"partialFingerprints":{"primaryLocationLineHash":"693c1ad544283ec3:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":679,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":679,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":679,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":680,"startColumn":42,"endColumn":44}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":680,"startColumn":36,"endColumn":46}},"message":{"text":"`ID=${id}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":679,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":705,"startColumn":7,"endColumn":81}}}],"partialFingerprints":{"primaryLocationLineHash":"737ffeac7015e49f:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":705,"startColumn":52,"endColumn":58}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":705,"startColumn":36,"endColumn":58}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":705,"startColumn":78,"endColumn":80}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":705,"startColumn":66,"endColumn":80}},"message":{"text":"\"col1 = \" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":704,"startColumn":30,"endColumn":38}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":710,"startColumn":7,"endColumn":80}}}],"partialFingerprints":{"primaryLocationLineHash":"68fb2832260c17eb:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":710,"startColumn":52,"endColumn":58}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":710,"startColumn":36,"endColumn":58}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":710,"startColumn":77,"endColumn":79}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":710,"startColumn":66,"endColumn":79}},"message":{"text":"`col1 =` + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":709,"startColumn":30,"endColumn":38}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1).\nThis CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":715,"startColumn":7,"endColumn":81}}}],"partialFingerprints":{"primaryLocationLineHash":"c05bb3983bd0ec24:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":715,"startColumn":52,"endColumn":58}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":715,"startColumn":36,"endColumn":58}},"message":{"text":"\"col1 = ... amount"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":13,"endColumn":38}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":715,"startColumn":76,"endColumn":78}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":715,"startColumn":66,"endColumn":80}},"message":{"text":"`col1 = ${id}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":714,"startColumn":30,"endColumn":38}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":720,"startColumn":7,"endColumn":79}}}],"partialFingerprints":{"primaryLocationLineHash":"a5013b756880128f:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":719,"startColumn":30,"endColumn":38}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":719,"startColumn":13,"endColumn":27}},"message":{"text":"{ id, amount }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":719,"startColumn":13,"endColumn":38}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":720,"startColumn":52,"endColumn":58}},"message":{"text":"amount"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":720,"startColumn":36,"endColumn":58}},"message":{"text":"\"col1 = ... amount"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":719,"startColumn":30,"endColumn":38}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":755,"startColumn":7,"endColumn":50}}}],"partialFingerprints":{"primaryLocationLineHash":"aa17f3fb0e89ad00:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":754,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":754,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":754,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":755,"startColumn":47,"endColumn":49}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":755,"startColumn":38,"endColumn":49}},"message":{"text":"\"ID =\" + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":754,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":760,"startColumn":7,"endColumn":50}}}],"partialFingerprints":{"primaryLocationLineHash":"52425ca44df0fb9c:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":759,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":759,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":759,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":760,"startColumn":47,"endColumn":49}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":760,"startColumn":38,"endColumn":49}},"message":{"text":"`ID =` + id"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":759,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-sql-injection","rule":{"id":"js/cap-sql-injection","index":0,"toolComponent":{"index":8}},"message":{"text":"This CQL query contains a string concatenation with a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":765,"startColumn":7,"endColumn":51}}}],"partialFingerprints":{"primaryLocationLineHash":"abfa3b0ed80d2aef:1","primaryLocationStartColumnFingerprint":"0"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":764,"startColumn":22,"endColumn":30}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":764,"startColumn":13,"endColumn":19}},"message":{"text":"{ id }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":764,"startColumn":13,"endColumn":30}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":765,"startColumn":46,"endColumn":48}},"message":{"text":"id"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":765,"startColumn":38,"endColumn":50}},"message":{"text":"`ID = ${id}`"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/cqlinjection/srv/service1.js","uriBaseId":"%SRCROOT%","index":0},"region":{"startLine":764,"startColumn":22,"endColumn":30}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-log-injection","rule":{"id":"js/cap-log-injection","index":1,"toolComponent":{"index":8}},"message":{"text":"Log entry depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":215},"region":{"startLine":9,"startColumn":32,"endColumn":45}}}],"partialFingerprints":{"primaryLocationLineHash":"7c291d40b7c61d4f:1","primaryLocationStartColumnFingerprint":"23"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":215},"region":{"startLine":7,"startColumn":35,"endColumn":43}},"message":{"text":"msg.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":215},"region":{"startLine":7,"startColumn":15,"endColumn":32}},"message":{"text":"{ messageToPass }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":215},"region":{"startLine":7,"startColumn":15,"endColumn":43}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":215},"region":{"startLine":9,"startColumn":32,"endColumn":45}},"message":{"text":"messageToPass"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service1-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":215},"region":{"startLine":7,"startColumn":35,"endColumn":43}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-log-injection","rule":{"id":"js/cap-log-injection","index":1,"toolComponent":{"index":8}},"message":{"text":"Log entry depends on a [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":222},"region":{"startLine":9,"startColumn":32,"endColumn":45}}}],"partialFingerprints":{"primaryLocationLineHash":"7c291d40b7c61d4f:1","primaryLocationStartColumnFingerprint":"23"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":221},"region":{"startLine":7,"startColumn":39,"endColumn":47}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":221},"region":{"startLine":7,"startColumn":19,"endColumn":36}},"message":{"text":"{ messageToPass }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":221},"region":{"startLine":7,"startColumn":19,"endColumn":47}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":221},"region":{"startLine":9,"startColumn":38,"endColumn":51}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":221},"region":{"startLine":9,"startColumn":36,"endColumn":53}},"message":{"text":"{ messageToPass }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":222},"region":{"startLine":6,"startColumn":29,"endColumn":32}},"message":{"text":"msg"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":222},"region":{"startLine":7,"startColumn":35,"endColumn":38}},"message":{"text":"msg"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":222},"region":{"startLine":7,"startColumn":15,"endColumn":32}},"message":{"text":"{ messageToPass }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":222},"region":{"startLine":7,"startColumn":15,"endColumn":43}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":222},"region":{"startLine":9,"startColumn":32,"endColumn":45}},"message":{"text":"messageToPass"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-with-service2-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":221},"region":{"startLine":7,"startColumn":39,"endColumn":47}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-log-injection","rule":{"id":"js/cap-log-injection","index":1,"toolComponent":{"index":8}},"message":{"text":"Log entry depends on a [user-provided value](1).\nLog entry depends on a [user-provided value](2)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":231},"region":{"startLine":9,"startColumn":32,"endColumn":45}}}],"partialFingerprints":{"primaryLocationLineHash":"7c291d40b7c61d4f:1","primaryLocationStartColumnFingerprint":"23"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":228},"region":{"startLine":7,"startColumn":39,"endColumn":47}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":228},"region":{"startLine":7,"startColumn":19,"endColumn":36}},"message":{"text":"{ messageToPass }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":228},"region":{"startLine":7,"startColumn":19,"endColumn":47}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":228},"region":{"startLine":9,"startColumn":38,"endColumn":51}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":228},"region":{"startLine":9,"startColumn":36,"endColumn":53}},"message":{"text":"{ messageToPass }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":231},"region":{"startLine":6,"startColumn":29,"endColumn":32}},"message":{"text":"msg"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":231},"region":{"startLine":7,"startColumn":35,"endColumn":38}},"message":{"text":"msg"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":231},"region":{"startLine":7,"startColumn":15,"endColumn":32}},"message":{"text":"{ messageToPass }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":231},"region":{"startLine":7,"startColumn":15,"endColumn":43}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":231},"region":{"startLine":9,"startColumn":32,"endColumn":45}},"message":{"text":"messageToPass"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":231},"region":{"startLine":7,"startColumn":35,"endColumn":43}},"message":{"text":"msg.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":231},"region":{"startLine":7,"startColumn":15,"endColumn":32}},"message":{"text":"{ messageToPass }"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":231},"region":{"startLine":7,"startColumn":15,"endColumn":43}},"message":{"text":"messageToPass"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":231},"region":{"startLine":9,"startColumn":32,"endColumn":45}},"message":{"text":"messageToPass"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service1.js","uriBaseId":"%SRCROOT%","index":228},"region":{"startLine":7,"startColumn":39,"endColumn":47}},"message":{"text":"user-provided value"}},{"id":2,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-without-protocol-none/srv/service2.js","uriBaseId":"%SRCROOT%","index":231},"region":{"startLine":7,"startColumn":35,"endColumn":43}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/cap-default-user-is-privileged","rule":{"id":"js/cap-default-user-is-privileged","index":2,"toolComponent":{"index":8}},"message":{"text":"The default user is being overridden to a privileged user."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/server.js","uriBaseId":"%SRCROOT%","index":140},"region":{"startLine":8,"endColumn":37}}}],"partialFingerprints":{"primaryLocationLineHash":"b6ec748aef5ccec4:1","primaryLocationStartColumnFingerprint":"0"}},{"ruleId":"js/cap-default-user-is-privileged","rule":{"id":"js/cap-default-user-is-privileged","index":2,"toolComponent":{"index":8}},"message":{"text":"The default user is being overridden to a privileged user."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service2.js","uriBaseId":"%SRCROOT%","index":144},"region":{"startLine":12,"startColumn":5,"endColumn":41}}}],"partialFingerprints":{"primaryLocationLineHash":"ee143e9aad9c9a16:1","primaryLocationStartColumnFingerprint":"0"}},{"ruleId":"js/cap-default-user-is-privileged","rule":{"id":"js/cap-default-user-is-privileged","index":2,"toolComponent":{"index":8}},"message":{"text":"The default user is being overridden to a privileged user."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/default-is-privileged/srv/service1.js","uriBaseId":"%SRCROOT%","index":142},"region":{"startLine":14,"startColumn":7,"endColumn":43}}}],"partialFingerprints":{"primaryLocationLineHash":"2c0c554bf5b5f7d:1","primaryLocationStartColumnFingerprint":"0"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":3,"toolComponent":{"index":8}},"message":{"text":"The CDS entity `Service1.Service1Entity1` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds","uriBaseId":"%SRCROOT%","index":152},"region":{"startLine":6,"startColumn":10,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"3984db8d11cdcda4:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":3,"toolComponent":{"index":8}},"message":{"text":"The CDS action `Service1.send2` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds","uriBaseId":"%SRCROOT%","index":152},"region":{"startLine":18,"startColumn":10,"endColumn":15}}}],"partialFingerprints":{"primaryLocationLineHash":"28b66b32406f07ba:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":3,"toolComponent":{"index":8}},"message":{"text":"The CDS action `Service1.send3` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds","uriBaseId":"%SRCROOT%","index":152},"region":{"startLine":23,"startColumn":10,"endColumn":15}}}],"partialFingerprints":{"primaryLocationLineHash":"a5382f0f9fda534:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":3,"toolComponent":{"index":8}},"message":{"text":"The CDS action `Service1.send4` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds","uriBaseId":"%SRCROOT%","index":152},"region":{"startLine":28,"startColumn":10,"endColumn":15}}}],"partialFingerprints":{"primaryLocationLineHash":"ebf09aafb38c42ae:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":3,"toolComponent":{"index":8}},"message":{"text":"The CDS action `Service1.send5` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.cds","uriBaseId":"%SRCROOT%","index":152},"region":{"startLine":33,"startColumn":10,"endColumn":15}}}],"partialFingerprints":{"primaryLocationLineHash":"65cd9b8a9955401b:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":3,"toolComponent":{"index":8}},"message":{"text":"The CDS entity `Service2.Service2Entity1` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.cds","uriBaseId":"%SRCROOT%","index":153},"region":{"startLine":6,"startColumn":10,"endColumn":25}}}],"partialFingerprints":{"primaryLocationLineHash":"b02237ac8be3c990:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":3,"toolComponent":{"index":8}},"message":{"text":"The CDS action `Service2.send1` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.cds","uriBaseId":"%SRCROOT%","index":153},"region":{"startLine":13,"startColumn":10,"endColumn":15}}}],"partialFingerprints":{"primaryLocationLineHash":"d2bdf8ef231dddd1:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":3,"toolComponent":{"index":8}},"message":{"text":"The CDS service `Service` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds","uriBaseId":"%SRCROOT%","index":199},"region":{"startLine":3,"startColumn":9,"endColumn":16}}}],"partialFingerprints":{"primaryLocationLineHash":"a2294454385cb916:1","primaryLocationStartColumnFingerprint":"8"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":3,"toolComponent":{"index":8}},"message":{"text":"The CDS entity `Service.ServiceEntity` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds","uriBaseId":"%SRCROOT%","index":199},"region":{"startLine":5,"startColumn":10,"endColumn":23}}}],"partialFingerprints":{"primaryLocationLineHash":"d5a18811944e0c6:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-entity-exposed-without-authentication","rule":{"id":"js/cap-entity-exposed-without-authentication","index":3,"toolComponent":{"index":8}},"message":{"text":"The CDS action `Service.send` is exposed without any authentication."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/loginjection/log-injection-type-sanitized/srv/service.cds","uriBaseId":"%SRCROOT%","index":199},"region":{"startLine":8,"startColumn":10,"endColumn":14}}}],"partialFingerprints":{"primaryLocationLineHash":"e6b459744cc3d70d:1","primaryLocationStartColumnFingerprint":"7"}},{"ruleId":"js/cap-non-prod-auth-strategy","rule":{"id":"js/cap-non-prod-auth-strategy","index":4,"toolComponent":{"index":8}},"message":{"text":"Current authentication strategy contains [credentials of mocked users](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/package.json","uriBaseId":"%SRCROOT%","index":156},"region":{"startLine":17,"startColumn":18,"endLine":32,"endColumn":10}}}],"partialFingerprints":{"primaryLocationLineHash":"189356aa691178ee:1","primaryLocationStartColumnFingerprint":"9"},"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/package.json","uriBaseId":"%SRCROOT%","index":156},"region":{"startLine":17,"startColumn":18,"endLine":32,"endColumn":10}},"message":{"text":"credentials of mocked users"}}]},{"ruleId":"js/cap-non-prod-auth-strategy","rule":{"id":"js/cap-non-prod-auth-strategy","index":4,"toolComponent":{"index":8}},"message":{"text":"Non-production authentication strategy [basic](1) is used."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/package.json","uriBaseId":"%SRCROOT%","index":156},"region":{"startLine":16,"startColumn":17,"endColumn":24}}}],"partialFingerprints":{"primaryLocationLineHash":"8ec70b5c261c793b:1","primaryLocationStartColumnFingerprint":"8"},"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/basic-authentication/package.json","uriBaseId":"%SRCROOT%","index":156},"region":{"startLine":16,"startColumn":17,"endColumn":24}},"message":{"text":"basic"}}]},{"ruleId":"js/cap-non-prod-auth-strategy","rule":{"id":"js/cap-non-prod-auth-strategy","index":4,"toolComponent":{"index":8}},"message":{"text":"Non-production authentication strategy [dummy](1) is used."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/package.json","uriBaseId":"%SRCROOT%","index":164},"region":{"startLine":15,"startColumn":15,"endColumn":22}}}],"partialFingerprints":{"primaryLocationLineHash":"2a27bf058be4572:1","primaryLocationStartColumnFingerprint":"8"},"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/dummy-authentication/package.json","uriBaseId":"%SRCROOT%","index":164},"region":{"startLine":15,"startColumn":15,"endColumn":22}},"message":{"text":"dummy"}}]},{"ruleId":"js/cap-non-prod-auth-strategy","rule":{"id":"js/cap-non-prod-auth-strategy","index":4,"toolComponent":{"index":8}},"message":{"text":"Non-production authentication strategy [mocked](1) is used."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/package.json","uriBaseId":"%SRCROOT%","index":173},"region":{"startLine":21,"startColumn":15,"endColumn":23}}}],"partialFingerprints":{"primaryLocationLineHash":"2af5230c91e6a4cd:1","primaryLocationStartColumnFingerprint":"8"},"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/nonprod-authn-strategy/mocked-authentication/package.json","uriBaseId":"%SRCROOT%","index":173},"region":{"startLine":21,"startColumn":15,"endColumn":23}},"message":{"text":"mocked"}}]},{"ruleId":"js/cap-unnecessarily-granted-privileged-access-rights","rule":{"id":"js/cap-unnecessarily-granted-privileged-access-rights","index":5,"toolComponent":{"index":8}},"message":{"text":"This entity is accessed with unnecessarily privileged rights that requires authorization."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.js","uriBaseId":"%SRCROOT%","index":154},"region":{"startLine":18,"startColumn":21,"endColumn":38}}}],"partialFingerprints":{"primaryLocationLineHash":"383e73b4014710f9:1","primaryLocationStartColumnFingerprint":"12"}},{"ruleId":"js/cap-unnecessarily-granted-privileged-access-rights","rule":{"id":"js/cap-unnecessarily-granted-privileged-access-rights","index":5,"toolComponent":{"index":8}},"message":{"text":"This entity is accessed with unnecessarily privileged rights that requires authorization."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.js","uriBaseId":"%SRCROOT%","index":151},"region":{"startLine":18,"startColumn":24,"endColumn":50}}}],"partialFingerprints":{"primaryLocationLineHash":"62915c8622048073:1","primaryLocationStartColumnFingerprint":"11"}},{"ruleId":"js/cap-unnecessarily-granted-privileged-access-rights","rule":{"id":"js/cap-unnecessarily-granted-privileged-access-rights","index":5,"toolComponent":{"index":8}},"message":{"text":"This entity is accessed with unnecessarily privileged rights that requires authorization."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.js","uriBaseId":"%SRCROOT%","index":151},"region":{"startLine":33,"startColumn":24,"endColumn":50}}}],"partialFingerprints":{"primaryLocationLineHash":"8c5c989d244a1f09:1","primaryLocationStartColumnFingerprint":"11"}},{"ruleId":"js/cap-unnecessarily-granted-privileged-access-rights","rule":{"id":"js/cap-unnecessarily-granted-privileged-access-rights","index":5,"toolComponent":{"index":8}},"message":{"text":"This entity is accessed with unnecessarily privileged rights that requires authorization."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service2.js","uriBaseId":"%SRCROOT%","index":154},"region":{"startLine":35,"startColumn":21,"endColumn":38}}}],"partialFingerprints":{"primaryLocationLineHash":"383e73b4014710f9:2","primaryLocationStartColumnFingerprint":"12"}},{"ruleId":"js/cap-unnecessarily-granted-privileged-access-rights","rule":{"id":"js/cap-unnecessarily-granted-privileged-access-rights","index":5,"toolComponent":{"index":8}},"message":{"text":"This entity is accessed with unnecessarily privileged rights that requires authorization."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.js","uriBaseId":"%SRCROOT%","index":151},"region":{"startLine":50,"startColumn":25,"endColumn":40}}}],"partialFingerprints":{"primaryLocationLineHash":"faab9436420ec8fd:1","primaryLocationStartColumnFingerprint":"12"}},{"ruleId":"js/cap-unnecessarily-granted-privileged-access-rights","rule":{"id":"js/cap-unnecessarily-granted-privileged-access-rights","index":5,"toolComponent":{"index":8}},"message":{"text":"This entity is accessed with unnecessarily privileged rights that requires authorization."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.js","uriBaseId":"%SRCROOT%","index":151},"region":{"startLine":67,"startColumn":25,"endColumn":40}}}],"partialFingerprints":{"primaryLocationLineHash":"8eb12b95cf4128eb:1","primaryLocationStartColumnFingerprint":"12"}},{"ruleId":"js/cap-unnecessarily-granted-privileged-access-rights","rule":{"id":"js/cap-unnecessarily-granted-privileged-access-rights","index":5,"toolComponent":{"index":8}},"message":{"text":"This entity is accessed with unnecessarily privileged rights that may require authorization."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/bad-authn-authz/misused-privileged-user/unnecessarily-granted-privileged-access-rights/srv/service1.js","uriBaseId":"%SRCROOT%","index":151},"region":{"startLine":83,"startColumn":24,"endColumn":38}}}],"partialFingerprints":{"primaryLocationLineHash":"9343d25bdd5ba748:1","primaryLocationStartColumnFingerprint":"11"}},{"ruleId":"js/cap-sensitive-log","rule":{"id":"js/cap-sensitive-log","index":6,"toolComponent":{"index":8}},"message":{"text":"Log entry depends on the [name](1) field which is annotated as potentially sensitive."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.js","uriBaseId":"%SRCROOT%","index":236},"region":{"startLine":9,"startColumn":32,"endColumn":43}}}],"partialFingerprints":{"primaryLocationLineHash":"c2d27f652a20308e:1","primaryLocationStartColumnFingerprint":"23"},"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/sensitive-exposure/sensitive-exposure.cds","uriBaseId":"%SRCROOT%","index":235},"region":{"startLine":4,"startColumn":5,"endColumn":9}},"message":{"text":"name"}}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":22,"startColumn":36,"endColumn":42}}}],"partialFingerprints":{"primaryLocationLineHash":"d2d019c78ead4486:1","primaryLocationStartColumnFingerprint":"23"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":10,"startColumn":36,"endColumn":46}},"message":{"text":"req.params"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":10,"startColumn":19,"endColumn":46}},"message":{"text":"userinputthree"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":12,"startColumn":38,"endColumn":52}},"message":{"text":"userinputthree"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":12,"startColumn":28,"endColumn":53}},"message":{"text":"decodeU ... tthree)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":12,"startColumn":19,"endColumn":53}},"message":{"text":"taint1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":22,"startColumn":36,"endColumn":42}},"message":{"text":"taint1"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":24,"startColumn":40,"endColumn":46}}}],"partialFingerprints":{"primaryLocationLineHash":"808bce90854ae867:1","primaryLocationStartColumnFingerprint":"27"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":10,"startColumn":36,"endColumn":46}},"message":{"text":"req.params"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":10,"startColumn":19,"endColumn":46}},"message":{"text":"userinputthree"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":14,"startColumn":47,"endColumn":61}},"message":{"text":"userinputthree"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":14,"startColumn":28,"endColumn":62}},"message":{"text":"decodeU ... tthree)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":14,"startColumn":19,"endColumn":62}},"message":{"text":"taint2"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":24,"startColumn":40,"endColumn":46}},"message":{"text":"taint2"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":26,"startColumn":34,"endColumn":40}}}],"partialFingerprints":{"primaryLocationLineHash":"afb5d6b9785b49d5:1","primaryLocationStartColumnFingerprint":"21"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":10,"startColumn":36,"endColumn":46}},"message":{"text":"req.params"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":10,"startColumn":19,"endColumn":46}},"message":{"text":"userinputthree"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":16,"startColumn":34,"endColumn":48}},"message":{"text":"userinputthree"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":16,"startColumn":28,"endColumn":49}},"message":{"text":"local(u ... tthree)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":16,"startColumn":19,"endColumn":49}},"message":{"text":"taint3"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":26,"startColumn":34,"endColumn":40}},"message":{"text":"taint3"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":28,"startColumn":34,"endColumn":40}}}],"partialFingerprints":{"primaryLocationLineHash":"bb2ecd3739649840:1","primaryLocationStartColumnFingerprint":"21"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":10,"startColumn":36,"endColumn":46}},"message":{"text":"req.params"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":10,"startColumn":19,"endColumn":46}},"message":{"text":"userinputthree"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":18,"startColumn":34,"endColumn":48}},"message":{"text":"userinputthree"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":18,"startColumn":28,"endColumn":49}},"message":{"text":"isdir(u ... tthree)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":18,"startColumn":19,"endColumn":49}},"message":{"text":"taint4"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":28,"startColumn":34,"endColumn":40}},"message":{"text":"taint4"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":30,"startColumn":40,"endColumn":46}}}],"partialFingerprints":{"primaryLocationLineHash":"63e729e91fdc10d2:1","primaryLocationStartColumnFingerprint":"27"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":10,"startColumn":36,"endColumn":46}},"message":{"text":"req.params"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":10,"startColumn":19,"endColumn":46}},"message":{"text":"userinputthree"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":20,"startColumn":35,"endColumn":49}},"message":{"text":"userinputthree"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":20,"startColumn":28,"endColumn":50}},"message":{"text":"isfile( ... tthree)"}},"taxa":[{"id":"Config","properties":{"CodeQL/DataflowRole":"step"}}]},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":20,"startColumn":19,"endColumn":50}},"message":{"text":"taint5"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":30,"startColumn":40,"endColumn":46}},"message":{"text":"taint5"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":31,"startColumn":26,"endColumn":35}}}],"partialFingerprints":{"primaryLocationLineHash":"84f3986f7255c726:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":31,"endColumn":39}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":19,"endColumn":39}},"message":{"text":"userinput"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":31,"startColumn":26,"endColumn":35}},"message":{"text":"userinput"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":33,"startColumn":38,"endColumn":47}}}],"partialFingerprints":{"primaryLocationLineHash":"7f1379ebf3dd2fef:1","primaryLocationStartColumnFingerprint":"25"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":31,"endColumn":39}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":19,"endColumn":39}},"message":{"text":"userinput"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":33,"startColumn":38,"endColumn":47}},"message":{"text":"userinput"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file read."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":34,"startColumn":24,"endColumn":33}}}],"partialFingerprints":{"primaryLocationLineHash":"45cd294f7937b77e:1","primaryLocationStartColumnFingerprint":"11"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":31,"endColumn":39}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":19,"endColumn":39}},"message":{"text":"userinput"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":34,"startColumn":24,"endColumn":33}},"message":{"text":"userinput"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":36,"startColumn":44,"endColumn":53}}}],"partialFingerprints":{"primaryLocationLineHash":"15c5f129eb53b929:1","primaryLocationStartColumnFingerprint":"31"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":31,"endColumn":39}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":19,"endColumn":39}},"message":{"text":"userinput"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":36,"startColumn":44,"endColumn":53}},"message":{"text":"userinput"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in tainted data being written to a file."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":37,"startColumn":25,"endColumn":37}}}],"partialFingerprints":{"primaryLocationLineHash":"f976670d2acc6fb9:1","primaryLocationStartColumnFingerprint":"12"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":9,"startColumn":34,"endColumn":45}},"message":{"text":"req.headers"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":9,"startColumn":19,"endColumn":45}},"message":{"text":"userinputtwo"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":37,"startColumn":25,"endColumn":37}},"message":{"text":"userinputtwo"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":38,"startColumn":25,"endColumn":34}}}],"partialFingerprints":{"primaryLocationLineHash":"7608589b7693ec5e:1","primaryLocationStartColumnFingerprint":"12"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":31,"endColumn":39}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":19,"endColumn":39}},"message":{"text":"userinput"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":38,"startColumn":25,"endColumn":34}},"message":{"text":"userinput"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":40,"startColumn":26,"endColumn":35}}}],"partialFingerprints":{"primaryLocationLineHash":"9efda1281fa0866d:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":31,"endColumn":39}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":19,"endColumn":39}},"message":{"text":"userinput"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":40,"startColumn":26,"endColumn":35}},"message":{"text":"userinput"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":41,"startColumn":26,"endColumn":35}}}],"partialFingerprints":{"primaryLocationLineHash":"66f493d838c437b1:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":31,"endColumn":39}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":19,"endColumn":39}},"message":{"text":"userinput"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":41,"startColumn":26,"endColumn":35}},"message":{"text":"userinput"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":43,"startColumn":25,"endColumn":34}}}],"partialFingerprints":{"primaryLocationLineHash":"8f73a0930e234a4e:1","primaryLocationStartColumnFingerprint":"12"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":31,"endColumn":39}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":19,"endColumn":39}},"message":{"text":"userinput"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":43,"startColumn":25,"endColumn":34}},"message":{"text":"userinput"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":44,"startColumn":25,"endColumn":34}}}],"partialFingerprints":{"primaryLocationLineHash":"d6c22993642b7f91:1","primaryLocationStartColumnFingerprint":"12"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":31,"endColumn":39}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":19,"endColumn":39}},"message":{"text":"userinput"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":44,"startColumn":25,"endColumn":34}},"message":{"text":"userinput"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":46,"startColumn":26,"endColumn":35}}}],"partialFingerprints":{"primaryLocationLineHash":"a8a6e2d6350921ee:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":31,"endColumn":39}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":19,"endColumn":39}},"message":{"text":"userinput"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":46,"startColumn":26,"endColumn":35}},"message":{"text":"userinput"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":47,"startColumn":26,"endColumn":35}}}],"partialFingerprints":{"primaryLocationLineHash":"434c79e0b65029f:1","primaryLocationStartColumnFingerprint":"13"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":31,"endColumn":39}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":19,"endColumn":39}},"message":{"text":"userinput"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":47,"startColumn":26,"endColumn":35}},"message":{"text":"userinput"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":49,"startColumn":22,"endColumn":31}}}],"partialFingerprints":{"primaryLocationLineHash":"2a71bbb6baf955e2:1","primaryLocationStartColumnFingerprint":"9"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":31,"endColumn":39}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":19,"endColumn":39}},"message":{"text":"userinput"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":49,"startColumn":22,"endColumn":31}},"message":{"text":"userinput"}}}]}]}]},{"ruleId":"js/cap-path-injection","rule":{"id":"js/cap-path-injection","index":7,"toolComponent":{"index":8}},"message":{"text":"This CDS utils usage relies on user-provided value and can result in unrestricted file operations."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":50,"startColumn":22,"endColumn":31}}}],"partialFingerprints":{"primaryLocationLineHash":"66efd2a0cc314e4:1","primaryLocationStartColumnFingerprint":"9"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":31,"endColumn":39}},"message":{"text":"req.data"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":8,"startColumn":19,"endColumn":39}},"message":{"text":"userinput"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js","uriBaseId":"%SRCROOT%","index":232},"region":{"startLine":50,"startColumn":22,"endColumn":31}},"message":{"text":"userinput"}}}]}]}]},{"ruleId":"js/xsjs-sql-injection","rule":{"id":"js/xsjs-sql-injection","index":0,"toolComponent":{"index":9}},"message":{"text":"This query depends on a [user-provided value](1).\nThis query depends on a [user-provided value](2)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580},"region":{"startLine":13,"startColumn":57,"endColumn":62}}}],"partialFingerprints":{"primaryLocationLineHash":"65aa43aa4e46559c:1","primaryLocationStartColumnFingerprint":"54"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580},"region":{"startLine":8,"startColumn":40,"endColumn":79}},"message":{"text":"request ... eter1\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580},"region":{"startLine":8,"startColumn":29,"endColumn":80}},"message":{"text":"JSON.pa ... ter1\"))"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580},"region":{"startLine":8,"startColumn":7,"endColumn":80}},"message":{"text":"someParameterValue1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580},"region":{"startLine":10,"startColumn":32,"endColumn":51}},"message":{"text":"someParameterValue1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580},"region":{"startLine":10,"startColumn":7,"endColumn":107}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580},"region":{"startLine":13,"startColumn":57,"endColumn":62}},"message":{"text":"query"}}}]}]},{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580},"region":{"startLine":9,"startColumn":40,"endColumn":79}},"message":{"text":"request ... eter2\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580},"region":{"startLine":9,"startColumn":29,"endColumn":80}},"message":{"text":"JSON.pa ... ter2\"))"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580},"region":{"startLine":9,"startColumn":7,"endColumn":80}},"message":{"text":"someParameterValue2"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580},"region":{"startLine":10,"startColumn":82,"endColumn":101}},"message":{"text":"someParameterValue2"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580},"region":{"startLine":10,"startColumn":7,"endColumn":107}},"message":{"text":"query"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580},"region":{"startLine":13,"startColumn":57,"endColumn":62}},"message":{"text":"query"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580},"region":{"startLine":8,"startColumn":40,"endColumn":79}},"message":{"text":"user-provided value"}},{"id":2,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSSqlInjection/XSJSSqlInjection.xsjs","uriBaseId":"%SRCROOT%","index":580},"region":{"startLine":9,"startColumn":40,"endColumn":79}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/xsjs-disabled-csrf-protection","rule":{"id":"js/xsjs-disabled-csrf-protection","index":1,"toolComponent":{"index":9}},"message":{"text":"CSRF protection is missing from the configuration."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/exposed/.xsaccess","uriBaseId":"%SRCROOT%","index":576},"region":{"startLine":1,"endLine":4,"endColumn":2}}}],"partialFingerprints":{"primaryLocationLineHash":"c1675fd626f895bf:1","primaryLocationStartColumnFingerprint":"0"}},{"ruleId":"js/xsjs-disabled-csrf-protection","rule":{"id":"js/xsjs-disabled-csrf-protection","index":1,"toolComponent":{"index":9}},"message":{"text":"CSRF protection should not be disabled."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/xs-app.json","uriBaseId":"%SRCROOT%","index":578},"region":{"startLine":14,"startColumn":31,"endColumn":36}}}],"partialFingerprints":{"primaryLocationLineHash":"c66a379bed25dd74:1","primaryLocationStartColumnFingerprint":"18"}},{"ruleId":"js/xsjs-reflected-xss","rule":{"id":"js/xsjs-reflected-xss","index":2,"toolComponent":{"index":9}},"message":{"text":"Reflected XSS vulnerability due to [user-provided value](1)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":13,"startColumn":22,"endColumn":66}}}],"partialFingerprints":{"primaryLocationLineHash":"a31830db0e0a3d3c:1","primaryLocationStartColumnFingerprint":"19"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":11,"startColumn":29,"endColumn":68}},"message":{"text":"request ... eter1\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":11,"startColumn":7,"endColumn":68}},"message":{"text":"someParameterValue1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":13,"startColumn":46,"endColumn":65}},"message":{"text":"someParameterValue1"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":3,"startColumn":34,"endColumn":51}},"message":{"text":"requestParameters"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":4,"startColumn":20,"endColumn":37}},"message":{"text":"requestParameters"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":4,"startColumn":10,"endColumn":48}},"message":{"text":"\"
\" ...
\""}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":13,"startColumn":22,"endColumn":66}},"message":{"text":"request ... Value1)"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSReflectedXss/XSJSReflectedXss.xsjs","uriBaseId":"%SRCROOT%","index":579},"region":{"startLine":11,"startColumn":29,"endColumn":68}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/xsjs-url-redirect","rule":{"id":"js/xsjs-url-redirect","index":3,"toolComponent":{"index":9}},"message":{"text":"[This URL](1) depends on a [user-provided value](2)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSUrlRedirect/XSJSUrlRedirect.xsjs","uriBaseId":"%SRCROOT%","index":581},"region":{"startLine":9,"startColumn":38,"endColumn":56}}}],"partialFingerprints":{"primaryLocationLineHash":"f02e3e17e12824b3:1","primaryLocationStartColumnFingerprint":"35"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSUrlRedirect/XSJSUrlRedirect.xsjs","uriBaseId":"%SRCROOT%","index":581},"region":{"startLine":7,"startColumn":28,"endColumn":66}},"message":{"text":"request ... meter\")"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSUrlRedirect/XSJSUrlRedirect.xsjs","uriBaseId":"%SRCROOT%","index":581},"region":{"startLine":7,"startColumn":7,"endColumn":66}},"message":{"text":"someParameterValue"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSUrlRedirect/XSJSUrlRedirect.xsjs","uriBaseId":"%SRCROOT%","index":581},"region":{"startLine":9,"startColumn":38,"endColumn":56}},"message":{"text":"someParameterValue"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSUrlRedirect/XSJSUrlRedirect.xsjs","uriBaseId":"%SRCROOT%","index":581},"region":{"startLine":9,"startColumn":38,"endColumn":56}},"message":{"text":"This URL"}},{"id":2,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSUrlRedirect/XSJSUrlRedirect.xsjs","uriBaseId":"%SRCROOT%","index":581},"region":{"startLine":7,"startColumn":28,"endColumn":66}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/xsjs-zip-slip","rule":{"id":"js/xsjs-zip-slip","index":4,"toolComponent":{"index":9}},"message":{"text":"The path of [this zip file](1) being saved depends on a [user-provided value](2)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":582},"region":{"startLine":12,"startColumn":37,"endColumn":51}}}],"partialFingerprints":{"primaryLocationLineHash":"54d432c04bb48c9c:1","primaryLocationStartColumnFingerprint":"32"},"codeFlows":[{"threadFlows":[{"locations":[{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":582},"region":{"startLine":7,"startColumn":35,"endColumn":62}},"message":{"text":"request ... uffer()"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":582},"region":{"startLine":7,"startColumn":20,"endColumn":63}},"message":{"text":"new $.u ... ffer())"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":582},"region":{"startLine":7,"startColumn":7,"endColumn":63}},"message":{"text":"zipArchive"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":582},"region":{"startLine":10,"startColumn":25,"endColumn":35}},"message":{"text":"zipArchive"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":582},"region":{"startLine":11,"startColumn":65,"endColumn":74}},"message":{"text":"entryPath"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":582},"region":{"startLine":11,"startColumn":26,"endColumn":75}},"message":{"text":"require ... ryPath)"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":582},"region":{"startLine":11,"startColumn":9,"endColumn":75}},"message":{"text":"targetFilePath"}}},{"location":{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":582},"region":{"startLine":12,"startColumn":37,"endColumn":51}},"message":{"text":"targetFilePath"}}}]}]}],"relatedLocations":[{"id":1,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":582},"region":{"startLine":12,"startColumn":37,"endColumn":51}},"message":{"text":"this zip file"}},{"id":2,"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSZipSlip/XSJSZipSlip.xsjs","uriBaseId":"%SRCROOT%","index":582},"region":{"startLine":7,"startColumn":35,"endColumn":62}},"message":{"text":"user-provided value"}}]},{"ruleId":"js/xsjs-broken-authentication","rule":{"id":"js/xsjs-broken-authentication","index":5,"toolComponent":{"index":9}},"message":{"text":"Authentication is missing from the configuration."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/missing_auth/.xsaccess","uriBaseId":"%SRCROOT%","index":575},"region":{"startLine":1,"endLine":4,"endColumn":2}}}],"partialFingerprints":{"primaryLocationLineHash":"b57c6bae252883be:1","primaryLocationStartColumnFingerprint":"0"}},{"ruleId":"js/xsjs-broken-authentication","rule":{"id":"js/xsjs-broken-authentication","index":5,"toolComponent":{"index":9}},"message":{"text":"Authentication should not be disabled."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/exposed/.xsaccess","uriBaseId":"%SRCROOT%","index":576},"region":{"startLine":3,"startColumn":23,"endColumn":27}}}],"partialFingerprints":{"primaryLocationLineHash":"a900cae7399fb257:1","primaryLocationStartColumnFingerprint":"18"}},{"ruleId":"js/xsjs-broken-authentication","rule":{"id":"js/xsjs-broken-authentication","index":5,"toolComponent":{"index":9}},"message":{"text":"Authentication should not be disabled."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/xs-app.json","uriBaseId":"%SRCROOT%","index":578},"region":{"startLine":3,"startColumn":29,"endColumn":35}}}],"partialFingerprints":{"primaryLocationLineHash":"7c987b52e21935f7:1","primaryLocationStartColumnFingerprint":"24"}},{"ruleId":"js/xsjs-broken-authentication","rule":{"id":"js/xsjs-broken-authentication","index":5,"toolComponent":{"index":9}},"message":{"text":"Authentication should not be disabled."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"javascript/frameworks/xsjs/test/queries/XSJSAccess/service/xs-app.json","uriBaseId":"%SRCROOT%","index":578},"region":{"startLine":15,"startColumn":35,"endColumn":41}}}],"partialFingerprints":{"primaryLocationLineHash":"f2aa90ab66c52c3c:1","primaryLocationStartColumnFingerprint":"22"}}],"newlineSequences":["\r\n","\n"," "," "],"columnKind":"utf16CodeUnits","properties":{"semmle.formatSpecifier":"sarif-latest","metricResults":[{"rule":{"id":"js/summary/lines-of-user-code","index":99,"toolComponent":{"index":1}},"ruleId":"js/summary/lines-of-user-code","value":16741,"baseline":11745},{"rule":{"id":"js/summary/lines-of-code","index":100,"toolComponent":{"index":1}},"ruleId":"js/summary/lines-of-code","value":25074}],"codeqlConfigSummary":{"disableDefaultQueries":false,"queries":[{"type":"builtinSuite","uses":"security-extended"},{"type":"localQuery","uses":"./javascript/frameworks/ui5/src/codeql-suites/javascript-security-extended.qls"},{"type":"localQuery","uses":"./javascript/frameworks/cap/src/codeql-suites/javascript-security-extended.qls"},{"type":"localQuery","uses":"./javascript/frameworks/xsjs/src/codeql-suites/javascript-security-extended.qls"}]},"jobRunUuid":"2dd9702d-b3ba-4044-a2b1-af96bea599f9"}}]}
\ No newline at end of file
diff --git a/javascript/frameworks/cap/lib/advanced_security/javascript/frameworks/cap/CAPPathInjectionQuery.qll b/javascript/frameworks/cap/lib/advanced_security/javascript/frameworks/cap/CAPPathInjectionQuery.qll
index 352bc94d7..198a474af 100644
--- a/javascript/frameworks/cap/lib/advanced_security/javascript/frameworks/cap/CAPPathInjectionQuery.qll
+++ b/javascript/frameworks/cap/lib/advanced_security/javascript/frameworks/cap/CAPPathInjectionQuery.qll
@@ -7,13 +7,21 @@
import javascript
import advanced_security.javascript.frameworks.cap.CDSUtils
-abstract class UtilsAccessedPathSink extends DataFlow::Node { }
+abstract class UtilsSink extends DataFlow::Node {
+ abstract string sinkType();
+}
-abstract class UtilsControlledDataSink extends DataFlow::Node { }
+abstract class UtilsAccessedPathSink extends UtilsSink {
+ override string sinkType() { result = "unrestricted file read" }
+}
-abstract class UtilsControlledPathSink extends DataFlow::Node { }
+abstract class UtilsControlledDataSink extends UtilsSink {
+ override string sinkType() { result = "tainted data being written to a file" }
+}
-abstract class UtilsExtraFlow extends DataFlow::Node { }
+abstract class UtilsControlledPathSink extends UtilsSink {
+ override string sinkType() { result = "unrestricted file operations" }
+}
/**
* This represents the data in calls as follows:
@@ -67,21 +75,3 @@ class ControlledInputPath extends UtilsControlledPathSink {
exists(DirectoryReaders dr | dr.getPath() = this)
}
}
-
-/**
- * This represents calls where the taint flows through the call. e.g.
- * ```javascript
- * let dir = isdir ('app')
- * ```
- */
-class AdditionalFlowStep extends UtilsExtraFlow {
- AdditionalFlowStep() {
- exists(PathConverters pc | pc.getPath() = this)
- or
- exists(PathPredicates pr | pr.getPath() = this)
- }
-
- DataFlow::CallNode getOutgoingNode() { result = this }
-
- DataFlow::Node getIngoingNode() { result = this.(DataFlow::CallNode).getAnArgument() }
-}
diff --git a/javascript/frameworks/cap/src/path-traversal/PathInjection.md b/javascript/frameworks/cap/src/path-traversal/PathInjection.md
new file mode 100644
index 000000000..b5383ea7d
--- /dev/null
+++ b/javascript/frameworks/cap/src/path-traversal/PathInjection.md
@@ -0,0 +1,63 @@
+# CAP CDS Utils used with user-controlled sources
+
+If a path is constructed from user-provided input without sufficient sanitization, a malicious user may be able to manipulate the contents of the filesystem without proper authorization.
+
+Additionally if user-provided input is used to create file contents this can also result in a malicious user manipulating the filesystem in an unchecked way.
+
+## Recommendation
+
+CAP applications using CDS Utils should not use user-provided input without sanitization.
+
+The sanitization stragety can vary depending on what types of paths are satisfactory as user-provided input. A simple approach to sanitization is to check user-provided input against an allow list. Other potential approaches include checking components of paths or normalizing them to make sure that the path does not escape the expected root folder.
+
+Normalization techniques should be carefully considered and simple naive replacement strategies will not be sufficient, for example replacing any match of a parent directory reference (`../`) in the sample `.../...//` will still result in the path `../` being used which could escape the intended directory.
+
+## Examples
+
+This CAP service directly uses user-provided input to construct a path.
+
+``` javascript
+const cds = require("@sap/cds");
+const { rm } = cds.utils
+
+module.exports = class Service1 extends cds.ApplicationService {
+
+ init() {
+ this.on("send1", async (req) => {
+ let userinput = req.data
+ await rm(userinput, 'db', 'data') // Path injection alert
+ }
+ }
+}
+```
+
+This CAP service directly uses user-provided input to add content to a file.
+
+``` javascript
+const cds = require("@sap/cds");
+const { rm } = cds.utils
+
+module.exports = class Service1 extends cds.ApplicationService {
+ init() {
+ this.on("send1", async (req) => {
+ let userinput = req.data
+ await write(userinput).to('db/data') // Path injection alert
+
+ // GOOD: the path can not be controlled by an attacker
+ let allowedDirectories = [
+ 'this-is-a-safe-directory'
+ ];
+ if (allowedDirectories.includes(userinput)) {
+ await rm(userinput) // sanitized - No Path injection alert
+ }
+ }
+ }
+}
+```
+
+## References
+
+- OWASP 2021: [Injection](https://owasp.org/Top10/A03_2021-Injection/).
+- SAP CAP CDS Utils : [Documentation](https://cap.cloud.sap/docs/node.js/cds-utils).
+- Common Weakness Enumeration: [CWE-020](https://cwe.mitre.org/data/definitions/20.html).
+- Common Weakness Enumeration: [CWE-022](https://cwe.mitre.org/data/definitions/22.html).
diff --git a/javascript/frameworks/cap/src/path-traversal/PathInjection.ql b/javascript/frameworks/cap/src/path-traversal/PathInjection.ql
new file mode 100644
index 000000000..59aabaefd
--- /dev/null
+++ b/javascript/frameworks/cap/src/path-traversal/PathInjection.ql
@@ -0,0 +1,48 @@
+/**
+ * @name Use of user controlled input in CAP CDS file system utilities
+ * @description Using unchecked user controlled values can allow an
+ * attacker to affect paths constructed and accessed in
+ * the filesystem.
+ * @kind path-problem
+ * @problem.severity warning
+ * @security-severity 7.5
+ * @precision medium
+ * @id js/cap-path-injection
+ * @tags security
+ * external/cwe/cwe-020
+ * external/cwe/cwe-022
+ */
+
+import javascript
+import advanced_security.javascript.frameworks.cap.CAPPathInjectionQuery
+import advanced_security.javascript.frameworks.cap.RemoteFlowSources
+private import semmle.javascript.security.dataflow.TaintedPathCustomizations
+private import semmle.javascript.security.dataflow.TaintedPathQuery as tq
+
+module PathInjectionConfig implements DataFlow::ConfigSig {
+ predicate isSource(DataFlow::Node node) { node instanceof RemoteFlowSource }
+
+ predicate isSink(DataFlow::Node sink) { sink instanceof UtilsSink }
+
+ predicate isAdditionalFlowStep(DataFlow::Node nodein, DataFlow::Node nodeout) {
+ exists(PathConverters pc | pc.getPath() = nodein and nodeout = pc)
+ or
+ exists(PathPredicates pr | pr.getPath() = nodein and nodeout = pr)
+ }
+
+ predicate isBarrier(DataFlow::Node node) {
+ node instanceof TaintedPath::Sanitizer
+ or
+ tq::TaintedPathConfig::isBarrier(node)
+ }
+}
+
+module PathInjectionConfigFlow = TaintTracking::Global;
+
+import PathInjectionConfigFlow::PathGraph
+
+from PathInjectionConfigFlow::PathNode source, PathInjectionConfigFlow::PathNode sink
+where PathInjectionConfigFlow::flowPath(source, sink)
+select sink, source, sink,
+ "This CDS utils usage relies on user-provided value and can result in " +
+ sink.getNode().(UtilsSink).sinkType() + "."
diff --git a/javascript/frameworks/cap/test/models/cds/utils/utils.expected b/javascript/frameworks/cap/test/models/cds/utils/utils.expected
index 4ef04b388..d86c93f83 100644
--- a/javascript/frameworks/cap/test/models/cds/utils/utils.expected
+++ b/javascript/frameworks/cap/test/models/cds/utils/utils.expected
@@ -1,38 +1,33 @@
-| utils.js:5:21:5:30 | "%E0%A4%A" | "%E0%A4%A": additional flow step |
-| utils.js:7:31:7:40 | "%E0%A4%A" | "%E0%A4%A": additional flow step |
-| utils.js:9:18:9:27 | "%E0%A4%A" | "%E0%A4%A": additional flow step |
-| utils.js:13:17:13:21 | 'app' | 'app': additional flow step |
-| utils.js:15:19:15:32 | 'package.json' | 'package.json': additional flow step |
-| utils.js:17:22:17:35 | 'package.json' | 'package.json': controlled path sink |
-| utils.js:19:26:19:39 | 'package.json' | 'package.json': controlled path sink |
-| utils.js:21:20:21:33 | 'package.json' | 'package.json': controlled path sink |
-| utils.js:23:20:23:33 | 'package.json' | 'package.json': controlled path sink |
-| utils.js:25:14:25:22 | 'db/data' | 'db/data': controlled data sink |
-| utils.js:25:28:25:41 | 'dist/db/data' | 'dist/db/data': controlled path sink |
-| utils.js:26:14:26:22 | 'db/data' | 'db/data': controlled path sink |
-| utils.js:26:25:26:38 | 'dist/db/data' | 'dist/db/data': controlled data sink |
-| utils.js:28:12:28:20 | 'db/data' | 'db/data': accessed path sink |
-| utils.js:28:26:28:39 | 'dist/db/data' | 'dist/db/data': controlled path sink |
-| utils.js:29:12:29:20 | 'db/data' | 'db/data': accessed path sink |
-| utils.js:29:23:29:36 | 'dist/db/data' | 'dist/db/data': controlled path sink |
-| utils.js:31:13:31:26 | { foo: 'bar' } | { foo: 'bar' }: controlled data sink |
-| utils.js:31:32:31:47 | 'some/file.json' | 'some/file.json': controlled path sink |
-| utils.js:32:13:32:28 | 'some/file.json' | 'some/file.json': controlled path sink |
-| utils.js:32:31:32:44 | { foo: 'bar' } | { foo: 'bar' }: controlled data sink |
-| utils.js:34:14:34:19 | 'dist' | 'dist': controlled path sink |
-| utils.js:34:22:34:25 | 'db' | 'db': controlled path sink |
-| utils.js:34:28:34:33 | 'data' | 'data': controlled path sink |
-| utils.js:35:14:35:27 | 'dist/db/data' | 'dist/db/data': controlled path sink |
-| utils.js:37:13:37:18 | 'dist' | 'dist': controlled path sink |
-| utils.js:37:21:37:24 | 'db' | 'db': controlled path sink |
-| utils.js:37:27:37:32 | 'data' | 'data': controlled path sink |
-| utils.js:38:13:38:26 | 'dist/db/data' | 'dist/db/data': controlled path sink |
-| utils.js:40:14:40:19 | 'dist' | 'dist': controlled path sink |
-| utils.js:40:22:40:25 | 'db' | 'db': controlled path sink |
-| utils.js:40:28:40:33 | 'data' | 'data': controlled path sink |
-| utils.js:41:14:41:27 | 'dist/db/data' | 'dist/db/data': controlled path sink |
-| utils.js:43:10:43:15 | 'dist' | 'dist': controlled path sink |
-| utils.js:43:18:43:21 | 'db' | 'db': controlled path sink |
-| utils.js:43:24:43:29 | 'data' | 'data': controlled path sink |
-| utils.js:44:10:44:23 | 'dist/db/data' | 'dist/db/data': controlled path sink |
-| utils.js:52:20:52:28 | 'db/data' | 'db/data': controlled data sink |
+| utils.js:5:22:5:35 | 'package.json' | 'package.json': controlled path sink |
+| utils.js:7:26:7:39 | 'package.json' | 'package.json': controlled path sink |
+| utils.js:9:20:9:33 | 'package.json' | 'package.json': controlled path sink |
+| utils.js:11:20:11:33 | 'package.json' | 'package.json': controlled path sink |
+| utils.js:13:14:13:22 | 'db/data' | 'db/data': controlled data sink |
+| utils.js:13:28:13:41 | 'dist/db/data' | 'dist/db/data': controlled path sink |
+| utils.js:14:14:14:22 | 'db/data' | 'db/data': controlled path sink |
+| utils.js:14:25:14:38 | 'dist/db/data' | 'dist/db/data': controlled data sink |
+| utils.js:16:12:16:20 | 'db/data' | 'db/data': accessed path sink |
+| utils.js:16:26:16:39 | 'dist/db/data' | 'dist/db/data': controlled path sink |
+| utils.js:17:12:17:20 | 'db/data' | 'db/data': accessed path sink |
+| utils.js:17:23:17:36 | 'dist/db/data' | 'dist/db/data': controlled path sink |
+| utils.js:19:13:19:26 | { foo: 'bar' } | { foo: 'bar' }: controlled data sink |
+| utils.js:19:32:19:47 | 'some/file.json' | 'some/file.json': controlled path sink |
+| utils.js:20:13:20:28 | 'some/file.json' | 'some/file.json': controlled path sink |
+| utils.js:20:31:20:44 | { foo: 'bar' } | { foo: 'bar' }: controlled data sink |
+| utils.js:22:14:22:19 | 'dist' | 'dist': controlled path sink |
+| utils.js:22:22:22:25 | 'db' | 'db': controlled path sink |
+| utils.js:22:28:22:33 | 'data' | 'data': controlled path sink |
+| utils.js:23:14:23:27 | 'dist/db/data' | 'dist/db/data': controlled path sink |
+| utils.js:25:13:25:18 | 'dist' | 'dist': controlled path sink |
+| utils.js:25:21:25:24 | 'db' | 'db': controlled path sink |
+| utils.js:25:27:25:32 | 'data' | 'data': controlled path sink |
+| utils.js:26:13:26:26 | 'dist/db/data' | 'dist/db/data': controlled path sink |
+| utils.js:28:14:28:19 | 'dist' | 'dist': controlled path sink |
+| utils.js:28:22:28:25 | 'db' | 'db': controlled path sink |
+| utils.js:28:28:28:33 | 'data' | 'data': controlled path sink |
+| utils.js:29:14:29:27 | 'dist/db/data' | 'dist/db/data': controlled path sink |
+| utils.js:31:10:31:15 | 'dist' | 'dist': controlled path sink |
+| utils.js:31:18:31:21 | 'db' | 'db': controlled path sink |
+| utils.js:31:24:31:29 | 'data' | 'data': controlled path sink |
+| utils.js:32:10:32:23 | 'dist/db/data' | 'dist/db/data': controlled path sink |
+| utils.js:40:20:40:28 | 'db/data' | 'db/data': controlled data sink |
diff --git a/javascript/frameworks/cap/test/models/cds/utils/utils.js b/javascript/frameworks/cap/test/models/cds/utils/utils.js
index a7e789676..c81682cb0 100644
--- a/javascript/frameworks/cap/test/models/cds/utils/utils.js
+++ b/javascript/frameworks/cap/test/models/cds/utils/utils.js
@@ -1,18 +1,6 @@
const cds = require("@sap/cds");
-const { decodeURI, decodeURIComponent, local, exists, isdir, isfile, read, readdir, append, write, copy, stat, find, mkdirp, rmdir, rimraf, rm } = cds.utils
-
-let uri = decodeURI("%E0%A4%A") // taint step
-
-let uri2 = decodeURIComponent("%E0%A4%A") // taint step
-
-let uri3 = local("%E0%A4%A") // taint step
-
-let uri4 = exists("%E0%A4%A") // NOT a taint step - returns a boolean
-
-let dir = isdir('app') // taint step
-
-let file = isfile('package.json') // taint step
+const { read, readdir, append, write, copy, stat, find, mkdirp, rmdir, rimraf, rm } = cds.utils
let pkg = await read('package.json') // sink
diff --git a/javascript/frameworks/cap/test/models/cds/utils/utils.ql b/javascript/frameworks/cap/test/models/cds/utils/utils.ql
index 14581b14a..becf39b87 100644
--- a/javascript/frameworks/cap/test/models/cds/utils/utils.ql
+++ b/javascript/frameworks/cap/test/models/cds/utils/utils.ql
@@ -8,6 +8,4 @@ where
node.(UtilsAccessedPathSink).toString() = str and strfull = str + ": accessed path sink"
or
node.(UtilsControlledDataSink).toString() = str and strfull = str + ": controlled data sink"
- or
- node.(UtilsExtraFlow).toString() = str and strfull = str + ": additional flow step"
select node, strfull
diff --git a/javascript/frameworks/cap/test/queries/path-traversal/pathinjection.expected b/javascript/frameworks/cap/test/queries/path-traversal/pathinjection.expected
new file mode 100644
index 000000000..6a7e2e043
--- /dev/null
+++ b/javascript/frameworks/cap/test/queries/path-traversal/pathinjection.expected
@@ -0,0 +1,100 @@
+edges
+| pathinjection.js:8:19:8:38 | userinput | pathinjection.js:31:26:31:34 | userinput | provenance | |
+| pathinjection.js:8:19:8:38 | userinput | pathinjection.js:33:38:33:46 | userinput | provenance | |
+| pathinjection.js:8:19:8:38 | userinput | pathinjection.js:34:24:34:32 | userinput | provenance | |
+| pathinjection.js:8:19:8:38 | userinput | pathinjection.js:36:44:36:52 | userinput | provenance | |
+| pathinjection.js:8:19:8:38 | userinput | pathinjection.js:38:25:38:33 | userinput | provenance | |
+| pathinjection.js:8:19:8:38 | userinput | pathinjection.js:40:26:40:34 | userinput | provenance | |
+| pathinjection.js:8:19:8:38 | userinput | pathinjection.js:41:26:41:34 | userinput | provenance | |
+| pathinjection.js:8:19:8:38 | userinput | pathinjection.js:43:25:43:33 | userinput | provenance | |
+| pathinjection.js:8:19:8:38 | userinput | pathinjection.js:44:25:44:33 | userinput | provenance | |
+| pathinjection.js:8:19:8:38 | userinput | pathinjection.js:46:26:46:34 | userinput | provenance | |
+| pathinjection.js:8:19:8:38 | userinput | pathinjection.js:47:26:47:34 | userinput | provenance | |
+| pathinjection.js:8:19:8:38 | userinput | pathinjection.js:49:22:49:30 | userinput | provenance | |
+| pathinjection.js:8:19:8:38 | userinput | pathinjection.js:50:22:50:30 | userinput | provenance | |
+| pathinjection.js:8:31:8:38 | req.data | pathinjection.js:8:19:8:38 | userinput | provenance | |
+| pathinjection.js:9:19:9:44 | userinputtwo | pathinjection.js:37:25:37:36 | userinputtwo | provenance | |
+| pathinjection.js:9:34:9:44 | req.headers | pathinjection.js:9:19:9:44 | userinputtwo | provenance | |
+| pathinjection.js:10:19:10:45 | userinputthree | pathinjection.js:12:38:12:51 | userinputthree | provenance | |
+| pathinjection.js:10:19:10:45 | userinputthree | pathinjection.js:14:47:14:60 | userinputthree | provenance | |
+| pathinjection.js:10:19:10:45 | userinputthree | pathinjection.js:16:34:16:47 | userinputthree | provenance | |
+| pathinjection.js:10:19:10:45 | userinputthree | pathinjection.js:18:34:18:47 | userinputthree | provenance | |
+| pathinjection.js:10:19:10:45 | userinputthree | pathinjection.js:20:35:20:48 | userinputthree | provenance | |
+| pathinjection.js:10:36:10:45 | req.params | pathinjection.js:10:19:10:45 | userinputthree | provenance | |
+| pathinjection.js:12:19:12:52 | taint1 | pathinjection.js:22:36:22:41 | taint1 | provenance | |
+| pathinjection.js:12:28:12:52 | decodeU ... tthree) | pathinjection.js:12:19:12:52 | taint1 | provenance | |
+| pathinjection.js:12:38:12:51 | userinputthree | pathinjection.js:12:28:12:52 | decodeU ... tthree) | provenance | Config |
+| pathinjection.js:14:19:14:61 | taint2 | pathinjection.js:24:40:24:45 | taint2 | provenance | |
+| pathinjection.js:14:28:14:61 | decodeU ... tthree) | pathinjection.js:14:19:14:61 | taint2 | provenance | |
+| pathinjection.js:14:47:14:60 | userinputthree | pathinjection.js:14:28:14:61 | decodeU ... tthree) | provenance | Config |
+| pathinjection.js:16:19:16:48 | taint3 | pathinjection.js:26:34:26:39 | taint3 | provenance | |
+| pathinjection.js:16:28:16:48 | local(u ... tthree) | pathinjection.js:16:19:16:48 | taint3 | provenance | |
+| pathinjection.js:16:34:16:47 | userinputthree | pathinjection.js:16:28:16:48 | local(u ... tthree) | provenance | Config |
+| pathinjection.js:18:19:18:48 | taint4 | pathinjection.js:28:34:28:39 | taint4 | provenance | |
+| pathinjection.js:18:28:18:48 | isdir(u ... tthree) | pathinjection.js:18:19:18:48 | taint4 | provenance | |
+| pathinjection.js:18:34:18:47 | userinputthree | pathinjection.js:18:28:18:48 | isdir(u ... tthree) | provenance | Config |
+| pathinjection.js:20:19:20:49 | taint5 | pathinjection.js:30:40:30:45 | taint5 | provenance | |
+| pathinjection.js:20:28:20:49 | isfile( ... tthree) | pathinjection.js:20:19:20:49 | taint5 | provenance | |
+| pathinjection.js:20:35:20:48 | userinputthree | pathinjection.js:20:28:20:49 | isfile( ... tthree) | provenance | Config |
+nodes
+| pathinjection.js:8:19:8:38 | userinput | semmle.label | userinput |
+| pathinjection.js:8:31:8:38 | req.data | semmle.label | req.data |
+| pathinjection.js:9:19:9:44 | userinputtwo | semmle.label | userinputtwo |
+| pathinjection.js:9:34:9:44 | req.headers | semmle.label | req.headers |
+| pathinjection.js:10:19:10:45 | userinputthree | semmle.label | userinputthree |
+| pathinjection.js:10:36:10:45 | req.params | semmle.label | req.params |
+| pathinjection.js:12:19:12:52 | taint1 | semmle.label | taint1 |
+| pathinjection.js:12:28:12:52 | decodeU ... tthree) | semmle.label | decodeU ... tthree) |
+| pathinjection.js:12:38:12:51 | userinputthree | semmle.label | userinputthree |
+| pathinjection.js:14:19:14:61 | taint2 | semmle.label | taint2 |
+| pathinjection.js:14:28:14:61 | decodeU ... tthree) | semmle.label | decodeU ... tthree) |
+| pathinjection.js:14:47:14:60 | userinputthree | semmle.label | userinputthree |
+| pathinjection.js:16:19:16:48 | taint3 | semmle.label | taint3 |
+| pathinjection.js:16:28:16:48 | local(u ... tthree) | semmle.label | local(u ... tthree) |
+| pathinjection.js:16:34:16:47 | userinputthree | semmle.label | userinputthree |
+| pathinjection.js:18:19:18:48 | taint4 | semmle.label | taint4 |
+| pathinjection.js:18:28:18:48 | isdir(u ... tthree) | semmle.label | isdir(u ... tthree) |
+| pathinjection.js:18:34:18:47 | userinputthree | semmle.label | userinputthree |
+| pathinjection.js:20:19:20:49 | taint5 | semmle.label | taint5 |
+| pathinjection.js:20:28:20:49 | isfile( ... tthree) | semmle.label | isfile( ... tthree) |
+| pathinjection.js:20:35:20:48 | userinputthree | semmle.label | userinputthree |
+| pathinjection.js:22:36:22:41 | taint1 | semmle.label | taint1 |
+| pathinjection.js:24:40:24:45 | taint2 | semmle.label | taint2 |
+| pathinjection.js:26:34:26:39 | taint3 | semmle.label | taint3 |
+| pathinjection.js:28:34:28:39 | taint4 | semmle.label | taint4 |
+| pathinjection.js:30:40:30:45 | taint5 | semmle.label | taint5 |
+| pathinjection.js:31:26:31:34 | userinput | semmle.label | userinput |
+| pathinjection.js:33:38:33:46 | userinput | semmle.label | userinput |
+| pathinjection.js:34:24:34:32 | userinput | semmle.label | userinput |
+| pathinjection.js:36:44:36:52 | userinput | semmle.label | userinput |
+| pathinjection.js:37:25:37:36 | userinputtwo | semmle.label | userinputtwo |
+| pathinjection.js:38:25:38:33 | userinput | semmle.label | userinput |
+| pathinjection.js:40:26:40:34 | userinput | semmle.label | userinput |
+| pathinjection.js:41:26:41:34 | userinput | semmle.label | userinput |
+| pathinjection.js:43:25:43:33 | userinput | semmle.label | userinput |
+| pathinjection.js:44:25:44:33 | userinput | semmle.label | userinput |
+| pathinjection.js:46:26:46:34 | userinput | semmle.label | userinput |
+| pathinjection.js:47:26:47:34 | userinput | semmle.label | userinput |
+| pathinjection.js:49:22:49:30 | userinput | semmle.label | userinput |
+| pathinjection.js:50:22:50:30 | userinput | semmle.label | userinput |
+subpaths
+#select
+| pathinjection.js:22:36:22:41 | taint1 | pathinjection.js:10:36:10:45 | req.params | pathinjection.js:22:36:22:41 | taint1 | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
+| pathinjection.js:24:40:24:45 | taint2 | pathinjection.js:10:36:10:45 | req.params | pathinjection.js:24:40:24:45 | taint2 | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
+| pathinjection.js:26:34:26:39 | taint3 | pathinjection.js:10:36:10:45 | req.params | pathinjection.js:26:34:26:39 | taint3 | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
+| pathinjection.js:28:34:28:39 | taint4 | pathinjection.js:10:36:10:45 | req.params | pathinjection.js:28:34:28:39 | taint4 | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
+| pathinjection.js:30:40:30:45 | taint5 | pathinjection.js:10:36:10:45 | req.params | pathinjection.js:30:40:30:45 | taint5 | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
+| pathinjection.js:31:26:31:34 | userinput | pathinjection.js:8:31:8:38 | req.data | pathinjection.js:31:26:31:34 | userinput | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
+| pathinjection.js:33:38:33:46 | userinput | pathinjection.js:8:31:8:38 | req.data | pathinjection.js:33:38:33:46 | userinput | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
+| pathinjection.js:34:24:34:32 | userinput | pathinjection.js:8:31:8:38 | req.data | pathinjection.js:34:24:34:32 | userinput | This CDS utils usage relies on user-provided value and can result in unrestricted file read. |
+| pathinjection.js:36:44:36:52 | userinput | pathinjection.js:8:31:8:38 | req.data | pathinjection.js:36:44:36:52 | userinput | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
+| pathinjection.js:37:25:37:36 | userinputtwo | pathinjection.js:9:34:9:44 | req.headers | pathinjection.js:37:25:37:36 | userinputtwo | This CDS utils usage relies on user-provided value and can result in tainted data being written to a file. |
+| pathinjection.js:38:25:38:33 | userinput | pathinjection.js:8:31:8:38 | req.data | pathinjection.js:38:25:38:33 | userinput | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
+| pathinjection.js:40:26:40:34 | userinput | pathinjection.js:8:31:8:38 | req.data | pathinjection.js:40:26:40:34 | userinput | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
+| pathinjection.js:41:26:41:34 | userinput | pathinjection.js:8:31:8:38 | req.data | pathinjection.js:41:26:41:34 | userinput | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
+| pathinjection.js:43:25:43:33 | userinput | pathinjection.js:8:31:8:38 | req.data | pathinjection.js:43:25:43:33 | userinput | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
+| pathinjection.js:44:25:44:33 | userinput | pathinjection.js:8:31:8:38 | req.data | pathinjection.js:44:25:44:33 | userinput | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
+| pathinjection.js:46:26:46:34 | userinput | pathinjection.js:8:31:8:38 | req.data | pathinjection.js:46:26:46:34 | userinput | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
+| pathinjection.js:47:26:47:34 | userinput | pathinjection.js:8:31:8:38 | req.data | pathinjection.js:47:26:47:34 | userinput | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
+| pathinjection.js:49:22:49:30 | userinput | pathinjection.js:8:31:8:38 | req.data | pathinjection.js:49:22:49:30 | userinput | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
+| pathinjection.js:50:22:50:30 | userinput | pathinjection.js:8:31:8:38 | req.data | pathinjection.js:50:22:50:30 | userinput | This CDS utils usage relies on user-provided value and can result in unrestricted file operations. |
diff --git a/javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js b/javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js
new file mode 100644
index 000000000..fb4703a09
--- /dev/null
+++ b/javascript/frameworks/cap/test/queries/path-traversal/pathinjection.js
@@ -0,0 +1,62 @@
+const cds = require("@sap/cds");
+const { decodeURI, decodeURIComponent, local, isdir, isfile, read, readdir, append, write, copy, stat, find, mkdirp, rmdir, rimraf, rm } = cds.utils
+
+module.exports = class Service1 extends cds.ApplicationService {
+
+ init() {
+ this.on("send1", async (req) => {
+ const userinput = req.data
+ const userinputtwo = req.headers
+ const userinputthree = req.params
+
+ const taint1 = decodeURI(userinputthree) // taint step
+
+ const taint2 = decodeURIComponent(userinputthree) // taint step
+
+ const taint3 = local(userinputthree) // taint step
+
+ const taint4 = isdir(userinputthree) // taint step
+
+ const taint5 = isfile(userinputthree) // taint step
+
+ const pkg = await read(taint1) // sink
+
+ const pdir = await readdir(taint2) // sink
+
+ const s = await stat(taint3) // sink
+
+ const f = await find(taint4) // sink
+
+ await append('db/data').to(taint5) // sink
+ await append(userinput, 'dist/db/data') // sink
+
+ await copy('db/data').to(userinput) // sink
+ await copy(userinput, 'dist/db/data') // sink
+
+ await write({ foo: 'bar' }).to(userinput) // sink
+ await write(userinputtwo).to('db/data') // sink
+ await write(userinput, { foo: 'bar' }) // sink
+
+ await mkdirp(userinput, 'db', 'data') // sink
+ await mkdirp(userinput) // sink
+
+ await rmdir(userinput, 'db', 'data') // sink
+ await rmdir(userinput) // sink
+
+ await rimraf(userinput, 'db', 'data') // sink
+ await rimraf(userinput) // sink
+
+ await rm(userinput, 'db', 'data') // sink
+ await rm(userinput) // sink
+
+ let allowedDirectories = [
+ 'this-is-a-safe-directory'
+ ];
+ if (allowedDirectories.includes(userinput)) {
+ await rm(userinput) // sanitized
+ }
+ });
+
+ super.init();
+ }
+};
\ No newline at end of file
diff --git a/javascript/frameworks/cap/test/queries/path-traversal/pathinjection.qlref b/javascript/frameworks/cap/test/queries/path-traversal/pathinjection.qlref
new file mode 100644
index 000000000..0d65cded4
--- /dev/null
+++ b/javascript/frameworks/cap/test/queries/path-traversal/pathinjection.qlref
@@ -0,0 +1 @@
+path-traversal/PathInjection.ql
\ No newline at end of file