license-cop 1.3.0 → 1.3.1

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.
Files changed (56) hide show
  1. package/package.json +5 -8
  2. package/src/index.d.ts +1 -1
  3. package/src/index.js +22 -8
  4. package/src/index.js.map +1 -1
  5. package/src/lib/cli/commands/init.js +9 -5
  6. package/src/lib/cli/commands/init.js.map +1 -1
  7. package/src/lib/cli/commands/main.js +16 -14
  8. package/src/lib/cli/commands/main.js.map +1 -1
  9. package/src/lib/cli/commands/version.js +7 -5
  10. package/src/lib/cli/commands/version.js.map +1 -1
  11. package/src/lib/cli/create-command.js +6 -4
  12. package/src/lib/cli/create-command.js.map +1 -1
  13. package/src/lib/cli/index.js +4 -2
  14. package/src/lib/cli/index.js.map +1 -1
  15. package/src/lib/cli/report-failure.js +6 -4
  16. package/src/lib/cli/report-failure.js.map +1 -1
  17. package/src/lib/cli/report-success.js +4 -2
  18. package/src/lib/cli/report-success.js.map +1 -1
  19. package/src/lib/config/config-error.js +3 -1
  20. package/src/lib/config/config-error.js.map +1 -1
  21. package/src/lib/config/config.js +10 -6
  22. package/src/lib/config/config.js.map +1 -1
  23. package/src/lib/config/find-config.js +5 -3
  24. package/src/lib/config/find-config.js.map +1 -1
  25. package/src/lib/config/load-config.js +8 -6
  26. package/src/lib/config/load-config.js.map +1 -1
  27. package/src/lib/config/load-parent-config.js +6 -4
  28. package/src/lib/config/load-parent-config.js.map +1 -1
  29. package/src/lib/config/parent-resolutions/github.js +8 -6
  30. package/src/lib/config/parent-resolutions/github.js.map +1 -1
  31. package/src/lib/config/parent-resolutions/http.js +3 -1
  32. package/src/lib/config/parent-resolutions/http.js.map +1 -1
  33. package/src/lib/config/parent-resolutions/npm.js +8 -4
  34. package/src/lib/config/parent-resolutions/npm.js.map +1 -1
  35. package/src/lib/config/parsers/json5.js +3 -1
  36. package/src/lib/config/parsers/json5.js.map +1 -1
  37. package/src/lib/license-cop.js +15 -13
  38. package/src/lib/license-cop.js.map +1 -1
  39. package/src/lib/logger.js +3 -1
  40. package/src/lib/logger.js.map +1 -1
  41. package/src/lib/package-json.js +6 -2
  42. package/src/lib/package-json.js.map +1 -1
  43. package/src/lib/package-rules.js +5 -3
  44. package/src/lib/package-rules.js.map +1 -1
  45. package/src/lib/spdx/calculate-issues.js +3 -1
  46. package/src/lib/spdx/calculate-issues.js.map +1 -1
  47. package/src/lib/spdx/get-tokens.js +3 -1
  48. package/src/lib/spdx/get-tokens.js.map +1 -1
  49. package/src/lib/spdx/parse-license-expression.js +7 -5
  50. package/src/lib/spdx/parse-license-expression.js.map +1 -1
  51. package/src/lib/spdx/parse-tokens.js +3 -1
  52. package/src/lib/spdx/parse-tokens.js.map +1 -1
  53. package/src/lib/spdx/types/token.js +6 -2
  54. package/src/lib/spdx/types/token.js.map +1 -1
  55. package/src/lib/utils/join-string-array.js +3 -1
  56. package/src/lib/utils/join-string-array.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "license-cop",
3
- "version": "1.3.0",
3
+ "version": "1.3.1",
4
4
  "type": "commonjs",
5
5
  "bin": {
6
6
  "license-cop": "./src/bin/license-cop"
@@ -33,16 +33,13 @@
33
33
  "dependencies": {
34
34
  "@commander-js/extra-typings": "^11.0.0",
35
35
  "@npmcli/arborist": "^7.0.0",
36
- "axios": "^1.3.4",
36
+ "axios": "^1.6.0",
37
37
  "compare-versions": "^6.0.0-rc.1",
38
- "cosmiconfig": "^8.1.3",
38
+ "cosmiconfig": "^9.0.0",
39
39
  "deepmerge": "^4.3.1",
40
- "git-filesystem": "^0.0.2",
40
+ "git-filesystem": "^0.0.4",
41
41
  "json5": "^2.2.3",
42
- "zod": "^3.21.4"
43
- },
44
- "peerDependencies": {
45
- "@swc/helpers": "0.5.1"
42
+ "zod": "^3.22.3"
46
43
  },
47
44
  "main": "./src/index.js"
48
45
  }
package/src/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { checkLicenses, LicenseCopOptions } from "./lib/license-cop";
1
+ export { LicenseCopOptions, checkLicenses } from "./lib/license-cop";
2
2
  export { AllowedPackage, CheckLicensesResult, ForbiddenLicenseResult, LicensedPackage, NoLicenseResult } from "./lib/result";
package/src/index.js CHANGED
@@ -6,15 +6,29 @@ function _export(target, all) {
6
6
  });
7
7
  }
8
8
  _export(exports, {
9
- checkLicenses: ()=>_licenseCop.checkLicenses,
10
- LicenseCopOptions: ()=>_licenseCop.LicenseCopOptions,
11
- AllowedPackage: ()=>_result.AllowedPackage,
12
- CheckLicensesResult: ()=>_result.CheckLicensesResult,
13
- ForbiddenLicenseResult: ()=>_result.ForbiddenLicenseResult,
14
- LicensedPackage: ()=>_result.LicensedPackage,
15
- NoLicenseResult: ()=>_result.NoLicenseResult
9
+ AllowedPackage: function() {
10
+ return _result.AllowedPackage;
11
+ },
12
+ CheckLicensesResult: function() {
13
+ return _result.CheckLicensesResult;
14
+ },
15
+ ForbiddenLicenseResult: function() {
16
+ return _result.ForbiddenLicenseResult;
17
+ },
18
+ LicenseCopOptions: function() {
19
+ return _licensecop.LicenseCopOptions;
20
+ },
21
+ LicensedPackage: function() {
22
+ return _result.LicensedPackage;
23
+ },
24
+ NoLicenseResult: function() {
25
+ return _result.NoLicenseResult;
26
+ },
27
+ checkLicenses: function() {
28
+ return _licensecop.checkLicenses;
29
+ }
16
30
  });
17
- const _licenseCop = require("./lib/license-cop");
31
+ const _licensecop = require("./lib/license-cop");
18
32
  const _result = require("./lib/result");
19
33
 
20
34
  //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../packages/license-cop/src/index.ts"],"sourcesContent":["export { checkLicenses, LicenseCopOptions } from \"./lib/license-cop\";\nexport {\n AllowedPackage,\n CheckLicensesResult,\n ForbiddenLicenseResult,\n LicensedPackage,\n NoLicenseResult\n} from \"./lib/result\";\n"],"names":["checkLicenses","LicenseCopOptions","AllowedPackage","CheckLicensesResult","ForbiddenLicenseResult","LicensedPackage","NoLicenseResult"],"mappings":";;;;;;;;IAASA,aAAa,MAAbA,yBAAa;IAAEC,iBAAiB,MAAjBA,6BAAiB;IAEvCC,cAAc,MAAdA,sBAAc;IACdC,mBAAmB,MAAnBA,2BAAmB;IACnBC,sBAAsB,MAAtBA,8BAAsB;IACtBC,eAAe,MAAfA,uBAAe;IACfC,eAAe,MAAfA,uBAAe;;4BANgC;wBAO1C"}
1
+ {"version":3,"sources":["../../../../packages/license-cop/src/index.ts"],"sourcesContent":["export { LicenseCopOptions, checkLicenses } from \"./lib/license-cop\";\nexport {\n AllowedPackage,\n CheckLicensesResult,\n ForbiddenLicenseResult,\n LicensedPackage,\n NoLicenseResult\n} from \"./lib/result\";\n"],"names":["AllowedPackage","CheckLicensesResult","ForbiddenLicenseResult","LicenseCopOptions","LicensedPackage","NoLicenseResult","checkLicenses"],"mappings":";;;;;;;;IAEEA,cAAc;eAAdA,sBAAc;;IACdC,mBAAmB;eAAnBA,2BAAmB;;IACnBC,sBAAsB;eAAtBA,8BAAsB;;IAJfC,iBAAiB;eAAjBA,6BAAiB;;IAKxBC,eAAe;eAAfA,uBAAe;;IACfC,eAAe;eAAfA,uBAAe;;IANWC,aAAa;eAAbA,yBAAa;;;4BAAQ;wBAO1C"}
@@ -6,21 +6,25 @@ function _export(target, all) {
6
6
  });
7
7
  }
8
8
  _export(exports, {
9
- initCommand: ()=>initCommand,
10
- initCommandAction: ()=>initCommandAction
9
+ initCommand: function() {
10
+ return initCommand;
11
+ },
12
+ initCommandAction: function() {
13
+ return initCommandAction;
14
+ }
11
15
  });
12
16
  const _promises = require("fs/promises");
13
17
  const _path = require("path");
14
18
  const _logger = require("../../logger");
15
- const _createCommand = require("../create-command");
19
+ const _createcommand = require("../create-command");
16
20
  const defaultConfig = `{
17
21
  "$schema": "https://license-cop.js.org/schema.json",
18
22
  "licenses": ["MIT", "ISC", "Apache-2.0"],
19
23
  "packages": []
20
24
  }
21
25
  `;
22
- const initCommand = (0, _createCommand.createCommandWithGlobalOptions)().name("init").description("Create a new license-cop configuration file").action(async (options)=>{
23
- const { directory } = options;
26
+ const initCommand = (0, _createcommand.createCommandWithGlobalOptions)().name("init").description("Create a new license-cop configuration file").action(async (options)=>{
27
+ const { directory } = options;
24
28
  await initCommandAction(directory);
25
29
  });
26
30
  const initCommandAction = async (rootDir)=>{
@@ -1 +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\";\nimport { createCommandWithGlobalOptions } from \"../create-command\";\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 initCommand = createCommandWithGlobalOptions()\n .name(\"init\")\n .description(\"Create a new license-cop configuration file\")\n .action(async options => {\n const { directory } = options;\n\n await initCommandAction(directory);\n });\n\nexport const initCommandAction = 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":["initCommand","initCommandAction","defaultConfig","createCommandWithGlobalOptions","name","description","action","options","directory","rootDir","logger","log","configPath","join","verbose","writeFile"],"mappings":";;;;;;;;IAYaA,WAAW,MAAXA;IASAC,iBAAiB,MAAjBA;;0BArBa;sBACL;wBACF;+BAC4B;AAE/C,MAAMC,gBAAgB,CAAC;;;;;AAKvB,CAAC;AAEM,MAAMF,cAAcG,IAAAA,6CAA8B,IACtDC,IAAI,CAAC,QACLC,WAAW,CAAC,+CACZC,MAAM,CAAC,OAAMC,UAAW;IACvB,MAAM,EAAEC,UAAS,EAAE,GAAGD;IAEtB,MAAMN,kBAAkBO;AAC1B;AAEK,MAAMP,oBAAoB,OAAOQ,UAAoB;IAC1DC,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,YAAYV;IAE5BQ,eAAM,CAACC,GAAG,CAAC;IACXD,eAAM,CAACC,GAAG,CAAC;AACb"}
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\";\nimport { createCommandWithGlobalOptions } from \"../create-command\";\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 initCommand = createCommandWithGlobalOptions()\n .name(\"init\")\n .description(\"Create a new license-cop configuration file\")\n .action(async options => {\n const { directory } = options;\n\n await initCommandAction(directory);\n });\n\nexport const initCommandAction = 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":["initCommand","initCommandAction","defaultConfig","createCommandWithGlobalOptions","name","description","action","options","directory","rootDir","logger","log","configPath","join","verbose","writeFile"],"mappings":";;;;;;;;IAYaA,WAAW;eAAXA;;IASAC,iBAAiB;eAAjBA;;;0BArBa;sBACL;wBACF;+BAC4B;AAE/C,MAAMC,gBAAgB,CAAC;;;;;AAKvB,CAAC;AAEM,MAAMF,cAAcG,IAAAA,6CAA8B,IACtDC,IAAI,CAAC,QACLC,WAAW,CAAC,+CACZC,MAAM,CAAC,OAAMC;IACZ,MAAM,EAAEC,SAAS,EAAE,GAAGD;IAEtB,MAAMN,kBAAkBO;AAC1B;AAEK,MAAMP,oBAAoB,OAAOQ;IACtCC,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,YAAYV;IAE5BQ,eAAM,CAACC,GAAG,CAAC;IACXD,eAAM,CAACC,GAAG,CAAC;AACb"}
@@ -1,19 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "mainCommand", {
3
3
  enumerable: true,
4
- get: ()=>mainCommand
4
+ get: function() {
5
+ return mainCommand;
6
+ }
5
7
  });
6
8
  const _path = require("path");
7
- const _loadConfig = require("../../config/load-config");
8
- const _licenseCop = require("../../license-cop");
9
+ const _loadconfig = require("../../config/load-config");
10
+ const _licensecop = require("../../license-cop");
9
11
  const _logger = require("../../logger");
10
- const _packageJson = require("../../package-json");
11
- const _createCommand = require("../create-command");
12
- const _reportFailure = require("../report-failure");
13
- const _reportSuccess = require("../report-success");
12
+ const _packagejson = require("../../package-json");
13
+ const _createcommand = require("../create-command");
14
+ const _reportfailure = require("../report-failure");
15
+ const _reportsuccess = require("../report-success");
14
16
  const _init = require("./init");
