scanoss 0.10.5 → 0.11.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 (24) hide show
  1. package/README.md +1 -1
  2. package/build/main/cli/bin/cli-bin.js +55 -54
  3. package/build/main/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +2 -2
  4. package/build/main/sdk/Dependencies/LocalDependency/LocalDependency.js +21 -19
  5. package/build/main/sdk/Dependencies/LocalDependency/LocalDependency.spec.d.ts +1 -0
  6. package/build/main/sdk/Dependencies/LocalDependency/LocalDependency.spec.js +33 -0
  7. package/build/main/sdk/Dependencies/LocalDependency/parsers/npmParser.js +19 -18
  8. package/build/main/sdk/Dependencies/LocalDependency/parsers/parser.spec.d.ts +1 -0
  9. package/build/main/sdk/Dependencies/LocalDependency/parsers/parser.spec.js +234 -0
  10. package/build/main/sdk/Dependencies/LocalDependency/parsers/python/PyProjectToml.d.ts +3 -0
  11. package/build/main/sdk/Dependencies/LocalDependency/parsers/python/PyProjectToml.js +40 -0
  12. package/build/main/tsconfig.tsbuildinfo +65 -11
  13. package/build/module/cli/bin/cli-bin.js +57 -56
  14. package/build/module/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +2 -2
  15. package/build/module/sdk/Dependencies/LocalDependency/LocalDependency.js +25 -23
  16. package/build/module/sdk/Dependencies/LocalDependency/LocalDependency.spec.d.ts +1 -0
  17. package/build/module/sdk/Dependencies/LocalDependency/LocalDependency.spec.js +32 -0
  18. package/build/module/sdk/Dependencies/LocalDependency/parsers/npmParser.js +19 -18
  19. package/build/module/sdk/Dependencies/LocalDependency/parsers/parser.spec.d.ts +1 -0
  20. package/build/module/sdk/Dependencies/LocalDependency/parsers/parser.spec.js +230 -0
  21. package/build/module/sdk/Dependencies/LocalDependency/parsers/python/PyProjectToml.d.ts +3 -0
  22. package/build/module/sdk/Dependencies/LocalDependency/parsers/python/PyProjectToml.js +42 -0
  23. package/build/module/tsconfig.module.tsbuildinfo +65 -11
  24. package/package.json +6 -9
