@capraconsulting/cals-cli 2.22.2 → 2.23.2
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 +130 -109
- package/lib/cals-cli.js.map +1 -1
- package/lib/index.es.js +25 -11
- package/lib/index.es.js.map +1 -1
- package/lib/index.js +73 -59
- package/lib/index.js.map +1 -1
- package/lib/snyk/types.d.ts +7 -2
- package/lib/snyk/util.test.d.ts +1 -0
- package/package.json +26 -26
package/lib/cals-cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cals-cli.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cals-cli.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
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.
|
|
25
|
+
var version = "2.23.2";
|
|
26
26
|
|
|
27
27
|
class CacheProvider {
|
|
28
28
|
constructor(config) {
|
|
@@ -1477,18 +1477,32 @@ function createSnykService(props) {
|
|
|
1477
1477
|
}
|
|
1478
1478
|
|
|
1479
1479
|
function getGitHubRepo(snykProject) {
|
|
1480
|
-
if (snykProject.origin
|
|
1481
|
-
|
|
1480
|
+
if (snykProject.origin === "github") {
|
|
1481
|
+
const match = /^([^/]+)\/([^:]+)(:(.+))?$/.exec(snykProject.name);
|
|
1482
|
+
if (match === null) {
|
|
1483
|
+
throw Error(`Could not extract components from Snyk project name: ${snykProject.name} (id: ${snykProject.id})`);
|
|
1484
|
+
}
|
|
1485
|
+
return {
|
|
1486
|
+
owner: match[1],
|
|
1487
|
+
name: match[2],
|
|
1488
|
+
};
|
|
1489
|
+
}
|
|
1490
|
+
else if (snykProject.origin === "cli" &&
|
|
1491
|
+
snykProject.remoteRepoUrl != null) {
|
|
1492
|
+
// The remoteRepoUrl can be overriden when using the CLI, so don't
|
|
1493
|
+
// fail if we cannot extract the value.
|
|
1494
|
+
const match = /github.com\/([^/]+)\/(.+)\.git$/.exec(snykProject.remoteRepoUrl);
|
|
1495
|
+
if (match === null) {
|
|
1496
|
+
return undefined;
|
|
1497
|
+
}
|
|
1498
|
+
return {
|
|
1499
|
+
owner: match[1],
|
|
1500
|
+
name: match[2],
|
|
1501
|
+
};
|
|
1482
1502
|
}
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
throw Error(`Could not extract components from Snyk project name: ${snykProject.name} (id: ${snykProject.id})`);
|
|
1503
|
+
else {
|
|
1504
|
+
return undefined;
|
|
1486
1505
|
}
|
|
1487
|
-
return {
|
|
1488
|
-
owner: match[1],
|
|
1489
|
-
name: match[2],
|
|
1490
|
-
file: match[3],
|
|
1491
|
-
};
|
|
1492
1506
|
}
|
|
1493
1507
|
function getGitHubRepoId(repo) {
|
|
1494
1508
|
return repo ? `${repo.owner}/${repo.name}` : undefined;
|
package/lib/index.es.js.map
CHANGED
|
@@ -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.
|
|
47
|
+
var version = "2.23.2";
|
|
48
48
|
|
|
49
49
|
class CacheProvider {
|
|
50
50
|
constructor(config) {
|
|
@@ -58,13 +58,13 @@ class CacheProvider {
|
|
|
58
58
|
* The caller is responsible for handling proper validation,
|
|
59
59
|
*/
|
|
60
60
|
retrieveJson(cachekey) {
|
|
61
|
-
const cachefile = path__default[
|
|
62
|
-
if (!fs__default[
|
|
61
|
+
const cachefile = path__default["default"].join(this.config.cacheDir, `${cachekey}.json`);
|
|
62
|
+
if (!fs__default["default"].existsSync(cachefile)) {
|
|
63
63
|
return undefined;
|
|
64
64
|
}
|
|
65
|
-
const data = fs__default[
|
|
65
|
+
const data = fs__default["default"].readFileSync(cachefile, "utf-8");
|
|
66
66
|
return {
|
|
67
|
-
cacheTime: fs__default[
|
|
67
|
+
cacheTime: fs__default["default"].statSync(cachefile).mtime.getTime(),
|
|
68
68
|
data: (data === "undefined" ? undefined : JSON.parse(data)),
|
|
69
69
|
};
|
|
70
70
|
}
|
|
@@ -72,11 +72,11 @@ class CacheProvider {
|
|
|
72
72
|
* Save data to cache.
|
|
73
73
|
*/
|
|
74
74
|
storeJson(cachekey, data) {
|
|
75
|
-
const cachefile = path__default[
|
|
76
|
-
if (!fs__default[
|
|
77
|
-
fs__default[
|
|
75
|
+
const cachefile = path__default["default"].join(this.config.cacheDir, `${cachekey}.json`);
|
|
76
|
+
if (!fs__default["default"].existsSync(this.config.cacheDir)) {
|
|
77
|
+
fs__default["default"].mkdirSync(this.config.cacheDir, { recursive: true });
|
|
78
78
|
}
|
|
79
|
-
fs__default[
|
|
79
|
+
fs__default["default"].writeFileSync(cachefile, data === undefined ? "undefined" : JSON.stringify(data));
|
|
80
80
|
}
|
|
81
81
|
async json(cachekey, block, cachetime = this.defaultCacheTime) {
|
|
82
82
|
const cacheItem = this.mustValidate
|
|
@@ -94,14 +94,14 @@ class CacheProvider {
|
|
|
94
94
|
* Delete all cached data.
|
|
95
95
|
*/
|
|
96
96
|
cleanup() {
|
|
97
|
-
rimraf__default[
|
|
97
|
+
rimraf__default["default"].sync(this.config.cacheDir);
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
const CLEAR_WHOLE_LINE = 0;
|
|
102
102
|
function clearLine(stdout) {
|
|
103
|
-
readline__default[
|
|
104
|
-
readline__default[
|
|
103
|
+
readline__default["default"].clearLine(stdout, CLEAR_WHOLE_LINE);
|
|
104
|
+
readline__default["default"].cursorTo(stdout, 0);
|
|
105
105
|
}
|
|
106
106
|
class Reporter {
|
|
107
107
|
constructor(opts = {}) {
|
|
@@ -109,7 +109,7 @@ class Reporter {
|
|
|
109
109
|
this.stderr = process.stderr;
|
|
110
110
|
this.stdin = process.stdin;
|
|
111
111
|
this.isTTY = this.stdout.isTTY;
|
|
112
|
-
this.format = chalk__default[
|
|
112
|
+
this.format = chalk__default["default"];
|
|
113
113
|
this.startTime = Date.now();
|
|
114
114
|
this.nonInteractive = !!opts.nonInteractive;
|
|
115
115
|
this.isVerbose = !!opts.verbose;
|
|
@@ -138,10 +138,10 @@ class Reporter {
|
|
|
138
138
|
|
|
139
139
|
class Config {
|
|
140
140
|
constructor() {
|
|
141
|
-
this.cwd = path__default[
|
|
142
|
-
this.configFile = path__default[
|
|
143
|
-
this.cacheDir = cachedir__default[
|
|
144
|
-
this.agent = new https__default[
|
|
141
|
+
this.cwd = path__default["default"].resolve(process.cwd());
|
|
142
|
+
this.configFile = path__default["default"].join(os__default["default"].homedir(), ".cals-config.json");
|
|
143
|
+
this.cacheDir = cachedir__default["default"]("cals-cli");
|
|
144
|
+
this.agent = new https__default["default"].Agent({
|
|
145
145
|
keepAlive: true,
|
|
146
146
|
});
|
|
147
147
|
this.configCached = undefined;
|
|
@@ -156,12 +156,12 @@ class Config {
|
|
|
156
156
|
return config;
|
|
157
157
|
}
|
|
158
158
|
readConfig() {
|
|
159
|
-
if (!fs__default[
|
|
159
|
+
if (!fs__default["default"].existsSync(this.configFile)) {
|
|
160
160
|
return {};
|
|
161
161
|
}
|
|
162
162
|
try {
|
|
163
163
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
164
|
-
return JSON.parse(fs__default[
|
|
164
|
+
return JSON.parse(fs__default["default"].readFileSync(this.configFile, "utf-8"));
|
|
165
165
|
}
|
|
166
166
|
catch (e) {
|
|
167
167
|
console.error("Failed", e);
|
|
@@ -183,7 +183,7 @@ class Config {
|
|
|
183
183
|
...this.readConfig(),
|
|
184
184
|
[key]: value, // undefined will remove
|
|
185
185
|
};
|
|
186
|
-
fs__default[
|
|
186
|
+
fs__default["default"].writeFileSync(this.configFile, JSON.stringify(updatedConfig, null, " "));
|
|
187
187
|
this.configCached = updatedConfig;
|
|
188
188
|
}
|
|
189
189
|
}
|
|
@@ -493,7 +493,7 @@ function getRepoId(orgName, repoName) {
|
|
|
493
493
|
}
|
|
494
494
|
function checkAgainstSchema(value) {
|
|
495
495
|
var _a;
|
|
496
|
-
const ajv = new AJV__default[
|
|
496
|
+
const ajv = new AJV__default["default"]({ allErrors: true });
|
|
497
497
|
const valid = ajv.validate(schema, value);
|
|
498
498
|
return valid
|
|
499
499
|
? { definition: value }
|
|
@@ -570,7 +570,7 @@ class DefinitionFile {
|
|
|
570
570
|
this.path = path;
|
|
571
571
|
}
|
|
572
572
|
async getContents() {
|
|
573
|
-
return new Promise((resolve, reject) => fs__default[
|
|
573
|
+
return new Promise((resolve, reject) => fs__default["default"].readFile(this.path, "utf-8", (err, data) => {
|
|
574
574
|
if (err)
|
|
575
575
|
reject(err);
|
|
576
576
|
else
|
|
@@ -582,7 +582,7 @@ class DefinitionFile {
|
|
|
582
582
|
}
|
|
583
583
|
}
|
|
584
584
|
function parseDefinition(value) {
|
|
585
|
-
const result = checkAgainstSchema(yaml__default[
|
|
585
|
+
const result = checkAgainstSchema(yaml__default["default"].load(value));
|
|
586
586
|
if ("error" in result) {
|
|
587
587
|
throw new Error("Definition content invalid: " + result.error);
|
|
588
588
|
}
|
|
@@ -619,7 +619,7 @@ class GitHubTokenCliProvider {
|
|
|
619
619
|
if (process.env.CALS_GITHUB_TOKEN) {
|
|
620
620
|
return process.env.CALS_GITHUB_TOKEN;
|
|
621
621
|
}
|
|
622
|
-
const result = await keytar__default[
|
|
622
|
+
const result = await keytar__default["default"].getPassword(this.keyringService, this.keyringAccount);
|
|
623
623
|
if (result == null) {
|
|
624
624
|
process.stderr.write("No token found. Register using `cals github set-token`\n");
|
|
625
625
|
return undefined;
|
|
@@ -627,10 +627,10 @@ class GitHubTokenCliProvider {
|
|
|
627
627
|
return result;
|
|
628
628
|
}
|
|
629
629
|
async markInvalid() {
|
|
630
|
-
await keytar__default[
|
|
630
|
+
await keytar__default["default"].deletePassword(this.keyringService, this.keyringAccount);
|
|
631
631
|
}
|
|
632
632
|
async setToken(value) {
|
|
633
|
-
await keytar__default[
|
|
633
|
+
await keytar__default["default"].setPassword(this.keyringService, this.keyringAccount, value);
|
|
634
634
|
}
|
|
635
635
|
}
|
|
636
636
|
|
|
@@ -658,7 +658,7 @@ class GitHubService {
|
|
|
658
658
|
this.tokenProvider = props.tokenProvider;
|
|
659
659
|
// Control concurrency to GitHub API at service level so we
|
|
660
660
|
// can maximize concurrency all other places.
|
|
661
|
-
this.semaphore = pLimit__default[
|
|
661
|
+
this.semaphore = pLimit__default["default"](6);
|
|
662
662
|
this.octokit.hook.wrap("request", async (request, options) => {
|
|
663
663
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
664
664
|
this._requestCount++;
|
|
@@ -738,7 +738,7 @@ class GitHubService {
|
|
|
738
738
|
const headers = {
|
|
739
739
|
Authorization: `Bearer ${token}`,
|
|
740
740
|
};
|
|
741
|
-
const response = await this.semaphore(() => fetch__default[
|
|
741
|
+
const response = await this.semaphore(() => fetch__default["default"](url, {
|
|
742
742
|
method: "POST",
|
|
743
743
|
headers,
|
|
744
744
|
body: JSON.stringify({ query }),
|
|
@@ -1173,7 +1173,7 @@ class LoadSecrets {
|
|
|
1173
1173
|
}
|
|
1174
1174
|
async getInput(options) {
|
|
1175
1175
|
return new Promise((resolve, reject) => {
|
|
1176
|
-
read__default[
|
|
1176
|
+
read__default["default"](options, (err, answer) => {
|
|
1177
1177
|
if (err) {
|
|
1178
1178
|
reject(err);
|
|
1179
1179
|
}
|
|
@@ -1438,7 +1438,7 @@ class SnykTokenCliProvider {
|
|
|
1438
1438
|
if (process.env.CALS_SNYK_TOKEN) {
|
|
1439
1439
|
return process.env.CALS_SNYK_TOKEN;
|
|
1440
1440
|
}
|
|
1441
|
-
const result = await keytar__default[
|
|
1441
|
+
const result = await keytar__default["default"].getPassword(this.keyringService, this.keyringAccount);
|
|
1442
1442
|
if (result == null) {
|
|
1443
1443
|
process.stderr.write("No token found. Register using `cals snyk set-token`\n");
|
|
1444
1444
|
return undefined;
|
|
@@ -1446,10 +1446,10 @@ class SnykTokenCliProvider {
|
|
|
1446
1446
|
return result;
|
|
1447
1447
|
}
|
|
1448
1448
|
async markInvalid() {
|
|
1449
|
-
await keytar__default[
|
|
1449
|
+
await keytar__default["default"].deletePassword(this.keyringService, this.keyringAccount);
|
|
1450
1450
|
}
|
|
1451
1451
|
async setToken(value) {
|
|
1452
|
-
await keytar__default[
|
|
1452
|
+
await keytar__default["default"].setPassword(this.keyringService, this.keyringAccount, value);
|
|
1453
1453
|
}
|
|
1454
1454
|
}
|
|
1455
1455
|
|
|
@@ -1471,7 +1471,7 @@ class SnykService {
|
|
|
1471
1471
|
if (token === undefined) {
|
|
1472
1472
|
throw new Error("Missing token for Snyk");
|
|
1473
1473
|
}
|
|
1474
|
-
const response = await fetch__default[
|
|
1474
|
+
const response = await fetch__default["default"](`https://snyk.io/api/v1/org/${encodeURIComponent(snykAccountId)}/projects`, {
|
|
1475
1475
|
method: "GET",
|
|
1476
1476
|
headers: {
|
|
1477
1477
|
Accept: "application/json",
|
|
@@ -1499,18 +1499,32 @@ function createSnykService(props) {
|
|
|
1499
1499
|
}
|
|
1500
1500
|
|
|
1501
1501
|
function getGitHubRepo(snykProject) {
|
|
1502
|
-
if (snykProject.origin
|
|
1503
|
-
|
|
1502
|
+
if (snykProject.origin === "github") {
|
|
1503
|
+
const match = /^([^/]+)\/([^:]+)(:(.+))?$/.exec(snykProject.name);
|
|
1504
|
+
if (match === null) {
|
|
1505
|
+
throw Error(`Could not extract components from Snyk project name: ${snykProject.name} (id: ${snykProject.id})`);
|
|
1506
|
+
}
|
|
1507
|
+
return {
|
|
1508
|
+
owner: match[1],
|
|
1509
|
+
name: match[2],
|
|
1510
|
+
};
|
|
1511
|
+
}
|
|
1512
|
+
else if (snykProject.origin === "cli" &&
|
|
1513
|
+
snykProject.remoteRepoUrl != null) {
|
|
1514
|
+
// The remoteRepoUrl can be overriden when using the CLI, so don't
|
|
1515
|
+
// fail if we cannot extract the value.
|
|
1516
|
+
const match = /github.com\/([^/]+)\/(.+)\.git$/.exec(snykProject.remoteRepoUrl);
|
|
1517
|
+
if (match === null) {
|
|
1518
|
+
return undefined;
|
|
1519
|
+
}
|
|
1520
|
+
return {
|
|
1521
|
+
owner: match[1],
|
|
1522
|
+
name: match[2],
|
|
1523
|
+
};
|
|
1504
1524
|
}
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
throw Error(`Could not extract components from Snyk project name: ${snykProject.name} (id: ${snykProject.id})`);
|
|
1525
|
+
else {
|
|
1526
|
+
return undefined;
|
|
1508
1527
|
}
|
|
1509
|
-
return {
|
|
1510
|
-
owner: match[1],
|
|
1511
|
-
name: match[2],
|
|
1512
|
-
file: match[3],
|
|
1513
|
-
};
|
|
1514
1528
|
}
|
|
1515
1529
|
function getGitHubRepoId(repo) {
|
|
1516
1530
|
return repo ? `${repo.owner}/${repo.name}` : undefined;
|
|
@@ -1648,8 +1662,8 @@ function generateName(extra) {
|
|
|
1648
1662
|
async function createNetwork(executor) {
|
|
1649
1663
|
executor.checkCanContinue();
|
|
1650
1664
|
const networkName = generateName();
|
|
1651
|
-
await execa__default[
|
|
1652
|
-
const lsRes = await execa__default[
|
|
1665
|
+
await execa__default["default"]("docker", ["network", "create", networkName]);
|
|
1666
|
+
const lsRes = await execa__default["default"]("docker", [
|
|
1653
1667
|
"network",
|
|
1654
1668
|
"ls",
|
|
1655
1669
|
"-q",
|
|
@@ -1659,7 +1673,7 @@ async function createNetwork(executor) {
|
|
|
1659
1673
|
const networkId = lsRes.stdout.trim();
|
|
1660
1674
|
console.log(`Network ${networkName} (${networkId}) created`);
|
|
1661
1675
|
executor.registerCleanupTask(async () => {
|
|
1662
|
-
await execa__default[
|
|
1676
|
+
await execa__default["default"]("docker", ["network", "rm", networkId]);
|
|
1663
1677
|
console.log(`Network ${networkName} (${networkId}) deleted`);
|
|
1664
1678
|
});
|
|
1665
1679
|
return {
|
|
@@ -1671,7 +1685,7 @@ async function createNetwork(executor) {
|
|
|
1671
1685
|
*/
|
|
1672
1686
|
async function curl(executor, network, ...args) {
|
|
1673
1687
|
executor.checkCanContinue();
|
|
1674
|
-
const result = await execa__default[
|
|
1688
|
+
const result = await execa__default["default"]("docker", [
|
|
1675
1689
|
"run",
|
|
1676
1690
|
"-i",
|
|
1677
1691
|
"--rm",
|
|
@@ -1736,7 +1750,7 @@ async function waitForPostgresAvailable({ container, attempts = 30, waitInterval
|
|
|
1736
1750
|
attempts,
|
|
1737
1751
|
waitIntervalSec,
|
|
1738
1752
|
condition: async () => {
|
|
1739
|
-
await execa__default[
|
|
1753
|
+
await execa__default["default"]("docker", [
|
|
1740
1754
|
"exec",
|
|
1741
1755
|
"-e",
|
|
1742
1756
|
`PGPASSWORD=${password}`,
|
|
@@ -1757,7 +1771,7 @@ async function waitForPostgresAvailable({ container, attempts = 30, waitInterval
|
|
|
1757
1771
|
async function isRunning(executor, container) {
|
|
1758
1772
|
executor.checkCanContinue();
|
|
1759
1773
|
try {
|
|
1760
|
-
await execa__default[
|
|
1774
|
+
await execa__default["default"]("docker", ["inspect", container.name]);
|
|
1761
1775
|
return true;
|
|
1762
1776
|
}
|
|
1763
1777
|
catch (e) {
|
|
@@ -1812,14 +1826,14 @@ async function getContainerId({ executor, name, hasFailed, pid, }) {
|
|
|
1812
1826
|
async function check() {
|
|
1813
1827
|
let result;
|
|
1814
1828
|
try {
|
|
1815
|
-
result = (await execa__default[
|
|
1829
|
+
result = (await execa__default["default"]("docker", ["inspect", name, "-f", "{{.Id}}"]))
|
|
1816
1830
|
.stdout;
|
|
1817
1831
|
}
|
|
1818
1832
|
catch (e) {
|
|
1819
1833
|
result = null;
|
|
1820
1834
|
}
|
|
1821
1835
|
// Debugging to help us solve CALS-366.
|
|
1822
|
-
const ps = execa__default[
|
|
1836
|
+
const ps = execa__default["default"]("docker", ["ps"]);
|
|
1823
1837
|
pipeToConsole(ps, `${name} (ps)`);
|
|
1824
1838
|
await ps;
|
|
1825
1839
|
// Debugging to help us solve CALS-366.
|
|
@@ -1852,12 +1866,12 @@ async function getContainerId({ executor, name, hasFailed, pid, }) {
|
|
|
1852
1866
|
}
|
|
1853
1867
|
async function pullImage({ imageId }) {
|
|
1854
1868
|
console.log(`Pulling ${imageId}`);
|
|
1855
|
-
const process = execa__default[
|
|
1869
|
+
const process = execa__default["default"]("docker", ["pull", imageId]);
|
|
1856
1870
|
pipeToConsole(process, `pull-image (${imageId})`);
|
|
1857
1871
|
await process;
|
|
1858
1872
|
}
|
|
1859
1873
|
async function checkImageExistsLocally({ imageId, }) {
|
|
1860
|
-
const result = await execa__default[
|
|
1874
|
+
const result = await execa__default["default"]("docker", ["images", "-q", imageId]);
|
|
1861
1875
|
const found = result.stdout != "";
|
|
1862
1876
|
console.log(`image ${imageId} ${found ? "was present locally" : "was not found locally"}`);
|
|
1863
1877
|
return found;
|
|
@@ -1893,7 +1907,7 @@ async function startContainer({ executor, network, imageId, alias, env, dockerAr
|
|
|
1893
1907
|
}
|
|
1894
1908
|
args.push(imageId);
|
|
1895
1909
|
console.log(`Starting ${imageId}`);
|
|
1896
|
-
const process = execa__default[
|
|
1910
|
+
const process = execa__default["default"]("docker", args);
|
|
1897
1911
|
pipeToConsole(process, alias !== null && alias !== void 0 ? alias : containerName);
|
|
1898
1912
|
let failed = false;
|
|
1899
1913
|
process.catch(() => {
|
|
@@ -1907,7 +1921,7 @@ async function startContainer({ executor, network, imageId, alias, env, dockerAr
|
|
|
1907
1921
|
});
|
|
1908
1922
|
executor.registerCleanupTask(async () => {
|
|
1909
1923
|
console.log(`Stopping container ${containerName}`);
|
|
1910
|
-
const r = execa__default[
|
|
1924
|
+
const r = execa__default["default"]("docker", ["stop", containerName]);
|
|
1911
1925
|
pipeToConsole(r, (alias !== null && alias !== void 0 ? alias : containerName) + " (stop)");
|
|
1912
1926
|
try {
|
|
1913
1927
|
await r;
|
|
@@ -1928,7 +1942,7 @@ async function startContainer({ executor, network, imageId, alias, env, dockerAr
|
|
|
1928
1942
|
};
|
|
1929
1943
|
}
|
|
1930
1944
|
async function runNpmRunScript(name, options) {
|
|
1931
|
-
const result = execa__default[
|
|
1945
|
+
const result = execa__default["default"]("npm", ["run", name], {
|
|
1932
1946
|
env: options === null || options === void 0 ? void 0 : options.env,
|
|
1933
1947
|
});
|
|
1934
1948
|
pipeToConsole(result, `npm run ${name}`);
|
|
@@ -1941,8 +1955,8 @@ async function getDockerHostAddress() {
|
|
|
1941
1955
|
if (process.platform === "darwin" || process.platform === "win32") {
|
|
1942
1956
|
return "host.docker.internal";
|
|
1943
1957
|
}
|
|
1944
|
-
if (fs__default[
|
|
1945
|
-
const process = execa__default[
|
|
1958
|
+
if (fs__default["default"].existsSync("/.dockerenv")) {
|
|
1959
|
+
const process = execa__default["default"]("ip", ["route"]);
|
|
1946
1960
|
pipeToConsole(process, "ip route");
|
|
1947
1961
|
const res = await process;
|
|
1948
1962
|
try {
|
|
@@ -1960,7 +1974,7 @@ async function getDockerHostAddress() {
|
|
|
1960
1974
|
}
|
|
1961
1975
|
async function waitForEnterToContinue(prompt = "Press enter to continue") {
|
|
1962
1976
|
return new Promise((resolve, reject) => {
|
|
1963
|
-
read__default[
|
|
1977
|
+
read__default["default"]({
|
|
1964
1978
|
prompt,
|
|
1965
1979
|
silent: true,
|
|
1966
1980
|
}, (err) => {
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/lib/snyk/types.d.ts
CHANGED
|
@@ -8,15 +8,20 @@ export interface SnykProject {
|
|
|
8
8
|
isMonitored: boolean;
|
|
9
9
|
totalDependencies: number;
|
|
10
10
|
issueCountsBySeverity: {
|
|
11
|
-
|
|
11
|
+
critical?: number;
|
|
12
12
|
high: number;
|
|
13
13
|
medium: number;
|
|
14
|
+
low: number;
|
|
14
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* E.g. http://github.com/capralifecycle/some-repo.git
|
|
18
|
+
* Set when using the CLI.
|
|
19
|
+
*/
|
|
20
|
+
remoteRepoUrl?: string;
|
|
15
21
|
lastTestedDate?: string | null;
|
|
16
22
|
browseUrl: string;
|
|
17
23
|
}
|
|
18
24
|
export interface SnykGitHubRepo {
|
|
19
25
|
owner: string;
|
|
20
26
|
name: string;
|
|
21
|
-
file: string;
|
|
22
27
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@capraconsulting/cals-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.23.2",
|
|
4
4
|
"description": "CLI for repeatable tasks in CALS",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"prepare": "node scripts/create-definition-schema.js && husky install",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"execa": "^5.0.0",
|
|
31
31
|
"find-up": "^5.0.0",
|
|
32
32
|
"js-yaml": "^4.0.0",
|
|
33
|
-
"keytar": "^7.
|
|
33
|
+
"keytar": "^7.8.0",
|
|
34
34
|
"lodash": "^4.17.15",
|
|
35
35
|
"node-fetch": "^2.6.0",
|
|
36
36
|
"p-limit": "^3.0.0",
|
|
@@ -42,41 +42,41 @@
|
|
|
42
42
|
"yargs": "^17.0.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@commitlint/cli": "
|
|
46
|
-
"@commitlint/config-conventional": "
|
|
45
|
+
"@commitlint/cli": "16.1.0",
|
|
46
|
+
"@commitlint/config-conventional": "16.0.0",
|
|
47
47
|
"@octokit/types": "6.16.7",
|
|
48
|
-
"@rollup/plugin-alias": "3.1.
|
|
48
|
+
"@rollup/plugin-alias": "3.1.9",
|
|
49
49
|
"@rollup/plugin-json": "4.1.0",
|
|
50
|
-
"@rollup/plugin-replace": "
|
|
51
|
-
"@types/jest": "27.0
|
|
52
|
-
"@types/js-yaml": "4.0.
|
|
53
|
-
"@types/lodash": "4.14.
|
|
54
|
-
"@types/node": "14.
|
|
50
|
+
"@rollup/plugin-replace": "3.0.1",
|
|
51
|
+
"@types/jest": "27.4.0",
|
|
52
|
+
"@types/js-yaml": "4.0.5",
|
|
53
|
+
"@types/lodash": "4.14.178",
|
|
54
|
+
"@types/node": "14.18.10",
|
|
55
55
|
"@types/node-fetch": "2.5.12",
|
|
56
56
|
"@types/read": "0.0.29",
|
|
57
57
|
"@types/rimraf": "3.0.2",
|
|
58
|
-
"@types/semver": "7.3.
|
|
58
|
+
"@types/semver": "7.3.9",
|
|
59
59
|
"@types/sprintf-js": "1.1.2",
|
|
60
|
-
"@types/yargs": "17.0.
|
|
61
|
-
"@typescript-eslint/eslint-plugin": "
|
|
62
|
-
"@typescript-eslint/parser": "
|
|
63
|
-
"dateformat": "4.
|
|
60
|
+
"@types/yargs": "17.0.8",
|
|
61
|
+
"@typescript-eslint/eslint-plugin": "5.10.2",
|
|
62
|
+
"@typescript-eslint/parser": "5.10.2",
|
|
63
|
+
"dateformat": "4.6.3",
|
|
64
64
|
"del": "6.0.0",
|
|
65
|
-
"eslint": "
|
|
65
|
+
"eslint": "8.8.0",
|
|
66
66
|
"eslint-config-prettier": "8.3.0",
|
|
67
|
-
"eslint-plugin-deprecation": "1.2.1",
|
|
68
67
|
"eslint-plugin-prettier": "4.0.0",
|
|
69
|
-
"husky": "7.0.
|
|
70
|
-
"jest": "27.
|
|
71
|
-
"prettier": "2.
|
|
72
|
-
"rollup": "2.
|
|
73
|
-
"rollup-plugin-typescript2": "0.
|
|
74
|
-
"semantic-release": "
|
|
68
|
+
"husky": "7.0.4",
|
|
69
|
+
"jest": "27.4.7",
|
|
70
|
+
"prettier": "2.5.1",
|
|
71
|
+
"rollup": "2.67.0",
|
|
72
|
+
"rollup-plugin-typescript2": "0.31.2",
|
|
73
|
+
"semantic-release": "19.0.2",
|
|
75
74
|
"tempy": "1.0.1",
|
|
76
|
-
"ts-jest": "27.
|
|
77
|
-
"typescript": "4.
|
|
78
|
-
"typescript-json-schema": "0.
|
|
75
|
+
"ts-jest": "27.1.3",
|
|
76
|
+
"typescript": "4.5.5",
|
|
77
|
+
"typescript-json-schema": "0.53.0"
|
|
79
78
|
},
|
|
79
|
+
"peerDependencies": {},
|
|
80
80
|
"files": [
|
|
81
81
|
"lib/**/*"
|
|
82
82
|
],
|