15
- const mainCommand = (0, _createCommand.createCommandWithGlobalOptions)().name("license-cop").description("Yet another license checker tool for your dependencies; focused on simplicity").option("-D,--include-dev", "Include dev dependencies", false).option("--dev-only", "Only check dev dependencies", false).option("--init", "An alias for 'license-cop init'", false).action(async (options)=>{
16
- const { directory , includeDev , devOnly } = options;
17
+ const mainCommand = (0, _createcommand.createCommandWithGlobalOptions)().name("license-cop").description("Yet another license checker tool for your dependencies; focused on simplicity").option("-D,--include-dev", "Include dev dependencies", false).option("--dev-only", "Only check dev dependencies", false).option("--init", "An alias for 'license-cop init'", false).action(async (options)=>{
18
+ const { directory, includeDev, devOnly } = options;
17
19
  if (options.init) {
18
20
  await (0, _init.initCommandAction)(directory);
19
21
  return;
@@ -24,7 +26,7 @@ const runLicenseCop = async (directory, includeDevDependencies, devDependenciesO
24
26
  _logger.default.verbose(`Using directory: ${directory}`);
25
27
  const productName = await getProductName(directory);
26
28
  _logger.default.log(`Scanning dependencies of: ${productName}`);
27
- const config = await (0, _loadConfig.loadConfig)(directory);
29
+ const config = await (0, _loadconfig.loadConfig)(directory);
28
30
  const options = {
29
31
  allowedLicenses: config.licenses,
30
32
  allowedPackages: config.packages,
@@ -32,17 +34,17 @@ const runLicenseCop = async (directory, includeDevDependencies, devDependenciesO
32
34
  includeDevDependencies: includeDevDependencies != null ? includeDevDependencies : config.includeDevDependencies,
33
35
  devDependenciesOnly: devDependenciesOnly != null ? devDependenciesOnly : config.devDependenciesOnly
34
36
  };
35
- const result = await (0, _licenseCop.checkLicenses)(options);
37
+ const result = await (0, _licensecop.checkLicenses)(options);
36
38
  if (result.noLicenses.size > 0 || result.forbiddenLicenses.size > 0) {
37
- (0, _reportFailure.reportFailure)(result);
39
+ (0, _reportfailure.reportFailure)(result);
38
40
  process.exitCode = 1;
39
41
  } else {
40
- (0, _reportSuccess.reportSuccess)(result);
42
+ (0, _reportsuccess.reportSuccess)(result);
41
43
  }
42
44
  };
43
45
  const getProductName = async (directory)=>{
44
46
  const packageJsonPath = (0, _path.join)(directory, "package.json");
45
- const packageJson = await (0, _packageJson.readPackageJson)(packageJsonPath);
47
+ const packageJson = await (0, _packagejson.readPackageJson)(packageJsonPath);
46
48
  return packageJson.name;
47
49
  };
48
50
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../packages/license-cop/src/lib/cli/commands/main.ts"],"sourcesContent":["import { join } from \"path\";\nimport { loadConfig } from \"../../config/load-config\";\nimport { checkLicenses, LicenseCopOptions } from \"../../license-cop\";\nimport logger from \"../../logger\";\nimport { readPackageJson } from \"../../package-json\";\nimport { createCommandWithGlobalOptions } from \"../create-command\";\nimport { reportFailure } from \"../report-failure\";\nimport { reportSuccess } from \"../report-success\";\nimport { initCommandAction } from \"./init\";\n\nexport const mainCommand = createCommandWithGlobalOptions()\n .name(\"license-cop\")\n .description(\"Yet another license checker tool for your dependencies; focused on simplicity\")\n .option(\"-D,--include-dev\", \"Include dev dependencies\", false)\n .option(\"--dev-only\", \"Only check dev dependencies\", false)\n .option(\"--init\", \"An alias for 'license-cop init'\", false)\n .action(async options => {\n const { directory, includeDev, devOnly } = options;\n\n if (options.init) {\n await initCommandAction(directory);\n return;\n }\n\n await runLicenseCop(directory, includeDev, devOnly);\n });\n\nconst runLicenseCop = async (\n directory: string,\n includeDevDependencies: boolean,\n devDependenciesOnly: boolean\n) => {\n logger.verbose(`Using directory: ${directory}`);\n\n const productName = await getProductName(directory);\n logger.log(`Scanning dependencies of: ${productName}`);\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: includeDevDependencies ?? config.includeDevDependencies,\n devDependenciesOnly: devDependenciesOnly ?? config.devDependenciesOnly\n };\n\n const result = await checkLicenses(options);\n\n if (result.noLicenses.size > 0 || result.forbiddenLicenses.size > 0) {\n reportFailure(result);\n process.exitCode = 1;\n } else {\n reportSuccess(result);\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":["mainCommand","createCommandWithGlobalOptions","name","description","option","action","options","directory","includeDev","devOnly","init","initCommandAction","runLicenseCop","includeDevDependencies","devDependenciesOnly","logger","verbose","productName","getProductName","log","config","loadConfig","allowedLicenses","licenses","allowedPackages","packages","workingDirectory","result","checkLicenses","noLicenses","size","forbiddenLicenses","reportFailure","process","exitCode","reportSuccess","packageJsonPath","join","packageJson","readPackageJson"],"mappings":";+BAUaA;;aAAAA;;sBAVQ;4BACM;4BACsB;wBAC9B;6BACa;+BACe;+BACjB;+BACA;sBACI;AAE3B,MAAMA,cAAcC,IAAAA,6CAA8B,IACtDC,IAAI,CAAC,eACLC,WAAW,CAAC,iFACZC,MAAM,CAAC,oBAAoB,4BAA4B,KAAK,EAC5DA,MAAM,CAAC,cAAc,+BAA+B,KAAK,EACzDA,MAAM,CAAC,UAAU,mCAAmC,KAAK,EACzDC,MAAM,CAAC,OAAMC,UAAW;IACvB,MAAM,EAAEC,UAAS,EAAEC,WAAU,EAAEC,QAAO,EAAE,GAAGH;IAE3C,IAAIA,QAAQI,IAAI,EAAE;QAChB,MAAMC,IAAAA,uBAAiB,EAACJ;QACxB;IACF,CAAC;IAED,MAAMK,cAAcL,WAAWC,YAAYC;AAC7C;AAEF,MAAMG,gBAAgB,OACpBL,WACAM,wBACAC,sBACG;IACHC,eAAM,CAACC,OAAO,CAAC,CAAC,iBAAiB,EAAET,UAAU,CAAC;IAE9C,MAAMU,cAAc,MAAMC,eAAeX;IACzCQ,eAAM,CAACI,GAAG,CAAC,CAAC,0BAA0B,EAAEF,YAAY,CAAC;IAErD,MAAMG,SAAS,MAAMC,IAAAA,sBAAU,EAACd;IAEhC,MAAMD,UAA6B;QACjCgB,iBAAiBF,OAAOG,QAAQ;QAChCC,iBAAiBJ,OAAOK,QAAQ;QAEhCC,kBAAkBnB;QAClBM,wBAAwBA,iCAAAA,yBAA0BO,OAAOP,sBAAsB;QAC/EC,qBAAqBA,8BAAAA,sBAAuBM,OAAON,mBAAmB;IACxE;IAEA,MAAMa,SAAS,MAAMC,IAAAA,yBAAa,EAACtB;IAEnC,IAAIqB,OAAOE,UAAU,CAACC,IAAI,GAAG,KAAKH,OAAOI,iBAAiB,CAACD,IAAI,GAAG,GAAG;QACnEE,IAAAA,4BAAa,EAACL;QACdM,QAAQC,QAAQ,GAAG;IACrB,OAAO;QACLC,IAAAA,4BAAa,EAACR;IAChB,CAAC;AACH;AAEA,MAAMT,iBAAiB,OAAOX,YAAuC;IACnE,MAAM6B,kBAAkBC,IAAAA,UAAI,EAAC9B,WAAW;IACxC,MAAM+B,cAAc,MAAMC,IAAAA,4BAAe,EAACH;IAC1C,OAAOE,YAAYpC,IAAI;AACzB"}
1
+ {"version":3,"sources":["../../../../../../../packages/license-cop/src/lib/cli/commands/main.ts"],"sourcesContent":["import { join } from \"path\";\nimport { loadConfig } from \"../../config/load-config\";\nimport { checkLicenses, LicenseCopOptions } from \"../../license-cop\";\nimport logger from \"../../logger\";\nimport { readPackageJson } from \"../../package-json\";\nimport { createCommandWithGlobalOptions } from \"../create-command\";\nimport { reportFailure } from \"../report-failure\";\nimport { reportSuccess } from \"../report-success\";\nimport { initCommandAction } from \"./init\";\n\nexport const mainCommand = createCommandWithGlobalOptions()\n .name(\"license-cop\")\n .description(\"Yet another license checker tool for your dependencies; focused on simplicity\")\n .option(\"-D,--include-dev\", \"Include dev dependencies\", false)\n .option(\"--dev-only\", \"Only check dev dependencies\", false)\n .option(\"--init\", \"An alias for 'license-cop init'\", false)\n .action(async options => {\n const { directory, includeDev, devOnly } = options;\n\n if (options.init) {\n await initCommandAction(directory);\n return;\n }\n\n await runLicenseCop(directory, includeDev, devOnly);\n });\n\nconst runLicenseCop = async (\n directory: string,\n includeDevDependencies: boolean,\n devDependenciesOnly: boolean\n) => {\n logger.verbose(`Using directory: ${directory}`);\n\n const productName = await getProductName(directory);\n logger.log(`Scanning dependencies of: ${productName}`);\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: includeDevDependencies ?? config.includeDevDependencies,\n devDependenciesOnly: devDependenciesOnly ?? config.devDependenciesOnly\n };\n\n const result = await checkLicenses(options);\n\n if (result.noLicenses.size > 0 || result.forbiddenLicenses.size > 0) {\n reportFailure(result);\n process.exitCode = 1;\n } else {\n reportSuccess(result);\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":["mainCommand","createCommandWithGlobalOptions","name","description","option","action","options","directory","includeDev","devOnly","init","initCommandAction","runLicenseCop","includeDevDependencies","devDependenciesOnly","logger","verbose","productName","getProductName","log","config","loadConfig","allowedLicenses","licenses","allowedPackages","packages","workingDirectory","result","checkLicenses","noLicenses","size","forbiddenLicenses","reportFailure","process","exitCode","reportSuccess","packageJsonPath","join","packageJson","readPackageJson"],"mappings":";+BAUaA;;;eAAAA;;;sBAVQ;4BACM;4BACsB;wBAC9B;6BACa;+BACe;+BACjB;+BACA;sBACI;AAE3B,MAAMA,cAAcC,IAAAA,6CAA8B,IACtDC,IAAI,CAAC,eACLC,WAAW,CAAC,iFACZC,MAAM,CAAC,oBAAoB,4BAA4B,OACvDA,MAAM,CAAC,cAAc,+BAA+B,OACpDA,MAAM,CAAC,UAAU,mCAAmC,OACpDC,MAAM,CAAC,OAAMC;IACZ,MAAM,EAAEC,SAAS,EAAEC,UAAU,EAAEC,OAAO,EAAE,GAAGH;IAE3C,IAAIA,QAAQI,IAAI,EAAE;QAChB,MAAMC,IAAAA,uBAAiB,EAACJ;QACxB;IACF;IAEA,MAAMK,cAAcL,WAAWC,YAAYC;AAC7C;AAEF,MAAMG,gBAAgB,OACpBL,WACAM,wBACAC;IAEAC,eAAM,CAACC,OAAO,CAAC,CAAC,iBAAiB,EAAET,UAAU,CAAC;IAE9C,MAAMU,cAAc,MAAMC,eAAeX;IACzCQ,eAAM,CAACI,GAAG,CAAC,CAAC,0BAA0B,EAAEF,YAAY,CAAC;IAErD,MAAMG,SAAS,MAAMC,IAAAA,sBAAU,EAACd;IAEhC,MAAMD,UAA6B;QACjCgB,iBAAiBF,OAAOG,QAAQ;QAChCC,iBAAiBJ,OAAOK,QAAQ;QAEhCC,kBAAkBnB;QAClBM,wBAAwBA,iCAAAA,yBAA0BO,OAAOP,sBAAsB;QAC/EC,qBAAqBA,8BAAAA,sBAAuBM,OAAON,mBAAmB;IACxE;IAEA,MAAMa,SAAS,MAAMC,IAAAA,yBAAa,EAACtB;IAEnC,IAAIqB,OAAOE,UAAU,CAACC,IAAI,GAAG,KAAKH,OAAOI,iBAAiB,CAACD,IAAI,GAAG,GAAG;QACnEE,IAAAA,4BAAa,EAACL;QACdM,QAAQC,QAAQ,GAAG;IACrB,OAAO;QACLC,IAAAA,4BAAa,EAACR;IAChB;AACF;AAEA,MAAMT,iBAAiB,OAAOX;IAC5B,MAAM6B,kBAAkBC,IAAAA,UAAI,EAAC9B,WAAW;IACxC,MAAM+B,cAAc,MAAMC,IAAAA,4BAAe,EAACH;IAC1C,OAAOE,YAAYpC,IAAI;AACzB"}
@@ -1,18 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "versionCommand", {
3
3
  enumerable: true,
4
- get: ()=>versionCommand
4
+ get: function() {
5
+ return versionCommand;
6
+ }
5
7
  });
6
8
  const _path = require("path");
7
9
  const _logger = require("../../logger");
8
- const _packageJson = require("../../package-json");
9
- const _createCommand = require("../create-command");
10
- const versionCommand = (0, _createCommand.createCommandWithGlobalOptions)().name("-v").alias("--version").description("Print the installed version of license-cop").action(async ()=>{
10
+ const _packagejson = require("../../package-json");
11
+ const _createcommand = require("../create-command");
12
+ const versionCommand = (0, _createcommand.createCommandWithGlobalOptions)().name("-v").alias("--version").description("Print the installed version of license-cop").action(async ()=>{
11
13
  await printPackageVersion();
12
14
  });
13
15
  const printPackageVersion = async ()=>{
14
16
  const packageJsonLocation = (0, _path.join)(__dirname, "../../../../package.json");
15
- const { version } = await (0, _packageJson.readPackageJson)(packageJsonLocation);
17
+ const { version } = await (0, _packagejson.readPackageJson)(packageJsonLocation);
16
18
  _logger.default.log(`v${version}`);
17
19
  };
18
20
 
@@ -1 +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\";\nimport { createCommandWithGlobalOptions } from \"../create-command\";\n\nexport const versionCommand = createCommandWithGlobalOptions()\n .name(\"-v\")\n .alias(\"--version\")\n .description(\"Print the installed version of license-cop\")\n .action(async () => {\n await printPackageVersion();\n });\n\nconst 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":["versionCommand","createCommandWithGlobalOptions","name","alias","description","action","printPackageVersion","packageJsonLocation","join","__dirname","version","readPackageJson","logger","log"],"mappings":";+BAKaA;;aAAAA;;sBALQ;wBACF;6BACa;+BACe;AAExC,MAAMA,iBAAiBC,IAAAA,6CAA8B,IACzDC,IAAI,CAAC,MACLC,KAAK,CAAC,aACNC,WAAW,CAAC,8CACZC,MAAM,CAAC,UAAY;IAClB,MAAMC;AACR;AAEF,MAAMA,sBAAsB,UAA2B;IACrD,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"}
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\";\nimport { createCommandWithGlobalOptions } from \"../create-command\";\n\nexport const versionCommand = createCommandWithGlobalOptions()\n .name(\"-v\")\n .alias(\"--version\")\n .description(\"Print the installed version of license-cop\")\n .action(async () => {\n await printPackageVersion();\n });\n\nconst 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":["versionCommand","createCommandWithGlobalOptions","name","alias","description","action","printPackageVersion","packageJsonLocation","join","__dirname","version","readPackageJson","logger","log"],"mappings":";+BAKaA;;;eAAAA;;;sBALQ;wBACF;6BACa;+BACe;AAExC,MAAMA,iBAAiBC,IAAAA,6CAA8B,IACzDC,IAAI,CAAC,MACLC,KAAK,CAAC,aACNC,WAAW,CAAC,8CACZC,MAAM,CAAC;IACN,MAAMC;AACR;AAEF,MAAMA,sBAAsB;IAC1B,MAAMC,sBAAsBC,IAAAA,UAAI,EAACC,WAAW;IAC5C,MAAM,EAAEC,OAAO,EAAE,GAAG,MAAMC,IAAAA,4BAAe,EAACJ;IAC1CK,eAAM,CAACC,GAAG,CAAC,CAAC,CAAC,EAAEH,QAAQ,CAAC;AAC1B"}
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "createCommandWithGlobalOptions", {
3
3
  enumerable: true,
4
- get: ()=>createCommandWithGlobalOptions
4
+ get: function() {
5
+ return createCommandWithGlobalOptions;
6
+ }
5
7
  });
6
- const _extraTypings = require("@commander-js/extra-typings");
8
+ const _extratypings = require("@commander-js/extra-typings");
7
9
  const _logger = require("../logger");
8
- const createCommandWithGlobalOptions = ()=>new _extraTypings.Command().option("--verbose", "Enable verbose logging").option("-d,--directory <directory>", "The directory of the project. Defaults to the current working directory.", process.cwd()).hook("preAction", (thisCommand)=>{
9
- const { verbose } = thisCommand.opts();
10
+ const createCommandWithGlobalOptions = ()=>new _extratypings.Command().option("--verbose", "Enable verbose logging").option("-d,--directory <directory>", "The directory of the project. Defaults to the current working directory.", process.cwd()).hook("preAction", (thisCommand)=>{
11
+ const { verbose } = thisCommand.opts();
10
12
  if (verbose) {
11
13
  _logger.default.enableVerboseLogging();
12
14
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/license-cop/src/lib/cli/create-command.ts"],"sourcesContent":["import { Command } from \"@commander-js/extra-typings\";\nimport logger from \"../logger\";\n\nexport const createCommandWithGlobalOptions = () =>\n new Command()\n .option(\"--verbose\", \"Enable verbose logging\")\n .option(\n \"-d,--directory <directory>\",\n \"The directory of the project. Defaults to the current working directory.\",\n process.cwd()\n )\n .hook(\"preAction\", thisCommand => {\n const { verbose } = thisCommand.opts();\n\n if (verbose) {\n logger.enableVerboseLogging();\n }\n });\n"],"names":["createCommandWithGlobalOptions","Command","option","process","cwd","hook","thisCommand","verbose","opts","logger","enableVerboseLogging"],"mappings":";+BAGaA;;aAAAA;;8BAHW;wBACL;AAEZ,MAAMA,iCAAiC,IAC5C,IAAIC,qBAAO,GACRC,MAAM,CAAC,aAAa,0BACpBA,MAAM,CACL,8BACA,4EACAC,QAAQC,GAAG,IAEZC,IAAI,CAAC,aAAaC,CAAAA,cAAe;QAChC,MAAM,EAAEC,QAAO,EAAE,GAAGD,YAAYE,IAAI;QAEpC,IAAID,SAAS;YACXE,eAAM,CAACC,oBAAoB;QAC7B,CAAC;IACH"}
1
+ {"version":3,"sources":["../../../../../../packages/license-cop/src/lib/cli/create-command.ts"],"sourcesContent":["import { Command } from \"@commander-js/extra-typings\";\nimport logger from \"../logger\";\n\nexport const createCommandWithGlobalOptions = () =>\n new Command()\n .option(\"--verbose\", \"Enable verbose logging\")\n .option(\n \"-d,--directory <directory>\",\n \"The directory of the project. Defaults to the current working directory.\",\n process.cwd()\n )\n .hook(\"preAction\", thisCommand => {\n const { verbose } = thisCommand.opts();\n\n if (verbose) {\n logger.enableVerboseLogging();\n }\n });\n"],"names":["createCommandWithGlobalOptions","Command","option","process","cwd","hook","thisCommand","verbose","opts","logger","enableVerboseLogging"],"mappings":";+BAGaA;;;eAAAA;;;8BAHW;wBACL;AAEZ,MAAMA,iCAAiC,IAC5C,IAAIC,qBAAO,GACRC,MAAM,CAAC,aAAa,0BACpBA,MAAM,CACL,8BACA,4EACAC,QAAQC,GAAG,IAEZC,IAAI,CAAC,aAAaC,CAAAA;QACjB,MAAM,EAAEC,OAAO,EAAE,GAAGD,YAAYE,IAAI;QAEpC,IAAID,SAAS;YACXE,eAAM,CAACC,oBAAoB;QAC7B;IACF"}
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "main", {
3
3
  enumerable: true,
4
- get: ()=>main
4
+ get: function() {
5
+ return main;
6
+ }
5
7
  });
6
8
  const _logger = require("../logger");
7
9
  const _init = require("./commands/init");
8
- const _version = require("./commands/version");
9
10
  const _main = require("./commands/main");
11
+ const _version = require("./commands/version");
10
12
  const main = async (args)=>{
11
13
  _logger.default.enableLogging();
12
14
  await program.parseAsync(args);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/license-cop/src/lib/cli/index.ts"],"sourcesContent":["import logger from \"../logger\";\nimport { initCommand } from \"./commands/init\";\nimport { versionCommand } from \"./commands/version\";\nimport { mainCommand } from \"./commands/main\";\n\nexport const main = async (args: string[]): Promise<void> => {\n logger.enableLogging();\n await program.parseAsync(args);\n};\n\nconst program = mainCommand.addCommand(initCommand).addCommand(versionCommand);\n"],"names":["main","args","logger","enableLogging","program","parseAsync","mainCommand","addCommand","initCommand","versionCommand"],"mappings":";+BAKaA;;aAAAA;;wBALM;sBACS;yBACG;sBACH;AAErB,MAAMA,OAAO,OAAOC,OAAkC;IAC3DC,eAAM,CAACC,aAAa;IACpB,MAAMC,QAAQC,UAAU,CAACJ;AAC3B;AAEA,MAAMG,UAAUE,iBAAW,CAACC,UAAU,CAACC,iBAAW,EAAED,UAAU,CAACE,uBAAc"}
1
+ {"version":3,"sources":["../../../../../../packages/license-cop/src/lib/cli/index.ts"],"sourcesContent":["import logger from \"../logger\";\nimport { initCommand } from \"./commands/init\";\nimport { mainCommand } from \"./commands/main\";\nimport { versionCommand } from \"./commands/version\";\n\nexport const main = async (args: string[]): Promise<void> => {\n logger.enableLogging();\n await program.parseAsync(args);\n};\n\nconst program = mainCommand.addCommand(initCommand).addCommand(versionCommand);\n"],"names":["main","args","logger","enableLogging","program","parseAsync","mainCommand","addCommand","initCommand","versionCommand"],"mappings":";+BAKaA;;;eAAAA;;;wBALM;sBACS;sBACA;yBACG;AAExB,MAAMA,OAAO,OAAOC;IACzBC,eAAM,CAACC,aAAa;IACpB,MAAMC,QAAQC,UAAU,CAACJ;AAC3B;AAEA,MAAMG,UAAUE,iBAAW,CAACC,UAAU,CAACC,iBAAW,EAAED,UAAU,CAACE,uBAAc"}
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "reportFailure", {
3
3
  enumerable: true,
4
- get: ()=>reportFailure
4
+ get: function() {
5
+ return reportFailure;
6
+ }
5
7
  });
6
8
  const _logger = require("../logger");
7
9
  const reportFailure = (result)=>{
8
- const { noLicenses , forbiddenLicenses } = result;
10
+ const { noLicenses, forbiddenLicenses } = result;
9
11
  _logger.default.log("Found the following issues...\n");
10
12
  if (noLicenses.size > 0) {
11
13
  logNoLicenseIssues(noLicenses);
@@ -17,7 +19,7 @@ const reportFailure = (result)=>{
17
19
  const logNoLicenseIssues = (noLicenseResults)=>{
18
20
  _logger.default.error("Packages with no license:");
19
21
  for (const result of noLicenseResults.values()){
20
- const { name , version } = result;
22
+ const { name, version } = result;
21
23
  _logger.default.error(`${name}@${version}`);
22
24
  }
23
25
  _logger.default.error("");
@@ -25,7 +27,7 @@ const logNoLicenseIssues = (noLicenseResults)=>{
25
27
  const logForbiddenLicenseIssues = (forbiddenLicensesResults)=>{
26
28
  _logger.default.error("Packages with forbidden licenses:");
27
29
  for (const result of forbiddenLicensesResults.values()){
28
- const { name , version , licenseIdentifiers , spdxExpression } = result;
30
+ const { name, version, licenseIdentifiers, spdxExpression } = result;
29
31
  const licenseDetails = licenseIdentifiers === spdxExpression ? licenseIdentifiers : `${licenseIdentifiers} from ${spdxExpression}`;
30
32
  _logger.default.error(`${name}@${version} - ${licenseDetails}`);
31
33
  }
@@ -1 +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"}
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;;;eAAAA;;;wBAHM;AAGZ,MAAMA,gBAAgB,CAACC;IAC5B,MAAM,EAAEC,UAAU,EAAEC,iBAAiB,EAAE,GAAGF;IAE1CG,eAAM,CAACC,GAAG,CAAC;IAEX,IAAIH,WAAWI,IAAI,GAAG,GAAG;QACvBC,mBAAmBL;IACrB;IAEA,IAAIC,kBAAkBG,IAAI,GAAG,GAAG;QAC9BE,0BAA0BL;IAC5B;AACF;AAEA,MAAMI,qBAAqB,CAACE;IAC1BL,eAAM,CAACM,KAAK,CAAC;IAEb,KAAK,MAAMT,UAAUQ,iBAAiBE,MAAM,GAAI;QAC9C,MAAM,EAAEC,IAAI,EAAEC,OAAO,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;IACjCV,eAAM,CAACM,KAAK,CAAC;IAEb,KAAK,MAAMT,UAAUa,yBAAyBH,MAAM,GAAI;QACtD,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAEE,kBAAkB,EAAEC,cAAc,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"}
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "reportSuccess", {
3
3
  enumerable: true,
4
- get: ()=>reportSuccess
4
+ get: function() {
5
+ return reportSuccess;
6
+ }
5
7
  });
6
8
  const _logger = require("../logger");
7
9
  const reportSuccess = (result)=>{
8
- const { allowedPackages , allowedLicenses } = result;
10
+ const { allowedPackages, allowedLicenses } = result;
9
11
  _logger.default.log("\nDone! No issues found");
10
12
  if (allowedPackages.size !== 0) {
11
13
  _logger.default.log(`Found ${allowedPackages.size} allowed packages`);
@@ -1 +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"}
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;;;eAAAA;;;wBAHM;AAGZ,MAAMA,gBAAgB,CAACC;IAC5B,MAAM,EAAEC,eAAe,EAAEC,eAAe,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;IAEA,IAAIH,gBAAgBG,IAAI,KAAK,GAAG;QAC9BF,eAAM,CAACC,GAAG,CAAC,CAAC,MAAM,EAAEF,gBAAgBG,IAAI,CAAC,+BAA+B,CAAC;IAC3E;IAEAF,eAAM,CAACG,OAAO,CAAC;IACfC,QAAQC,QAAQ,GAAG;AACrB"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "ConfigError", {
3
3
  enumerable: true,
4
- get: ()=>ConfigError
4
+ get: function() {
5
+ return ConfigError;
6
+ }
5
7
  });
6
8
  let ConfigError = class ConfigError extends Error {
7
9
  static fromUnknown(e) {
@@ -1 +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"}
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;;;eAAAA;;;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;IACtB,IAAIA,aAAaF,OAAO;QACtB,OAAOE,EAAEC,OAAO;IAClB;IAEA,IAAI,OAAOD,MAAM,UAAU;QACzB,OAAOA;IACT;IAEA,OAAO;AACT"}
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "parseConfig", {
3
3
  enumerable: true,
4
- get: ()=>parseConfig
4
+ get: function() {
5
+ return parseConfig;
6
+ }
5
7
  });
6
8
  const _zod = require("zod");
7
- const _configError = require("./config-error");
8
- var _c_licenses, _c_packages, _c_includeDevDependencies, _c_devDependenciesOnly;
9
+ const _configerror = require("./config-error");
9
10
  const configParser = _zod.z.object({
10
11
  extends: _zod.z.string().optional(),
11
12
  licenses: _zod.z.array(_zod.z.string()).optional(),
@@ -13,17 +14,20 @@ const configParser = _zod.z.object({
13
14
  includeDevDependencies: _zod.z.boolean().optional(),
14
15
  devDependenciesOnly: _zod.z.boolean().optional(),
15
16
  directory: _zod.z.string().optional()
16
- }).transform((c)=>({
17
+ }).transform((c)=>{
18
+ var _c_licenses, _c_packages, _c_includeDevDependencies, _c_devDependenciesOnly;
19
+ return {
17
20
  extends: c.extends,
18
21
  licenses: (_c_licenses = c.licenses) != null ? _c_licenses : [],
19
22
  packages: (_c_packages = c.packages) != null ? _c_packages : [],
20
23
  includeDevDependencies: (_c_includeDevDependencies = c.includeDevDependencies) != null ? _c_includeDevDependencies : false,
21
24
  devDependenciesOnly: (_c_devDependenciesOnly = c.devDependenciesOnly) != null ? _c_devDependenciesOnly : false
22
- }));
25
+ };
26
+ });
23
27
  const parseConfig = (config)=>{
24
28
  const parseResult = configParser.safeParse(config);
25
29
  if (!parseResult.success) {
26
- throw new _configError.ConfigError(parseResult.error.message);
30
+ throw new _configerror.ConfigError(parseResult.error.message);
27
31
  }
28
32
  return parseResult.data;
29
33
  };
@@ -1 +1 @@
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
+ {"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","configParser","z","object","extends","string","optional","licenses","array","packages","includeDevDependencies","boolean","devDependenciesOnly","directory","transform","c","config","parseResult","safeParse","success","ConfigError","error","message","data"],"mappings":";+BAsBaA;;;eAAAA;;;qBAtBK;6BACU;AAE5B,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,CAACC,CAAAA;QAECA,aACAA,aACcA,2BACHA;WALN;QACfX,SAASW,EAAEX,OAAO;QAClBG,UAAUQ,CAAAA,cAAAA,EAAER,QAAQ,YAAVQ,cAAc,EAAE;QAC1BN,UAAUM,CAAAA,cAAAA,EAAEN,QAAQ,YAAVM,cAAc,EAAE;QAC1BL,wBAAwBK,CAAAA,4BAAAA,EAAEL,sBAAsB,YAAxBK,4BAA4B;QACpDH,qBAAqBG,CAAAA,yBAAAA,EAAEH,mBAAmB,YAArBG,yBAAyB;IAChD;AAAA;AAIK,MAAMf,cAAc,CAACgB;IAC1B,MAAMC,cAAchB,aAAaiB,SAAS,CAACF;IAE3C,IAAI,CAACC,YAAYE,OAAO,EAAE;QACxB,MAAM,IAAIC,wBAAW,CAACH,YAAYI,KAAK,CAACC,OAAO;IACjD;IAEA,OAAOL,YAAYM,IAAI;AACzB"}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "findConfig", {
3
3
  enumerable: true,
4
- get: ()=>findConfig
4
+ get: function() {
5
+ return findConfig;
6
+ }
5
7
  });
6
8
  const _cosmiconfig = require("cosmiconfig");
7
- const _configError = require("./config-error");
9
+ const _configerror = require("./config-error");
8
10
  const _json5 = require("./parsers/json5");
9
11
  // cspell:disable-next-line
10
12
  const moduleNames = [
@@ -58,7 +60,7 @@ const findConfig = async (rootDir)=>{
58
60
  }
59
61
  return result.config;
60
62
  } catch (e) {
61
- throw _configError.ConfigError.fromUnknown(e);
63
+ throw _configerror.ConfigError.fromUnknown(e);
62
64
  }
63
65
  };
64
66
 
@@ -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 { 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
+ {"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: Partial<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;;;eAAAA;;;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;IAC/B,MAAMC,UAAuC;QAC3CC,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,EAACM,0BAAAA,OAAQE,MAAM,GAAE;YACnB,MAAM,IAAIC,MAAM;QAClB;QAEA,OAAOH,OAAOE,MAAM;IACtB,EAAE,OAAOE,GAAG;QACV,MAAMC,wBAAW,CAACC,WAAW,CAACF;IAChC;AACF"}
@@ -1,19 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "loadConfig", {
3
3
  enumerable: true,
4
- get: ()=>loadConfig
4
+ get: function() {
5
+ return loadConfig;
6
+ }
5
7
  });
6
- const _config = require("./config");
7
- const _loadParentConfig = require("./load-parent-config");
8
8
  const _deepmerge = require("deepmerge");
9
- const _findConfig = require("./find-config");
10
9
  const _logger = require("../logger");
10
+ const _config = require("./config");
11
+ const _findconfig = require("./find-config");
12
+ const _loadparentconfig = require("./load-parent-config");
11
13
  const loadConfig = async (rootDir)=>{
12
- const foundConfig = await (0, _findConfig.findConfig)(rootDir);
14
+ const foundConfig = await (0, _findconfig.findConfig)(rootDir);
13
15
  let config = (0, _config.parseConfig)(foundConfig);
14
16
  while(config.extends){
15
17
  _logger.default.verbose(`Extending config with ${config.extends}`);
16
- const loadedParentConfig = await (0, _loadParentConfig.loadParentConfig)(config.extends, rootDir);
18
+ const loadedParentConfig = await (0, _loadparentconfig.loadParentConfig)(config.extends, rootDir);
17
19
  const parsedParentConfig = (0, _config.parseConfig)(loadedParentConfig);
18
20
  config = _deepmerge(parsedParentConfig, config);
19
21
  config.extends = parsedParentConfig.extends;
@@ -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 * 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
+ {"version":3,"sources":["../../../../../../packages/license-cop/src/lib/config/load-config.ts"],"sourcesContent":["import * as deepMerge from \"deepmerge\";\nimport logger from \"../logger\";\nimport { parseConfig } from \"./config\";\nimport { findConfig } from \"./find-config\";\nimport { loadParentConfig } from \"./load-parent-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 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;;;eAAAA;;;2BANc;wBACR;wBACS;4BACD;kCACM;AAE1B,MAAMA,aAAa,OAAOC;IAC/B,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,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "loadParentConfig", {
3
3
  enumerable: true,
4
- get: ()=>loadParentConfig
4
+ get: function() {
5
+ return loadParentConfig;
6
+ }
5
7
  });
8
+ const _configerror = require("./config-error");
6
9
  const _github = require("./parent-resolutions/github");
7
- const _npm = require("./parent-resolutions/npm");
8
10
  const _http = require("./parent-resolutions/http");
9
- const _configError = require("./config-error");
11
+ const _npm = require("./parent-resolutions/npm");
10
12
  const loadParentConfig = async (parentConfigPath, rootDir)=>{
11
13
  if (parentConfigPath.startsWith("npm:")) {
12
14
  const packageName = parentConfigPath.substring(4);
@@ -22,7 +24,7 @@ const loadParentConfig = async (parentConfigPath, rootDir)=>{
22
24
  if (await (0, _npm.nodeModuleExists)(parentConfigPath, rootDir)) {
23
25
  return await (0, _npm.npmResolution)(parentConfigPath, rootDir);
24
26
  }
25
- throw new _configError.ConfigError(`Invalid parent config location: ${parentConfigPath}`);
27
+ throw new _configerror.ConfigError(`Invalid parent config location: ${parentConfigPath}`);
26
28
  };
27
29
 
28
30
  //# 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\";\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
+ {"version":3,"sources":["../../../../../../packages/license-cop/src/lib/config/load-parent-config.ts"],"sourcesContent":["import { ConfigError } from \"./config-error\";\nimport { githubResolution } from \"./parent-resolutions/github\";\nimport { httpResolution } from \"./parent-resolutions/http\";\nimport { nodeModuleExists, npmResolution } from \"./parent-resolutions/npm\";\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;;;eAAAA;;;6BALe;wBACK;sBACF;qBACiB;AAEzC,MAAMA,mBAAmB,OAC9BC,kBACAC;IAEA,IAAID,iBAAiBE,UAAU,CAAC,SAAS;QACvC,MAAMC,cAAcH,iBAAiBI,SAAS,CAAC;QAC/C,OAAO,MAAMC,IAAAA,kBAAa,EAACF,aAAaF;IAC1C;IAEA,IAAID,iBAAiBE,UAAU,CAAC,YAAY;QAC1C,MAAMI,OAAON,iBAAiBI,SAAS,CAAC;QACxC,OAAO,MAAMG,IAAAA,wBAAgB,EAACD;IAChC;IAEA,IAAIN,iBAAiBE,UAAU,CAAC,SAAS;QACvC,OAAO,MAAMM,IAAAA,oBAAc,EAACR;IAC9B;IAEA,IAAI,MAAMS,IAAAA,qBAAgB,EAACT,kBAAkBC,UAAU;QACrD,OAAO,MAAMI,IAAAA,kBAAa,EAACL,kBAAkBC;IAC/C;IAEA,MAAM,IAAIS,wBAAW,CAAC,CAAC,gCAAgC,EAAEV,iBAAiB,CAAC;AAC7E"}
@@ -1,25 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "githubResolution", {
3
3
  enumerable: true,
4
- get: ()=>githubResolution
4
+ get: function() {
5
+ return githubResolution;
6
+ }
5
7
  });
6
- const _gitFilesystem = require("git-filesystem");
8
+ const _gitfilesystem = require("git-filesystem");
7
9
  const _logger = require("../../logger");
8
- const _configError = require("../config-error");
10
+ const _configerror = require("../config-error");
9
11
  const _json5 = require("../parsers/json5");
10
12
  const githubResolution = async (repoId)=>{
11
13
  _logger.default.verbose(`Resolving config from GitHub repo: ${repoId}`);
12
14
  const parts = repoId.split("/");
13
15
  if (parts.length !== 2 || parts[0].length === 0 || parts[1].length === 0) {
14
- throw new _configError.ConfigError(`Invalid GitHub repo ID: ${repoId}`);
16
+ throw new _configerror.ConfigError(`Invalid GitHub repo ID: ${repoId}`);
15
17
  }
16
18
  const [owner, repoName] = parts;
17
19
  try {
18
- const repo = new _gitFilesystem.GitHubClient(owner, "", "license-cop").getReadonlyRepository(repoName);
20
+ const repo = new _gitfilesystem.GitHubClient(owner, "", "license-cop").getReadonlyRepository(repoName);
19
21
  const fileContent = await repo.readFile(".licenses.json");
20
22
  return (0, _json5.json5Parse)(fileContent);
21
23
  } catch (e) {
22
- throw new _configError.ConfigError(`Could not resolve config from GitHub repo: ${repoId}, error: ${JSON.stringify(e)}`);
24
+ throw new _configerror.ConfigError(`Could not resolve config from GitHub repo: ${repoId}, error: ${JSON.stringify(e)}`);
23
25
  }
24
26
  };
25
27
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../packages/license-cop/src/lib/config/parent-resolutions/github.ts"],"sourcesContent":["import { GitHubClient } from \"git-filesystem\";\nimport logger from \"../../logger\";\nimport { ConfigError } from \"../config-error\";\nimport { json5Parse } from \"../parsers/json5\";\n\nexport const githubResolution = async (repoId: string) => {\n logger.verbose(`Resolving config from GitHub repo: ${repoId}`);\n\n const parts = repoId.split(\"/\");\n\n if (parts.length !== 2 || parts[0].length === 0 || parts[1].length === 0) {\n throw new ConfigError(`Invalid GitHub repo ID: ${repoId}`);\n }\n\n const [owner, repoName] = parts;\n\n try {\n const repo = new GitHubClient(owner, \"\", \"license-cop\").getReadonlyRepository(repoName);\n const fileContent = await repo.readFile(\".licenses.json\");\n\n return json5Parse(fileContent);\n } catch (e) {\n throw new ConfigError(\n `Could not resolve config from GitHub repo: ${repoId}, error: ${JSON.stringify(e)}`\n );\n }\n};\n"],"names":["githubResolution","repoId","logger","verbose","parts","split","length","ConfigError","owner","repoName","repo","GitHubClient","getReadonlyRepository","fileContent","readFile","json5Parse","e","JSON","stringify"],"mappings":";+BAKaA;;aAAAA;;+BALgB;wBACV;6BACS;uBACD;AAEpB,MAAMA,mBAAmB,OAAOC,SAAmB;IACxDC,eAAM,CAACC,OAAO,CAAC,CAAC,mCAAmC,EAAEF,OAAO,CAAC;IAE7D,MAAMG,QAAQH,OAAOI,KAAK,CAAC;IAE3B,IAAID,MAAME,MAAM,KAAK,KAAKF,KAAK,CAAC,EAAE,CAACE,MAAM,KAAK,KAAKF,KAAK,CAAC,EAAE,CAACE,MAAM,KAAK,GAAG;QACxE,MAAM,IAAIC,wBAAW,CAAC,CAAC,wBAAwB,EAAEN,OAAO,CAAC,EAAE;IAC7D,CAAC;IAED,MAAM,CAACO,OAAOC,SAAS,GAAGL;IAE1B,IAAI;QACF,MAAMM,OAAO,IAAIC,2BAAY,CAACH,OAAO,IAAI,eAAeI,qBAAqB,CAACH;QAC9E,MAAMI,cAAc,MAAMH,KAAKI,QAAQ,CAAC;QAExC,OAAOC,IAAAA,iBAAU,EAACF;IACpB,EAAE,OAAOG,GAAG;QACV,MAAM,IAAIT,wBAAW,CACnB,CAAC,2CAA2C,EAAEN,OAAO,SAAS,EAAEgB,KAAKC,SAAS,CAACF,GAAG,CAAC,EACnF;IACJ;AACF"}
1
+ {"version":3,"sources":["../../../../../../../packages/license-cop/src/lib/config/parent-resolutions/github.ts"],"sourcesContent":["import { GitHubClient } from \"git-filesystem\";\nimport logger from \"../../logger\";\nimport { ConfigError } from \"../config-error\";\nimport { json5Parse } from \"../parsers/json5\";\n\nexport const githubResolution = async (repoId: string) => {\n logger.verbose(`Resolving config from GitHub repo: ${repoId}`);\n\n const parts = repoId.split(\"/\");\n\n if (parts.length !== 2 || parts[0].length === 0 || parts[1].length === 0) {\n throw new ConfigError(`Invalid GitHub repo ID: ${repoId}`);\n }\n\n const [owner, repoName] = parts;\n\n try {\n const repo = new GitHubClient(owner, \"\", \"license-cop\").getReadonlyRepository(repoName);\n const fileContent = await repo.readFile(\".licenses.json\");\n\n return json5Parse(fileContent);\n } catch (e) {\n throw new ConfigError(\n `Could not resolve config from GitHub repo: ${repoId}, error: ${JSON.stringify(e)}`\n );\n }\n};\n"],"names":["githubResolution","repoId","logger","verbose","parts","split","length","ConfigError","owner","repoName","repo","GitHubClient","getReadonlyRepository","fileContent","readFile","json5Parse","e","JSON","stringify"],"mappings":";+BAKaA;;;eAAAA;;;+BALgB;wBACV;6BACS;uBACD;AAEpB,MAAMA,mBAAmB,OAAOC;IACrCC,eAAM,CAACC,OAAO,CAAC,CAAC,mCAAmC,EAAEF,OAAO,CAAC;IAE7D,MAAMG,QAAQH,OAAOI,KAAK,CAAC;IAE3B,IAAID,MAAME,MAAM,KAAK,KAAKF,KAAK,CAAC,EAAE,CAACE,MAAM,KAAK,KAAKF,KAAK,CAAC,EAAE,CAACE,MAAM,KAAK,GAAG;QACxE,MAAM,IAAIC,wBAAW,CAAC,CAAC,wBAAwB,EAAEN,OAAO,CAAC;IAC3D;IAEA,MAAM,CAACO,OAAOC,SAAS,GAAGL;IAE1B,IAAI;QACF,MAAMM,OAAO,IAAIC,2BAAY,CAACH,OAAO,IAAI,eAAeI,qBAAqB,CAACH;QAC9E,MAAMI,cAAc,MAAMH,KAAKI,QAAQ,CAAC;QAExC,OAAOC,IAAAA,iBAAU,EAACF;IACpB,EAAE,OAAOG,GAAG;QACV,MAAM,IAAIT,wBAAW,CACnB,CAAC,2CAA2C,EAAEN,OAAO,SAAS,EAAEgB,KAAKC,SAAS,CAACF,GAAG,CAAC;IAEvF;AACF"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "httpResolution", {
3
3
  enumerable: true,
4
- get: ()=>httpResolution
4
+ get: function() {
5
+ return httpResolution;
6
+ }
5
7
  });
6
8
  const _axios = require("axios");
7
9
  const _logger = require("../../logger");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../packages/license-cop/src/lib/config/parent-resolutions/http.ts"],"sourcesContent":["import axios from \"axios\";\nimport logger from \"../../logger\";\nimport { json5Parse } from \"../parsers/json5\";\n\nexport const httpResolution = async (url: string) => {\n logger.verbose(`Resolving http config: ${url}`);\n\n const response = await axios.get(url);\n\n if (typeof response.data === \"string\") {\n return await json5Parse(response.data);\n }\n\n return response.data;\n};\n"],"names":["httpResolution","url","logger","verbose","response","axios","get","data","json5Parse"],"mappings":";+BAIaA;;aAAAA;;uBAJK;wBACC;uBACQ;AAEpB,MAAMA,iBAAiB,OAAOC,MAAgB;IACnDC,eAAM,CAACC,OAAO,CAAC,CAAC,uBAAuB,EAAEF,IAAI,CAAC;IAE9C,MAAMG,WAAW,MAAMC,cAAK,CAACC,GAAG,CAACL;IAEjC,IAAI,OAAOG,SAASG,IAAI,KAAK,UAAU;QACrC,OAAO,MAAMC,IAAAA,iBAAU,EAACJ,SAASG,IAAI;IACvC,CAAC;IAED,OAAOH,SAASG,IAAI;AACtB"}
1
+ {"version":3,"sources":["../../../../../../../packages/license-cop/src/lib/config/parent-resolutions/http.ts"],"sourcesContent":["import axios from \"axios\";\nimport logger from \"../../logger\";\nimport { json5Parse } from \"../parsers/json5\";\n\nexport const httpResolution = async (url: string) => {\n logger.verbose(`Resolving http config: ${url}`);\n\n const response = await axios.get(url);\n\n if (typeof response.data === \"string\") {\n return await json5Parse(response.data);\n }\n\n return response.data;\n};\n"],"names":["httpResolution","url","logger","verbose","response","axios","get","data","json5Parse"],"mappings":";+BAIaA;;;eAAAA;;;uBAJK;wBACC;uBACQ;AAEpB,MAAMA,iBAAiB,OAAOC;IACnCC,eAAM,CAACC,OAAO,CAAC,CAAC,uBAAuB,EAAEF,IAAI,CAAC;IAE9C,MAAMG,WAAW,MAAMC,cAAK,CAACC,GAAG,CAACL;IAEjC,IAAI,OAAOG,SAASG,IAAI,KAAK,UAAU;QACrC,OAAO,MAAMC,IAAAA,iBAAU,EAACJ,SAASG,IAAI;IACvC;IAEA,OAAOH,SAASG,IAAI;AACtB"}
@@ -6,17 +6,21 @@ function _export(target, all) {
6
6
  });
7
7
  }
8
8
  _export(exports, {
9
- npmResolution: ()=>npmResolution,
10
- nodeModuleExists: ()=>nodeModuleExists
9
+ nodeModuleExists: function() {
10
+ return nodeModuleExists;
11
+ },
12
+ npmResolution: function() {
13
+ return npmResolution;
14
+ }
11
15
  });
12
16
  const _promises = require("fs/promises");
13
17
  const _path = require("path");
14
18
  const _logger = require("../../logger");
15
- const _findConfig = require("../find-config");
19
+ const _findconfig = require("../find-config");
16
20
  const npmResolution = async (packageName, rootDir)=>{
17
21
  _logger.default.verbose(`Resolving npm package: ${packageName}`);
18
22
  const packagePath = getPackagePath(rootDir, packageName);
19
- return await (0, _findConfig.findConfig)(packagePath);
23
+ return await (0, _findconfig.findConfig)(packagePath);
20
24
  };
21
25
  const nodeModuleExists = async (packageName, rootDir)=>{
22
26
  const packagePath = getPackagePath(rootDir, packageName);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../packages/license-cop/src/lib/config/parent-resolutions/npm.ts"],"sourcesContent":["import { stat } from \"fs/promises\";\nimport { join } from \"path\";\nimport logger from \"../../logger\";\nimport { findConfig } from \"../find-config\";\n\nexport const npmResolution = async (packageName: string, rootDir: string) => {\n logger.verbose(`Resolving npm package: ${packageName}`);\n\n const packagePath = getPackagePath(rootDir, packageName);\n return await findConfig(packagePath);\n};\n\nexport const nodeModuleExists = async (packageName: string, rootDir: string) => {\n const packagePath = getPackagePath(rootDir, packageName);\n\n const statResult = await stat(packagePath);\n return statResult.isDirectory();\n};\n\nconst getPackagePath = (rootDir: string, packageName: string) =>\n join(rootDir, \"node_modules\", packageName);\n"],"names":["npmResolution","nodeModuleExists","packageName","rootDir","logger","verbose","packagePath","getPackagePath","findConfig","statResult","stat","isDirectory","join"],"mappings":";;;;;;;;IAKaA,aAAa,MAAbA;IAOAC,gBAAgB,MAAhBA;;0BAZQ;sBACA;wBACF;4BACQ;AAEpB,MAAMD,gBAAgB,OAAOE,aAAqBC,UAAoB;IAC3EC,eAAM,CAACC,OAAO,CAAC,CAAC,uBAAuB,EAAEH,YAAY,CAAC;IAEtD,MAAMI,cAAcC,eAAeJ,SAASD;IAC5C,OAAO,MAAMM,IAAAA,sBAAU,EAACF;AAC1B;AAEO,MAAML,mBAAmB,OAAOC,aAAqBC,UAAoB;IAC9E,MAAMG,cAAcC,eAAeJ,SAASD;IAE5C,MAAMO,aAAa,MAAMC,IAAAA,cAAI,EAACJ;IAC9B,OAAOG,WAAWE,WAAW;AAC/B;AAEA,MAAMJ,iBAAiB,CAACJ,SAAiBD,cACvCU,IAAAA,UAAI,EAACT,SAAS,gBAAgBD"}
1
+ {"version":3,"sources":["../../../../../../../packages/license-cop/src/lib/config/parent-resolutions/npm.ts"],"sourcesContent":["import { stat } from \"fs/promises\";\nimport { join } from \"path\";\nimport logger from \"../../logger\";\nimport { findConfig } from \"../find-config\";\n\nexport const npmResolution = async (packageName: string, rootDir: string) => {\n logger.verbose(`Resolving npm package: ${packageName}`);\n\n const packagePath = getPackagePath(rootDir, packageName);\n return await findConfig(packagePath);\n};\n\nexport const nodeModuleExists = async (packageName: string, rootDir: string) => {\n const packagePath = getPackagePath(rootDir, packageName);\n\n const statResult = await stat(packagePath);\n return statResult.isDirectory();\n};\n\nconst getPackagePath = (rootDir: string, packageName: string) =>\n join(rootDir, \"node_modules\", packageName);\n"],"names":["nodeModuleExists","npmResolution","packageName","rootDir","logger","verbose","packagePath","getPackagePath","findConfig","statResult","stat","isDirectory","join"],"mappings":";;;;;;;;IAYaA,gBAAgB;eAAhBA;;IAPAC,aAAa;eAAbA;;;0BALQ;sBACA;wBACF;4BACQ;AAEpB,MAAMA,gBAAgB,OAAOC,aAAqBC;IACvDC,eAAM,CAACC,OAAO,CAAC,CAAC,uBAAuB,EAAEH,YAAY,CAAC;IAEtD,MAAMI,cAAcC,eAAeJ,SAASD;IAC5C,OAAO,MAAMM,IAAAA,sBAAU,EAACF;AAC1B;AAEO,MAAMN,mBAAmB,OAAOE,aAAqBC;IAC1D,MAAMG,cAAcC,eAAeJ,SAASD;IAE5C,MAAMO,aAAa,MAAMC,IAAAA,cAAI,EAACJ;IAC9B,OAAOG,WAAWE,WAAW;AAC/B;AAEA,MAAMJ,iBAAiB,CAACJ,SAAiBD,cACvCU,IAAAA,UAAI,EAACT,SAAS,gBAAgBD"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "json5Parse", {
3
3
  enumerable: true,
4
- get: ()=>json5Parse
4
+ get: function() {
5
+ return json5Parse;
6
+ }
5
7
  });
6
8
  const _json5 = require("json5");
7
9
  const json5Parse = (content)=>_json5.parse(content);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../packages/license-cop/src/lib/config/parsers/json5.ts"],"sourcesContent":["import * as JSON5 from \"json5\";\n\nexport const json5Parse = <T>(content: string): T => JSON5.parse<T>(content);\n"],"names":["json5Parse","content","JSON5","parse"],"mappings":";+BAEaA;;aAAAA;;uBAFU;AAEhB,MAAMA,aAAa,CAAIC,UAAuBC,OAAMC,KAAK,CAAIF"}
1
+ {"version":3,"sources":["../../../../../../../packages/license-cop/src/lib/config/parsers/json5.ts"],"sourcesContent":["import * as JSON5 from \"json5\";\n\nexport const json5Parse = <T>(content: string): T => JSON5.parse<T>(content);\n"],"names":["json5Parse","content","JSON5","parse"],"mappings":";+BAEaA;;;eAAAA;;;uBAFU;AAEhB,MAAMA,aAAa,CAAIC,UAAuBC,OAAMC,KAAK,CAAIF"}
@@ -1,18 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "checkLicenses", {
3
3
  enumerable: true,
4
- get: ()=>checkLicenses
4
+ get: function() {
5
+ return checkLicenses;
6
+ }
5
7
  });
6
8
  const _arborist = require("@npmcli/arborist");
7
9
  const _path = require("path");
8
10
  const _logger = require("./logger");
9
- const _packageJson = require("./package-json");
10
- const _packageRules = require("./package-rules");
11
- const _calculateIssues = require("./spdx/calculate-issues");
12
- const _joinStringArray = require("./utils/join-string-array");
13
- const _parseLicenseExpression = require("./spdx/parse-license-expression");
11
+ const _packagejson = require("./package-json");
12
+ const _packagerules = require("./package-rules");
13
+ const _calculateissues = require("./spdx/calculate-issues");
14
+ const _parselicenseexpression = require("./spdx/parse-license-expression");
15
+ const _joinstringarray = require("./utils/join-string-array");
14
16
  const checkLicenses = async (options)=>{
15
- const { workingDirectory , allowedLicenses , allowedPackages , includeDevDependencies , devDependenciesOnly } = options;
17
+ const { workingDirectory, allowedLicenses, allowedPackages, includeDevDependencies, devDependenciesOnly } = options;
16
18
  const foundAllowedPackages = new Set();
17
19
  const packagesWithAllowedLicenses = new Set();
18
20
  const packagesWithNoLicenses = new Set();
@@ -32,8 +34,8 @@ const checkLicenses = async (options)=>{
32
34
  return;
33
35
  }
34
36
  const packageJsonPath = (0, _path.join)(node.realpath, "package.json");
35
- const packageJson = await (0, _packageJson.readPackageJson)(packageJsonPath);
36
- if ((0, _packageRules.isAllowedPackage)(node.name, packageJson.version, allowedPackages)) {
37
+ const packageJson = await (0, _packagejson.readPackageJson)(packageJsonPath);
38
+ if ((0, _packagerules.isAllowedPackage)(node.name, packageJson.version, allowedPackages)) {
37
39
  foundAllowedPackages.add({
38
40
  name: packageJson.name,
39
41
  version: packageJson.version
@@ -43,8 +45,8 @@ const checkLicenses = async (options)=>{
43
45
  }
44
46
  return;
45
47
  }
46
- const rawLicenseExpression = (0, _packageJson.getLicenseExpression)(packageJson);
47
- const licenseExpression = (0, _parseLicenseExpression.parseLicenseExpression)(rawLicenseExpression);
48
+ const rawLicenseExpression = (0, _packagejson.getLicenseExpression)(packageJson);
49
+ const licenseExpression = (0, _parselicenseexpression.parseLicenseExpression)(rawLicenseExpression);
48
50
  if (licenseExpression.type === "unlicensed") {
49
51
  packagesWithNoLicenses.add({
50
52
  name: packageJson.name,
@@ -55,8 +57,8 @@ const checkLicenses = async (options)=>{
55
57
  }
56
58
  return;
57
59
  }
58
- const licenseIssues = (0, _calculateIssues.calculateIssues)(licenseExpression, allowedLicenses);
59
- const joinedIssues = (0, _joinStringArray.joinStringArray)(licenseIssues);
60
+ const licenseIssues = (0, _calculateissues.calculateIssues)(licenseExpression, allowedLicenses);
61
+ const joinedIssues = (0, _joinstringarray.joinStringArray)(licenseIssues);
60
62
  if (licenseIssues.length > 0) {
61
63
  packagesWithForbiddenLicenses.add({
62
64
  name: packageJson.name,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/license-cop/src/lib/license-cop.ts"],"sourcesContent":["import { Node, Link } from \"@npmcli/arborist\";\nimport * as Arborist from \"@npmcli/arborist\";\nimport { isAbsolute, join } from \"path\";\nimport logger from \"./logger\";\nimport { getLicenseExpression, readPackageJson } from \"./package-json\";\nimport { isAllowedPackage } from \"./package-rules\";\nimport { calculateIssues } from \"./spdx/calculate-issues\";\nimport { joinStringArray } from \"./utils/join-string-array\";\nimport { parseLicenseExpression } from \"./spdx/parse-license-expression\";\nimport {\n AllowedPackage,\n CheckLicensesResult,\n ForbiddenLicenseResult,\n LicensedPackage,\n NoLicenseResult\n} from \"./result\";\n\nexport interface LicenseCopOptions {\n allowedLicenses: string[];\n allowedPackages: string[];\n workingDirectory?: string;\n includeDevDependencies?: boolean;\n devDependenciesOnly?: boolean;\n}\n\nexport const checkLicenses = async (options: LicenseCopOptions): Promise<CheckLicensesResult> => {\n const {\n workingDirectory,\n allowedLicenses,\n allowedPackages,\n includeDevDependencies,\n devDependenciesOnly\n } = options;\n\n const foundAllowedPackages = new Set<AllowedPackage>();\n const packagesWithAllowedLicenses = new Set<LicensedPackage>();\n const packagesWithNoLicenses = new Set<NoLicenseResult>();\n const packagesWithForbiddenLicenses = new Set<ForbiddenLicenseResult>();\n\n const path = resolvePath(workingDirectory);\n const arborist = new Arborist({ path });\n\n const topNode = await arborist.loadActual();\n\n const parseNode = async (node: Node | Link) => {\n logger.verbose(`Parsing node: ${node.name}`);\n\n const isDevDependency = node.dev;\n\n if (!includeDevDependencies && !devDependenciesOnly && isDevDependency) {\n return;\n }\n\n if (devDependenciesOnly && !isDevDependency) {\n return;\n }\n\n const packageJsonPath = join(node.realpath, \"package.json\");\n const packageJson = await readPackageJson(packageJsonPath);\n\n if (isAllowedPackage(node.name, packageJson.version, allowedPackages)) {\n foundAllowedPackages.add({\n name: packageJson.name,\n version: packageJson.version\n });\n\n if (node.children.size > 0) {\n await parseNodes(node.children.values());\n }\n return;\n }\n\n const rawLicenseExpression = getLicenseExpression(packageJson);\n const licenseExpression = parseLicenseExpression(rawLicenseExpression);\n\n if (licenseExpression.type === \"unlicensed\") {\n packagesWithNoLicenses.add({\n name: packageJson.name,\n version: packageJson.version\n });\n\n if (node.children.size > 0) {\n await parseNodes(node.children.values());\n }\n return;\n }\n\n const licenseIssues = calculateIssues(licenseExpression, allowedLicenses);\n const joinedIssues = joinStringArray(licenseIssues);\n\n if (licenseIssues.length > 0) {\n packagesWithForbiddenLicenses.add({\n name: packageJson.name,\n version: packageJson.version,\n licenseIdentifiers: joinedIssues,\n spdxExpression: rawLicenseExpression\n });\n } else {\n packagesWithAllowedLicenses.add({\n name: packageJson.name,\n version: packageJson.version,\n spdxExpression: rawLicenseExpression,\n licenses: licenseExpression\n });\n }\n\n if (node.children.size > 0) {\n parseNodes(node.children.values());\n }\n };\n\n const parseNodes = async (nodes: IterableIterator<Node | Link>) => {\n for (const node of nodes) {\n await parseNode(node);\n }\n };\n\n await parseNodes(topNode.children.values());\n\n return {\n allowedPackages: foundAllowedPackages,\n allowedLicenses: packagesWithAllowedLicenses,\n noLicenses: packagesWithNoLicenses,\n forbiddenLicenses: packagesWithForbiddenLicenses\n };\n};\n\nconst resolvePath = (path?: string): string => {\n if (!path) {\n return process.cwd();\n }\n\n return isAbsolute(path) ? path : join(process.cwd(), path);\n};\n"],"names":["checkLicenses","options","workingDirectory","allowedLicenses","allowedPackages","includeDevDependencies","devDependenciesOnly","foundAllowedPackages","Set","packagesWithAllowedLicenses","packagesWithNoLicenses","packagesWithForbiddenLicenses","path","resolvePath","arborist","Arborist","topNode","loadActual","parseNode","node","logger","verbose","name","isDevDependency","dev","packageJsonPath","join","realpath","packageJson","readPackageJson","isAllowedPackage","version","add","children","size","parseNodes","values","rawLicenseExpression","getLicenseExpression","licenseExpression","parseLicenseExpression","type","licenseIssues","calculateIssues","joinedIssues","joinStringArray","length","licenseIdentifiers","spdxExpression","licenses","nodes","noLicenses","forbiddenLicenses","process","cwd","isAbsolute"],"mappings":";+BAyBaA;;aAAAA;;0BAxBa;sBACO;wBACd;6BACmC;8BACrB;iCACD;iCACA;wCACO;AAiBhC,MAAMA,gBAAgB,OAAOC,UAA6D;IAC/F,MAAM,EACJC,iBAAgB,EAChBC,gBAAe,EACfC,gBAAe,EACfC,uBAAsB,EACtBC,oBAAmB,EACpB,GAAGL;IAEJ,MAAMM,uBAAuB,IAAIC;IACjC,MAAMC,8BAA8B,IAAID;IACxC,MAAME,yBAAyB,IAAIF;IACnC,MAAMG,gCAAgC,IAAIH;IAE1C,MAAMI,OAAOC,YAAYX;IACzB,MAAMY,WAAW,IAAIC,UAAS;QAAEH;IAAK;IAErC,MAAMI,UAAU,MAAMF,SAASG,UAAU;IAEzC,MAAMC,YAAY,OAAOC,OAAsB;QAC7CC,eAAM,CAACC,OAAO,CAAC,CAAC,cAAc,EAAEF,KAAKG,IAAI,CAAC,CAAC;QAE3C,MAAMC,kBAAkBJ,KAAKK,GAAG;QAEhC,IAAI,CAACnB,0BAA0B,CAACC,uBAAuBiB,iBAAiB;YACtE;QACF,CAAC;QAED,IAAIjB,uBAAuB,CAACiB,iBAAiB;YAC3C;QACF,CAAC;QAED,MAAME,kBAAkBC,IAAAA,UAAI,EAACP,KAAKQ,QAAQ,EAAE;QAC5C,MAAMC,cAAc,MAAMC,IAAAA,4BAAe,EAACJ;QAE1C,IAAIK,IAAAA,8BAAgB,EAACX,KAAKG,IAAI,EAAEM,YAAYG,OAAO,EAAE3B,kBAAkB;YACrEG,qBAAqByB,GAAG,CAAC;gBACvBV,MAAMM,YAAYN,IAAI;gBACtBS,SAASH,YAAYG,OAAO;YAC9B;YAEA,IAAIZ,KAAKc,QAAQ,CAACC,IAAI,GAAG,GAAG;gBAC1B,MAAMC,WAAWhB,KAAKc,QAAQ,CAACG,MAAM;YACvC,CAAC;YACD;QACF,CAAC;QAED,MAAMC,uBAAuBC,IAAAA,iCAAoB,EAACV;QAClD,MAAMW,oBAAoBC,IAAAA,8CAAsB,EAACH;QAEjD,IAAIE,kBAAkBE,IAAI,KAAK,cAAc;YAC3C/B,uBAAuBsB,GAAG,CAAC;gBACzBV,MAAMM,YAAYN,IAAI;gBACtBS,SAASH,YAAYG,OAAO;YAC9B;YAEA,IAAIZ,KAAKc,QAAQ,CAACC,IAAI,GAAG,GAAG;gBAC1B,MAAMC,WAAWhB,KAAKc,QAAQ,CAACG,MAAM;YACvC,CAAC;YACD;QACF,CAAC;QAED,MAAMM,gBAAgBC,IAAAA,gCAAe,EAACJ,mBAAmBpC;QACzD,MAAMyC,eAAeC,IAAAA,gCAAe,EAACH;QAErC,IAAIA,cAAcI,MAAM,GAAG,GAAG;YAC5BnC,8BAA8BqB,GAAG,CAAC;gBAChCV,MAAMM,YAAYN,IAAI;gBACtBS,SAASH,YAAYG,OAAO;gBAC5BgB,oBAAoBH;gBACpBI,gBAAgBX;YAClB;QACF,OAAO;YACL5B,4BAA4BuB,GAAG,CAAC;gBAC9BV,MAAMM,YAAYN,IAAI;gBACtBS,SAASH,YAAYG,OAAO;gBAC5BiB,gBAAgBX;gBAChBY,UAAUV;YACZ;QACF,CAAC;QAED,IAAIpB,KAAKc,QAAQ,CAACC,IAAI,GAAG,GAAG;YAC1BC,WAAWhB,KAAKc,QAAQ,CAACG,MAAM;QACjC,CAAC;IACH;IAEA,MAAMD,aAAa,OAAOe,QAAyC;QACjE,KAAK,MAAM/B,QAAQ+B,MAAO;YACxB,MAAMhC,UAAUC;QAClB;IACF;IAEA,MAAMgB,WAAWnB,QAAQiB,QAAQ,CAACG,MAAM;IAExC,OAAO;QACLhC,iBAAiBG;QACjBJ,iBAAiBM;QACjB0C,YAAYzC;QACZ0C,mBAAmBzC;IACrB;AACF;AAEA,MAAME,cAAc,CAACD,OAA0B;IAC7C,IAAI,CAACA,MAAM;QACT,OAAOyC,QAAQC,GAAG;IACpB,CAAC;IAED,OAAOC,IAAAA,gBAAU,EAAC3C,QAAQA,OAAOc,IAAAA,UAAI,EAAC2B,QAAQC,GAAG,IAAI1C,KAAK;AAC5D"}
1
+ {"version":3,"sources":["../../../../../packages/license-cop/src/lib/license-cop.ts"],"sourcesContent":["import * as Arborist from \"@npmcli/arborist\";\nimport { Link, Node } from \"@npmcli/arborist\";\nimport { isAbsolute, join } from \"path\";\nimport logger from \"./logger\";\nimport { getLicenseExpression, readPackageJson } from \"./package-json\";\nimport { isAllowedPackage } from \"./package-rules\";\nimport {\n AllowedPackage,\n CheckLicensesResult,\n ForbiddenLicenseResult,\n LicensedPackage,\n NoLicenseResult\n} from \"./result\";\nimport { calculateIssues } from \"./spdx/calculate-issues\";\nimport { parseLicenseExpression } from \"./spdx/parse-license-expression\";\nimport { joinStringArray } from \"./utils/join-string-array\";\n\nexport interface LicenseCopOptions {\n allowedLicenses: string[];\n allowedPackages: string[];\n workingDirectory?: string;\n includeDevDependencies?: boolean;\n devDependenciesOnly?: boolean;\n}\n\nexport const checkLicenses = async (options: LicenseCopOptions): Promise<CheckLicensesResult> => {\n const {\n workingDirectory,\n allowedLicenses,\n allowedPackages,\n includeDevDependencies,\n devDependenciesOnly\n } = options;\n\n const foundAllowedPackages = new Set<AllowedPackage>();\n const packagesWithAllowedLicenses = new Set<LicensedPackage>();\n const packagesWithNoLicenses = new Set<NoLicenseResult>();\n const packagesWithForbiddenLicenses = new Set<ForbiddenLicenseResult>();\n\n const path = resolvePath(workingDirectory);\n const arborist = new Arborist({ path });\n\n const topNode = await arborist.loadActual();\n\n const parseNode = async (node: Node | Link) => {\n logger.verbose(`Parsing node: ${node.name}`);\n\n const isDevDependency = node.dev;\n\n if (!includeDevDependencies && !devDependenciesOnly && isDevDependency) {\n return;\n }\n\n if (devDependenciesOnly && !isDevDependency) {\n return;\n }\n\n const packageJsonPath = join(node.realpath, \"package.json\");\n const packageJson = await readPackageJson(packageJsonPath);\n\n if (isAllowedPackage(node.name, packageJson.version, allowedPackages)) {\n foundAllowedPackages.add({\n name: packageJson.name,\n version: packageJson.version\n });\n\n if (node.children.size > 0) {\n await parseNodes(node.children.values());\n }\n return;\n }\n\n const rawLicenseExpression = getLicenseExpression(packageJson);\n const licenseExpression = parseLicenseExpression(rawLicenseExpression);\n\n if (licenseExpression.type === \"unlicensed\") {\n packagesWithNoLicenses.add({\n name: packageJson.name,\n version: packageJson.version\n });\n\n if (node.children.size > 0) {\n await parseNodes(node.children.values());\n }\n return;\n }\n\n const licenseIssues = calculateIssues(licenseExpression, allowedLicenses);\n const joinedIssues = joinStringArray(licenseIssues);\n\n if (licenseIssues.length > 0) {\n packagesWithForbiddenLicenses.add({\n name: packageJson.name,\n version: packageJson.version,\n licenseIdentifiers: joinedIssues,\n spdxExpression: rawLicenseExpression\n });\n } else {\n packagesWithAllowedLicenses.add({\n name: packageJson.name,\n version: packageJson.version,\n spdxExpression: rawLicenseExpression,\n licenses: licenseExpression\n });\n }\n\n if (node.children.size > 0) {\n parseNodes(node.children.values());\n }\n };\n\n const parseNodes = async (nodes: IterableIterator<Node | Link>) => {\n for (const node of nodes) {\n await parseNode(node);\n }\n };\n\n await parseNodes(topNode.children.values());\n\n return {\n allowedPackages: foundAllowedPackages,\n allowedLicenses: packagesWithAllowedLicenses,\n noLicenses: packagesWithNoLicenses,\n forbiddenLicenses: packagesWithForbiddenLicenses\n };\n};\n\nconst resolvePath = (path?: string): string => {\n if (!path) {\n return process.cwd();\n }\n\n return isAbsolute(path) ? path : join(process.cwd(), path);\n};\n"],"names":["checkLicenses","options","workingDirectory","allowedLicenses","allowedPackages","includeDevDependencies","devDependenciesOnly","foundAllowedPackages","Set","packagesWithAllowedLicenses","packagesWithNoLicenses","packagesWithForbiddenLicenses","path","resolvePath","arborist","Arborist","topNode","loadActual","parseNode","node","logger","verbose","name","isDevDependency","dev","packageJsonPath","join","realpath","packageJson","readPackageJson","isAllowedPackage","version","add","children","size","parseNodes","values","rawLicenseExpression","getLicenseExpression","licenseExpression","parseLicenseExpression","type","licenseIssues","calculateIssues","joinedIssues","joinStringArray","length","licenseIdentifiers","spdxExpression","licenses","nodes","noLicenses","forbiddenLicenses","process","cwd","isAbsolute"],"mappings":";+BAyBaA;;;eAAAA;;;0BAzBa;sBAEO;wBACd;6BACmC;8BACrB;iCAQD;wCACO;iCACP;AAUzB,MAAMA,gBAAgB,OAAOC;IAClC,MAAM,EACJC,gBAAgB,EAChBC,eAAe,EACfC,eAAe,EACfC,sBAAsB,EACtBC,mBAAmB,EACpB,GAAGL;IAEJ,MAAMM,uBAAuB,IAAIC;IACjC,MAAMC,8BAA8B,IAAID;IACxC,MAAME,yBAAyB,IAAIF;IACnC,MAAMG,gCAAgC,IAAIH;IAE1C,MAAMI,OAAOC,YAAYX;IACzB,MAAMY,WAAW,IAAIC,UAAS;QAAEH;IAAK;IAErC,MAAMI,UAAU,MAAMF,SAASG,UAAU;IAEzC,MAAMC,YAAY,OAAOC;QACvBC,eAAM,CAACC,OAAO,CAAC,CAAC,cAAc,EAAEF,KAAKG,IAAI,CAAC,CAAC;QAE3C,MAAMC,kBAAkBJ,KAAKK,GAAG;QAEhC,IAAI,CAACnB,0BAA0B,CAACC,uBAAuBiB,iBAAiB;YACtE;QACF;QAEA,IAAIjB,uBAAuB,CAACiB,iBAAiB;YAC3C;QACF;QAEA,MAAME,kBAAkBC,IAAAA,UAAI,EAACP,KAAKQ,QAAQ,EAAE;QAC5C,MAAMC,cAAc,MAAMC,IAAAA,4BAAe,EAACJ;QAE1C,IAAIK,IAAAA,8BAAgB,EAACX,KAAKG,IAAI,EAAEM,YAAYG,OAAO,EAAE3B,kBAAkB;YACrEG,qBAAqByB,GAAG,CAAC;gBACvBV,MAAMM,YAAYN,IAAI;gBACtBS,SAASH,YAAYG,OAAO;YAC9B;YAEA,IAAIZ,KAAKc,QAAQ,CAACC,IAAI,GAAG,GAAG;gBAC1B,MAAMC,WAAWhB,KAAKc,QAAQ,CAACG,MAAM;YACvC;YACA;QACF;QAEA,MAAMC,uBAAuBC,IAAAA,iCAAoB,EAACV;QAClD,MAAMW,oBAAoBC,IAAAA,8CAAsB,EAACH;QAEjD,IAAIE,kBAAkBE,IAAI,KAAK,cAAc;YAC3C/B,uBAAuBsB,GAAG,CAAC;gBACzBV,MAAMM,YAAYN,IAAI;gBACtBS,SAASH,YAAYG,OAAO;YAC9B;YAEA,IAAIZ,KAAKc,QAAQ,CAACC,IAAI,GAAG,GAAG;gBAC1B,MAAMC,WAAWhB,KAAKc,QAAQ,CAACG,MAAM;YACvC;YACA;QACF;QAEA,MAAMM,gBAAgBC,IAAAA,gCAAe,EAACJ,mBAAmBpC;QACzD,MAAMyC,eAAeC,IAAAA,gCAAe,EAACH;QAErC,IAAIA,cAAcI,MAAM,GAAG,GAAG;YAC5BnC,8BAA8BqB,GAAG,CAAC;gBAChCV,MAAMM,YAAYN,IAAI;gBACtBS,SAASH,YAAYG,OAAO;gBAC5BgB,oBAAoBH;gBACpBI,gBAAgBX;YAClB;QACF,OAAO;YACL5B,4BAA4BuB,GAAG,CAAC;gBAC9BV,MAAMM,YAAYN,IAAI;gBACtBS,SAASH,YAAYG,OAAO;gBAC5BiB,gBAAgBX;gBAChBY,UAAUV;YACZ;QACF;QAEA,IAAIpB,KAAKc,QAAQ,CAACC,IAAI,GAAG,GAAG;YAC1BC,WAAWhB,KAAKc,QAAQ,CAACG,MAAM;QACjC;IACF;IAEA,MAAMD,aAAa,OAAOe;QACxB,KAAK,MAAM/B,QAAQ+B,MAAO;YACxB,MAAMhC,UAAUC;QAClB;IACF;IAEA,MAAMgB,WAAWnB,QAAQiB,QAAQ,CAACG,MAAM;IAExC,OAAO;QACLhC,iBAAiBG;QACjBJ,iBAAiBM;QACjB0C,YAAYzC;QACZ0C,mBAAmBzC;IACrB;AACF;AAEA,MAAME,cAAc,CAACD;IACnB,IAAI,CAACA,MAAM;QACT,OAAOyC,QAAQC,GAAG;IACpB;IAEA,OAAOC,IAAAA,gBAAU,EAAC3C,QAAQA,OAAOc,IAAAA,UAAI,EAAC2B,QAAQC,GAAG,IAAI1C;AACvD"}
package/src/lib/logger.js CHANGED
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "default", {
3
3
  enumerable: true,
4
- get: ()=>_default
4
+ get: function() {
5
+ return _default;
6
+ }
5
7
  });
6
8
  let loggerEnabled = false;
7
9
  let verboseEnabled = false;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/license-cop/src/lib/logger.ts"],"sourcesContent":["let loggerEnabled = false;\nlet verboseEnabled = false;\n\nconst enableLogging = () => {\n loggerEnabled = true;\n};\n\nconst enableVerboseLogging = () => {\n verboseEnabled = true;\n\n verbose(\"Verbose logging enabled\");\n};\n\nconst log = (message: string) => {\n if (loggerEnabled) {\n console.log(message);\n }\n};\n\nconst verbose = (message: string) => {\n if (loggerEnabled && verboseEnabled) {\n log(message);\n }\n};\n\nconst error = (message: string) => {\n if (loggerEnabled) {\n console.error(message);\n }\n};\n\nconst logger = {\n enableLogging,\n enableVerboseLogging,\n log,\n verbose,\n error\n};\n\nexport default logger;\n"],"names":["loggerEnabled","verboseEnabled","enableLogging","enableVerboseLogging","verbose","log","message","console","error","logger"],"mappings":";+BAuCA;;aAAA;;AAvCA,IAAIA,gBAAgB,KAAK;AACzB,IAAIC,iBAAiB,KAAK;AAE1B,MAAMC,gBAAgB,IAAM;IAC1BF,gBAAgB,IAAI;AACtB;AAEA,MAAMG,uBAAuB,IAAM;IACjCF,iBAAiB,IAAI;IAErBG,QAAQ;AACV;AAEA,MAAMC,MAAM,CAACC,UAAoB;IAC/B,IAAIN,eAAe;QACjBO,QAAQF,GAAG,CAACC;IACd,CAAC;AACH;AAEA,MAAMF,UAAU,CAACE,UAAoB;IACnC,IAAIN,iBAAiBC,gBAAgB;QACnCI,IAAIC;IACN,CAAC;AACH;AAEA,MAAME,QAAQ,CAACF,UAAoB;IACjC,IAAIN,eAAe;QACjBO,QAAQC,KAAK,CAACF;IAChB,CAAC;AACH;AAEA,MAAMG,SAAS;IACbP;IACAC;IACAE;IACAD;IACAI;AACF;MAEA,WAAeC"}
1
+ {"version":3,"sources":["../../../../../packages/license-cop/src/lib/logger.ts"],"sourcesContent":["let loggerEnabled = false;\nlet verboseEnabled = false;\n\nconst enableLogging = () => {\n loggerEnabled = true;\n};\n\nconst enableVerboseLogging = () => {\n verboseEnabled = true;\n\n verbose(\"Verbose logging enabled\");\n};\n\nconst log = (message: string) => {\n if (loggerEnabled) {\n console.log(message);\n }\n};\n\nconst verbose = (message: string) => {\n if (loggerEnabled && verboseEnabled) {\n log(message);\n }\n};\n\nconst error = (message: string) => {\n if (loggerEnabled) {\n console.error(message);\n }\n};\n\nconst logger = {\n enableLogging,\n enableVerboseLogging,\n log,\n verbose,\n error\n};\n\nexport default logger;\n"],"names":["loggerEnabled","verboseEnabled","enableLogging","enableVerboseLogging","verbose","log","message","console","error","logger"],"mappings":";+BAuCA;;;eAAA;;;AAvCA,IAAIA,gBAAgB;AACpB,IAAIC,iBAAiB;AAErB,MAAMC,gBAAgB;IACpBF,gBAAgB;AAClB;AAEA,MAAMG,uBAAuB;IAC3BF,iBAAiB;IAEjBG,QAAQ;AACV;AAEA,MAAMC,MAAM,CAACC;IACX,IAAIN,eAAe;QACjBO,QAAQF,GAAG,CAACC;IACd;AACF;AAEA,MAAMF,UAAU,CAACE;IACf,IAAIN,iBAAiBC,gBAAgB;QACnCI,IAAIC;IACN;AACF;AAEA,MAAME,QAAQ,CAACF;IACb,IAAIN,eAAe;QACjBO,QAAQC,KAAK,CAACF;IAChB;AACF;AAEA,MAAMG,SAAS;IACbP;IACAC;IACAE;IACAD;IACAI;AACF;MAEA,WAAeC"}
@@ -6,8 +6,12 @@ function _export(target, all) {
6
6
  });
7
7
  }
8
8
  _export(exports, {
9
- readPackageJson: ()=>readPackageJson,
10
- getLicenseExpression: ()=>getLicenseExpression
9
+ getLicenseExpression: function() {
10
+ return getLicenseExpression;
11
+ },
12
+ readPackageJson: function() {
13
+ return readPackageJson;
14
+ }
11
15
  });
12
16
  const _promises = require("fs/promises");
13
17
  const _zod = require("zod");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/license-cop/src/lib/package-json.ts"],"sourcesContent":["import { Stats } from \"fs\";\nimport { readFile, stat } from \"fs/promises\";\nimport { z } from \"zod\";\nimport { json5Parse } from \"./config/parsers/json5\";\nimport logger from \"./logger\";\n\nconst packageJsonValidator = z.object({\n name: z.string(),\n version: z.string(),\n license: z.string().optional(),\n licenses: z\n .object({\n type: z.string(),\n url: z.string().optional()\n })\n .array()\n .optional()\n});\n\ntype PackageJson = z.infer<typeof packageJsonValidator>;\n\nexport const readPackageJson = async (pathToPackageJson: string): Promise<PackageJson> => {\n const doesPackageJsonExist = await doesFileExist(pathToPackageJson);\n if (!doesPackageJsonExist) {\n logger.verbose(`Cannot find the package.json: '${pathToPackageJson}'`);\n throw new Error(`Cannot find the file: '${pathToPackageJson}'`);\n }\n\n const packageJsonAsString: string = await readFile(pathToPackageJson, { encoding: \"utf8\" });\n\n const parsedFile = json5Parse<unknown>(packageJsonAsString);\n\n const packageJson = packageJsonValidator.safeParse(parsedFile);\n\n if (!packageJson.success) {\n throw new Error(\n `Unable to parse package.json: ${pathToPackageJson}: ${packageJson.error.message}`\n );\n }\n\n return packageJson.data;\n};\n\nexport const getLicenseExpression = (packageJson: PackageJson): string => {\n if (packageJson.license) {\n return packageJson.license;\n }\n\n if (packageJson.licenses) {\n const licenses = packageJson.licenses.map<string>(license => license.type);\n\n if (licenses.length === 1) {\n return licenses[0];\n }\n\n return `(${licenses.join(\" AND \")})`;\n }\n\n return \"UNLICENSED\";\n};\n\nconst doesFileExist = async (path: string): Promise<boolean> => {\n try {\n const stats: Stats = await stat(path);\n return stats.isFile();\n } catch {\n return false;\n }\n};\n"],"names":["readPackageJson","getLicenseExpression","packageJsonValidator","z","object","name","string","version","license","optional","licenses","type","url","array","pathToPackageJson","doesPackageJsonExist","doesFileExist","logger","verbose","Error","packageJsonAsString","readFile","encoding","parsedFile","json5Parse","packageJson","safeParse","success","error","message","data","map","length","join","path","stats","stat","isFile"],"mappings":";;;;;;;;IAqBaA,eAAe,MAAfA;IAsBAC,oBAAoB,MAApBA;;0BA1CkB;qBACb;uBACS;wBACR;AAEnB,MAAMC,uBAAuBC,MAAC,CAACC,MAAM,CAAC;IACpCC,MAAMF,MAAC,CAACG,MAAM;IACdC,SAASJ,MAAC,CAACG,MAAM;IACjBE,SAASL,MAAC,CAACG,MAAM,GAAGG,QAAQ;IAC5BC,UAAUP,MAAC,CACRC,MAAM,CAAC;QACNO,MAAMR,MAAC,CAACG,MAAM;QACdM,KAAKT,MAAC,CAACG,MAAM,GAAGG,QAAQ;IAC1B,GACCI,KAAK,GACLJ,QAAQ;AACb;AAIO,MAAMT,kBAAkB,OAAOc,oBAAoD;IACxF,MAAMC,uBAAuB,MAAMC,cAAcF;IACjD,IAAI,CAACC,sBAAsB;QACzBE,eAAM,CAACC,OAAO,CAAC,CAAC,+BAA+B,EAAEJ,kBAAkB,CAAC,CAAC;QACrE,MAAM,IAAIK,MAAM,CAAC,uBAAuB,EAAEL,kBAAkB,CAAC,CAAC,EAAE;IAClE,CAAC;IAED,MAAMM,sBAA8B,MAAMC,IAAAA,kBAAQ,EAACP,mBAAmB;QAAEQ,UAAU;IAAO;IAEzF,MAAMC,aAAaC,IAAAA,iBAAU,EAAUJ;IAEvC,MAAMK,cAAcvB,qBAAqBwB,SAAS,CAACH;IAEnD,IAAI,CAACE,YAAYE,OAAO,EAAE;QACxB,MAAM,IAAIR,MACR,CAAC,8BAA8B,EAAEL,kBAAkB,EAAE,EAAEW,YAAYG,KAAK,CAACC,OAAO,CAAC,CAAC,EAClF;IACJ,CAAC;IAED,OAAOJ,YAAYK,IAAI;AACzB;AAEO,MAAM7B,uBAAuB,CAACwB,cAAqC;IACxE,IAAIA,YAAYjB,OAAO,EAAE;QACvB,OAAOiB,YAAYjB,OAAO;IAC5B,CAAC;IAED,IAAIiB,YAAYf,QAAQ,EAAE;QACxB,MAAMA,WAAWe,YAAYf,QAAQ,CAACqB,GAAG,CAASvB,CAAAA,UAAWA,QAAQG,IAAI;QAEzE,IAAID,SAASsB,MAAM,KAAK,GAAG;YACzB,OAAOtB,QAAQ,CAAC,EAAE;QACpB,CAAC;QAED,OAAO,CAAC,CAAC,EAAEA,SAASuB,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;AACT;AAEA,MAAMjB,gBAAgB,OAAOkB,OAAmC;IAC9D,IAAI;QACF,MAAMC,QAAe,MAAMC,IAAAA,cAAI,EAACF;QAChC,OAAOC,MAAME,MAAM;IACrB,EAAE,UAAM;QACN,OAAO,KAAK;IACd;AACF"}
1
+ {"version":3,"sources":["../../../../../packages/license-cop/src/lib/package-json.ts"],"sourcesContent":["import { Stats } from \"fs\";\nimport { readFile, stat } from \"fs/promises\";\nimport { z } from \"zod\";\nimport { json5Parse } from \"./config/parsers/json5\";\nimport logger from \"./logger\";\n\nconst packageJsonValidator = z.object({\n name: z.string(),\n version: z.string(),\n license: z.string().optional(),\n licenses: z\n .object({\n type: z.string(),\n url: z.string().optional()\n })\n .array()\n .optional()\n});\n\ntype PackageJson = z.infer<typeof packageJsonValidator>;\n\nexport const readPackageJson = async (pathToPackageJson: string): Promise<PackageJson> => {\n const doesPackageJsonExist = await doesFileExist(pathToPackageJson);\n if (!doesPackageJsonExist) {\n logger.verbose(`Cannot find the package.json: '${pathToPackageJson}'`);\n throw new Error(`Cannot find the file: '${pathToPackageJson}'`);\n }\n\n const packageJsonAsString: string = await readFile(pathToPackageJson, { encoding: \"utf8\" });\n\n const parsedFile = json5Parse<unknown>(packageJsonAsString);\n\n const packageJson = packageJsonValidator.safeParse(parsedFile);\n\n if (!packageJson.success) {\n throw new Error(\n `Unable to parse package.json: ${pathToPackageJson}: ${packageJson.error.message}`\n );\n }\n\n return packageJson.data;\n};\n\nexport const getLicenseExpression = (packageJson: PackageJson): string => {\n if (packageJson.license) {\n return packageJson.license;\n }\n\n if (packageJson.licenses) {\n const licenses = packageJson.licenses.map<string>(license => license.type);\n\n if (licenses.length === 1) {\n return licenses[0];\n }\n\n return `(${licenses.join(\" AND \")})`;\n }\n\n return \"UNLICENSED\";\n};\n\nconst doesFileExist = async (path: string): Promise<boolean> => {\n try {\n const stats: Stats = await stat(path);\n return stats.isFile();\n } catch {\n return false;\n }\n};\n"],"names":["getLicenseExpression","readPackageJson","packageJsonValidator","z","object","name","string","version","license","optional","licenses","type","url","array","pathToPackageJson","doesPackageJsonExist","doesFileExist","logger","verbose","Error","packageJsonAsString","readFile","encoding","parsedFile","json5Parse","packageJson","safeParse","success","error","message","data","map","length","join","path","stats","stat","isFile"],"mappings":";;;;;;;;IA2CaA,oBAAoB;eAApBA;;IAtBAC,eAAe;eAAfA;;;0BApBkB;qBACb;uBACS;wBACR;AAEnB,MAAMC,uBAAuBC,MAAC,CAACC,MAAM,CAAC;IACpCC,MAAMF,MAAC,CAACG,MAAM;IACdC,SAASJ,MAAC,CAACG,MAAM;IACjBE,SAASL,MAAC,CAACG,MAAM,GAAGG,QAAQ;IAC5BC,UAAUP,MAAC,CACRC,MAAM,CAAC;QACNO,MAAMR,MAAC,CAACG,MAAM;QACdM,KAAKT,MAAC,CAACG,MAAM,GAAGG,QAAQ;IAC1B,GACCI,KAAK,GACLJ,QAAQ;AACb;AAIO,MAAMR,kBAAkB,OAAOa;IACpC,MAAMC,uBAAuB,MAAMC,cAAcF;IACjD,IAAI,CAACC,sBAAsB;QACzBE,eAAM,CAACC,OAAO,CAAC,CAAC,+BAA+B,EAAEJ,kBAAkB,CAAC,CAAC;QACrE,MAAM,IAAIK,MAAM,CAAC,uBAAuB,EAAEL,kBAAkB,CAAC,CAAC;IAChE;IAEA,MAAMM,sBAA8B,MAAMC,IAAAA,kBAAQ,EAACP,mBAAmB;QAAEQ,UAAU;IAAO;IAEzF,MAAMC,aAAaC,IAAAA,iBAAU,EAAUJ;IAEvC,MAAMK,cAAcvB,qBAAqBwB,SAAS,CAACH;IAEnD,IAAI,CAACE,YAAYE,OAAO,EAAE;QACxB,MAAM,IAAIR,MACR,CAAC,8BAA8B,EAAEL,kBAAkB,EAAE,EAAEW,YAAYG,KAAK,CAACC,OAAO,CAAC,CAAC;IAEtF;IAEA,OAAOJ,YAAYK,IAAI;AACzB;AAEO,MAAM9B,uBAAuB,CAACyB;IACnC,IAAIA,YAAYjB,OAAO,EAAE;QACvB,OAAOiB,YAAYjB,OAAO;IAC5B;IAEA,IAAIiB,YAAYf,QAAQ,EAAE;QACxB,MAAMA,WAAWe,YAAYf,QAAQ,CAACqB,GAAG,CAASvB,CAAAA,UAAWA,QAAQG,IAAI;QAEzE,IAAID,SAASsB,MAAM,KAAK,GAAG;YACzB,OAAOtB,QAAQ,CAAC,EAAE;QACpB;QAEA,OAAO,CAAC,CAAC,EAAEA,SAASuB,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC;IAEA,OAAO;AACT;AAEA,MAAMjB,gBAAgB,OAAOkB;IAC3B,IAAI;QACF,MAAMC,QAAe,MAAMC,IAAAA,cAAI,EAACF;QAChC,OAAOC,MAAME,MAAM;IACrB,EAAE,UAAM;QACN,OAAO;IACT;AACF"}
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "isAllowedPackage", {
3
3
  enumerable: true,
4
- get: ()=>isAllowedPackage
4
+ get: function() {
5
+ return isAllowedPackage;
6
+ }
5
7
  });
6
- const _compareVersions = require("compare-versions");
8
+ const _compareversions = require("compare-versions");
7
9
  const isAllowedPackage = (packageName, packageVersion, allowedPackages)=>{
8
10
  for (const allowedPackage of allowedPackages){
9
11
  if (allowedPackage === packageName) {
@@ -11,7 +13,7 @@ const isAllowedPackage = (packageName, packageVersion, allowedPackages)=>{
11
13
  }
12
14
  if (allowedPackage.startsWith(packageName + "@")) {
13
15
  const allowedPackageVersion = allowedPackage.substring(packageName.length + 1);
14
- if ((0, _compareVersions.satisfies)(packageVersion, allowedPackageVersion)) {
16
+ if ((0, _compareversions.satisfies)(packageVersion, allowedPackageVersion)) {
15
17
  return true;
16
18
  }
17
19
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/license-cop/src/lib/package-rules.ts"],"sourcesContent":["import { satisfies } from \"compare-versions\";\n\nexport const isAllowedPackage = (\n packageName: string,\n packageVersion: string,\n allowedPackages: string[]\n) => {\n for (const allowedPackage of allowedPackages) {\n if (allowedPackage === packageName) {\n return true;\n }\n\n if (allowedPackage.startsWith(packageName + \"@\")) {\n const allowedPackageVersion = allowedPackage.substring(packageName.length + 1);\n\n if (satisfies(packageVersion, allowedPackageVersion)) {\n return true;\n }\n }\n }\n\n return false;\n};\n"],"names":["isAllowedPackage","packageName","packageVersion","allowedPackages","allowedPackage","startsWith","allowedPackageVersion","substring","length","satisfies"],"mappings":";+BAEaA;;aAAAA;;iCAFa;AAEnB,MAAMA,mBAAmB,CAC9BC,aACAC,gBACAC,kBACG;IACH,KAAK,MAAMC,kBAAkBD,gBAAiB;QAC5C,IAAIC,mBAAmBH,aAAa;YAClC,OAAO,IAAI;QACb,CAAC;QAED,IAAIG,eAAeC,UAAU,CAACJ,cAAc,MAAM;YAChD,MAAMK,wBAAwBF,eAAeG,SAAS,CAACN,YAAYO,MAAM,GAAG;YAE5E,IAAIC,IAAAA,0BAAS,EAACP,gBAAgBI,wBAAwB;gBACpD,OAAO,IAAI;YACb,CAAC;QACH,CAAC;IACH;IAEA,OAAO,KAAK;AACd"}
1
+ {"version":3,"sources":["../../../../../packages/license-cop/src/lib/package-rules.ts"],"sourcesContent":["import { satisfies } from \"compare-versions\";\n\nexport const isAllowedPackage = (\n packageName: string,\n packageVersion: string,\n allowedPackages: string[]\n) => {\n for (const allowedPackage of allowedPackages) {\n if (allowedPackage === packageName) {\n return true;\n }\n\n if (allowedPackage.startsWith(packageName + \"@\")) {\n const allowedPackageVersion = allowedPackage.substring(packageName.length + 1);\n\n if (satisfies(packageVersion, allowedPackageVersion)) {\n return true;\n }\n }\n }\n\n return false;\n};\n"],"names":["isAllowedPackage","packageName","packageVersion","allowedPackages","allowedPackage","startsWith","allowedPackageVersion","substring","length","satisfies"],"mappings":";+BAEaA;;;eAAAA;;;iCAFa;AAEnB,MAAMA,mBAAmB,CAC9BC,aACAC,gBACAC;IAEA,KAAK,MAAMC,kBAAkBD,gBAAiB;QAC5C,IAAIC,mBAAmBH,aAAa;YAClC,OAAO;QACT;QAEA,IAAIG,eAAeC,UAAU,CAACJ,cAAc,MAAM;YAChD,MAAMK,wBAAwBF,eAAeG,SAAS,CAACN,YAAYO,MAAM,GAAG;YAE5E,IAAIC,IAAAA,0BAAS,EAACP,gBAAgBI,wBAAwB;gBACpD,OAAO;YACT;QACF;IACF;IAEA,OAAO;AACT"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "calculateIssues", {
3
3
  enumerable: true,
4
- get: ()=>calculateIssues
4
+ get: function() {
5
+ return calculateIssues;
6
+ }
5
7
  });
6
8
  const calculateIssues = (license, allowedLicenses)=>{
7
9
  const issues = [];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/license-cop/src/lib/spdx/calculate-issues.ts"],"sourcesContent":["import { SpdxExpression } from \"./types/spdx-expression\";\n\nexport const calculateIssues = (license: SpdxExpression, allowedLicenses: string[]): string[] => {\n const issues: string[] = [];\n\n const parseNode = (node: SpdxExpression): void => {\n switch (node.type) {\n case \"identifier\": {\n if (!allowedLicenses.includes(node.value)) {\n issues.push(node.value);\n }\n return;\n }\n\n case \"AND\":\n case \"OR\": {\n parseNode(node.expressions[0]);\n parseNode(node.expressions[1]);\n return;\n }\n\n case \"WITH\": {\n if (\n // TODO: Verify that all exceptions make licenses 'weaker'\n !allowedLicenses.includes(node.expressions[0]) ||\n !allowedLicenses.includes(`${node.expressions[0]} WITH ${node.expressions[1]}`)\n ) {\n issues.push(`${node.expressions[0]} WITH ${node.expressions[1]}`);\n }\n return;\n }\n\n default: {\n const _exhaustiveCheck: never = node;\n throw new Error(`Unhandled license expression type: ${_exhaustiveCheck}`);\n }\n }\n };\n\n parseNode(license);\n\n return issues;\n};\n"],"names":["calculateIssues","license","allowedLicenses","issues","parseNode","node","type","includes","value","push","expressions","_exhaustiveCheck","Error"],"mappings":";+BAEaA;;aAAAA;;AAAN,MAAMA,kBAAkB,CAACC,SAAyBC,kBAAwC;IAC/F,MAAMC,SAAmB,EAAE;IAE3B,MAAMC,YAAY,CAACC,OAA+B;QAChD,OAAQA,KAAKC,IAAI;YACf,KAAK;gBAAc;oBACjB,IAAI,CAACJ,gBAAgBK,QAAQ,CAACF,KAAKG,KAAK,GAAG;wBACzCL,OAAOM,IAAI,CAACJ,KAAKG,KAAK;oBACxB,CAAC;oBACD;gBACF;YAEA,KAAK;YACL,KAAK;gBAAM;oBACTJ,UAAUC,KAAKK,WAAW,CAAC,EAAE;oBAC7BN,UAAUC,KAAKK,WAAW,CAAC,EAAE;oBAC7B;gBACF;YAEA,KAAK;gBAAQ;oBACX,IACE,0DAA0D;oBAC1D,CAACR,gBAAgBK,QAAQ,CAACF,KAAKK,WAAW,CAAC,EAAE,KAC7C,CAACR,gBAAgBK,QAAQ,CAAC,CAAC,EAAEF,KAAKK,WAAW,CAAC,EAAE,CAAC,MAAM,EAAEL,KAAKK,WAAW,CAAC,EAAE,CAAC,CAAC,GAC9E;wBACAP,OAAOM,IAAI,CAAC,CAAC,EAAEJ,KAAKK,WAAW,CAAC,EAAE,CAAC,MAAM,EAAEL,KAAKK,WAAW,CAAC,EAAE,CAAC,CAAC;oBAClE,CAAC;oBACD;gBACF;YAEA;gBAAS;oBACP,MAAMC,mBAA0BN;oBAChC,MAAM,IAAIO,MAAM,CAAC,mCAAmC,EAAED,iBAAiB,CAAC,EAAE;gBAC5E;QACF;IACF;IAEAP,UAAUH;IAEV,OAAOE;AACT"}
1
+ {"version":3,"sources":["../../../../../../packages/license-cop/src/lib/spdx/calculate-issues.ts"],"sourcesContent":["import { SpdxExpression } from \"./types/spdx-expression\";\n\nexport const calculateIssues = (license: SpdxExpression, allowedLicenses: string[]): string[] => {\n const issues: string[] = [];\n\n const parseNode = (node: SpdxExpression): void => {\n switch (node.type) {\n case \"identifier\": {\n if (!allowedLicenses.includes(node.value)) {\n issues.push(node.value);\n }\n return;\n }\n\n case \"AND\":\n case \"OR\": {\n parseNode(node.expressions[0]);\n parseNode(node.expressions[1]);\n return;\n }\n\n case \"WITH\": {\n if (\n // TODO: Verify that all exceptions make licenses 'weaker'\n !allowedLicenses.includes(node.expressions[0]) ||\n !allowedLicenses.includes(`${node.expressions[0]} WITH ${node.expressions[1]}`)\n ) {\n issues.push(`${node.expressions[0]} WITH ${node.expressions[1]}`);\n }\n return;\n }\n\n default: {\n const _exhaustiveCheck: never = node;\n throw new Error(`Unhandled license expression type: ${_exhaustiveCheck}`);\n }\n }\n };\n\n parseNode(license);\n\n return issues;\n};\n"],"names":["calculateIssues","license","allowedLicenses","issues","parseNode","node","type","includes","value","push","expressions","_exhaustiveCheck","Error"],"mappings":";+BAEaA;;;eAAAA;;;AAAN,MAAMA,kBAAkB,CAACC,SAAyBC;IACvD,MAAMC,SAAmB,EAAE;IAE3B,MAAMC,YAAY,CAACC;QACjB,OAAQA,KAAKC,IAAI;YACf,KAAK;gBAAc;oBACjB,IAAI,CAACJ,gBAAgBK,QAAQ,CAACF,KAAKG,KAAK,GAAG;wBACzCL,OAAOM,IAAI,CAACJ,KAAKG,KAAK;oBACxB;oBACA;gBACF;YAEA,KAAK;YACL,KAAK;gBAAM;oBACTJ,UAAUC,KAAKK,WAAW,CAAC,EAAE;oBAC7BN,UAAUC,KAAKK,WAAW,CAAC,EAAE;oBAC7B;gBACF;YAEA,KAAK;gBAAQ;oBACX,IACE,0DAA0D;oBAC1D,CAACR,gBAAgBK,QAAQ,CAACF,KAAKK,WAAW,CAAC,EAAE,KAC7C,CAACR,gBAAgBK,QAAQ,CAAC,CAAC,EAAEF,KAAKK,WAAW,CAAC,EAAE,CAAC,MAAM,EAAEL,KAAKK,WAAW,CAAC,EAAE,CAAC,CAAC,GAC9E;wBACAP,OAAOM,IAAI,CAAC,CAAC,EAAEJ,KAAKK,WAAW,CAAC,EAAE,CAAC,MAAM,EAAEL,KAAKK,WAAW,CAAC,EAAE,CAAC,CAAC;oBAClE;oBACA;gBACF;YAEA;gBAAS;oBACP,MAAMC,mBAA0BN;oBAChC,MAAM,IAAIO,MAAM,CAAC,mCAAmC,EAAED,iBAAiB,CAAC;gBAC1E;QACF;IACF;IAEAP,UAAUH;IAEV,OAAOE;AACT"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "getTokens", {
3
3
  enumerable: true,
4
- get: ()=>getTokens
4
+ get: function() {
5
+ return getTokens;
6
+ }
5
7
  });
6
8
  const _token = require("./types/token");
7
9
  const getTokens = (input)=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/license-cop/src/lib/spdx/get-tokens.ts"],"sourcesContent":["import { isOperator, isParenthesis, Token } from \"./types/token\";\n\nexport const getTokens = (input: string): Token[] => {\n const tokens: Token[] = [];\n let currentToken = \"\";\n\n // Pushes the current token to the tokens array and resets the current token\n const pushToken = () => {\n if (currentToken.length === 0) {\n return;\n }\n\n if (currentToken === \"WITH\") {\n tokens.push({\n type: \"with\"\n });\n } else if (isOperator(currentToken)) {\n tokens.push({\n type: \"operator\",\n value: currentToken\n });\n } else {\n tokens.push({\n type: \"identifier\",\n value: currentToken\n });\n }\n\n currentToken = \"\";\n };\n\n for (let i = 0; i < input.length; i++) {\n const currentChar = input[i];\n\n if (isParenthesis(currentChar)) {\n pushToken();\n\n tokens.push({\n type: \"parenthesis\",\n value: currentChar\n });\n\n continue;\n }\n\n if (currentChar === \" \") {\n pushToken();\n continue;\n }\n\n currentToken += currentChar;\n }\n\n pushToken();\n return tokens;\n};\n"],"names":["getTokens","input","tokens","currentToken","pushToken","length","push","type","isOperator","value","i","currentChar","isParenthesis"],"mappings":";+BAEaA;;aAAAA;;uBAFoC;AAE1C,MAAMA,YAAY,CAACC,QAA2B;IACnD,MAAMC,SAAkB,EAAE;IAC1B,IAAIC,eAAe;IAEnB,4EAA4E;IAC5E,MAAMC,YAAY,IAAM;QACtB,IAAID,aAAaE,MAAM,KAAK,GAAG;YAC7B;QACF,CAAC;QAED,IAAIF,iBAAiB,QAAQ;YAC3BD,OAAOI,IAAI,CAAC;gBACVC,MAAM;YACR;QACF,OAAO,IAAIC,IAAAA,iBAAU,EAACL,eAAe;YACnCD,OAAOI,IAAI,CAAC;gBACVC,MAAM;gBACNE,OAAON;YACT;QACF,OAAO;YACLD,OAAOI,IAAI,CAAC;gBACVC,MAAM;gBACNE,OAAON;YACT;QACF,CAAC;QAEDA,eAAe;IACjB;IAEA,IAAK,IAAIO,IAAI,GAAGA,IAAIT,MAAMI,MAAM,EAAEK,IAAK;QACrC,MAAMC,cAAcV,KAAK,CAACS,EAAE;QAE5B,IAAIE,IAAAA,oBAAa,EAACD,cAAc;YAC9BP;YAEAF,OAAOI,IAAI,CAAC;gBACVC,MAAM;gBACNE,OAAOE;YACT;YAEA,QAAS;QACX,CAAC;QAED,IAAIA,gBAAgB,KAAK;YACvBP;YACA,QAAS;QACX,CAAC;QAEDD,gBAAgBQ;IAClB;IAEAP;IACA,OAAOF;AACT"}
1
+ {"version":3,"sources":["../../../../../../packages/license-cop/src/lib/spdx/get-tokens.ts"],"sourcesContent":["import { isOperator, isParenthesis, Token } from \"./types/token\";\n\nexport const getTokens = (input: string): Token[] => {\n const tokens: Token[] = [];\n let currentToken = \"\";\n\n // Pushes the current token to the tokens array and resets the current token\n const pushToken = () => {\n if (currentToken.length === 0) {\n return;\n }\n\n if (currentToken === \"WITH\") {\n tokens.push({\n type: \"with\"\n });\n } else if (isOperator(currentToken)) {\n tokens.push({\n type: \"operator\",\n value: currentToken\n });\n } else {\n tokens.push({\n type: \"identifier\",\n value: currentToken\n });\n }\n\n currentToken = \"\";\n };\n\n for (let i = 0; i < input.length; i++) {\n const currentChar = input[i];\n\n if (isParenthesis(currentChar)) {\n pushToken();\n\n tokens.push({\n type: \"parenthesis\",\n value: currentChar\n });\n\n continue;\n }\n\n if (currentChar === \" \") {\n pushToken();\n continue;\n }\n\n currentToken += currentChar;\n }\n\n pushToken();\n return tokens;\n};\n"],"names":["getTokens","input","tokens","currentToken","pushToken","length","push","type","isOperator","value","i","currentChar","isParenthesis"],"mappings":";+BAEaA;;;eAAAA;;;uBAFoC;AAE1C,MAAMA,YAAY,CAACC;IACxB,MAAMC,SAAkB,EAAE;IAC1B,IAAIC,eAAe;IAEnB,4EAA4E;IAC5E,MAAMC,YAAY;QAChB,IAAID,aAAaE,MAAM,KAAK,GAAG;YAC7B;QACF;QAEA,IAAIF,iBAAiB,QAAQ;YAC3BD,OAAOI,IAAI,CAAC;gBACVC,MAAM;YACR;QACF,OAAO,IAAIC,IAAAA,iBAAU,EAACL,eAAe;YACnCD,OAAOI,IAAI,CAAC;gBACVC,MAAM;gBACNE,OAAON;YACT;QACF,OAAO;YACLD,OAAOI,IAAI,CAAC;gBACVC,MAAM;gBACNE,OAAON;YACT;QACF;QAEAA,eAAe;IACjB;IAEA,IAAK,IAAIO,IAAI,GAAGA,IAAIT,MAAMI,MAAM,EAAEK,IAAK;QACrC,MAAMC,cAAcV,KAAK,CAACS,EAAE;QAE5B,IAAIE,IAAAA,oBAAa,EAACD,cAAc;YAC9BP;YAEAF,OAAOI,IAAI,CAAC;gBACVC,MAAM;gBACNE,OAAOE;YACT;YAEA;QACF;QAEA,IAAIA,gBAAgB,KAAK;YACvBP;YACA;QACF;QAEAD,gBAAgBQ;IAClB;IAEAP;IACA,OAAOF;AACT"}
@@ -1,18 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "parseLicenseExpression", {
3
3
  enumerable: true,
4
- get: ()=>parseLicenseExpression
4
+ get: function() {
5
+ return parseLicenseExpression;
6
+ }
5
7
  });
6
- const _getTokens = require("./get-tokens");
7
- const _parseTokens = require("./parse-tokens");
8
+ const _gettokens = require("./get-tokens");
9
+ const _parsetokens = require("./parse-tokens");
8
10
  const parseLicenseExpression = (input)=>{
9
11
  if (input === "UNLICENSED") {
10
12
  return {
11
13
  type: "unlicensed"
12
14
  };
13
15
  }
14
- const tokens = (0, _getTokens.getTokens)(input);
15
- return (0, _parseTokens.parseTokens)(tokens, input);
16
+ const tokens = (0, _gettokens.getTokens)(input);
17
+ return (0, _parsetokens.parseTokens)(tokens, input);
16
18
  };
17
19
 
18
20
  //# sourceMappingURL=parse-license-expression.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/license-cop/src/lib/spdx/parse-license-expression.ts"],"sourcesContent":["import { getTokens } from \"./get-tokens\";\nimport { parseTokens } from \"./parse-tokens\";\nimport { SpdxExpression, Unlicensed } from \"./types/spdx-expression\";\n\nexport const parseLicenseExpression = (input: string): SpdxExpression | Unlicensed => {\n if (input === \"UNLICENSED\") {\n return {\n type: \"unlicensed\"\n };\n }\n\n const tokens = getTokens(input);\n return parseTokens(tokens, input);\n};\n"],"names":["parseLicenseExpression","input","type","tokens","getTokens","parseTokens"],"mappings":";+BAIaA;;aAAAA;;2BAJa;6BACE;AAGrB,MAAMA,yBAAyB,CAACC,QAA+C;IACpF,IAAIA,UAAU,cAAc;QAC1B,OAAO;YACLC,MAAM;QACR;IACF,CAAC;IAED,MAAMC,SAASC,IAAAA,oBAAS,EAACH;IACzB,OAAOI,IAAAA,wBAAW,EAACF,QAAQF;AAC7B"}
1
+ {"version":3,"sources":["../../../../../../packages/license-cop/src/lib/spdx/parse-license-expression.ts"],"sourcesContent":["import { getTokens } from \"./get-tokens\";\nimport { parseTokens } from \"./parse-tokens\";\nimport { SpdxExpression, Unlicensed } from \"./types/spdx-expression\";\n\nexport const parseLicenseExpression = (input: string): SpdxExpression | Unlicensed => {\n if (input === \"UNLICENSED\") {\n return {\n type: \"unlicensed\"\n };\n }\n\n const tokens = getTokens(input);\n return parseTokens(tokens, input);\n};\n"],"names":["parseLicenseExpression","input","type","tokens","getTokens","parseTokens"],"mappings":";+BAIaA;;;eAAAA;;;2BAJa;6BACE;AAGrB,MAAMA,yBAAyB,CAACC;IACrC,IAAIA,UAAU,cAAc;QAC1B,OAAO;YACLC,MAAM;QACR;IACF;IAEA,MAAMC,SAASC,IAAAA,oBAAS,EAACH;IACzB,OAAOI,IAAAA,wBAAW,EAACF,QAAQF;AAC7B"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "parseTokens", {
3
3
  enumerable: true,
4
- get: ()=>parseTokens
4
+ get: function() {
5
+ return parseTokens;
6
+ }
5
7
  });
6
8
  const parseTokens = (tokens, originalInput)=>{
7
9
  let index = 0;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/license-cop/src/lib/spdx/parse-tokens.ts"],"sourcesContent":["import { Identifier, SpdxExpression } from \"./types/spdx-expression\";\nimport { Token, Parenthesis, Operator } from \"./types/token\";\n\nexport const parseTokens = (tokens: Token[], originalInput: string): SpdxExpression => {\n let index = 0;\n\n const throwNotValid = () => {\n console.trace();\n throw new Error(`'${originalInput}' is not a valid SPDX expression`);\n };\n\n const hasMore = (): boolean => index < tokens.length;\n\n const getCurrentToken = (): Token | null => (hasMore() ? tokens[index] : null);\n\n const moveToNextToken = () => {\n // istanbul ignore next\n if (!hasMore()) {\n throwNotValid();\n }\n\n index++;\n };\n\n const tryParseParenthesis = (operator: Parenthesis): boolean => {\n const currentToken = getCurrentToken();\n\n if (currentToken && currentToken.type === \"parenthesis\" && operator === currentToken.value) {\n moveToNextToken();\n return true;\n }\n\n return false;\n };\n\n const tryParseWithToken = (): boolean => {\n const currentToken = getCurrentToken();\n\n if (currentToken && currentToken.type === \"with\") {\n moveToNextToken();\n return true;\n }\n\n return false;\n };\n\n const tryParseOperator = (operator: Operator): Operator | undefined => {\n const currentToken = getCurrentToken();\n\n if (currentToken && currentToken.type === \"operator\" && operator === currentToken.value) {\n moveToNextToken();\n return currentToken.value;\n }\n\n return undefined;\n };\n\n const tryParseLicense = (): Identifier | undefined => {\n const currentToken = getCurrentToken();\n if (currentToken && currentToken.type === \"identifier\") {\n moveToNextToken();\n\n return {\n type: \"identifier\",\n value: currentToken.value\n };\n }\n\n return undefined;\n };\n\n const tryParseParenthesizedExpression = () => {\n const startsWithParenthesis = tryParseParenthesis(\"(\");\n if (!startsWithParenthesis) {\n return undefined;\n }\n\n const innerExpression = tryParseExpression();\n\n const endsWithParenthesis = tryParseParenthesis(\")\");\n if (!endsWithParenthesis) {\n throwNotValid();\n }\n\n return innerExpression;\n };\n\n const binaryOperationFactory = (\n operator: Exclude<Operator, \"WITH\">,\n tryNextParser: () => SpdxExpression | undefined\n ) => {\n const tryParseBinaryOperation = (): SpdxExpression | undefined => {\n const left = tryNextParser();\n\n if (!left) {\n return undefined;\n }\n\n if (!tryParseOperator(operator)) {\n return left;\n }\n\n const right = tryParseBinaryOperation();\n if (!right) {\n return throwNotValid();\n }\n\n return {\n type: operator,\n expressions: [left, right]\n };\n };\n\n return tryParseBinaryOperation;\n };\n\n const tryParseWith = (): SpdxExpression | undefined => {\n const left = tryParseLicense();\n\n if (!left) {\n return undefined;\n }\n\n if (!tryParseWithToken()) {\n return left;\n }\n\n const right = tryParseLicense();\n if (!right) {\n return throwNotValid();\n }\n\n return {\n type: \"WITH\",\n expressions: [left.value, right.value]\n };\n };\n\n const parseAnd = binaryOperationFactory(\n \"AND\",\n () => tryParseParenthesizedExpression() || tryParseWith()\n );\n const tryParseExpression = binaryOperationFactory(\"OR\", parseAnd);\n\n const node = tryParseExpression();\n if (!node || hasMore()) {\n return throwNotValid();\n }\n\n return node;\n};\n"],"names":["parseTokens","tokens","originalInput","index","throwNotValid","console","trace","Error","hasMore","length","getCurrentToken","moveToNextToken","tryParseParenthesis","operator","currentToken","type","value","tryParseWithToken","tryParseOperator","undefined","tryParseLicense","tryParseParenthesizedExpression","startsWithParenthesis","innerExpression","tryParseExpression","endsWithParenthesis","binaryOperationFactory","tryNextParser","tryParseBinaryOperation","left","right","expressions","tryParseWith","parseAnd","node"],"mappings":";+BAGaA;;aAAAA;;AAAN,MAAMA,cAAc,CAACC,QAAiBC,gBAA0C;IACrF,IAAIC,QAAQ;IAEZ,MAAMC,gBAAgB,IAAM;QAC1BC,QAAQC,KAAK;QACb,MAAM,IAAIC,MAAM,CAAC,CAAC,EAAEL,cAAc,gCAAgC,CAAC,EAAE;IACvE;IAEA,MAAMM,UAAU,IAAeL,QAAQF,OAAOQ,MAAM;IAEpD,MAAMC,kBAAkB,IAAqBF,YAAYP,MAAM,CAACE,MAAM,GAAG,IAAI;IAE7E,MAAMQ,kBAAkB,IAAM;QAC5B,uBAAuB;QACvB,IAAI,CAACH,WAAW;YACdJ;QACF,CAAC;QAEDD;IACF;IAEA,MAAMS,sBAAsB,CAACC,WAAmC;QAC9D,MAAMC,eAAeJ;QAErB,IAAII,gBAAgBA,aAAaC,IAAI,KAAK,iBAAiBF,aAAaC,aAAaE,KAAK,EAAE;YAC1FL;YACA,OAAO,IAAI;QACb,CAAC;QAED,OAAO,KAAK;IACd;IAEA,MAAMM,oBAAoB,IAAe;QACvC,MAAMH,eAAeJ;QAErB,IAAII,gBAAgBA,aAAaC,IAAI,KAAK,QAAQ;YAChDJ;YACA,OAAO,IAAI;QACb,CAAC;QAED,OAAO,KAAK;IACd;IAEA,MAAMO,mBAAmB,CAACL,WAA6C;QACrE,MAAMC,eAAeJ;QAErB,IAAII,gBAAgBA,aAAaC,IAAI,KAAK,cAAcF,aAAaC,aAAaE,KAAK,EAAE;YACvFL;YACA,OAAOG,aAAaE,KAAK;QAC3B,CAAC;QAED,OAAOG;IACT;IAEA,MAAMC,kBAAkB,IAA8B;QACpD,MAAMN,eAAeJ;QACrB,IAAII,gBAAgBA,aAAaC,IAAI,KAAK,cAAc;YACtDJ;YAEA,OAAO;gBACLI,MAAM;gBACNC,OAAOF,aAAaE,KAAK;YAC3B;QACF,CAAC;QAED,OAAOG;IACT;IAEA,MAAME,kCAAkC,IAAM;QAC5C,MAAMC,wBAAwBV,oBAAoB;QAClD,IAAI,CAACU,uBAAuB;YAC1B,OAAOH;QACT,CAAC;QAED,MAAMI,kBAAkBC;QAExB,MAAMC,sBAAsBb,oBAAoB;QAChD,IAAI,CAACa,qBAAqB;YACxBrB;QACF,CAAC;QAED,OAAOmB;IACT;IAEA,MAAMG,yBAAyB,CAC7Bb,UACAc,gBACG;QACH,MAAMC,0BAA0B,IAAkC;YAChE,MAAMC,OAAOF;YAEb,IAAI,CAACE,MAAM;gBACT,OAAOV;YACT,CAAC;YAED,IAAI,CAACD,iBAAiBL,WAAW;gBAC/B,OAAOgB;YACT,CAAC;YAED,MAAMC,QAAQF;YACd,IAAI,CAACE,OAAO;gBACV,OAAO1B;YACT,CAAC;YAED,OAAO;gBACLW,MAAMF;gBACNkB,aAAa;oBAACF;oBAAMC;iBAAM;YAC5B;QACF;QAEA,OAAOF;IACT;IAEA,MAAMI,eAAe,IAAkC;QACrD,MAAMH,OAAOT;QAEb,IAAI,CAACS,MAAM;YACT,OAAOV;QACT,CAAC;QAED,IAAI,CAACF,qBAAqB;YACxB,OAAOY;QACT,CAAC;QAED,MAAMC,QAAQV;QACd,IAAI,CAACU,OAAO;YACV,OAAO1B;QACT,CAAC;QAED,OAAO;YACLW,MAAM;YACNgB,aAAa;gBAACF,KAAKb,KAAK;gBAAEc,MAAMd,KAAK;aAAC;QACxC;IACF;IAEA,MAAMiB,WAAWP,uBACf,OACA,IAAML,qCAAqCW;IAE7C,MAAMR,qBAAqBE,uBAAuB,MAAMO;IAExD,MAAMC,OAAOV;IACb,IAAI,CAACU,QAAQ1B,WAAW;QACtB,OAAOJ;IACT,CAAC;IAED,OAAO8B;AACT"}