@@ -0,0 +1,3 @@
1
+ import { ILocalDependency } from '../../DependencyTypes';
2
+ declare const pyProjectToml: (fileContent: string, filePath: string) => Promise<ILocalDependency>;
3
+ export default pyProjectToml;
@@ -0,0 +1,40 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ const rProjectTableContent = new RegExp(/\[project\]\s*\n(.*(?:\n(?!^\s*\[).*)*)/g);
3
+ const rDependenciesSection = new RegExp(/dependencies\s*=\s*\[((?:[^\]]|\](?!\n))+)\]/);
4
+ const purlPrefix = "pkg:pypi/";
5
+ const pyProjectToml = async (fileContent, filePath) => {
6
+ const result = { file: filePath, purls: [] };
7
+ const projectTableMatch = fileContent.match(rProjectTableContent);
8
+ if (!projectTableMatch)
9
+ return result;
10
+ const depKeyValueMatch = projectTableMatch[0].match(rDependenciesSection);
11
+ if (!depKeyValueMatch)
12
+ return result;
13
+ const depValue = depKeyValueMatch[1].toString();
14
+ /* At this point, depKeyValue contains the values for dependencies. Example:
15
+ *
16
+ * "requests",
17
+ * # this should be ignored
18
+ * 'importlib-metadata; python_version<"3.8"', #This line as well
19
+ */
20
+ /* The following code will place each dependency in an array (ignoring comments #) */
21
+ const deps = depValue
22
+ .replace(",", "\n") //Convert inline dependencies to new line dependencies
23
+ .split(/\n/) //Generate an array by splitting new lines. Each line contains an independent dependency
24
+ .map(d => d.replace(/(,|"|'|\s|(#.*))/g, "")) // Remove extra spaces, quotes, comments and commas
25
+ .filter(d => d.length !== 0); //Filters those lines that are empty
26
+ deps.forEach(d => {
27
+ d = d.replace(/\;.*/g, ""); //Removes environment markers https://packaging.python.org/en/latest/specifications/dependency-specifiers/#environment-markers
28
+ d = d.replace(/\[.*\]/, ""); //Removes extras https://packaging.python.org/en/latest/specifications/dependency-specifiers/#extras
29
+ const requirementMatch = d.match(/(?:<|<=|!=|==|>=|>|~=|===).*/);
30
+ const requirement = requirementMatch ? requirementMatch[0] : null;
31
+ let purl = d;
32
+ if (requirement)
33
+ purl = d.replace(requirement, "").trim();
34
+ purl = purlPrefix + purl;
35
+ result.purls.push(Object.assign({ purl }, (requirement !== null && { requirement })));
36
+ });
37
+ return result;
38
+ };
39
+ exports.default = pyProjectToml;
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHlQcm9qZWN0VG9tbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvRGVwZW5kZW5jaWVzL0xvY2FsRGVwZW5kZW5jeS9wYXJzZXJzL3B5dGhvbi9QeVByb2plY3RUb21sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxNQUFNLG9CQUFvQixHQUFHLElBQUksTUFBTSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7QUFDcEYsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLE1BQU0sQ0FBRSw4Q0FBOEMsQ0FBQyxDQUFDO0FBRXpGLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQztBQUUvQixNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQUUsV0FBbUIsRUFBQyxRQUFnQixFQUE2QixFQUFFO0lBQzlGLE1BQU0sTUFBTSxHQUFxQixFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBRTdELE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2xFLElBQUksQ0FBQyxpQkFBaUI7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUV0QyxNQUFNLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzFFLElBQUksQ0FBQyxnQkFBZ0I7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUVyQyxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUVoRDs7Ozs7TUFLRTtJQUVGLHFGQUFxRjtJQUVyRixNQUFNLElBQUksR0FBSSxRQUFRO1NBQ25CLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsc0RBQXNEO1NBQ3pFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBSSx3RkFBd0Y7U0FDdkcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLG1EQUFtRDtTQUNoRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBRSxDQUFBLENBQUUsb0NBQW9DO0lBR3JFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDZixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUEsQ0FBRSw4SEFBOEg7UUFDMUosQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFBLENBQUMsb0dBQW9HO1FBRWhJLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO1FBRWpFLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksV0FBVztZQUFFLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUxRCxJQUFJLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQztRQUV6QixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksaUJBQ2YsSUFBSSxJQUNELENBQUMsV0FBVyxLQUFLLElBQUksSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQzVDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtJQUNGLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLGtCQUFlLGFBQWEsQ0FBQyJ9
@@ -1092,7 +1092,7 @@
1092
1092
  "affectsGlobalScope": false
1093
1093
  },
1094
1094
  "../../src/sdk/Dependencies/LocalDependency/parsers/npmParser.ts": {
1095
- "version": "373fe307703f18152a11b3a4cbdd6e0c9b5e8e180951a405ff372858a79f0a64",
1095
+ "version": "be0319b96ae93f9db7702bb5b5520f5dc72bd958fbc2b87ff7107857614c01a9",
1096
1096
  "signature": "42f317f68c7debfec90d4435f03d13069d06e1150e89d09041951cc4da9c49b2",
1097
1097
  "affectsGlobalScope": false
1098
1098
  },
@@ -1121,9 +1121,14 @@
1121
1121
  "signature": "5be0bf1b37a315973ea4791db74c473fccfc81e3b76bfea738c2dba011d6868b",
1122
1122
  "affectsGlobalScope": false
1123
1123
  },
1124
+ "../../src/sdk/Dependencies/LocalDependency/parsers/python/PyProjectToml.ts": {
1125
+ "version": "250b1ffd37c178b0df2097c0e0e4aee37dc911fcf7e611574bd9090a46773d03",
1126
+ "signature": "99407a9b356d85ce95fc02030482aaba1f04075fe0bd154a86b497ab413c8d11",
1127
+ "affectsGlobalScope": false
1128
+ },
1124
1129
  "../../src/sdk/Dependencies/LocalDependency/LocalDependency.ts": {
1125
- "version": "b5f82d0b72530267f4e71c8d3c88ba35ae840e0403ac1d528920a2e0cd3e98fd",
1126
- "signature": "d3f8a607f0f520db909894aa064f3fa88d39d41736677fe393fbd28e9f10ff8c",
1130
+ "version": "60d65378448c9fb553e9222741b73ff13a14009f98f2780a1950bb61cce34b98",
1131
+ "signature": "77f44c5d6e6e36b972650e8c556a3863b8417f944d518ac9e31a61503e500d3c",
1127
1132
  "affectsGlobalScope": false
1128
1133
  },
1129
1134
  "../../node_modules/isbinaryfile/lib/index.d.ts": {
@@ -1272,8 +1277,8 @@
1272
1277
  "affectsGlobalScope": false
1273
1278
  },
1274
1279
  "../../node_modules/commander/typings/index.d.ts": {
1275
- "version": "051ae0b0bda811703875e6f2e466b9344cfe320b39087676327dc0c109f26d32",
1276
- "signature": "051ae0b0bda811703875e6f2e466b9344cfe320b39087676327dc0c109f26d32",
1280
+ "version": "17d716b12c230355d207d8b464a3359e13041c0cbb94c243981618e279f57670",
1281
+ "signature": "17d716b12c230355d207d8b464a3359e13041c0cbb94c243981618e279f57670",
1277
1282
  "affectsGlobalScope": false
1278
1283
  },
1279
1284
  "../../src/sdk/Filtering/DefaultFilterForDependencies.ts": {
@@ -1296,11 +1301,6 @@
1296
1301
  "signature": "9a00c2707323b806220877e6528108811ed92e580922d77a8ba1959b85fbb474",
1297
1302
  "affectsGlobalScope": false
1298
1303
  },
1299
- "../../src/cli/commands/wfp.ts": {
1300
- "version": "fef1a2ff5e663791d133f13a140e8ba3792dc38ffcb14de0e349e532efe9fe35",
1301
- "signature": "2f1d9f3ac804ba0f5ef9dfb34eebc0ba9f00e5cd98092ae23f3d50fc49de8298",
1302
- "affectsGlobalScope": false
1303
- },
1304
1304
  "../../src/sdk/Filtering/DefaultFilterForScanning.ts": {
1305
1305
  "version": "ae3781cbda782d3df2233dbeef699b57a83699b0d26f97428eda0131dbe84d27",
1306
1306
  "signature": "71cf507f6a0fa25a562580e98861acf1c8881b649bdecc50e9e10bbac57eb149",
@@ -1321,11 +1321,31 @@
1321
1321
  "signature": "f2270f14186fb9298c65d83f391db3cefc5e9c40bfae8007515176acc583e131",
1322
1322
  "affectsGlobalScope": false
1323
1323
  },
1324
+ "../../src/cli/commands/wfp.ts": {
1325
+ "version": "fef1a2ff5e663791d133f13a140e8ba3792dc38ffcb14de0e349e532efe9fe35",
1326
+ "signature": "2f1d9f3ac804ba0f5ef9dfb34eebc0ba9f00e5cd98092ae23f3d50fc49de8298",
1327
+ "affectsGlobalScope": false
1328
+ },
1324
1329
  "../../src/cli/bin/cli-bin.ts": {
1325
- "version": "3e072bf981511d42ef2ceb8838a0f581866a765afa4361f1fbd6634c06943ae5",
1330
+ "version": "bd298bd7315359eae4141d98632734131eaac891587c80581e0024517b9f9e2a",
1326
1331
  "signature": "43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012",
1327
1332
  "affectsGlobalScope": false
1328
1333
  },
1334
+ "../../node_modules/@types/chai/index.d.ts": {
1335
+ "version": "b9734142a4b241cfb505be4a2eb0261d211647df7c73043f817f4fdd8d96c846",
1336
+ "signature": "b9734142a4b241cfb505be4a2eb0261d211647df7c73043f817f4fdd8d96c846",
1337
+ "affectsGlobalScope": true
1338
+ },
1339
+ "../../src/sdk/Dependencies/LocalDependency/LocalDependency.spec.ts": {
1340
+ "version": "a23dfba03c907d083fbe30166c0505ef8704692885fb8202b6e251c06e43b35a",
1341
+ "signature": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881",
1342
+ "affectsGlobalScope": false
1343
+ },
1344
+ "../../src/sdk/Dependencies/LocalDependency/parsers/parser.spec.ts": {
1345
+ "version": "d46b1756e93abe52b1cb49f9086d6b803b9b155ae2f63e856c21ba2409ec1d5c",
1346
+ "signature": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881",
1347
+ "affectsGlobalScope": false
1348
+ },
1329
1349
  "../../src/sdk/Services/Grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts": {
1330
1350
  "version": "4cec53a1c91d29642f026cf0a4b15c1127f399b0886b3f0556867f7d88c5bd68",
1331
1351
  "signature": "4cec53a1c91d29642f026cf0a4b15c1127f399b0886b3f0556867f7d88c5bd68",
@@ -1873,6 +1893,9 @@
1873
1893
  "../../node_modules/@types/node/util.d.ts",
1874
1894
  "../../node_modules/protobufjs/index.d.ts"
1875
1895
  ],
1896
+ "../../node_modules/@types/chai/index.d.ts": [
1897
+ "../../node_modules/@types/node/util.d.ts"
1898
+ ],
1876
1899
  "../../node_modules/@types/long/index.d.ts": [
1877
1900
  "../../node_modules/@types/node/util.d.ts"
1878
1901
  ],
@@ -2611,6 +2634,11 @@
2611
2634
  "../../src/sdk/Dependencies/LocalDependency/DependencyTypes.ts": [
2612
2635
  "../../node_modules/@types/node/util.d.ts"
2613
2636
  ],
2637
+ "../../src/sdk/Dependencies/LocalDependency/LocalDependency.spec.ts": [
2638
+ "../../node_modules/@types/chai/index.d.ts",
2639
+ "../../node_modules/@types/node/util.d.ts",
2640
+ "../../src/sdk/Dependencies/LocalDependency/LocalDependency.ts"
2641
+ ],
2614
2642
  "../../src/sdk/Dependencies/LocalDependency/LocalDependency.ts": [
2615
2643
  "../../node_modules/@types/node/fs.d.ts",
2616
2644
  "../../node_modules/@types/node/path.d.ts",
@@ -2622,6 +2650,7 @@
2622
2650
  "../../src/sdk/Dependencies/LocalDependency/parsers/npmParser.ts",
2623
2651
  "../../src/sdk/Dependencies/LocalDependency/parsers/nugetParser.ts",
2624
2652
  "../../src/sdk/Dependencies/LocalDependency/parsers/pyParser.ts",
2653
+ "../../src/sdk/Dependencies/LocalDependency/parsers/python/PyProjectToml.ts",
2625
2654
  "../../src/sdk/Dependencies/LocalDependency/parsers/rubyParser.ts"
2626
2655
  ],
2627
2656
  "../../src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.ts": [
@@ -2654,6 +2683,17 @@
2654
2683
  "../../node_modules/xml-js/types/index.d.ts",
2655
2684
  "../../src/sdk/Dependencies/LocalDependency/DependencyTypes.ts"
2656
2685
  ],
2686
+ "../../src/sdk/Dependencies/LocalDependency/parsers/parser.spec.ts": [
2687
+ "../../node_modules/@types/chai/index.d.ts",
2688
+ "../../node_modules/@types/node/util.d.ts",
2689
+ "../../src/sdk/Dependencies/LocalDependency/DependencyTypes.ts",
2690
+ "../../src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.ts",
2691
+ "../../src/sdk/Dependencies/LocalDependency/parsers/golangParser.ts",
2692
+ "../../src/sdk/Dependencies/LocalDependency/parsers/mavenParser.ts",
2693
+ "../../src/sdk/Dependencies/LocalDependency/parsers/npmParser.ts",
2694
+ "../../src/sdk/Dependencies/LocalDependency/parsers/nugetParser.ts",
2695
+ "../../src/sdk/Dependencies/LocalDependency/parsers/python/PyProjectToml.ts"
2696
+ ],
2657
2697
  "../../src/sdk/Dependencies/LocalDependency/parsers/pyParser.ts": [
2658
2698
  "../../node_modules/@types/node/path.d.ts",
2659
2699
  "../../node_modules/@types/node/util.d.ts",
@@ -2661,6 +2701,10 @@
2661
2701
  "../../src/sdk/Dependencies/LocalDependency/DependencyTypes.ts",
2662
2702
  "../../src/sdk/Dependencies/LocalDependency/parsers/utils.ts"
2663
2703
  ],
2704
+ "../../src/sdk/Dependencies/LocalDependency/parsers/python/PyProjectToml.ts": [
2705
+ "../../node_modules/@types/node/util.d.ts",
2706
+ "../../src/sdk/Dependencies/LocalDependency/DependencyTypes.ts"
2707
+ ],
2664
2708
  "../../src/sdk/Dependencies/LocalDependency/parsers/rubyParser.ts": [
2665
2709
  "../../node_modules/@types/node/path.d.ts",
2666
2710
  "../../node_modules/@types/node/util.d.ts",
@@ -3461,6 +3505,9 @@
3461
3505
  "../../node_modules/@types/node/util.d.ts",
3462
3506
  "../../node_modules/protobufjs/index.d.ts"
3463
3507
  ],
3508
+ "../../node_modules/@types/chai/index.d.ts": [
3509
+ "../../node_modules/@types/node/util.d.ts"
3510
+ ],
3464
3511
  "../../node_modules/@types/long/index.d.ts": [
3465
3512
  "../../node_modules/@types/node/util.d.ts"
3466
3513
  ],
@@ -4124,6 +4171,9 @@
4124
4171
  "../../src/sdk/Dependencies/LocalDependency/parsers/pyParser.ts": [
4125
4172
  "../../src/sdk/Dependencies/LocalDependency/DependencyTypes.ts"
4126
4173
  ],
4174
+ "../../src/sdk/Dependencies/LocalDependency/parsers/python/PyProjectToml.ts": [
4175
+ "../../src/sdk/Dependencies/LocalDependency/DependencyTypes.ts"
4176
+ ],
4127
4177
  "../../src/sdk/Dependencies/LocalDependency/parsers/rubyParser.ts": [
4128
4178
  "../../src/sdk/Dependencies/LocalDependency/DependencyTypes.ts"
4129
4179
  ],
@@ -4372,6 +4422,7 @@
4372
4422
  "../../node_modules/@grpc/grpc-js/build/src/uri-parser.d.ts",
4373
4423
  "../../node_modules/@grpc/proto-loader/build/src/index.d.ts",
4374
4424
  "../../node_modules/@grpc/proto-loader/build/src/util.d.ts",
4425
+ "../../node_modules/@types/chai/index.d.ts",
4375
4426
  "../../node_modules/@types/long/index.d.ts",
4376
4427
  "../../node_modules/@types/mocha/index.d.ts",
4377
4428
  "../../node_modules/@types/node-fetch/externals.d.ts",
@@ -4508,13 +4559,16 @@
4508
4559
  "../../src/sdk/Dependencies/DependencyScannerCfg.ts",
4509
4560
  "../../src/sdk/Dependencies/DependencyTypes.ts",
4510
4561
  "../../src/sdk/Dependencies/LocalDependency/DependencyTypes.ts",
4562
+ "../../src/sdk/Dependencies/LocalDependency/LocalDependency.spec.ts",
4511
4563
  "../../src/sdk/Dependencies/LocalDependency/LocalDependency.ts",
4512
4564
  "../../src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.ts",
4513
4565
  "../../src/sdk/Dependencies/LocalDependency/parsers/golangParser.ts",
4514
4566
  "../../src/sdk/Dependencies/LocalDependency/parsers/mavenParser.ts",
4515
4567
  "../../src/sdk/Dependencies/LocalDependency/parsers/npmParser.ts",
4516
4568
  "../../src/sdk/Dependencies/LocalDependency/parsers/nugetParser.ts",
4569
+ "../../src/sdk/Dependencies/LocalDependency/parsers/parser.spec.ts",
4517
4570
  "../../src/sdk/Dependencies/LocalDependency/parsers/pyParser.ts",
4571
+ "../../src/sdk/Dependencies/LocalDependency/parsers/python/PyProjectToml.ts",
4518
4572
  "../../src/sdk/Dependencies/LocalDependency/parsers/rubyParser.ts",
4519
4573
  "../../src/sdk/Dependencies/LocalDependency/parsers/utils.ts",
4520
4574
  "../../src/sdk/Errors.ts",
@@ -1,75 +1,76 @@
1
1
  #!/usr/bin/env node
2
- import { program } from 'commander';
3
- import { depHandler } from '../commands/dep';
4
- import { wfpHandler } from '../commands/wfp';
5
- import { scanHandler } from '../commands/scan';
6
- import { Utils } from '../../sdk/Utils/Utils';
2
+ import { Argument, Command, Option } from "commander";
3
+ import { Utils } from "../../sdk/Utils/Utils";
4
+ import { depHandler } from "../commands/dep";
5
+ import { scanHandler } from "../commands/scan";
6
+ import { wfpHandler } from "../commands/wfp";
7
7
  function CLIErrorHandler(e) {
8
- console.error(' ');
8
+ console.error(" ");
9
9
  console.error(e);
10
10
  process.exit(1);
11
11
  }
12
12
  async function main() {
13
- program
14
- .version(Utils.getPackageVersion())
15
- .description('The SCANOSS JS package provides a simple, easy to consume module for interacting with SCANOSS APIs/Engine.');
16
- program
17
- .command('scan <source>')
18
- .description('Scan a folder/file')
19
- .option('-w, --wfp', 'Scan a .wfp file instead of a folder')
20
- .option('-H, --hpsm', 'Scan using winnowing high precision matching')
21
- .option('-x, --extract', 'Extract compressed files before launch scan in folder <<zip_name>>-unzipped')
22
- .option(' --extract-overwrite', 'Overwrite folder when decompressing if exists')
23
- .option(' --extract-deep <number>', 'Sets uncompress recursion level')
24
- .option(' --extract-suffix <suffix>', 'Sets suffix for the folder name')
25
- .option('-c, --concurrency <number>', 'Number of concurrent connections to use while scanning (optional -default 10)')
26
- .option('-n, --ignore <ignore>', 'Ignore components specified in the SBOM file')
27
- .option('-o, --output <filename>', 'Output result file name (optional - default stdout)')
28
- .option('-f, --format <format>', 'Result output format. {JSON, HTML} Default: JSON')
29
- .option('-F, --flags <flags>', 'Scanning engine flags (1: disable snippet matching, 2 enable snippet ids, 4: disable dependencies, 8: disable licenses, 16: disable copyrights,32: disable vulnerabilities, 64: disable quality, 128: disable cryptography,256: disable best match, 512: Report identified files)')
30
- .option('-P, --post-size <postsize>', 'Number of kilobytes to limit the post to while scanning (optional - default 32)')
31
- .option('-R, --max-retry <retry>', 'Max number of retries for each POST (optional -default 5)')
32
- .option('-M, --timeout <timeout>', 'Timeout (in seconds) for API communication (optional -default 120)')
33
- .option('--obfuscate', 'Obfuscate fingerprints')
34
- .option('-D, --dependencies', 'Add dependency scanning')
35
- .option('--apiurl <apiurl>', 'SCANOSS API URL (optional - default: https://osskb.org/api/scan/direct)')
36
- .option('--api2url <api2url>', 'SCANOSS gRPC API 2.0 URL (optional - default: scanoss.com:443)')
37
- .option('-k, --key <key>', 'SCANOSS API Key token (optional - not required for default OSSKB URL)')
38
- .option('--ignore-cert-errors', 'Ignore self signed certificate errors')
39
- .option('--ca-cert <cert>', 'Specify a path for a cert used in SSL/TLS connection')
40
- .option('--proxy <proxy>', 'Proxy URL to use for connections (optional). Can also use the environment variable "HTTPS_PROXY=[ip]:[port]" and "grcp_proxy=[ip]:[port]" for gRPC')
41
- .option('--pac <pac>', 'Proxy auto configuration (optional). Specify a file, http url or ftp url')
42
- .option('-v, --verbose', 'Makes scan operation verbose')
43
- .action((source, options) => {
13
+ const scan = new Command("scan");
14
+ scan.addArgument(new Argument("<source>"));
15
+ scan.description("Scan a folder/file");
16
+ scan.addHelpText("after", "Example:\n$ scanoss-js scan -o scan-output.json <source-folder>");
17
+ scan.addOption(new Option("-w, --wfp", "Scan a .wfp file instead of a folder"));
18
+ scan.addOption(new Option("-H, --hpsm", "Scan using winnowing high precision matching"));
19
+ scan.addOption(new Option("-x, --extract", "Extract compressed files before launch scan in folder <<zip_name>>-unzipped"));
20
+ scan.addOption(new Option(" --extract-overwrite", "Overwrite folder when decompressing if exists"));
21
+ scan.addOption(new Option(" --extract-deep <number>", "Sets uncompress recursion level"));
22
+ scan.addOption(new Option(" --extract-suffix <suffix>", "Sets suffix for the folder name"));
23
+ scan.addOption(new Option("-c, --concurrency <number>", "Number of concurrent connections to use while scanning (optional -default 10)"));
24
+ scan.addOption(new Option("-n, --ignore <ignore>", "Ignore components specified in the SBOM file"));
25
+ scan.addOption(new Option("-o, --output <filename>", "Output result file name (optional - default stdout)"));
26
+ scan.addOption(new Option("-f, --format <format>", "Result output format").choices(["json", "html"]));
27
+ scan.addOption(new Option("-F, --flags <flags>", "Scanning engine flags (1: disable snippet matching, 2 enable snippet ids, 4: disable dependencies, 8: disable licenses, 16: disable copyrights,32: disable vulnerabilities, 64: disable quality, 128: disable cryptography,256: disable best match, 512: Report identified files)"));
28
+ scan.addOption(new Option("-P, --post-size postsize>", "Number of kilobytes to limit the post to while scanning (optional - default 32)"));
29
+ scan.addOption(new Option("-R, --max-retry <retry>", "Max number of retries for each POST (optional -default 5)"));
30
+ scan.addOption(new Option("-M, --timeout <timeout>", "Timeout (in seconds) for API communication (optional -default 120)"));
31
+ scan.addOption(new Option(" --obfuscate", "Obfuscate fingerprints"));
32
+ scan.addOption(new Option("-D, --dependencies", "Add dependency scanning"));
33
+ scan.addOption(new Option(" --apiurl <apiurl>", "SCANOSS API URL (optional - default: https://osskb.org/api/scan/direct)"));
34
+ scan.addOption(new Option(" --api2url <api2url>", "SCANOSS gRPC API 2.0 URL (optional - default: scanoss.com:443)"));
35
+ scan.addOption(new Option("-k, --key <key>", "SCANOSS API Key token (optional - not required for default OSSKB URL)"));
36
+ scan.addOption(new Option(" --ignore-cert-errors", "Ignore self signed certificate errors"));
37
+ scan.addOption(new Option(" --ca-cert <cert>", "Specify a path for a cert used in SSL/TLS connection"));
38
+ scan.addOption(new Option(" --proxy <proxy>", "Proxy URL to use for connections (optional). Can also use the environment variable \"HTTPS_PROXY=[ip]:[port]\" and \"grcp_proxy=[ip]:[port]\" for gRPC"));
39
+ scan.addOption(new Option(" --pac <pac>", "Proxy auto configuration (optional). Specify a file, http url or ftp url"));
40
+ scan.addOption(new Option("-v, --verbose", "Makes scan operation verbose"));
41
+ scan.action((source, options) => {
44
42
  scanHandler(source, options).catch((e) => {
45
43
  CLIErrorHandler(e);
46
44
  });
47
- })
48
- .addHelpText('after', `
49
- Examples:
50
- $ scanoss-js scan -o scan-output.json <source-folder>`);
51
- program
52
- .command('dep <source>')
53
- .description('Scan for dependencies')
54
- .option('-o, --output <filename>', 'Output result file name (optional - default stdout)')
55
- .option('-a, --grpc-host <host>', 'SCANOSS GRPC HOST (optional - default: scanoss.com:443)')
56
- .action((source, options) => {
45
+ });
46
+ const dependencies = new Command("dep");
47
+ dependencies.description("Scan for dependencies");
48
+ dependencies.addArgument(new Argument("<source>"));
49
+ dependencies.addOption(new Option("-o, --output <filename>", "Output result file name (optional - default stdout)"));
50
+ dependencies.addOption(new Option("-a, --grpc-host <host>", "SCANOSS GRPC HOST (optional - default: scanoss.com:443)"));
51
+ dependencies.action((source, options) => {
57
52
  depHandler(source, options).catch((e) => {
58
53
  CLIErrorHandler(e);
59
54
  });
60
55
  });
61
- program
62
- .command('wfp <source>')
63
- .description('Generates fingerprints for a folder/file')
64
- .option('-H, --hpsm', 'Scan using winnowing high precision matching')
65
- .option('--obfuscate', 'Obfuscate fingerprints')
66
- .option('-o, --output <filename>', 'Output result file name (optional - default stdout)')
67
- .option('-p, --block-size <size>', 'Maximum size in Kb for each fingerprint block (optional - default 64Kb)')
68
- .action((source, options) => {
56
+ const fingerprint = new Command("wfp");
57
+ fingerprint.addArgument(new Argument("<source>"));
58
+ fingerprint.description("Generates fingerprints for a folder/file");
59
+ fingerprint.addOption(new Option("-H, --hpsm", "Scan using winnowing high precision matching"));
60
+ fingerprint.addOption(new Option("--obfuscate", "Obfuscate fingerprints"));
61
+ fingerprint.addOption(new Option("-o, --output <filename>", "Output result file name (optional - default stdout)"));
62
+ fingerprint.addOption(new Option("-p, --block-size <size>", "Maximum size in Kb for each fingerprint block (optional - default 64Kb)"));
63
+ fingerprint.action((source, options) => {
69
64
  wfpHandler(source, options).catch((e) => {
70
65
  CLIErrorHandler(e);
71
66
  });
72
67
  });
68
+ const program = new Command();
69
+ program.version(Utils.getPackageVersion());
70
+ program.description("The SCANOSS JS package provides a simple, easy to consume module for interacting with SCANOSS APIs/Engine.");
71
+ program.addCommand(scan);
72
+ program.addCommand(dependencies);
73
+ program.addCommand(fingerprint);
73
74
  await program.parseAsync(process.argv);
74
75
  }
75
76
  try {
@@ -79,4 +80,4 @@ catch (e) {
79
80
  console.error(e);
80
81
  process.exit(1);
81
82
  }
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWJpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGkvYmluL2NsaS1iaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlDLFNBQVMsZUFBZSxDQUFDLENBQVE7SUFDL0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQUVELEtBQUssVUFBVSxJQUFJO0lBQ2pCLE9BQU87U0FDSixPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDbEMsV0FBVyxDQUNWLDRHQUE0RyxDQUM3RyxDQUFDO0lBRUosT0FBTztTQUNKLE9BQU8sQ0FBQyxlQUFlLENBQUM7U0FDeEIsV0FBVyxDQUFDLG9CQUFvQixDQUFDO1NBQ2pDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsc0NBQXNDLENBQUM7U0FDM0QsTUFBTSxDQUFDLFlBQVksRUFBRSw4Q0FBOEMsQ0FBQztTQUNwRSxNQUFNLENBQ0wsZUFBZSxFQUNmLDZFQUE2RSxDQUM5RTtTQUNBLE1BQU0sQ0FDTCx3QkFBd0IsRUFDeEIsK0NBQStDLENBQ2hEO1NBQ0EsTUFBTSxDQUFDLDRCQUE0QixFQUFFLGlDQUFpQyxDQUFDO1NBQ3ZFLE1BQU0sQ0FBQyw4QkFBOEIsRUFBRSxpQ0FBaUMsQ0FBQztT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
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWJpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGkvYmluL2NsaS1iaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV0RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsU0FBUyxlQUFlLENBQUMsQ0FBUTtJQUMvQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDO0FBRUQsS0FBSyxVQUFVLElBQUk7SUFFakIsTUFBTSxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxpRUFBaUUsQ0FBQyxDQUFDO0lBRTdGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLHNDQUFzQyxDQUFDLENBQUMsQ0FBQztJQUNoRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRSw4Q0FBOEMsQ0FBQyxDQUFDLENBQUM7SUFDekYsSUFBSSxD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
@@ -1,10 +1,10 @@
1
- import { ILocalDependencies } from "./DependencyTypes";
1
+ import { ILocalDependencies } from './DependencyTypes';
2
2
  export declare class LocalDependencies {
3
3
  private parserMap;
4
4
  private listFilePattern;
5
5
  constructor();
6
6
  filterFiles(files: Array<string>): Array<string>;
7
7
  search(files: Array<string>): Promise<ILocalDependencies>;
8
- private getParserFunc;
9
8
  stringMatchWithWildcard(text: string, pattern: string): boolean;
9
+ private getParserFunc;
10
10
  }
@@ -1,24 +1,25 @@
1
1
  import path from 'path';
2
2
  import fs from 'fs';
3
- import { requirementsParser } from "./parsers/pyParser";
4
- import { pomParser } from "./parsers/mavenParser";
5
- import { packagelockParser, packageParser, yarnLockParser } from './parsers/npmParser';
6
- import { gemfilelockParser, gemfileParser } from "./parsers/rubyParser";
3
+ import { requirementsParser } from './parsers/pyParser';
4
+ import { pomParser } from './parsers/mavenParser';
5
+ import { packagelockParser, packageParser, yarnLockParser, } from './parsers/npmParser';
6
+ import { gemfilelockParser, gemfileParser } from './parsers/rubyParser';
7
7
  import { goModParser, goSumParser } from './parsers/golangParser';
8
8
  import { csprojParser, packagesConfigParser } from './parsers/nugetParser';
9
9
  import { buildGradleParser } from './parsers/buildGradleParser';
10
+ import pyprojectToml from './parsers/python/PyProjectToml';
10
11
  export class LocalDependencies {
11
12
  constructor() {
12
13
  /*
13
- This is a hash map that connect a filename with it's own parser function
14
- Any parser function must return a ILocalDependencies object (See DependencyTypes.ts)
15
- */
14
+ This is a hash map that connect a filename with it's own parser function
15
+ Any parser function must return a ILocalDependencies object (See DependencyTypes.ts)
16
+ */
16
17
  this.parserMap = {
17
18
  'requirements.txt': requirementsParser,
18
19
  'pom.xml': pomParser,
19
20
  'package.json': packageParser,
20
21
  'package-lock.json': packagelockParser,
21
- 'Gemfile': gemfileParser,
22
+ Gemfile: gemfileParser,
22
23
  'Gemfile.lock': gemfilelockParser,
23
24
  'go.mod': goModParser,
24
25
  'go.sum': goSumParser,
@@ -26,8 +27,9 @@ export class LocalDependencies {
26
27
  '*.csproj': csprojParser,
27
28
  'packages.config': packagesConfigParser,
28
29
  'build.gradle': buildGradleParser,
30
+ 'pyproject.toml': pyprojectToml,
29
31
  };
30
- this.listFilePattern = Object.keys(this.parserMap).filter((item) => item.includes("*"));
32
+ this.listFilePattern = Object.keys(this.parserMap).filter((item) => item.includes('*'));
31
33
  }
32
34
  filterFiles(files) {
33
35
  return files.filter((filepath) => this.getParserFunc(filepath));
@@ -51,19 +53,6 @@ export class LocalDependencies {
51
53
  }
52
54
  return results;
53
55
  }
54
- getParserFunc(filePath) {
55
- const fileName = path.basename(filePath);
56
- //Check for an exact match
57
- const func = this.parserMap[fileName];
58
- if (func)
59
- return func;
60
- //Check for a wildcard string match
61
- for (const pattern of this.listFilePattern)
62
- if (this.stringMatchWithWildcard(fileName, pattern))
63
- return this.parserMap[pattern];
64
- return null;
65
- }
66
- // The logic for the string wildcard match algorithm was an imitation from here:
67
56
  // https://www.codeproject.com/Articles/5163931/Fast-String-Matching-with-Wildcards-Globs-and-Giti
68
57
  stringMatchWithWildcard(text, pattern) {
69
58
  let iText = 0;
@@ -94,5 +83,18 @@ export class LocalDependencies {
94
83
  //There is a match when the pattern was walked all the way throught
95
84
  return iPattern >= pattern.length ? true : false;
96
85
  }
86
+ // The logic for the string wildcard match algorithm was an imitation from here:
87
+ getParserFunc(filePath) {
88
+ const fileName = path.basename(filePath);
89
+ //Check for an exact match
90
+ const func = this.parserMap[fileName];
91
+ if (func)
92
+ return func;
93
+ //Check for a wildcard string match
94
+ for (const pattern of this.listFilePattern)
95
+ if (this.stringMatchWithWildcard(fileName, pattern))
96
+ return this.parserMap[pattern];
97
+ return null;
98
+ }
97
99
  }
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxEZXBlbmRlbmN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9EZXBlbmRlbmNpZXMvTG9jYWxEZXBlbmRlbmN5L0xvY2FsRGVwZW5kZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRXBCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixjQUFjLEVBQ2YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEUsTUFBTSxPQUFPLGlCQUFpQjtJQUs1QjtRQUNJOzs7VUFHRTtRQUNGLElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDZixrQkFBa0IsRUFBRSxrQkFBa0I7WUFDdEMsU0FBUyxFQUFFLFNBQVM7WUFDcEIsY0FBYyxFQUFFLGFBQWE7WUFDN0IsbUJBQW1CLEVBQUUsaUJBQWlCO1lBQ3RDLFNBQVMsRUFBRSxhQUFhO1lBQ3hCLGNBQWMsRUFBRSxpQkFBaUI7WUFDakMsUUFBUSxFQUFFLFdBQVc7WUFDckIsUUFBUSxFQUFFLFdBQVc7WUFDckIsV0FBVyxFQUFFLGNBQWM7WUFDM0IsVUFBVSxFQUFFLFlBQVk7WUFDeEIsaUJBQWlCLEVBQUUsb0JBQW9CO1lB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
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxEZXBlbmRlbmN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9EZXBlbmRlbmNpZXMvTG9jYWxEZXBlbmRlbmN5L0xvY2FsRGVwZW5kZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRXBCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixjQUFjLEdBQ2YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxhQUFhLE1BQU0sZ0NBQWdDLENBQUM7QUFFM0QsTUFBTSxPQUFPLGlCQUFpQjtJQUk1QjtRQUNFOzs7WUFHSTtRQUNKLElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDZixrQkFBa0IsRUFBRSxrQkFBa0I7WUFDdEMsU0FBUyxFQUFFLFNBQVM7WUFDcEIsY0FBYyxFQUFFLGFBQWE7WUFDN0IsbUJBQW1CLEVBQUUsaUJBQWlCO1lBQ3RDLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLGNBQWMsRUFBRSxpQkFBaUI7WUFDakMsUUFBUSxFQUFFLFdBQVc7WUFDckIsUUFBUSxFQUFFLFdBQVc7WUFDckIsV0FBVyxFQUFFLGNBQWM7WUFDM0IsVUFBVSxFQUFF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
@@ -0,0 +1,32 @@
1
+ import { LocalDependencies } from './LocalDependency';
2
+ import { assert, expect } from 'chai';
3
+ describe('Suit test for LocalDependency Scanner', () => {
4
+ it('Testing wildcard string matching', function () {
5
+ const localDependencyScanner = new LocalDependencies();
6
+ assert(localDependencyScanner.stringMatchWithWildcard("hello this is a test", "hello*"));
7
+ assert(localDependencyScanner.stringMatchWithWildcard("hello this is a test", "*hello*"));
8
+ assert(localDependencyScanner.stringMatchWithWildcard("hello this is a test", "*"));
9
+ assert(localDependencyScanner.stringMatchWithWildcard("hello this is a test", "*this*"));
10
+ assert(localDependencyScanner.stringMatchWithWildcard("/home/user/projname.cproj", "*.cproj"));
11
+ assert(!localDependencyScanner.stringMatchWithWildcard("this text should no match", "*hello*"));
12
+ assert(!localDependencyScanner.stringMatchWithWildcard("/home/user/projname.cproj", "*hello"));
13
+ });
14
+ it('Testing filepath filter function', function () {
15
+ const localDependencyScanner = new LocalDependencies();
16
+ const files = [
17
+ "/home/user/ignore.c",
18
+ "/home/user/go.sum",
19
+ "/home/user/accept.csproj",
20
+ "/home/user/ignore2.c",
21
+ ];
22
+ const expectedOut = [
23
+ "/home/user/go.sum",
24
+ "/home/user/accept.csproj",
25
+ ];
26
+ const result = localDependencyScanner.filterFiles(files);
27
+ for (let i = 0; i < result.length; i++) {
28
+ expect(expectedOut[i]).to.be.equal(result[i]);
29
+ }
30
+ });
31
+ });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxEZXBlbmRlbmN5LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9Mb2NhbERlcGVuZGVuY3kvTG9jYWxEZXBlbmRlbmN5LnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsUUFBUSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtJQUVyRCxFQUFFLENBQUMsa0NBQWtDLEVBQUc7UUFDdEMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDdkQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixDQUFDLHNCQUFzQixFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDekYsTUFBTSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixDQUFDLHNCQUFzQixFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDMUYsTUFBTSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixDQUFDLHNCQUFzQixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDcEYsTUFBTSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixDQUFDLHNCQUFzQixFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDekYsTUFBTSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixDQUFDLDJCQUEyQixFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDL0YsTUFBTSxDQUFDLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLENBQUMsMkJBQTJCLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNoRyxNQUFNLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsQ0FBQywyQkFBMkIsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLENBQUMsQ0FBQyxDQUFDO0lBSUgsRUFBRSxDQUFDLGtDQUFrQyxFQUFHO1FBQ3RDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sS0FBSyxHQUFHO1lBQ1oscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQiwwQkFBMEI7WUFDMUIsc0JBQXNCO1NBQ3ZCLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBRztZQUNsQixtQkFBbUI7WUFDbkIsMEJBQTBCO1NBQzNCLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekQsS0FBSyxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFDaEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFFTCxDQUFDLENBQUMsQ0FBQyJ9