license-cop 1.0.2 → 1.1.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/README.md +4 -0
- package/package.json +3 -3
- package/src/index.d.ts +2 -1
- package/src/index.js +11 -3
- package/src/index.js.map +1 -1
- package/src/lib/cli/arguments.d.ts +1 -0
- package/src/lib/cli/arguments.js +2 -4
- package/src/lib/cli/arguments.js.map +1 -1
- package/src/lib/cli/commands/init.js +24 -0
- package/src/lib/cli/commands/init.js.map +1 -0
- package/src/lib/cli/{version.js → commands/version.js} +4 -6
- package/src/lib/cli/commands/version.js.map +1 -0
- package/src/lib/cli/index.js +36 -24
- package/src/lib/cli/index.js.map +1 -1
- package/src/lib/cli/report-failure.d.ts +2 -0
- package/src/lib/cli/report-failure.js +34 -0
- package/src/lib/cli/report-failure.js.map +1 -0
- package/src/lib/cli/report-success.d.ts +2 -0
- package/src/lib/cli/report-success.js +20 -0
- package/src/lib/cli/report-success.js.map +1 -0
- package/src/lib/config/config-error.d.ts +4 -0
- package/src/lib/config/config-error.js +25 -0
- package/src/lib/config/config-error.js.map +1 -0
- package/src/lib/config/config.js +2 -5
- package/src/lib/config/config.js.map +1 -1
- package/src/lib/config/find-config.js +9 -7
- package/src/lib/config/find-config.js.map +1 -1
- package/src/lib/config/load-config.js +4 -6
- package/src/lib/config/load-config.js.map +1 -1
- package/src/lib/config/load-parent-config.js +2 -4
- package/src/lib/config/load-parent-config.js.map +1 -1
- package/src/lib/config/parent-resolutions/github.d.ts +1 -1
- package/src/lib/config/parent-resolutions/github.js +12 -9
- package/src/lib/config/parent-resolutions/github.js.map +1 -1
- package/src/lib/config/parent-resolutions/http.js +3 -5
- package/src/lib/config/parent-resolutions/http.js.map +1 -1
- package/src/lib/config/parent-resolutions/npm.js +2 -3
- package/src/lib/config/parent-resolutions/npm.js.map +1 -1
- package/src/lib/config/parsers/json5.js +2 -6
- package/src/lib/config/parsers/json5.js.map +1 -1
- package/src/lib/license-cop.d.ts +2 -1
- package/src/lib/license-cop.js +70 -37
- package/src/lib/license-cop.js.map +1 -1
- package/src/lib/logger.d.ts +8 -0
- package/src/lib/logger.js +38 -0
- package/src/lib/logger.js.map +1 -0
- package/src/lib/package-json.d.ts +33 -3
- package/src/lib/package-json.js +41 -8
- package/src/lib/package-json.js.map +1 -1
- package/src/lib/package-rules.d.ts +0 -1
- package/src/lib/package-rules.js +3 -15
- package/src/lib/package-rules.js.map +1 -1
- package/src/lib/result.d.ts +27 -0
- package/src/lib/result.js +3 -0
- package/src/lib/result.js.map +1 -0
- package/src/lib/spdx/calculate-issues.d.ts +2 -0
- package/src/lib/spdx/calculate-issues.js +43 -0
- package/src/lib/spdx/calculate-issues.js.map +1 -0
- package/src/lib/spdx/get-tokens.d.ts +2 -0
- package/src/lib/spdx/get-tokens.js +52 -0
- package/src/lib/spdx/get-tokens.js.map +1 -0
- package/src/lib/spdx/parse-license-expression.d.ts +2 -0
- package/src/lib/spdx/parse-license-expression.js +18 -0
- package/src/lib/spdx/parse-license-expression.js.map +1 -0
- package/src/lib/spdx/parse-tokens.d.ts +3 -0
- package/src/lib/spdx/parse-tokens.js +118 -0
- package/src/lib/spdx/parse-tokens.js.map +1 -0
- package/src/lib/spdx/types/spdx-expression.d.ts +20 -0
- package/src/lib/spdx/types/spdx-expression.js +3 -0
- package/src/lib/spdx/types/spdx-expression.js.map +1 -0
- package/src/lib/spdx/types/token.d.ts +23 -0
- package/src/lib/spdx/types/token.js +25 -0
- package/src/lib/spdx/types/token.js.map +1 -0
- package/src/lib/utils/join-string-array.d.ts +1 -0
- package/src/lib/utils/join-string-array.js +26 -0
- package/src/lib/utils/join-string-array.js.map +1 -0
- package/src/lib/cli/init.js +0 -24
- package/src/lib/cli/init.js.map +0 -1
- package/src/lib/cli/version.js.map +0 -1
- package/src/lib/violations-error.d.ts +0 -9
- package/src/lib/violations-error.js +0 -16
- package/src/lib/violations-error.js.map +0 -1
- /package/src/lib/cli/{init.d.ts → commands/init.d.ts} +0 -0
- /package/src/lib/cli/{version.d.ts → commands/version.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -6,6 +6,10 @@ Yet another license checker tool for your dependencies; focused on simplicity.
|
|
|
6
6
|
<img alt="npm" src="https://img.shields.io/npm/v/license-cop?logo=npm">
|
|
7
7
|
</a>
|
|
8
8
|
|
|
9
|
+
<a href="https://license-cop.js.org">
|
|
10
|
+
<img alt="Protected by: License-Cop" src="https://license-cop.js.org/shield.svg">
|
|
11
|
+
</a>
|
|
12
|
+
|
|
9
13
|
## Setup
|
|
10
14
|
|
|
11
15
|
Install license-cop
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "license-cop",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"bin": {
|
|
6
6
|
"license-cop": "./src/bin/license-cop"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
},
|
|
13
13
|
"license": "ISC",
|
|
14
14
|
"description": "Yet another license checker tool for your dependencies; focused on simplicity.",
|
|
15
|
-
"homepage": "https://
|
|
15
|
+
"homepage": "https://license-cop.js.org",
|
|
16
16
|
"repository": {
|
|
17
17
|
"type": "git",
|
|
18
18
|
"url": "git+https://github.com/tobysmith568/license-cop.git",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"zod": "3.21.4"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
|
-
"@swc/helpers": "0.
|
|
45
|
+
"@swc/helpers": "0.5.1"
|
|
46
46
|
},
|
|
47
47
|
"main": "./src/index.js",
|
|
48
48
|
"exports": {
|
package/src/index.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { checkLicenses, LicenseCopOptions } from "./lib/license-cop";
|
|
2
|
+
export * from "./lib/result";
|
package/src/index.js
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
function _export(target, all) {
|
|
3
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
4
|
+
enumerable: true,
|
|
5
|
+
get: all[name]
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
_export(exports, {
|
|
9
|
+
checkLicenses: ()=>_licenseCop.checkLicenses,
|
|
10
|
+
LicenseCopOptions: ()=>_licenseCop.LicenseCopOptions
|
|
4
11
|
});
|
|
5
12
|
const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
|
|
6
|
-
|
|
13
|
+
const _licenseCop = require("./lib/license-cop");
|
|
14
|
+
_exportStar(require("./lib/result"), exports);
|
|
7
15
|
|
|
8
16
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../packages/license-cop/src/index.ts"],"sourcesContent":["export
|
|
1
|
+
{"version":3,"sources":["../../../../packages/license-cop/src/index.ts"],"sourcesContent":["export { checkLicenses, LicenseCopOptions } from \"./lib/license-cop\";\nexport * from \"./lib/result\";\n"],"names":["checkLicenses","LicenseCopOptions"],"mappings":";;;;;;;;IAASA,aAAa,MAAbA,yBAAa;IAAEC,iBAAiB,MAAjBA,6BAAiB;;;4BAAQ;oBACnC"}
|
package/src/lib/cli/arguments.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
2
|
Object.defineProperty(exports, "argumentsWithAliases", {
|
|
6
3
|
enumerable: true,
|
|
7
4
|
get: ()=>argumentsWithAliases
|
|
@@ -17,7 +14,8 @@ const argumentsWithAliases = {
|
|
|
17
14
|
"--dev-dependencies-only": Boolean,
|
|
18
15
|
"--dev-only": "--dev-dependencies-only",
|
|
19
16
|
"--version": Boolean,
|
|
20
|
-
"-v": "--version"
|
|
17
|
+
"-v": "--version",
|
|
18
|
+
"--verbose": Boolean
|
|
21
19
|
};
|
|
22
20
|
|
|
23
21
|
//# sourceMappingURL=arguments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/license-cop/src/lib/cli/arguments.ts"],"sourcesContent":["import { Spec } from \"arg\";\n\nexport interface UserInputs {\n version?: boolean;\n}\n\nexport interface ArgumentsWithAliases extends Spec {\n \"--init\": typeof Boolean;\n\n \"--directory\": typeof String;\n \"--dir\": \"--directory\";\n \"-d\": \"--directory\";\n\n \"--include-dev-dependencies\": typeof Boolean;\n \"--dev\": \"--include-dev-dependencies\";\n \"-D\": \"--include-dev-dependencies\";\n\n \"--dev-dependencies-only\": typeof Boolean;\n \"--dev-only\": \"--dev-dependencies-only\";\n\n \"--version\": typeof Boolean;\n \"-v\": \"--version\";\n}\n\nexport const argumentsWithAliases: ArgumentsWithAliases = {\n \"--init\": Boolean,\n\n \"--directory\": String,\n \"--dir\": \"--directory\",\n \"-d\": \"--directory\",\n\n \"--include-dev-dependencies\": Boolean,\n \"--dev\": \"--include-dev-dependencies\",\n \"-D\": \"--include-dev-dependencies\",\n\n \"--dev-dependencies-only\": Boolean,\n \"--dev-only\": \"--dev-dependencies-only\",\n\n \"--version\": Boolean,\n \"-v\": \"--version\"\n};\n"],"names":["argumentsWithAliases","Boolean","String"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/license-cop/src/lib/cli/arguments.ts"],"sourcesContent":["import { Spec } from \"arg\";\n\nexport interface UserInputs {\n version?: boolean;\n}\n\nexport interface ArgumentsWithAliases extends Spec {\n \"--init\": typeof Boolean;\n\n \"--directory\": typeof String;\n \"--dir\": \"--directory\";\n \"-d\": \"--directory\";\n\n \"--include-dev-dependencies\": typeof Boolean;\n \"--dev\": \"--include-dev-dependencies\";\n \"-D\": \"--include-dev-dependencies\";\n\n \"--dev-dependencies-only\": typeof Boolean;\n \"--dev-only\": \"--dev-dependencies-only\";\n\n \"--version\": typeof Boolean;\n \"-v\": \"--version\";\n\n \"--verbose\": typeof Boolean;\n}\n\nexport const argumentsWithAliases: ArgumentsWithAliases = {\n \"--init\": Boolean,\n\n \"--directory\": String,\n \"--dir\": \"--directory\",\n \"-d\": \"--directory\",\n\n \"--include-dev-dependencies\": Boolean,\n \"--dev\": \"--include-dev-dependencies\",\n \"-D\": \"--include-dev-dependencies\",\n\n \"--dev-dependencies-only\": Boolean,\n \"--dev-only\": \"--dev-dependencies-only\",\n\n \"--version\": Boolean,\n \"-v\": \"--version\",\n\n \"--verbose\": Boolean\n};\n"],"names":["argumentsWithAliases","Boolean","String"],"mappings":";+BA0BaA;;aAAAA;;AAAN,MAAMA,uBAA6C;IACxD,UAAUC;IAEV,eAAeC;IACf,SAAS;IACT,MAAM;IAEN,8BAA8BD;IAC9B,SAAS;IACT,MAAM;IAEN,2BAA2BA;IAC3B,cAAc;IAEd,aAAaA;IACb,MAAM;IAEN,aAAaA;AACf"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "init", {
|
|
3
|
+
enumerable: true,
|
|
4
|
+
get: ()=>init
|
|
5
|
+
});
|
|
6
|
+
const _promises = require("fs/promises");
|
|
7
|
+
const _path = require("path");
|
|
8
|
+
const _logger = require("../../logger");
|
|
9
|
+
const defaultConfig = `{
|
|
10
|
+
"$schema": "https://license-cop.js.org/schema.json",
|
|
11
|
+
"licenses": ["MIT", "ISC", "Apache-2.0"],
|
|
12
|
+
"packages": []
|
|
13
|
+
}
|
|
14
|
+
`;
|
|
15
|
+
const init = async (rootDir)=>{
|
|
16
|
+
_logger.default.log("Setting up a new license-cop config file...");
|
|
17
|
+
const configPath = (0, _path.join)(rootDir, ".licenses.json");
|
|
18
|
+
_logger.default.verbose(`Writing config file to: ${configPath}`);
|
|
19
|
+
await (0, _promises.writeFile)(configPath, defaultConfig);
|
|
20
|
+
_logger.default.log("Done!");
|
|
21
|
+
_logger.default.log("Run `npx license-cop` to check your dependencies");
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/license-cop/src/lib/cli/commands/init.ts"],"sourcesContent":["import { writeFile } from \"fs/promises\";\nimport { join } from \"path\";\nimport logger from \"../../logger\";\n\nconst defaultConfig = `{\n \"$schema\": \"https://license-cop.js.org/schema.json\",\n \"licenses\": [\"MIT\", \"ISC\", \"Apache-2.0\"],\n \"packages\": []\n}\n`;\n\nexport const init = async (rootDir: string) => {\n logger.log(\"Setting up a new license-cop config file...\");\n\n const configPath = join(rootDir, \".licenses.json\");\n logger.verbose(`Writing config file to: ${configPath}`);\n await writeFile(configPath, defaultConfig);\n\n logger.log(\"Done!\");\n logger.log(\"Run `npx license-cop` to check your dependencies\");\n};\n"],"names":["init","defaultConfig","rootDir","logger","log","configPath","join","verbose","writeFile"],"mappings":";+BAWaA;;aAAAA;;0BAXa;sBACL;wBACF;AAEnB,MAAMC,gBAAgB,CAAC;;;;;AAKvB,CAAC;AAEM,MAAMD,OAAO,OAAOE,UAAoB;IAC7CC,eAAM,CAACC,GAAG,CAAC;IAEX,MAAMC,aAAaC,IAAAA,UAAI,EAACJ,SAAS;IACjCC,eAAM,CAACI,OAAO,CAAC,CAAC,wBAAwB,EAAEF,WAAW,CAAC;IACtD,MAAMG,IAAAA,mBAAS,EAACH,YAAYJ;IAE5BE,eAAM,CAACC,GAAG,CAAC;IACXD,eAAM,CAACC,GAAG,CAAC;AACb"}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
2
|
Object.defineProperty(exports, "printPackageVersion", {
|
|
6
3
|
enumerable: true,
|
|
7
4
|
get: ()=>printPackageVersion
|
|
8
5
|
});
|
|
9
6
|
const _path = require("path");
|
|
10
|
-
const
|
|
7
|
+
const _logger = require("../../logger");
|
|
8
|
+
const _packageJson = require("../../package-json");
|
|
11
9
|
const printPackageVersion = async ()=>{
|
|
12
|
-
const packageJsonLocation = (0, _path.join)(__dirname, "
|
|
10
|
+
const packageJsonLocation = (0, _path.join)(__dirname, "../../../../package.json");
|
|
13
11
|
const { version } = await (0, _packageJson.readPackageJson)(packageJsonLocation);
|
|
14
|
-
|
|
12
|
+
_logger.default.log(`v${version}`);
|
|
15
13
|
};
|
|
16
14
|
|
|
17
15
|
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/license-cop/src/lib/cli/commands/version.ts"],"sourcesContent":["import { join } from \"path\";\nimport logger from \"../../logger\";\nimport { readPackageJson } from \"../../package-json\";\n\nexport const printPackageVersion = async (): Promise<void> => {\n const packageJsonLocation = join(__dirname, \"../../../../package.json\");\n const { version } = await readPackageJson(packageJsonLocation);\n logger.log(`v${version}`);\n};\n"],"names":["printPackageVersion","packageJsonLocation","join","__dirname","version","readPackageJson","logger","log"],"mappings":";+BAIaA;;aAAAA;;sBAJQ;wBACF;6BACa;AAEzB,MAAMA,sBAAsB,UAA2B;IAC5D,MAAMC,sBAAsBC,IAAAA,UAAI,EAACC,WAAW;IAC5C,MAAM,EAAEC,QAAO,EAAE,GAAG,MAAMC,IAAAA,4BAAe,EAACJ;IAC1CK,eAAM,CAACC,GAAG,CAAC,CAAC,CAAC,EAAEH,QAAQ,CAAC;AAC1B"}
|
package/src/lib/cli/index.js
CHANGED
|
@@ -1,44 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
2
|
Object.defineProperty(exports, "main", {
|
|
6
3
|
enumerable: true,
|
|
7
4
|
get: ()=>main
|
|
8
5
|
});
|
|
9
|
-
const
|
|
10
|
-
const _arg = /*#__PURE__*/ _interopRequireDefault(require("arg"));
|
|
6
|
+
const _arg = require("arg");
|
|
11
7
|
const _loadConfig = require("../config/load-config");
|
|
12
8
|
const _licenseCop = require("../license-cop");
|
|
13
|
-
const _violationsError = require("../violations-error");
|
|
14
9
|
const _arguments = require("./arguments");
|
|
15
|
-
const _init = require("./init");
|
|
16
|
-
const _version = require("./version");
|
|
10
|
+
const _init = require("./commands/init");
|
|
11
|
+
const _version = require("./commands/version");
|
|
12
|
+
const _path = require("path");
|
|
13
|
+
const _packageJson = require("../package-json");
|
|
14
|
+
const _logger = require("../logger");
|
|
15
|
+
const _reportFailure = require("./report-failure");
|
|
16
|
+
const _reportSuccess = require("./report-success");
|
|
17
17
|
async function main(args) {
|
|
18
|
+
_logger.default.enableLogging();
|
|
18
19
|
try {
|
|
19
|
-
await cli(args);
|
|
20
|
+
const exitCode = await cli(args);
|
|
21
|
+
process.exitCode = exitCode;
|
|
20
22
|
} catch (e) {
|
|
21
|
-
if (e instanceof
|
|
22
|
-
|
|
23
|
-
} else if (e instanceof Error) {
|
|
24
|
-
console.error(e.message);
|
|
23
|
+
if (e instanceof Error) {
|
|
24
|
+
_logger.default.error(e.message);
|
|
25
25
|
} else {
|
|
26
|
-
|
|
26
|
+
_logger.default.error(JSON.stringify(e));
|
|
27
27
|
}
|
|
28
|
+
_logger.default.verbose("\nExiting with error code 1");
|
|
28
29
|
process.exitCode = 1;
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
32
|
const cli = async (args)=>{
|
|
32
33
|
const givenUserInputs = parseUserInputs(args);
|
|
34
|
+
if (givenUserInputs["--verbose"]) {
|
|
35
|
+
_logger.default.enableVerboseLogging();
|
|
36
|
+
_logger.default.verbose("Verbose logging enabled");
|
|
37
|
+
}
|
|
33
38
|
if (givenUserInputs["--version"]) {
|
|
34
39
|
await (0, _version.printPackageVersion)();
|
|
35
|
-
return;
|
|
40
|
+
return 0;
|
|
36
41
|
}
|
|
37
42
|
var _givenUserInputs_directory;
|
|
38
43
|
const directory = (_givenUserInputs_directory = givenUserInputs["--directory"]) != null ? _givenUserInputs_directory : process.cwd();
|
|
44
|
+
_logger.default.verbose(`Using directory: ${directory}`);
|
|
39
45
|
if (givenUserInputs["--init"]) {
|
|
40
46
|
await (0, _init.init)(directory);
|
|
41
|
-
return;
|
|
47
|
+
return 0;
|
|
42
48
|
}
|
|
43
49
|
const config = await (0, _loadConfig.loadConfig)(directory);
|
|
44
50
|
var _givenUserInputs_includedevdependencies, _givenUserInputs_devdependenciesonly;
|
|
@@ -49,19 +55,25 @@ const cli = async (args)=>{
|
|
|
49
55
|
includeDevDependencies: (_givenUserInputs_includedevdependencies = givenUserInputs["--include-dev-dependencies"]) != null ? _givenUserInputs_includedevdependencies : config.includeDevDependencies,
|
|
50
56
|
devDependenciesOnly: (_givenUserInputs_devdependenciesonly = givenUserInputs["--dev-dependencies-only"]) != null ? _givenUserInputs_devdependenciesonly : config.devDependenciesOnly
|
|
51
57
|
};
|
|
52
|
-
await (
|
|
58
|
+
const productName = await getProductName(directory);
|
|
59
|
+
_logger.default.log(`Scanning dependencies of: ${productName}`);
|
|
60
|
+
const result = await (0, _licenseCop.checkLicenses)(options);
|
|
61
|
+
if (result.noLicenses.size > 0 || result.forbiddenLicenses.size > 0) {
|
|
62
|
+
(0, _reportFailure.reportFailure)(result);
|
|
63
|
+
return 1;
|
|
64
|
+
}
|
|
65
|
+
(0, _reportSuccess.reportSuccess)(result);
|
|
66
|
+
return 0;
|
|
53
67
|
};
|
|
54
68
|
const parseUserInputs = (rawArgs)=>{
|
|
55
|
-
return
|
|
69
|
+
return _arg(_arguments.argumentsWithAliases, {
|
|
56
70
|
argv: rawArgs.slice(2)
|
|
57
71
|
});
|
|
58
72
|
};
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
console.log(`${packageName}@${packageVersion} - ${license}`);
|
|
64
|
-
}
|
|
73
|
+
const getProductName = async (directory)=>{
|
|
74
|
+
const packageJsonPath = (0, _path.join)(directory, "package.json");
|
|
75
|
+
const packageJson = await (0, _packageJson.readPackageJson)(packageJsonPath);
|
|
76
|
+
return packageJson.name;
|
|
65
77
|
};
|
|
66
78
|
|
|
67
79
|
//# sourceMappingURL=index.js.map
|
package/src/lib/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/license-cop/src/lib/cli/index.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/license-cop/src/lib/cli/index.ts"],"sourcesContent":["import { Result } from \"arg\";\nimport * as arg from \"arg\";\nimport { loadConfig } from \"../config/load-config\";\nimport { checkLicenses, LicenseCopOptions } from \"../license-cop\";\nimport { argumentsWithAliases, ArgumentsWithAliases } from \"./arguments\";\nimport { init } from \"./commands/init\";\nimport { printPackageVersion } from \"./commands/version\";\nimport { join } from \"path\";\nimport { readPackageJson } from \"../package-json\";\nimport logger from \"../logger\";\nimport { reportFailure } from \"./report-failure\";\nimport { reportSuccess } from \"./report-success\";\n\ntype ExitCode = 0 | 1;\n\nexport async function main(args: string[]): Promise<void> {\n logger.enableLogging();\n try {\n const exitCode = await cli(args);\n process.exitCode = exitCode;\n } catch (e: unknown) {\n if (e instanceof Error) {\n logger.error(e.message);\n } else {\n logger.error(JSON.stringify(e));\n }\n\n logger.verbose(\"\\nExiting with error code 1\");\n process.exitCode = 1;\n }\n}\n\nconst cli = async (args: string[]): Promise<ExitCode> => {\n const givenUserInputs = parseUserInputs(args);\n\n if (givenUserInputs[\"--verbose\"]) {\n logger.enableVerboseLogging();\n logger.verbose(\"Verbose logging enabled\");\n }\n\n if (givenUserInputs[\"--version\"]) {\n await printPackageVersion();\n return 0;\n }\n\n const directory = givenUserInputs[\"--directory\"] ?? process.cwd();\n logger.verbose(`Using directory: ${directory}`);\n\n if (givenUserInputs[\"--init\"]) {\n await init(directory);\n return 0;\n }\n\n const config = await loadConfig(directory);\n\n const options: LicenseCopOptions = {\n allowedLicenses: config.licenses,\n allowedPackages: config.packages,\n\n workingDirectory: directory,\n includeDevDependencies:\n givenUserInputs[\"--include-dev-dependencies\"] ?? config.includeDevDependencies,\n devDependenciesOnly: givenUserInputs[\"--dev-dependencies-only\"] ?? config.devDependenciesOnly\n };\n\n const productName = await getProductName(directory);\n logger.log(`Scanning dependencies of: ${productName}`);\n\n const result = await checkLicenses(options);\n\n if (result.noLicenses.size > 0 || result.forbiddenLicenses.size > 0) {\n reportFailure(result);\n return 1;\n }\n\n reportSuccess(result);\n return 0;\n};\n\nconst parseUserInputs = (rawArgs: string[]): Result<ArgumentsWithAliases> => {\n return arg(argumentsWithAliases, {\n argv: rawArgs.slice(2)\n });\n};\n\nconst getProductName = async (directory: string): Promise<string> => {\n const packageJsonPath = join(directory, \"package.json\");\n const packageJson = await readPackageJson(packageJsonPath);\n return packageJson.name;\n};\n"],"names":["main","args","logger","enableLogging","exitCode","cli","process","e","Error","error","message","JSON","stringify","verbose","givenUserInputs","parseUserInputs","enableVerboseLogging","printPackageVersion","directory","cwd","init","config","loadConfig","options","allowedLicenses","licenses","allowedPackages","packages","workingDirectory","includeDevDependencies","devDependenciesOnly","productName","getProductName","log","result","checkLicenses","noLicenses","size","forbiddenLicenses","reportFailure","reportSuccess","rawArgs","arg","argumentsWithAliases","argv","slice","packageJsonPath","join","packageJson","readPackageJson","name"],"mappings":";+BAesBA;;aAAAA;;qBAdD;4BACM;4BACsB;2BACU;sBACtC;yBACe;sBACf;6BACW;wBACb;+BACW;+BACA;AAIvB,eAAeA,KAAKC,IAAc,EAAiB;IACxDC,eAAM,CAACC,aAAa;IACpB,IAAI;QACF,MAAMC,WAAW,MAAMC,IAAIJ;QAC3BK,QAAQF,QAAQ,GAAGA;IACrB,EAAE,OAAOG,GAAY;QACnB,IAAIA,aAAaC,OAAO;YACtBN,eAAM,CAACO,KAAK,CAACF,EAAEG,OAAO;QACxB,OAAO;YACLR,eAAM,CAACO,KAAK,CAACE,KAAKC,SAAS,CAACL;QAC9B,CAAC;QAEDL,eAAM,CAACW,OAAO,CAAC;QACfP,QAAQF,QAAQ,GAAG;IACrB;AACF;AAEA,MAAMC,MAAM,OAAOJ,OAAsC;IACvD,MAAMa,kBAAkBC,gBAAgBd;IAExC,IAAIa,eAAe,CAAC,YAAY,EAAE;QAChCZ,eAAM,CAACc,oBAAoB;QAC3Bd,eAAM,CAACW,OAAO,CAAC;IACjB,CAAC;IAED,IAAIC,eAAe,CAAC,YAAY,EAAE;QAChC,MAAMG,IAAAA,4BAAmB;QACzB,OAAO;IACT,CAAC;QAEiBH;IAAlB,MAAMI,YAAYJ,CAAAA,6BAAAA,eAAe,CAAC,cAAc,YAA9BA,6BAAkCR,QAAQa,GAAG,EAAE;IACjEjB,eAAM,CAACW,OAAO,CAAC,CAAC,iBAAiB,EAAEK,UAAU,CAAC;IAE9C,IAAIJ,eAAe,CAAC,SAAS,EAAE;QAC7B,MAAMM,IAAAA,UAAI,EAACF;QACX,OAAO;IACT,CAAC;IAED,MAAMG,SAAS,MAAMC,IAAAA,sBAAU,EAACJ;QAQ5BJ,yCACmBA;IAPvB,MAAMS,UAA6B;QACjCC,iBAAiBH,OAAOI,QAAQ;QAChCC,iBAAiBL,OAAOM,QAAQ;QAEhCC,kBAAkBV;QAClBW,wBACEf,CAAAA,0CAAAA,eAAe,CAAC,6BAA6B,YAA7CA,0CAAiDO,OAAOQ,sBAAsB;QAChFC,qBAAqBhB,CAAAA,uCAAAA,eAAe,CAAC,0BAA0B,YAA1CA,uCAA8CO,OAAOS,mBAAmB;IAC/F;IAEA,MAAMC,cAAc,MAAMC,eAAed;IACzChB,eAAM,CAAC+B,GAAG,CAAC,CAAC,0BAA0B,EAAEF,YAAY,CAAC;IAErD,MAAMG,SAAS,MAAMC,IAAAA,yBAAa,EAACZ;IAEnC,IAAIW,OAAOE,UAAU,CAACC,IAAI,GAAG,KAAKH,OAAOI,iBAAiB,CAACD,IAAI,GAAG,GAAG;QACnEE,IAAAA,4BAAa,EAACL;QACd,OAAO;IACT,CAAC;IAEDM,IAAAA,4BAAa,EAACN;IACd,OAAO;AACT;AAEA,MAAMnB,kBAAkB,CAAC0B,UAAoD;IAC3E,OAAOC,KAAIC,+BAAoB,EAAE;QAC/BC,MAAMH,QAAQI,KAAK,CAAC;IACtB;AACF;AAEA,MAAMb,iBAAiB,OAAOd,YAAuC;IACnE,MAAM4B,kBAAkBC,IAAAA,UAAI,EAAC7B,WAAW;IACxC,MAAM8B,cAAc,MAAMC,IAAAA,4BAAe,EAACH;IAC1C,OAAOE,YAAYE,IAAI;AACzB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "reportFailure", {
|
|
3
|
+
enumerable: true,
|
|
4
|
+
get: ()=>reportFailure
|
|
5
|
+
});
|
|
6
|
+
const _logger = require("../logger");
|
|
7
|
+
const reportFailure = (result)=>{
|
|
8
|
+
const { noLicenses , forbiddenLicenses } = result;
|
|
9
|
+
_logger.default.log("Found the following issues...\n");
|
|
10
|
+
if (noLicenses.size > 0) {
|
|
11
|
+
logNoLicenseIssues(noLicenses);
|
|
12
|
+
}
|
|
13
|
+
if (forbiddenLicenses.size > 0) {
|
|
14
|
+
logForbiddenLicenseIssues(forbiddenLicenses);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const logNoLicenseIssues = (noLicenseResults)=>{
|
|
18
|
+
_logger.default.error("Packages with no license:");
|
|
19
|
+
for (const result of noLicenseResults.values()){
|
|
20
|
+
const { name , version } = result;
|
|
21
|
+
_logger.default.error(`${name}@${version}`);
|
|
22
|
+
}
|
|
23
|
+
_logger.default.error("");
|
|
24
|
+
};
|
|
25
|
+
const logForbiddenLicenseIssues = (forbiddenLicensesResults)=>{
|
|
26
|
+
_logger.default.error("Packages with forbidden licenses:");
|
|
27
|
+
for (const result of forbiddenLicensesResults.values()){
|
|
28
|
+
const { name , version , licenseIdentifiers , spdxExpression } = result;
|
|
29
|
+
const licenseDetails = licenseIdentifiers === spdxExpression ? licenseIdentifiers : `${licenseIdentifiers} from ${spdxExpression}`;
|
|
30
|
+
_logger.default.error(`${name}@${version} - ${licenseDetails}`);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=report-failure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/license-cop/src/lib/cli/report-failure.ts"],"sourcesContent":["import logger from \"../logger\";\nimport { CheckLicensesResult, ForbiddenLicenseResult, NoLicenseResult } from \"../result\";\n\nexport const reportFailure = (result: CheckLicensesResult): void => {\n const { noLicenses, forbiddenLicenses } = result;\n\n logger.log(\"Found the following issues...\\n\");\n\n if (noLicenses.size > 0) {\n logNoLicenseIssues(noLicenses);\n }\n\n if (forbiddenLicenses.size > 0) {\n logForbiddenLicenseIssues(forbiddenLicenses);\n }\n};\n\nconst logNoLicenseIssues = (noLicenseResults: Set<NoLicenseResult>) => {\n logger.error(\"Packages with no license:\");\n\n for (const result of noLicenseResults.values()) {\n const { name, version } = result;\n logger.error(`${name}@${version}`);\n }\n\n logger.error(\"\");\n};\n\nconst logForbiddenLicenseIssues = (forbiddenLicensesResults: Set<ForbiddenLicenseResult>): void => {\n logger.error(\"Packages with forbidden licenses:\");\n\n for (const result of forbiddenLicensesResults.values()) {\n const { name, version, licenseIdentifiers, spdxExpression } = result;\n\n const licenseDetails =\n licenseIdentifiers === spdxExpression\n ? licenseIdentifiers\n : `${licenseIdentifiers} from ${spdxExpression}`;\n\n logger.error(`${name}@${version} - ${licenseDetails}`);\n }\n};\n"],"names":["reportFailure","result","noLicenses","forbiddenLicenses","logger","log","size","logNoLicenseIssues","logForbiddenLicenseIssues","noLicenseResults","error","values","name","version","forbiddenLicensesResults","licenseIdentifiers","spdxExpression","licenseDetails"],"mappings":";+BAGaA;;aAAAA;;wBAHM;AAGZ,MAAMA,gBAAgB,CAACC,SAAsC;IAClE,MAAM,EAAEC,WAAU,EAAEC,kBAAiB,EAAE,GAAGF;IAE1CG,eAAM,CAACC,GAAG,CAAC;IAEX,IAAIH,WAAWI,IAAI,GAAG,GAAG;QACvBC,mBAAmBL;IACrB,CAAC;IAED,IAAIC,kBAAkBG,IAAI,GAAG,GAAG;QAC9BE,0BAA0BL;IAC5B,CAAC;AACH;AAEA,MAAMI,qBAAqB,CAACE,mBAA2C;IACrEL,eAAM,CAACM,KAAK,CAAC;IAEb,KAAK,MAAMT,UAAUQ,iBAAiBE,MAAM,GAAI;QAC9C,MAAM,EAAEC,KAAI,EAAEC,QAAO,EAAE,GAAGZ;QAC1BG,eAAM,CAACM,KAAK,CAAC,CAAC,EAAEE,KAAK,CAAC,EAAEC,QAAQ,CAAC;IACnC;IAEAT,eAAM,CAACM,KAAK,CAAC;AACf;AAEA,MAAMF,4BAA4B,CAACM,2BAAgE;IACjGV,eAAM,CAACM,KAAK,CAAC;IAEb,KAAK,MAAMT,UAAUa,yBAAyBH,MAAM,GAAI;QACtD,MAAM,EAAEC,KAAI,EAAEC,QAAO,EAAEE,mBAAkB,EAAEC,eAAc,EAAE,GAAGf;QAE9D,MAAMgB,iBACJF,uBAAuBC,iBACnBD,qBACA,CAAC,EAAEA,mBAAmB,MAAM,EAAEC,eAAe,CAAC;QAEpDZ,eAAM,CAACM,KAAK,CAAC,CAAC,EAAEE,KAAK,CAAC,EAAEC,QAAQ,GAAG,EAAEI,eAAe,CAAC;IACvD;AACF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "reportSuccess", {
|
|
3
|
+
enumerable: true,
|
|
4
|
+
get: ()=>reportSuccess
|
|
5
|
+
});
|
|
6
|
+
const _logger = require("../logger");
|
|
7
|
+
const reportSuccess = (result)=>{
|
|
8
|
+
const { allowedPackages , allowedLicenses } = result;
|
|
9
|
+
_logger.default.log("\nDone! No issues found");
|
|
10
|
+
if (allowedPackages.size !== 0) {
|
|
11
|
+
_logger.default.log(`Found ${allowedPackages.size} allowed packages`);
|
|
12
|
+
}
|
|
13
|
+
if (allowedLicenses.size !== 0) {
|
|
14
|
+
_logger.default.log(`Found ${allowedLicenses.size} packages with allowed licenses`);
|
|
15
|
+
}
|
|
16
|
+
_logger.default.verbose("\nExiting with error code 0");
|
|
17
|
+
process.exitCode = 0;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=report-success.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/license-cop/src/lib/cli/report-success.ts"],"sourcesContent":["import logger from \"../logger\";\nimport { CheckLicensesResult } from \"../result\";\n\nexport const reportSuccess = (result: CheckLicensesResult): void => {\n const { allowedPackages, allowedLicenses } = result;\n\n logger.log(\"\\nDone! No issues found\");\n\n if (allowedPackages.size !== 0) {\n logger.log(`Found ${allowedPackages.size} allowed packages`);\n }\n\n if (allowedLicenses.size !== 0) {\n logger.log(`Found ${allowedLicenses.size} packages with allowed licenses`);\n }\n\n logger.verbose(\"\\nExiting with error code 0\");\n process.exitCode = 0;\n};\n"],"names":["reportSuccess","result","allowedPackages","allowedLicenses","logger","log","size","verbose","process","exitCode"],"mappings":";+BAGaA;;aAAAA;;wBAHM;AAGZ,MAAMA,gBAAgB,CAACC,SAAsC;IAClE,MAAM,EAAEC,gBAAe,EAAEC,gBAAe,EAAE,GAAGF;IAE7CG,eAAM,CAACC,GAAG,CAAC;IAEX,IAAIH,gBAAgBI,IAAI,KAAK,GAAG;QAC9BF,eAAM,CAACC,GAAG,CAAC,CAAC,MAAM,EAAEH,gBAAgBI,IAAI,CAAC,iBAAiB,CAAC;IAC7D,CAAC;IAED,IAAIH,gBAAgBG,IAAI,KAAK,GAAG;QAC9BF,eAAM,CAACC,GAAG,CAAC,CAAC,MAAM,EAAEF,gBAAgBG,IAAI,CAAC,+BAA+B,CAAC;IAC3E,CAAC;IAEDF,eAAM,CAACG,OAAO,CAAC;IACfC,QAAQC,QAAQ,GAAG;AACrB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "ConfigError", {
|
|
3
|
+
enumerable: true,
|
|
4
|
+
get: ()=>ConfigError
|
|
5
|
+
});
|
|
6
|
+
let ConfigError = class ConfigError extends Error {
|
|
7
|
+
static fromUnknown(e) {
|
|
8
|
+
const message = resolveMessage(e);
|
|
9
|
+
return new ConfigError(message);
|
|
10
|
+
}
|
|
11
|
+
constructor(message){
|
|
12
|
+
super(`Config error: ${message}`);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
const resolveMessage = (e)=>{
|
|
16
|
+
if (e instanceof Error) {
|
|
17
|
+
return e.message;
|
|
18
|
+
}
|
|
19
|
+
if (typeof e === "string") {
|
|
20
|
+
return e;
|
|
21
|
+
}
|
|
22
|
+
return "Unknown error";
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=config-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/license-cop/src/lib/config/config-error.ts"],"sourcesContent":["export class ConfigError extends Error {\n constructor(message: string) {\n super(`Config error: ${message}`);\n }\n\n static fromUnknown(e: unknown): ConfigError {\n const message = resolveMessage(e);\n return new ConfigError(message);\n }\n}\n\nconst resolveMessage = (e: unknown): string => {\n if (e instanceof Error) {\n return e.message;\n }\n\n if (typeof e === \"string\") {\n return e;\n }\n\n return \"Unknown error\";\n};\n"],"names":["ConfigError","Error","fromUnknown","e","message","resolveMessage","constructor"],"mappings":";+BAAaA;;aAAAA;;AAAN,IAAA,AAAMA,cAAN,MAAMA,oBAAoBC;IAK/B,OAAOC,YAAYC,CAAU,EAAe;QAC1C,MAAMC,UAAUC,eAAeF;QAC/B,OAAO,IAAIH,YAAYI;IACzB;IAPAE,YAAYF,OAAe,CAAE;QAC3B,KAAK,CAAC,CAAC,cAAc,EAAEA,QAAQ,CAAC;IAClC;AAMF;AAEA,MAAMC,iBAAiB,CAACF,IAAuB;IAC7C,IAAIA,aAAaF,OAAO;QACtB,OAAOE,EAAEC,OAAO;IAClB,CAAC;IAED,IAAI,OAAOD,MAAM,UAAU;QACzB,OAAOA;IACT,CAAC;IAED,OAAO;AACT"}
|
package/src/lib/config/config.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
2
|
Object.defineProperty(exports, "parseConfig", {
|
|
6
3
|
enumerable: true,
|
|
7
4
|
get: ()=>parseConfig
|
|
8
5
|
});
|
|
9
6
|
const _zod = require("zod");
|
|
7
|
+
const _configError = require("./config-error");
|
|
10
8
|
var _c_licenses, _c_packages, _c_includeDevDependencies, _c_devDependenciesOnly;
|
|
11
9
|
const configParser = _zod.z.object({
|
|
12
10
|
extends: _zod.z.string().optional(),
|
|
@@ -25,8 +23,7 @@ const configParser = _zod.z.object({
|
|
|
25
23
|
const parseConfig = (config)=>{
|
|
26
24
|
const parseResult = configParser.safeParse(config);
|
|
27
25
|
if (!parseResult.success) {
|
|
28
|
-
|
|
29
|
-
throw new Error(parseResult.error.message);
|
|
26
|
+
throw new _configError.ConfigError(parseResult.error.message);
|
|
30
27
|
}
|
|
31
28
|
return parseResult.data;
|
|
32
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/license-cop/src/lib/config/config.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst configParser = z\n .object({\n extends: z.string().optional(),\n licenses: z.array(z.string()).optional(),\n packages: z.array(z.string()).optional(),\n includeDevDependencies: z.boolean().optional(),\n devDependenciesOnly: z.boolean().optional(),\n directory: z.string().optional()\n })\n .transform(c => ({\n extends: c.extends,\n licenses: c.licenses ?? [],\n packages: c.packages ?? [],\n includeDevDependencies: c.includeDevDependencies ?? false,\n devDependenciesOnly: c.devDependenciesOnly ?? false\n }));\n\nexport type Config = z.infer<typeof configParser>;\n\nexport const parseConfig = (config: unknown): Config => {\n const parseResult = configParser.safeParse(config);\n\n if (!parseResult.success) {\n
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/license-cop/src/lib/config/config.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { ConfigError } from \"./config-error\";\n\nconst configParser = z\n .object({\n extends: z.string().optional(),\n licenses: z.array(z.string()).optional(),\n packages: z.array(z.string()).optional(),\n includeDevDependencies: z.boolean().optional(),\n devDependenciesOnly: z.boolean().optional(),\n directory: z.string().optional()\n })\n .transform(c => ({\n extends: c.extends,\n licenses: c.licenses ?? [],\n packages: c.packages ?? [],\n includeDevDependencies: c.includeDevDependencies ?? false,\n devDependenciesOnly: c.devDependenciesOnly ?? false\n }));\n\nexport type Config = z.infer<typeof configParser>;\n\nexport const parseConfig = (config: unknown): Config => {\n const parseResult = configParser.safeParse(config);\n\n if (!parseResult.success) {\n throw new ConfigError(parseResult.error.message);\n }\n\n return parseResult.data;\n};\n"],"names":["parseConfig","c","configParser","z","object","extends","string","optional","licenses","array","packages","includeDevDependencies","boolean","devDependenciesOnly","directory","transform","config","parseResult","safeParse","success","ConfigError","error","message","data"],"mappings":";+BAsBaA;;aAAAA;;qBAtBK;6BACU;IAadC,aACAA,aACcA,2BACHA;AAdzB,MAAMC,eAAeC,MAAC,CACnBC,MAAM,CAAC;IACNC,SAASF,MAAC,CAACG,MAAM,GAAGC,QAAQ;IAC5BC,UAAUL,MAAC,CAACM,KAAK,CAACN,MAAC,CAACG,MAAM,IAAIC,QAAQ;IACtCG,UAAUP,MAAC,CAACM,KAAK,CAACN,MAAC,CAACG,MAAM,IAAIC,QAAQ;IACtCI,wBAAwBR,MAAC,CAACS,OAAO,GAAGL,QAAQ;IAC5CM,qBAAqBV,MAAC,CAACS,OAAO,GAAGL,QAAQ;IACzCO,WAAWX,MAAC,CAACG,MAAM,GAAGC,QAAQ;AAChC,GACCQ,SAAS,CAACd,CAAAA,IAAM,CAAA;QACfI,SAASJ,EAAEI,OAAO;QAClBG,UAAUP,CAAAA,cAAAA,EAAEO,QAAQ,YAAVP,cAAc,EAAE;QAC1BS,UAAUT,CAAAA,cAAAA,EAAES,QAAQ,YAAVT,cAAc,EAAE;QAC1BU,wBAAwBV,CAAAA,4BAAAA,EAAEU,sBAAsB,YAAxBV,4BAA4B,KAAK;QACzDY,qBAAqBZ,CAAAA,yBAAAA,EAAEY,mBAAmB,YAArBZ,yBAAyB,KAAK;IACrD,CAAA;AAIK,MAAMD,cAAc,CAACgB,SAA4B;IACtD,MAAMC,cAAcf,aAAagB,SAAS,CAACF;IAE3C,IAAI,CAACC,YAAYE,OAAO,EAAE;QACxB,MAAM,IAAIC,wBAAW,CAACH,YAAYI,KAAK,CAACC,OAAO,EAAE;IACnD,CAAC;IAED,OAAOL,YAAYM,IAAI;AACzB"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
2
|
Object.defineProperty(exports, "findConfig", {
|
|
6
3
|
enumerable: true,
|
|
7
4
|
get: ()=>findConfig
|
|
8
5
|
});
|
|
9
6
|
const _cosmiconfig = require("cosmiconfig");
|
|
7
|
+
const _configError = require("./config-error");
|
|
10
8
|
const _json5 = require("./parsers/json5");
|
|
11
9
|
// cspell:disable-next-line
|
|
12
10
|
const moduleNames = [
|
|
@@ -53,11 +51,15 @@ const findConfig = async (rootDir)=>{
|
|
|
53
51
|
}
|
|
54
52
|
};
|
|
55
53
|
const explorer = (0, _cosmiconfig.cosmiconfig)("licensecop", options);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
try {
|
|
55
|
+
const result = await explorer.search(rootDir);
|
|
56
|
+
if (!(result == null ? void 0 : result.config)) {
|
|
57
|
+
throw new Error("No config file found");
|
|
58
|
+
}
|
|
59
|
+
return result.config;
|
|
60
|
+
} catch (e) {
|
|
61
|
+
throw _configError.ConfigError.fromUnknown(e);
|
|
59
62
|
}
|
|
60
|
-
return result.config;
|
|
61
63
|
};
|
|
62
64
|
|
|
63
65
|
//# sourceMappingURL=find-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/license-cop/src/lib/config/find-config.ts"],"sourcesContent":["import { cosmiconfig, Options as CosmiconfigOptions, Loader } from \"cosmiconfig\";\nimport { json5Parse } from \"./parsers/json5\";\n\n// cspell:disable-next-line\nconst moduleNames = [\"licenses\", \"licences\", \"licensesrc\", \"licencesrc\"];\n\nconst generateSearchPlaces = (moduleName: string): string[] => [\n `.${moduleName}`,\n `.${moduleName}.json`,\n `.${moduleName}.jsonc`,\n `.${moduleName}.json5`,\n `.${moduleName}.yaml`,\n `.${moduleName}.yml`,\n `.${moduleName}.js`,\n `.${moduleName}.cjs`,\n `.config/${moduleName}`,\n `.config/${moduleName}.json`,\n `.config/${moduleName}.jsonc`,\n `.config/${moduleName}.json5`,\n `.config/${moduleName}.yaml`,\n `.config/${moduleName}.yml`,\n `.config/${moduleName}.js`,\n `.config/${moduleName}.cjs`,\n `${moduleName}.config.js`,\n `${moduleName}.config.cjs`\n];\n\nconst searchPlaces: string[] = [\"package.json\"];\n\nfor (const moduleName of moduleNames) {\n searchPlaces.push(...generateSearchPlaces(moduleName));\n}\n\nconst json5Loader: Loader = (_filepath, content) => Promise.resolve(json5Parse(content));\n\nexport const findConfig = async (rootDir: string): Promise<unknown> => {\n const options: CosmiconfigOptions = {\n stopDir: rootDir,\n searchPlaces,\n loaders: {\n \".json\": json5Loader,\n \".jsonc\": json5Loader,\n \".json5\": json5Loader\n }\n };\n\n const explorer = cosmiconfig(\"licensecop\", options);\n\n const result = await explorer.search(rootDir);\n\n
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/license-cop/src/lib/config/find-config.ts"],"sourcesContent":["import { cosmiconfig, Options as CosmiconfigOptions, Loader } from \"cosmiconfig\";\nimport { ConfigError } from \"./config-error\";\nimport { json5Parse } from \"./parsers/json5\";\n\n// cspell:disable-next-line\nconst moduleNames = [\"licenses\", \"licences\", \"licensesrc\", \"licencesrc\"];\n\nconst generateSearchPlaces = (moduleName: string): string[] => [\n `.${moduleName}`,\n `.${moduleName}.json`,\n `.${moduleName}.jsonc`,\n `.${moduleName}.json5`,\n `.${moduleName}.yaml`,\n `.${moduleName}.yml`,\n `.${moduleName}.js`,\n `.${moduleName}.cjs`,\n `.config/${moduleName}`,\n `.config/${moduleName}.json`,\n `.config/${moduleName}.jsonc`,\n `.config/${moduleName}.json5`,\n `.config/${moduleName}.yaml`,\n `.config/${moduleName}.yml`,\n `.config/${moduleName}.js`,\n `.config/${moduleName}.cjs`,\n `${moduleName}.config.js`,\n `${moduleName}.config.cjs`\n];\n\nconst searchPlaces: string[] = [\"package.json\"];\n\nfor (const moduleName of moduleNames) {\n searchPlaces.push(...generateSearchPlaces(moduleName));\n}\n\nconst json5Loader: Loader = (_filepath, content) => Promise.resolve(json5Parse(content));\n\nexport const findConfig = async (rootDir: string): Promise<unknown> => {\n const options: CosmiconfigOptions = {\n stopDir: rootDir,\n searchPlaces,\n loaders: {\n \".json\": json5Loader,\n \".jsonc\": json5Loader,\n \".json5\": json5Loader\n }\n };\n\n const explorer = cosmiconfig(\"licensecop\", options);\n\n try {\n const result = await explorer.search(rootDir);\n\n if (!result?.config) {\n throw new Error(\"No config file found\");\n }\n\n return result.config;\n } catch (e) {\n throw ConfigError.fromUnknown(e);\n }\n};\n"],"names":["findConfig","moduleNames","generateSearchPlaces","moduleName","searchPlaces","push","json5Loader","_filepath","content","Promise","resolve","json5Parse","rootDir","options","stopDir","loaders","explorer","cosmiconfig","result","search","config","Error","e","ConfigError","fromUnknown"],"mappings":";+BAoCaA;;aAAAA;;6BApCsD;6BACvC;uBACD;AAE3B,2BAA2B;AAC3B,MAAMC,cAAc;IAAC;IAAY;IAAY;IAAc;CAAa;AAExE,MAAMC,uBAAuB,CAACC,aAAiC;QAC7D,CAAC,CAAC,EAAEA,WAAW,CAAC;QAChB,CAAC,CAAC,EAAEA,WAAW,KAAK,CAAC;QACrB,CAAC,CAAC,EAAEA,WAAW,MAAM,CAAC;QACtB,CAAC,CAAC,EAAEA,WAAW,MAAM,CAAC;QACtB,CAAC,CAAC,EAAEA,WAAW,KAAK,CAAC;QACrB,CAAC,CAAC,EAAEA,WAAW,IAAI,CAAC;QACpB,CAAC,CAAC,EAAEA,WAAW,GAAG,CAAC;QACnB,CAAC,CAAC,EAAEA,WAAW,IAAI,CAAC;QACpB,CAAC,QAAQ,EAAEA,WAAW,CAAC;QACvB,CAAC,QAAQ,EAAEA,WAAW,KAAK,CAAC;QAC5B,CAAC,QAAQ,EAAEA,WAAW,MAAM,CAAC;QAC7B,CAAC,QAAQ,EAAEA,WAAW,MAAM,CAAC;QAC7B,CAAC,QAAQ,EAAEA,WAAW,KAAK,CAAC;QAC5B,CAAC,QAAQ,EAAEA,WAAW,IAAI,CAAC;QAC3B,CAAC,QAAQ,EAAEA,WAAW,GAAG,CAAC;QAC1B,CAAC,QAAQ,EAAEA,WAAW,IAAI,CAAC;QAC3B,CAAC,EAAEA,WAAW,UAAU,CAAC;QACzB,CAAC,EAAEA,WAAW,WAAW,CAAC;KAC3B;AAED,MAAMC,eAAyB;IAAC;CAAe;AAE/C,KAAK,MAAMD,cAAcF,YAAa;IACpCG,aAAaC,IAAI,IAAIH,qBAAqBC;AAC5C;AAEA,MAAMG,cAAsB,CAACC,WAAWC,UAAYC,QAAQC,OAAO,CAACC,IAAAA,iBAAU,EAACH;AAExE,MAAMR,aAAa,OAAOY,UAAsC;IACrE,MAAMC,UAA8B;QAClCC,SAASF;QACTR;QACAW,SAAS;YACP,SAAST;YACT,UAAUA;YACV,UAAUA;QACZ;IACF;IAEA,MAAMU,WAAWC,IAAAA,wBAAW,EAAC,cAAcJ;IAE3C,IAAI;QACF,MAAMK,SAAS,MAAMF,SAASG,MAAM,CAACP;QAErC,IAAI,CAACM,CAAAA,iBAAAA,KAAAA,IAAAA,OAAQE,MAAM,AAAD,GAAG;YACnB,MAAM,IAAIC,MAAM,wBAAwB;QAC1C,CAAC;QAED,OAAOH,OAAOE,MAAM;IACtB,EAAE,OAAOE,GAAG;QACV,MAAMC,wBAAW,CAACC,WAAW,CAACF,GAAG;IACnC;AACF"}
|
|
@@ -1,23 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
2
|
Object.defineProperty(exports, "loadConfig", {
|
|
6
3
|
enumerable: true,
|
|
7
4
|
get: ()=>loadConfig
|
|
8
5
|
});
|
|
9
|
-
const _interopRequireDefault = require("@swc/helpers/lib/_interop_require_default.js").default;
|
|
10
6
|
const _config = require("./config");
|
|
11
7
|
const _loadParentConfig = require("./load-parent-config");
|
|
12
|
-
const _deepmerge =
|
|
8
|
+
const _deepmerge = require("deepmerge");
|
|
13
9
|
const _findConfig = require("./find-config");
|
|
10
|
+
const _logger = require("../logger");
|
|
14
11
|
const loadConfig = async (rootDir)=>{
|
|
15
12
|
const foundConfig = await (0, _findConfig.findConfig)(rootDir);
|
|
16
13
|
let config = (0, _config.parseConfig)(foundConfig);
|
|
17
14
|
while(config.extends){
|
|
15
|
+
_logger.default.verbose(`Extending config with ${config.extends}`);
|
|
18
16
|
const loadedParentConfig = await (0, _loadParentConfig.loadParentConfig)(config.extends, rootDir);
|
|
19
17
|
const parsedParentConfig = (0, _config.parseConfig)(loadedParentConfig);
|
|
20
|
-
config =
|
|
18
|
+
config = _deepmerge(parsedParentConfig, config);
|
|
21
19
|
config.extends = parsedParentConfig.extends;
|
|
22
20
|
}
|
|
23
21
|
return config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/license-cop/src/lib/config/load-config.ts"],"sourcesContent":["import { parseConfig } from \"./config\";\nimport { loadParentConfig } from \"./load-parent-config\";\nimport deepMerge from \"deepmerge\";\nimport { findConfig } from \"./find-config\";\n\nexport const loadConfig = async (rootDir: string) => {\n const foundConfig = await findConfig(rootDir);\n\n let config = parseConfig(foundConfig);\n\n while (config.extends) {\n const loadedParentConfig = await loadParentConfig(config.extends, rootDir);\n const parsedParentConfig = parseConfig(loadedParentConfig);\n\n config = deepMerge(parsedParentConfig, config);\n config.extends = parsedParentConfig.extends;\n }\n\n return config;\n};\n"],"names":["loadConfig","rootDir","foundConfig","findConfig","config","parseConfig","extends","loadedParentConfig","loadParentConfig","parsedParentConfig","deepMerge"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/license-cop/src/lib/config/load-config.ts"],"sourcesContent":["import { parseConfig } from \"./config\";\nimport { loadParentConfig } from \"./load-parent-config\";\nimport * as deepMerge from \"deepmerge\";\nimport { findConfig } from \"./find-config\";\nimport logger from \"../logger\";\n\nexport const loadConfig = async (rootDir: string) => {\n const foundConfig = await findConfig(rootDir);\n\n let config = parseConfig(foundConfig);\n\n while (config.extends) {\n logger.verbose(`Extending config with ${config.extends}`);\n const loadedParentConfig = await loadParentConfig(config.extends, rootDir);\n const parsedParentConfig = parseConfig(loadedParentConfig);\n\n config = deepMerge(parsedParentConfig, config);\n config.extends = parsedParentConfig.extends;\n }\n\n return config;\n};\n"],"names":["loadConfig","rootDir","foundConfig","findConfig","config","parseConfig","extends","logger","verbose","loadedParentConfig","loadParentConfig","parsedParentConfig","deepMerge"],"mappings":";+BAMaA;;aAAAA;;wBANe;kCACK;2BACN;4BACA;wBACR;AAEZ,MAAMA,aAAa,OAAOC,UAAoB;IACnD,MAAMC,cAAc,MAAMC,IAAAA,sBAAU,EAACF;IAErC,IAAIG,SAASC,IAAAA,mBAAW,EAACH;IAEzB,MAAOE,OAAOE,OAAO,CAAE;QACrBC,eAAM,CAACC,OAAO,CAAC,CAAC,sBAAsB,EAAEJ,OAAOE,OAAO,CAAC,CAAC;QACxD,MAAMG,qBAAqB,MAAMC,IAAAA,kCAAgB,EAACN,OAAOE,OAAO,EAAEL;QAClE,MAAMU,qBAAqBN,IAAAA,mBAAW,EAACI;QAEvCL,SAASQ,WAAUD,oBAAoBP;QACvCA,OAAOE,OAAO,GAAGK,mBAAmBL,OAAO;IAC7C;IAEA,OAAOF;AACT"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
2
|
Object.defineProperty(exports, "loadParentConfig", {
|
|
6
3
|
enumerable: true,
|
|
7
4
|
get: ()=>loadParentConfig
|
|
@@ -9,6 +6,7 @@ Object.defineProperty(exports, "loadParentConfig", {
|
|
|
9
6
|
const _github = require("./parent-resolutions/github");
|
|
10
7
|
const _npm = require("./parent-resolutions/npm");
|
|
11
8
|
const _http = require("./parent-resolutions/http");
|
|
9
|
+
const _configError = require("./config-error");
|
|
12
10
|
const loadParentConfig = async (parentConfigPath, rootDir)=>{
|
|
13
11
|
if (parentConfigPath.startsWith("npm:")) {
|
|
14
12
|
const packageName = parentConfigPath.substring(4);
|
|
@@ -24,7 +22,7 @@ const loadParentConfig = async (parentConfigPath, rootDir)=>{
|
|
|
24
22
|
if (await (0, _npm.nodeModuleExists)(parentConfigPath, rootDir)) {
|
|
25
23
|
return await (0, _npm.npmResolution)(parentConfigPath, rootDir);
|
|
26
24
|
}
|
|
27
|
-
throw new
|
|
25
|
+
throw new _configError.ConfigError(`Invalid parent config location: ${parentConfigPath}`);
|
|
28
26
|
};
|
|
29
27
|
|
|
30
28
|
//# sourceMappingURL=load-parent-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/license-cop/src/lib/config/load-parent-config.ts"],"sourcesContent":["import { githubResolution } from \"./parent-resolutions/github\";\nimport { nodeModuleExists, npmResolution } from \"./parent-resolutions/npm\";\nimport { httpResolution } from \"./parent-resolutions/http\";\n\nexport const loadParentConfig = async (\n parentConfigPath: string,\n rootDir: string\n): Promise<unknown> => {\n if (parentConfigPath.startsWith(\"npm:\")) {\n const packageName = parentConfigPath.substring(4);\n return await npmResolution(packageName, rootDir);\n }\n\n if (parentConfigPath.startsWith(\"github:\")) {\n const repo = parentConfigPath.substring(7);\n return await githubResolution(repo);\n }\n\n if (parentConfigPath.startsWith(\"http\")) {\n return await httpResolution(parentConfigPath);\n }\n\n if (await nodeModuleExists(parentConfigPath, rootDir)) {\n return await npmResolution(parentConfigPath, rootDir);\n }\n\n throw new
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/license-cop/src/lib/config/load-parent-config.ts"],"sourcesContent":["import { githubResolution } from \"./parent-resolutions/github\";\nimport { nodeModuleExists, npmResolution } from \"./parent-resolutions/npm\";\nimport { httpResolution } from \"./parent-resolutions/http\";\nimport { ConfigError } from \"./config-error\";\n\nexport const loadParentConfig = async (\n parentConfigPath: string,\n rootDir: string\n): Promise<unknown> => {\n if (parentConfigPath.startsWith(\"npm:\")) {\n const packageName = parentConfigPath.substring(4);\n return await npmResolution(packageName, rootDir);\n }\n\n if (parentConfigPath.startsWith(\"github:\")) {\n const repo = parentConfigPath.substring(7);\n return await githubResolution(repo);\n }\n\n if (parentConfigPath.startsWith(\"http\")) {\n return await httpResolution(parentConfigPath);\n }\n\n if (await nodeModuleExists(parentConfigPath, rootDir)) {\n return await npmResolution(parentConfigPath, rootDir);\n }\n\n throw new ConfigError(`Invalid parent config location: ${parentConfigPath}`);\n};\n"],"names":["loadParentConfig","parentConfigPath","rootDir","startsWith","packageName","substring","npmResolution","repo","githubResolution","httpResolution","nodeModuleExists","ConfigError"],"mappings":";+BAKaA;;aAAAA;;wBALoB;qBACe;sBACjB;6BACH;AAErB,MAAMA,mBAAmB,OAC9BC,kBACAC,UACqB;IACrB,IAAID,iBAAiBE,UAAU,CAAC,SAAS;QACvC,MAAMC,cAAcH,iBAAiBI,SAAS,CAAC;QAC/C,OAAO,MAAMC,IAAAA,kBAAa,EAACF,aAAaF;IAC1C,CAAC;IAED,IAAID,iBAAiBE,UAAU,CAAC,YAAY;QAC1C,MAAMI,OAAON,iBAAiBI,SAAS,CAAC;QACxC,OAAO,MAAMG,IAAAA,wBAAgB,EAACD;IAChC,CAAC;IAED,IAAIN,iBAAiBE,UAAU,CAAC,SAAS;QACvC,OAAO,MAAMM,IAAAA,oBAAc,EAACR;IAC9B,CAAC;IAED,IAAI,MAAMS,IAAAA,qBAAgB,EAACT,kBAAkBC,UAAU;QACrD,OAAO,MAAMI,IAAAA,kBAAa,EAACL,kBAAkBC;IAC/C,CAAC;IAED,MAAM,IAAIS,wBAAW,CAAC,CAAC,gCAAgC,EAAEV,iBAAiB,CAAC,EAAE;AAC/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const githubResolution: (repoId: string) => Promise<
|
|
1
|
+
export declare const githubResolution: (repoId: string) => Promise<unknown>;
|