1
+ {"version":3,"sources":["../../../../../../packages/license-cop/src/lib/spdx/parse-tokens.ts"],"sourcesContent":["import { Identifier, SpdxExpression } from \"./types/spdx-expression\";\nimport { Operator, Parenthesis, Token } from \"./types/token\";\n\nexport const parseTokens = (tokens: Token[], originalInput: string): SpdxExpression => {\n let index = 0;\n\n const throwNotValid = () => {\n console.trace();\n throw new Error(`'${originalInput}' is not a valid SPDX expression`);\n };\n\n const hasMore = (): boolean => index < tokens.length;\n\n const getCurrentToken = (): Token | null => (hasMore() ? tokens[index] : null);\n\n const moveToNextToken = () => {\n // istanbul ignore next\n if (!hasMore()) {\n throwNotValid();\n }\n\n index++;\n };\n\n const tryParseParenthesis = (operator: Parenthesis): boolean => {\n const currentToken = getCurrentToken();\n\n if (currentToken && currentToken.type === \"parenthesis\" && operator === currentToken.value) {\n moveToNextToken();\n return true;\n }\n\n return false;\n };\n\n const tryParseWithToken = (): boolean => {\n const currentToken = getCurrentToken();\n\n if (currentToken && currentToken.type === \"with\") {\n moveToNextToken();\n return true;\n }\n\n return false;\n };\n\n const tryParseOperator = (operator: Operator): Operator | undefined => {\n const currentToken = getCurrentToken();\n\n if (currentToken && currentToken.type === \"operator\" && operator === currentToken.value) {\n moveToNextToken();\n return currentToken.value;\n }\n\n return undefined;\n };\n\n const tryParseLicense = (): Identifier | undefined => {\n const currentToken = getCurrentToken();\n if (currentToken && currentToken.type === \"identifier\") {\n moveToNextToken();\n\n return {\n type: \"identifier\",\n value: currentToken.value\n };\n }\n\n return undefined;\n };\n\n const tryParseParenthesizedExpression = () => {\n const startsWithParenthesis = tryParseParenthesis(\"(\");\n if (!startsWithParenthesis) {\n return undefined;\n }\n\n const innerExpression = tryParseExpression();\n\n const endsWithParenthesis = tryParseParenthesis(\")\");\n if (!endsWithParenthesis) {\n throwNotValid();\n }\n\n return innerExpression;\n };\n\n const binaryOperationFactory = (\n operator: Exclude<Operator, \"WITH\">,\n tryNextParser: () => SpdxExpression | undefined\n ) => {\n const tryParseBinaryOperation = (): SpdxExpression | undefined => {\n const left = tryNextParser();\n\n if (!left) {\n return undefined;\n }\n\n if (!tryParseOperator(operator)) {\n return left;\n }\n\n const right = tryParseBinaryOperation();\n if (!right) {\n return throwNotValid();\n }\n\n return {\n type: operator,\n expressions: [left, right]\n };\n };\n\n return tryParseBinaryOperation;\n };\n\n const tryParseWith = (): SpdxExpression | undefined => {\n const left = tryParseLicense();\n\n if (!left) {\n return undefined;\n }\n\n if (!tryParseWithToken()) {\n return left;\n }\n\n const right = tryParseLicense();\n if (!right) {\n return throwNotValid();\n }\n\n return {\n type: \"WITH\",\n expressions: [left.value, right.value]\n };\n };\n\n const parseAnd = binaryOperationFactory(\n \"AND\",\n () => tryParseParenthesizedExpression() || tryParseWith()\n );\n const tryParseExpression = binaryOperationFactory(\"OR\", parseAnd);\n\n const node = tryParseExpression();\n if (!node || hasMore()) {\n return throwNotValid();\n }\n\n return node;\n};\n"],"names":["parseTokens","tokens","originalInput","index","throwNotValid","console","trace","Error","hasMore","length","getCurrentToken","moveToNextToken","tryParseParenthesis","operator","currentToken","type","value","tryParseWithToken","tryParseOperator","undefined","tryParseLicense","tryParseParenthesizedExpression","startsWithParenthesis","innerExpression","tryParseExpression","endsWithParenthesis","binaryOperationFactory","tryNextParser","tryParseBinaryOperation","left","right","expressions","tryParseWith","parseAnd","node"],"mappings":";+BAGaA;;;eAAAA;;;AAAN,MAAMA,cAAc,CAACC,QAAiBC;IAC3C,IAAIC,QAAQ;IAEZ,MAAMC,gBAAgB;QACpBC,QAAQC,KAAK;QACb,MAAM,IAAIC,MAAM,CAAC,CAAC,EAAEL,cAAc,gCAAgC,CAAC;IACrE;IAEA,MAAMM,UAAU,IAAeL,QAAQF,OAAOQ,MAAM;IAEpD,MAAMC,kBAAkB,IAAqBF,YAAYP,MAAM,CAACE,MAAM,GAAG;IAEzE,MAAMQ,kBAAkB;QACtB,uBAAuB;QACvB,IAAI,CAACH,WAAW;YACdJ;QACF;QAEAD;IACF;IAEA,MAAMS,sBAAsB,CAACC;QAC3B,MAAMC,eAAeJ;QAErB,IAAII,gBAAgBA,aAAaC,IAAI,KAAK,iBAAiBF,aAAaC,aAAaE,KAAK,EAAE;YAC1FL;YACA,OAAO;QACT;QAEA,OAAO;IACT;IAEA,MAAMM,oBAAoB;QACxB,MAAMH,eAAeJ;QAErB,IAAII,gBAAgBA,aAAaC,IAAI,KAAK,QAAQ;YAChDJ;YACA,OAAO;QACT;QAEA,OAAO;IACT;IAEA,MAAMO,mBAAmB,CAACL;QACxB,MAAMC,eAAeJ;QAErB,IAAII,gBAAgBA,aAAaC,IAAI,KAAK,cAAcF,aAAaC,aAAaE,KAAK,EAAE;YACvFL;YACA,OAAOG,aAAaE,KAAK;QAC3B;QAEA,OAAOG;IACT;IAEA,MAAMC,kBAAkB;QACtB,MAAMN,eAAeJ;QACrB,IAAII,gBAAgBA,aAAaC,IAAI,KAAK,cAAc;YACtDJ;YAEA,OAAO;gBACLI,MAAM;gBACNC,OAAOF,aAAaE,KAAK;YAC3B;QACF;QAEA,OAAOG;IACT;IAEA,MAAME,kCAAkC;QACtC,MAAMC,wBAAwBV,oBAAoB;QAClD,IAAI,CAACU,uBAAuB;YAC1B,OAAOH;QACT;QAEA,MAAMI,kBAAkBC;QAExB,MAAMC,sBAAsBb,oBAAoB;QAChD,IAAI,CAACa,qBAAqB;YACxBrB;QACF;QAEA,OAAOmB;IACT;IAEA,MAAMG,yBAAyB,CAC7Bb,UACAc;QAEA,MAAMC,0BAA0B;YAC9B,MAAMC,OAAOF;YAEb,IAAI,CAACE,MAAM;gBACT,OAAOV;YACT;YAEA,IAAI,CAACD,iBAAiBL,WAAW;gBAC/B,OAAOgB;YACT;YAEA,MAAMC,QAAQF;YACd,IAAI,CAACE,OAAO;gBACV,OAAO1B;YACT;YAEA,OAAO;gBACLW,MAAMF;gBACNkB,aAAa;oBAACF;oBAAMC;iBAAM;YAC5B;QACF;QAEA,OAAOF;IACT;IAEA,MAAMI,eAAe;QACnB,MAAMH,OAAOT;QAEb,IAAI,CAACS,MAAM;YACT,OAAOV;QACT;QAEA,IAAI,CAACF,qBAAqB;YACxB,OAAOY;QACT;QAEA,MAAMC,QAAQV;QACd,IAAI,CAACU,OAAO;YACV,OAAO1B;QACT;QAEA,OAAO;YACLW,MAAM;YACNgB,aAAa;gBAACF,KAAKb,KAAK;gBAAEc,MAAMd,KAAK;aAAC;QACxC;IACF;IAEA,MAAMiB,WAAWP,uBACf,OACA,IAAML,qCAAqCW;IAE7C,MAAMR,qBAAqBE,uBAAuB,MAAMO;IAExD,MAAMC,OAAOV;IACb,IAAI,CAACU,QAAQ1B,WAAW;QACtB,OAAOJ;IACT;IAEA,OAAO8B;AACT"}
@@ -7,8 +7,12 @@ function _export(target, all) {
7
7
  });
