@capraconsulting/cals-cli 2.24.1 → 2.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cals-cli.js CHANGED
@@ -47,7 +47,7 @@ var read__default = /*#__PURE__*/_interopDefaultLegacy(read);
47
47
  var findUp__default = /*#__PURE__*/_interopDefaultLegacy(findUp);
48
48
  var execa__default = /*#__PURE__*/_interopDefaultLegacy(execa);
49
49
 
50
- var version = "2.24.1";
50
+ var version = "2.25.0";
51
51
  var engines = {
52
52
  node: ">=12.0.0"
53
53
  };
@@ -3494,7 +3494,7 @@ async function main() {
3494
3494
  / /___/ ___ |/ /______/ /
3495
3495
  \\____/_/ |_/_____/____/
3496
3496
  cli ${version}
3497
- built ${"2022-06-10T13:21:10+0000"}
3497
+ built ${"2023-02-17T14:13:51+0000"}
3498
3498
 
3499
3499
  https://github.com/capralifecycle/cals-cli/
3500
3500
 
package/lib/index.d.ts CHANGED
@@ -9,5 +9,6 @@ export * as definition from "./definition";
9
9
  export * as github from "./github";
10
10
  export * as loadSecrets from "./load-secrets";
11
11
  export * as snyk from "./snyk";
12
+ export * as sonarCloud from "./sonarcloud";
12
13
  export * from "./testing";
13
14
  export { CacheProvider, Config, createGitHubService, createReporter, DefinitionFile, GitHubService, Reporter, };
package/lib/index.es.js CHANGED
@@ -22,7 +22,7 @@ import execa from 'execa';
22
22
  import { performance } from 'perf_hooks';
23
23
  import { Transform } from 'stream';
24
24
 
25
- var version = "2.24.1";
25
+ var version = "2.25.0";
26
26
 
27
27
  class CacheProvider {
28
28
  constructor(config) {
@@ -1124,7 +1124,7 @@ async function createGitHubService(props) {
1124
1124
  });
1125
1125
  }
1126
1126
 
1127
- var index$3 = /*#__PURE__*/Object.freeze({
1127
+ var index$4 = /*#__PURE__*/Object.freeze({
1128
1128
  __proto__: null,
1129
1129
  DefinitionFile: DefinitionFile,
1130
1130
  getGitHubOrgs: getGitHubOrgs,
@@ -1133,7 +1133,7 @@ var index$3 = /*#__PURE__*/Object.freeze({
1133
1133
  parseDefinition: parseDefinition
1134
1134
  });
1135
1135
 
1136
- var index$2 = /*#__PURE__*/Object.freeze({
1136
+ var index$3 = /*#__PURE__*/Object.freeze({
1137
1137
  __proto__: null,
1138
1138
  createGitHubService: createGitHubService,
1139
1139
  GitHubService: GitHubService
@@ -1410,7 +1410,7 @@ function loadSecretsCli(props) {
1410
1410
  });
1411
1411
  }
1412
1412
 
1413
- var index$1 = /*#__PURE__*/Object.freeze({
1413
+ var index$2 = /*#__PURE__*/Object.freeze({
1414
1414
  __proto__: null,
1415
1415
  loadSecretsCli: loadSecretsCli
1416
1416
  });
@@ -1516,7 +1516,7 @@ function getGitHubRepoId(repo) {
1516
1516
  return repo ? `${repo.owner}/${repo.name}` : undefined;
1517
1517
  }
1518
1518
 
1519
- var index = /*#__PURE__*/Object.freeze({
1519
+ var index$1 = /*#__PURE__*/Object.freeze({
1520
1520
  __proto__: null,
1521
1521
  createSnykService: createSnykService,
1522
1522
  SnykService: SnykService,
@@ -1524,6 +1524,55 @@ var index = /*#__PURE__*/Object.freeze({
1524
1524
  getGitHubRepoId: getGitHubRepoId
1525
1525
  });
1526
1526
 
1527
+ class SonarCloudService {
1528
+ constructor(props) {
1529
+ this.config = props.config;
1530
+ this.tokenProvider = props.tokenProvider;
1531
+ }
1532
+ /**
1533
+ * Returns metrics for project with given key.
1534
+ * ONLY test coverage metrics are returned as of now
1535
+ */
1536
+ async getMetricsByProjectKey(sonarCloudProjectKey) {
1537
+ const token = await this.tokenProvider.getToken();
1538
+ if (token === undefined) {
1539
+ throw new Error("Missing token for SonarCloud");
1540
+ }
1541
+ const response = await fetch(`https://sonarcloud.io/api/measures/component?component=${encodeURIComponent(sonarCloudProjectKey)}&metricKeys=coverage`, {
1542
+ method: "GET",
1543
+ headers: {
1544
+ Accept: "application/json",
1545
+ Authorization: `token ${token}`,
1546
+ },
1547
+ agent: this.config.agent,
1548
+ });
1549
+ if (response.status === 401) {
1550
+ process.stderr.write("Unauthorized - removing token\n");
1551
+ await this.tokenProvider.markInvalid();
1552
+ }
1553
+ if (response.status === 404) {
1554
+ process.stderr.write("Project does not exist in SonarCloud\n");
1555
+ return undefined;
1556
+ }
1557
+ if (!response.ok) {
1558
+ throw new Error(`Response from SonarCloud not OK (${response.status}): ${JSON.stringify(response)}`);
1559
+ }
1560
+ return (await response.json());
1561
+ }
1562
+ }
1563
+ function createSonarCloudService(props) {
1564
+ return new SonarCloudService({
1565
+ config: props.config,
1566
+ tokenProvider: props.tokenProvider,
1567
+ });
1568
+ }
1569
+
1570
+ var index = /*#__PURE__*/Object.freeze({
1571
+ __proto__: null,
1572
+ createSonarCloudService: createSonarCloudService,
1573
+ SonarCloudService: SonarCloudService
1574
+ });
1575
+
1527
1576
  class TestExecutor {
1528
1577
  constructor() {
1529
1578
  this.shutdown = false;
@@ -1974,5 +2023,5 @@ async function waitForEnterToContinue(prompt = "Press enter to continue") {
1974
2023
 
1975
2024
  const VERSION = version;
1976
2025
 
1977
- export { CacheProvider, Config, DefinitionFile, GitHubService, Reporter, TestExecutor, VERSION, createGitHubService, createNetwork, createReporter, createTestExecutor, curl, index$3 as definition, getDockerHostAddress, index$2 as github, index$1 as loadSecrets, pollForCondition, runNpmRunScript, index as snyk, startContainer, waitForEnterToContinue, waitForHttpOk, waitForPostgresAvailable };
2026
+ export { CacheProvider, Config, DefinitionFile, GitHubService, Reporter, TestExecutor, VERSION, createGitHubService, createNetwork, createReporter, createTestExecutor, curl, index$4 as definition, getDockerHostAddress, index$3 as github, index$2 as loadSecrets, pollForCondition, runNpmRunScript, index$1 as snyk, index as sonarCloud, startContainer, waitForEnterToContinue, waitForHttpOk, waitForPostgresAvailable };
1978
2027
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/lib/index.js CHANGED
@@ -44,7 +44,7 @@ var keytar__default = /*#__PURE__*/_interopDefaultLegacy(keytar);
44
44
  var read__default = /*#__PURE__*/_interopDefaultLegacy(read);
45
45
  var execa__default = /*#__PURE__*/_interopDefaultLegacy(execa);
46
46
 
47
- var version = "2.24.1";
47
+ var version = "2.25.0";
48
48
 
49
49
  class CacheProvider {
50
50
  constructor(config) {
@@ -1146,7 +1146,7 @@ async function createGitHubService(props) {
1146
1146
  });
1147
1147
  }
1148
1148
 
1149
- var index$3 = /*#__PURE__*/Object.freeze({
1149
+ var index$4 = /*#__PURE__*/Object.freeze({
1150
1150
  __proto__: null,
1151
1151
  DefinitionFile: DefinitionFile,
1152
1152
  getGitHubOrgs: getGitHubOrgs,
@@ -1155,7 +1155,7 @@ var index$3 = /*#__PURE__*/Object.freeze({
1155
1155
  parseDefinition: parseDefinition
1156
1156
  });
1157
1157
 
1158
- var index$2 = /*#__PURE__*/Object.freeze({
1158
+ var index$3 = /*#__PURE__*/Object.freeze({
1159
1159
  __proto__: null,
1160
1160
  createGitHubService: createGitHubService,
1161
1161
  GitHubService: GitHubService
@@ -1432,7 +1432,7 @@ function loadSecretsCli(props) {
1432
1432
  });
1433
1433
  }
1434
1434
 
1435
- var index$1 = /*#__PURE__*/Object.freeze({
1435
+ var index$2 = /*#__PURE__*/Object.freeze({
1436
1436
  __proto__: null,
1437
1437
  loadSecretsCli: loadSecretsCli
1438
1438
  });
@@ -1538,7 +1538,7 @@ function getGitHubRepoId(repo) {
1538
1538
  return repo ? `${repo.owner}/${repo.name}` : undefined;
1539
1539
  }
1540
1540
 
1541
- var index = /*#__PURE__*/Object.freeze({
1541
+ var index$1 = /*#__PURE__*/Object.freeze({
1542
1542
  __proto__: null,
1543
1543
  createSnykService: createSnykService,
1544
1544
  SnykService: SnykService,
@@ -1546,6 +1546,55 @@ var index = /*#__PURE__*/Object.freeze({
1546
1546
  getGitHubRepoId: getGitHubRepoId
1547
1547
  });
1548
1548
 
1549
+ class SonarCloudService {
1550
+ constructor(props) {
1551
+ this.config = props.config;
1552
+ this.tokenProvider = props.tokenProvider;
1553
+ }
1554
+ /**
1555
+ * Returns metrics for project with given key.
1556
+ * ONLY test coverage metrics are returned as of now
1557
+ */
1558
+ async getMetricsByProjectKey(sonarCloudProjectKey) {
1559
+ const token = await this.tokenProvider.getToken();
1560
+ if (token === undefined) {
1561
+ throw new Error("Missing token for SonarCloud");
1562
+ }
1563
+ const response = await fetch__default["default"](`https://sonarcloud.io/api/measures/component?component=${encodeURIComponent(sonarCloudProjectKey)}&metricKeys=coverage`, {
1564
+ method: "GET",
1565
+ headers: {
1566
+ Accept: "application/json",
1567
+ Authorization: `token ${token}`,
1568
+ },
1569
+ agent: this.config.agent,
1570
+ });
1571
+ if (response.status === 401) {
1572
+ process.stderr.write("Unauthorized - removing token\n");
1573
+ await this.tokenProvider.markInvalid();
1574
+ }
1575
+ if (response.status === 404) {
1576
+ process.stderr.write("Project does not exist in SonarCloud\n");
1577
+ return undefined;
1578
+ }
1579
+ if (!response.ok) {
1580
+ throw new Error(`Response from SonarCloud not OK (${response.status}): ${JSON.stringify(response)}`);
1581
+ }
1582
+ return (await response.json());
1583
+ }
1584
+ }
1585
+ function createSonarCloudService(props) {
1586
+ return new SonarCloudService({
1587
+ config: props.config,
1588
+ tokenProvider: props.tokenProvider,
1589
+ });
1590
+ }
1591
+
1592
+ var index = /*#__PURE__*/Object.freeze({
1593
+ __proto__: null,
1594
+ createSonarCloudService: createSonarCloudService,
1595
+ SonarCloudService: SonarCloudService
1596
+ });
1597
+
1549
1598
  class TestExecutor {
1550
1599
  constructor() {
1551
1600
  this.shutdown = false;
@@ -2008,13 +2057,14 @@ exports.createNetwork = createNetwork;
2008
2057
  exports.createReporter = createReporter;
2009
2058
  exports.createTestExecutor = createTestExecutor;
2010
2059
  exports.curl = curl;
2011
- exports.definition = index$3;
2060
+ exports.definition = index$4;
2012
2061
  exports.getDockerHostAddress = getDockerHostAddress;
2013
- exports.github = index$2;
2014
- exports.loadSecrets = index$1;
2062
+ exports.github = index$3;
2063
+ exports.loadSecrets = index$2;
2015
2064
  exports.pollForCondition = pollForCondition;
2016
2065
  exports.runNpmRunScript = runNpmRunScript;
2017
- exports.snyk = index;
2066
+ exports.snyk = index$1;
2067
+ exports.sonarCloud = index;
2018
2068
  exports.startContainer = startContainer;
2019
2069
  exports.waitForEnterToContinue = waitForEnterToContinue;
2020
2070
  exports.waitForHttpOk = waitForHttpOk;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export { createSonarCloudService, SonarCloudService } from "./service";
2
+ export { SonarCloudTokenProvider } from "./token";
@@ -0,0 +1,33 @@
1
+ import { Config } from "../config";
2
+ import { SonarCloudTokenProvider } from "./token";
3
+ interface SonarCloudServiceProps {
4
+ config: Config;
5
+ tokenProvider: SonarCloudTokenProvider;
6
+ }
7
+ export declare class SonarCloudService {
8
+ private config;
9
+ private tokenProvider;
10
+ constructor(props: SonarCloudServiceProps);
11
+ /**
12
+ * Returns metrics for project with given key.
13
+ * ONLY test coverage metrics are returned as of now
14
+ */
15
+ getMetricsByProjectKey(sonarCloudProjectKey: string): Promise<{
16
+ component: {
17
+ id: string;
18
+ key: string;
19
+ name: string;
20
+ qualifier: string;
21
+ measures: {
22
+ metric: string;
23
+ value: string;
24
+ }[];
25
+ };
26
+ } | undefined>;
27
+ }
28
+ interface CreateSonarCloudServiceProps {
29
+ config: Config;
30
+ tokenProvider: SonarCloudTokenProvider;
31
+ }
32
+ export declare function createSonarCloudService(props: CreateSonarCloudServiceProps): SonarCloudService;
33
+ export {};
@@ -0,0 +1,4 @@
1
+ export interface SonarCloudTokenProvider {
2
+ getToken(): Promise<string | undefined>;
3
+ markInvalid(): Promise<void>;
4
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capraconsulting/cals-cli",
3
- "version": "2.24.1",
3
+ "version": "2.25.0",
4
4
  "description": "CLI for repeatable tasks in CALS",
5
5
  "scripts": {
6
6
  "prepare": "node scripts/create-definition-schema.js && husky install",
@@ -42,39 +42,39 @@
42
42
  "yargs": "^17.5.1"
43
43
  },
44
44
  "devDependencies": {
45
- "@commitlint/cli": "16.3.0",
46
- "@commitlint/config-conventional": "16.2.4",
47
- "@octokit/types": "6.34.0",
45
+ "@commitlint/cli": "17.1.2",
46
+ "@commitlint/config-conventional": "17.1.0",
47
+ "@octokit/types": "6.41.0",
48
48
  "@rollup/plugin-alias": "3.1.9",
49
49
  "@rollup/plugin-json": "4.1.0",
50
- "@rollup/plugin-replace": "3.1.0",
50
+ "@rollup/plugin-replace": "4.0.0",
51
51
  "@types/jest": "27.5.2",
52
52
  "@types/js-yaml": "4.0.5",
53
- "@types/lodash": "4.14.182",
54
- "@types/node": "14.18.13",
55
- "@types/node-fetch": "2.6.1",
53
+ "@types/lodash": "4.14.186",
54
+ "@types/node": "14.18.32",
55
+ "@types/node-fetch": "2.6.2",
56
56
  "@types/read": "0.0.29",
57
57
  "@types/rimraf": "3.0.2",
58
- "@types/semver": "7.3.9",
58
+ "@types/semver": "7.3.12",
59
59
  "@types/sprintf-js": "1.1.2",
60
- "@types/yargs": "17.0.10",
60
+ "@types/yargs": "17.0.13",
61
61
  "@typescript-eslint/eslint-plugin": "5.27.1",
62
62
  "@typescript-eslint/parser": "5.27.1",
63
63
  "dateformat": "4.6.3",
64
64
  "del": "6.1.1",
65
- "eslint": "8.17.0",
65
+ "eslint": "8.26.0",
66
66
  "eslint-config-prettier": "8.5.0",
67
- "eslint-plugin-prettier": "4.0.0",
67
+ "eslint-plugin-prettier": "4.2.1",
68
68
  "husky": "7.0.4",
69
69
  "jest": "27.5.1",
70
- "prettier": "2.6.2",
71
- "rollup": "2.75.6",
72
- "rollup-plugin-typescript2": "0.32.1",
73
- "semantic-release": "19.0.3",
70
+ "prettier": "2.7.1",
71
+ "rollup": "2.79.1",
72
+ "rollup-plugin-typescript2": "0.34.1",
73
+ "semantic-release": "19.0.5",
74
74
  "tempy": "1.0.1",
75
75
  "ts-jest": "27.1.5",
76
- "typescript": "4.7.3",
77
- "typescript-json-schema": "0.53.1"
76
+ "typescript": "4.8.4",
77
+ "typescript-json-schema": "0.54.0"
78
78
  },
79
79
  "peerDependencies": {},
80
80
  "files": [