8
8
  }
9
9
  _export(exports, {
10
- isOperator: ()=>isOperator,
11
- isParenthesis: ()=>isParenthesis
10
+ isOperator: function() {
11
+ return isOperator;
12
+ },
13
+ isParenthesis: function() {
14
+ return isParenthesis;
15
+ }
12
16
  });
13
17
  const operators = [
14
18
  "AND",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../packages/license-cop/src/lib/spdx/types/token.ts"],"sourcesContent":["// Operators\n\nconst operators = [\"AND\", \"OR\"] as const;\nexport const isOperator = (value: string): value is Operator =>\n operators.includes(value as Operator);\n\nexport type Operator = (typeof operators)[number];\nexport type OperatorToken = {\n type: \"operator\";\n value: Operator;\n};\n\n// With\n\nexport type WithToken = {\n type: \"with\";\n};\n\n// Identifiers\n\nexport type IdentifierToken = {\n type: \"identifier\";\n value: string;\n};\n\n// Parenthesis\n\nconst parenthesis = [\"(\", \")\"] as const;\nexport const isParenthesis = (value: string): value is Parenthesis =>\n parenthesis.includes(value as Parenthesis);\n\nexport type Parenthesis = (typeof parenthesis)[number];\nexport type ParenthesisToken = {\n type: \"parenthesis\";\n value: Parenthesis;\n};\n\nexport type Token = OperatorToken | WithToken | IdentifierToken | ParenthesisToken;\n"],"names":["isOperator","isParenthesis","operators","value","includes","parenthesis"],"mappings":"AAAA,YAAY;;;;;;;;;IAGCA,UAAU,MAAVA;IAyBAC,aAAa,MAAbA;;AA1Bb,MAAMC,YAAY;IAAC;IAAO;CAAK;AACxB,MAAMF,aAAa,CAACG,QACzBD,UAAUE,QAAQ,CAACD;AAqBrB,cAAc;AAEd,MAAME,cAAc;IAAC;IAAK;CAAI;AACvB,MAAMJ,gBAAgB,CAACE,QAC5BE,YAAYD,QAAQ,CAACD"}
1
+ {"version":3,"sources":["../../../../../../../packages/license-cop/src/lib/spdx/types/token.ts"],"sourcesContent":["// Operators\n\nconst operators = [\"AND\", \"OR\"] as const;\nexport const isOperator = (value: string): value is Operator =>\n operators.includes(value as Operator);\n\nexport type Operator = (typeof operators)[number];\nexport type OperatorToken = {\n type: \"operator\";\n value: Operator;\n};\n\n// With\n\nexport type WithToken = {\n type: \"with\";\n};\n\n// Identifiers\n\nexport type IdentifierToken = {\n type: \"identifier\";\n value: string;\n};\n\n// Parenthesis\n\nconst parenthesis = [\"(\", \")\"] as const;\nexport const isParenthesis = (value: string): value is Parenthesis =>\n parenthesis.includes(value as Parenthesis);\n\nexport type Parenthesis = (typeof parenthesis)[number];\nexport type ParenthesisToken = {\n type: \"parenthesis\";\n value: Parenthesis;\n};\n\nexport type Token = OperatorToken | WithToken | IdentifierToken | ParenthesisToken;\n"],"names":["isOperator","isParenthesis","operators","value","includes","parenthesis"],"mappings":"AAAA,YAAY;;;;;;;;;IAGCA,UAAU;eAAVA;;IAyBAC,aAAa;eAAbA;;;AA1Bb,MAAMC,YAAY;IAAC;IAAO;CAAK;AACxB,MAAMF,aAAa,CAACG,QACzBD,UAAUE,QAAQ,CAACD;AAqBrB,cAAc;AAEd,MAAME,cAAc;IAAC;IAAK;CAAI;AACvB,MAAMJ,gBAAgB,CAACE,QAC5BE,YAAYD,QAAQ,CAACD"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "joinStringArray", {
3
3
  enumerable: true,
4
- get: ()=>joinStringArray
4
+ get: function() {
5
+ return joinStringArray;
6
+ }
5
7
  });
6
8
  const joinStringArray = (array)=>{
7
9
  let result = "";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/license-cop/src/lib/utils/join-string-array.ts"],"sourcesContent":["export const joinStringArray = (array: string[]): string => {\n let result = \"\";\n\n for (let i = 0; i < array.length; i++) {\n result += array[i];\n\n const isPenultimateElement = i === array.length - 2;\n const isLastElement = i === array.length - 1;\n\n if (isPenultimateElement) {\n if (array.length === 2) {\n result += \" and \";\n } else {\n result += \", and \";\n }\n }\n\n if (!isLastElement && !isPenultimateElement) {\n result += \", \";\n }\n }\n\n return result;\n};\n"],"names":["joinStringArray","array","result","i","length","isPenultimateElement","isLastElement"],"mappings":";+BAAaA;;aAAAA;;AAAN,MAAMA,kBAAkB,CAACC,QAA4B;IAC1D,IAAIC,SAAS;IAEb,IAAK,IAAIC,IAAI,GAAGA,IAAIF,MAAMG,MAAM,EAAED,IAAK;QACrCD,UAAUD,KAAK,CAACE,EAAE;QAElB,MAAME,uBAAuBF,MAAMF,MAAMG,MAAM,GAAG;QAClD,MAAME,gBAAgBH,MAAMF,MAAMG,MAAM,GAAG;QAE3C,IAAIC,sBAAsB;YACxB,IAAIJ,MAAMG,MAAM,KAAK,GAAG;gBACtBF,UAAU;YACZ,OAAO;gBACLA,UAAU;YACZ,CAAC;QACH,CAAC;QAED,IAAI,CAACI,iBAAiB,CAACD,sBAAsB;YAC3CH,UAAU;QACZ,CAAC;IACH;IAEA,OAAOA;AACT"}
1
+ {"version":3,"sources":["../../../../../../packages/license-cop/src/lib/utils/join-string-array.ts"],"sourcesContent":["export const joinStringArray = (array: string[]): string => {\n let result = \"\";\n\n for (let i = 0; i < array.length; i++) {\n result += array[i];\n\n const isPenultimateElement = i === array.length - 2;\n const isLastElement = i === array.length - 1;\n\n if (isPenultimateElement) {\n if (array.length === 2) {\n result += \" and \";\n } else {\n result += \", and \";\n }\n }\n\n if (!isLastElement && !isPenultimateElement) {\n result += \", \";\n }\n }\n\n return result;\n};\n"],"names":["joinStringArray","array","result","i","length","isPenultimateElement","isLastElement"],"mappings":";+BAAaA;;;eAAAA;;;AAAN,MAAMA,kBAAkB,CAACC;IAC9B,IAAIC,SAAS;IAEb,IAAK,IAAIC,IAAI,GAAGA,IAAIF,MAAMG,MAAM,EAAED,IAAK;QACrCD,UAAUD,KAAK,CAACE,EAAE;QAElB,MAAME,uBAAuBF,MAAMF,MAAMG,MAAM,GAAG;QAClD,MAAME,gBAAgBH,MAAMF,MAAMG,MAAM,GAAG;QAE3C,IAAIC,sBAAsB;YACxB,IAAIJ,MAAMG,MAAM,KAAK,GAAG;gBACtBF,UAAU;YACZ,OAAO;gBACLA,UAAU;YACZ;QACF;QAEA,IAAI,CAACI,iBAAiB,CAACD,sBAAsB;YAC3CH,UAAU;QACZ;IACF;IAEA,OAAOA;AACT"}