scanoss 0.2.19 → 0.2.20

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 (173) hide show
  1. package/build/main/bin/cli-bin.js +3 -1
  2. package/build/main/commands/dep.js +19 -7
  3. package/build/main/commands/helpers.d.ts +1 -0
  4. package/build/main/commands/helpers.js +22 -0
  5. package/build/main/commands/scan.js +3 -15
  6. package/build/main/index.d.ts +1 -2
  7. package/build/main/index.js +2 -3
  8. package/build/main/lib/dependencies/DependencyScanner.d.ts +6 -5
  9. package/build/main/lib/dependencies/DependencyScanner.js +31 -49
  10. package/build/main/lib/dependencies/DependencyScannerCfg.d.ts +4 -0
  11. package/build/main/lib/dependencies/DependencyScannerCfg.js +11 -0
  12. package/build/main/lib/dependencies/DependencyTypes.d.ts +10 -8
  13. package/build/main/lib/dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
  14. package/build/main/lib/dependencies/LocalDependency/DependencyTypes.js +3 -0
  15. package/build/main/lib/dependencies/LocalDependency/LocalDependency.d.ts +6 -0
  16. package/build/main/lib/dependencies/LocalDependency/LocalDependency.js +51 -0
  17. package/build/main/lib/dependencies/LocalDependency/parsers/golangParser.d.ts +2 -0
  18. package/build/main/lib/dependencies/LocalDependency/parsers/golangParser.js +63 -0
  19. package/build/main/lib/dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
  20. package/build/main/lib/dependencies/LocalDependency/parsers/mavenParser.js +57 -0
  21. package/build/main/lib/dependencies/{parsers → LocalDependency/parsers}/npmParser.d.ts +3 -3
  22. package/build/main/lib/dependencies/LocalDependency/parsers/npmParser.js +50 -0
  23. package/build/main/lib/dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
  24. package/build/main/lib/dependencies/LocalDependency/parsers/pyParser.js +61 -0
  25. package/build/main/lib/dependencies/{parsers → LocalDependency/parsers}/rubyParser.d.ts +3 -3
  26. package/build/main/lib/dependencies/LocalDependency/parsers/rubyParser.js +133 -0
  27. package/build/main/lib/dependencies/{parsers → LocalDependency/parsers}/utils.d.ts +0 -0
  28. package/build/main/lib/dependencies/{parsers → LocalDependency/parsers}/utils.js +1 -1
  29. package/build/main/lib/grpc/GrpcDependencyService.d.ts +3 -5
  30. package/build/main/lib/grpc/GrpcDependencyService.js +15 -13
  31. package/build/main/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.js +22 -23
  32. package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +5 -5
  33. package/build/main/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +90 -48
  34. package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +4 -5
  35. package/build/main/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +5 -6
  36. package/build/main/lib/scanner/Scanner.js +1 -1
  37. package/build/module/bin/cli-bin.js +3 -1
  38. package/build/module/commands/dep.js +19 -7
  39. package/build/module/commands/helpers.d.ts +1 -0
  40. package/build/module/commands/helpers.js +15 -0
  41. package/build/module/commands/scan.js +2 -14
  42. package/build/module/index.d.ts +1 -2
  43. package/build/module/index.js +2 -3
  44. package/build/module/lib/dependencies/DependencyScanner.d.ts +6 -5
  45. package/build/module/lib/dependencies/DependencyScanner.js +32 -46
  46. package/build/module/lib/dependencies/DependencyScannerCfg.d.ts +4 -0
  47. package/build/module/lib/dependencies/DependencyScannerCfg.js +5 -0
  48. package/build/module/lib/dependencies/DependencyTypes.d.ts +10 -8
  49. package/build/module/lib/dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
  50. package/build/module/lib/dependencies/LocalDependency/DependencyTypes.js +2 -0
  51. package/build/module/lib/dependencies/LocalDependency/LocalDependency.d.ts +6 -0
  52. package/build/module/lib/dependencies/LocalDependency/LocalDependency.js +45 -0
  53. package/build/module/lib/dependencies/LocalDependency/parsers/golangParser.d.ts +2 -0
  54. package/build/module/lib/dependencies/LocalDependency/parsers/golangParser.js +55 -0
  55. package/build/module/lib/dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
  56. package/build/module/lib/dependencies/LocalDependency/parsers/mavenParser.js +50 -0
  57. package/build/module/lib/dependencies/{parsers → LocalDependency/parsers}/npmParser.d.ts +3 -3
  58. package/build/module/lib/dependencies/LocalDependency/parsers/npmParser.js +42 -0
  59. package/build/module/lib/dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
  60. package/build/module/lib/dependencies/LocalDependency/parsers/pyParser.js +53 -0
  61. package/build/module/lib/dependencies/{parsers → LocalDependency/parsers}/rubyParser.d.ts +3 -3
  62. package/build/module/lib/dependencies/LocalDependency/parsers/rubyParser.js +130 -0
  63. package/build/module/lib/dependencies/{parsers → LocalDependency/parsers}/utils.d.ts +0 -0
  64. package/build/module/lib/dependencies/LocalDependency/parsers/utils.js +15 -0
  65. package/build/module/lib/grpc/GrpcDependencyService.d.ts +3 -5
  66. package/build/module/lib/grpc/GrpcDependencyService.js +15 -14
  67. package/build/module/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.js +22 -23
  68. package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +5 -5
  69. package/build/module/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +90 -48
  70. package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +4 -5
  71. package/build/module/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +5 -6
  72. package/build/module/lib/scanner/Scanner.js +1 -1
  73. package/build/tsconfig.module.tsbuildinfo +1 -1
  74. package/build/tsconfig.tsbuildinfo +1 -1
  75. package/package.json +3 -1
  76. package/src/bin/cli-bin.ts +4 -1
  77. package/src/commands/dep.ts +18 -6
  78. package/src/commands/helpers.ts +14 -0
  79. package/src/commands/scan.ts +3 -12
  80. package/src/index.ts +2 -2
  81. package/src/lib/dependencies/DependencyScanner.ts +77 -0
  82. package/src/lib/dependencies/DependencyScannerCfg.ts +7 -0
  83. package/src/lib/dependencies/DependencyTypes.ts +16 -14
  84. package/src/lib/dependencies/LocalDependency/DependencyTypes.ts +21 -0
  85. package/src/lib/dependencies/LocalDependency/LocalDependency.ts +48 -0
  86. package/src/lib/dependencies/{parsers → LocalDependency/parsers}/golangParser.ts +4 -6
  87. package/src/lib/dependencies/{parsers → LocalDependency/parsers}/mavenParser.ts +10 -6
  88. package/src/lib/dependencies/{parsers → LocalDependency/parsers}/npmParser.ts +14 -8
  89. package/src/lib/dependencies/LocalDependency/parsers/pyParser.ts +55 -0
  90. package/src/lib/dependencies/{parsers → LocalDependency/parsers}/rubyParser.ts +21 -29
  91. package/src/lib/dependencies/{parsers → LocalDependency/parsers}/utils.ts +0 -1
  92. package/src/lib/grpc/GrpcDependencyService.ts +66 -0
  93. package/src/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +1 -0
  94. package/src/lib/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +1 -0
  95. package/src/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +79 -0
  96. package/src/lib/grpc/scanoss/api/common/v2/scanoss-common_pb.js +482 -0
  97. package/src/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +30 -0
  98. package/src/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +109 -0
  99. package/src/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +206 -0
  100. package/src/lib/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1489 -0
  101. package/src/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +25 -0
  102. package/src/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +73 -0
  103. package/src/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +6 -0
  104. package/src/lib/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +15 -0
  105. package/src/lib/scanner/Scanner.ts +2 -1
  106. package/tsconfig.json +5 -22
  107. package/yarn.lock +5252 -5213
  108. package/build/main/lib/dependencies/Dependency.d.ts +0 -9
  109. package/build/main/lib/dependencies/Dependency.js +0 -52
  110. package/build/main/lib/dependencies/PurlGenerator.d.ts +0 -2
  111. package/build/main/lib/dependencies/PurlGenerator.js +0 -46
  112. package/build/main/lib/dependencies/parsers/golangParser.d.ts +0 -2
  113. package/build/main/lib/dependencies/parsers/golangParser.js +0 -63
  114. package/build/main/lib/dependencies/parsers/mavenParser.d.ts +0 -2
  115. package/build/main/lib/dependencies/parsers/mavenParser.js +0 -54
  116. package/build/main/lib/dependencies/parsers/npmParser.js +0 -46
  117. package/build/main/lib/dependencies/parsers/pyParser.d.ts +0 -2
  118. package/build/main/lib/dependencies/parsers/pyParser.js +0 -51
  119. package/build/main/lib/dependencies/parsers/rubyParser.js +0 -135
  120. package/build/main/lib/dependencies/parsers/types.d.ts +0 -15
  121. package/build/main/lib/dependencies/parsers/types.js +0 -3
  122. package/build/main/lib/grpc/GrpcConfig.d.ts +0 -4
  123. package/build/main/lib/grpc/GrpcConfig.js +0 -11
  124. package/build/main/old/Dependency.d.ts +0 -9
  125. package/build/main/old/Dependency.js +0 -96
  126. package/build/main/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  127. package/build/main/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -2
  128. package/build/main/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -1
  129. package/build/main/scanoss/api/common/v2/scanoss-common_pb.js +0 -405
  130. package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -42
  131. package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +0 -98
  132. package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -1
  133. package/build/main/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1156
  134. package/build/main/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -21
  135. package/build/main/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -67
  136. package/build/main/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +0 -1
  137. package/build/main/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -15
  138. package/build/module/lib/dependencies/Dependency.d.ts +0 -9
  139. package/build/module/lib/dependencies/Dependency.js +0 -47
  140. package/build/module/lib/dependencies/PurlGenerator.d.ts +0 -2
  141. package/build/module/lib/dependencies/PurlGenerator.js +0 -39
  142. package/build/module/lib/dependencies/parsers/golangParser.d.ts +0 -2
  143. package/build/module/lib/dependencies/parsers/golangParser.js +0 -55
  144. package/build/module/lib/dependencies/parsers/mavenParser.d.ts +0 -2
  145. package/build/module/lib/dependencies/parsers/mavenParser.js +0 -47
  146. package/build/module/lib/dependencies/parsers/npmParser.js +0 -38
  147. package/build/module/lib/dependencies/parsers/pyParser.d.ts +0 -2
  148. package/build/module/lib/dependencies/parsers/pyParser.js +0 -44
  149. package/build/module/lib/dependencies/parsers/rubyParser.js +0 -132
  150. package/build/module/lib/dependencies/parsers/types.d.ts +0 -15
  151. package/build/module/lib/dependencies/parsers/types.js +0 -2
  152. package/build/module/lib/dependencies/parsers/utils.js +0 -15
  153. package/build/module/lib/grpc/GrpcConfig.d.ts +0 -4
  154. package/build/module/lib/grpc/GrpcConfig.js +0 -5
  155. package/build/module/old/Dependency.d.ts +0 -9
  156. package/build/module/old/Dependency.js +0 -72
  157. package/build/module/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  158. package/build/module/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -2
  159. package/build/module/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -1
  160. package/build/module/scanoss/api/common/v2/scanoss-common_pb.js +0 -405
  161. package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -42
  162. package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +0 -98
  163. package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -1
  164. package/build/module/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1156
  165. package/build/module/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -21
  166. package/build/module/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -67
  167. package/build/module/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +0 -1
  168. package/build/module/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -15
  169. package/package-lock.json +0 -18589
  170. package/src/lib/dependencies/Dependency.ts +0 -60
  171. package/src/lib/dependencies/PurlGenerator.ts +0 -45
  172. package/src/lib/dependencies/parsers/pyParser.ts +0 -46
  173. package/src/lib/dependencies/parsers/types.ts +0 -19
@@ -1,21 +0,0 @@
1
- export namespace ScanningService {
2
- namespace echo {
3
- export const path: string;
4
- export const requestStream: boolean;
5
- export const responseStream: boolean;
6
- export const requestType: typeof scanoss_api_common_v2_scanoss$common_pb.EchoRequest;
7
- export const responseType: typeof scanoss_api_common_v2_scanoss$common_pb.EchoResponse;
8
- export { serialize_scanoss_api_common_v2_EchoRequest as requestSerialize };
9
- export { deserialize_scanoss_api_common_v2_EchoRequest as requestDeserialize };
10
- export { serialize_scanoss_api_common_v2_EchoResponse as responseSerialize };
11
- export { deserialize_scanoss_api_common_v2_EchoResponse as responseDeserialize };
12
- }
13
- }
14
- export var ScanningClient: grpc.ServiceClientConstructor;
15
- import scanoss_api_common_v2_scanoss$common_pb = require("../../../../scanoss/api/common/v2/scanoss-common_pb.js");
16
- declare function serialize_scanoss_api_common_v2_EchoRequest(arg: any): Buffer;
17
- declare function deserialize_scanoss_api_common_v2_EchoRequest(buffer_arg: any): scanoss_api_common_v2_scanoss$common_pb.EchoRequest;
18
- declare function serialize_scanoss_api_common_v2_EchoResponse(arg: any): Buffer;
19
- declare function deserialize_scanoss_api_common_v2_EchoResponse(buffer_arg: any): scanoss_api_common_v2_scanoss$common_pb.EchoResponse;
20
- import grpc = require("@grpc/grpc-js");
21
- export {};
@@ -1,67 +0,0 @@
1
- // @ts-nocheck
2
- // GENERATED CODE -- DO NOT EDIT!
3
- // Original file comments:
4
- //
5
- // SPDX-License-Identifier: MIT
6
- //
7
- // Copyright (c) 2021, SCANOSS
8
- //
9
- // Permission is hereby granted, free of charge, to any person obtaining a copy
10
- // of this software and associated documentation files (the "Software"), to deal
11
- // in the Software without restriction, including without limitation the rights
12
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
- // copies of the Software, and to permit persons to whom the Software is
14
- // furnished to do so, subject to the following conditions:
15
- //
16
- // The above copyright notice and this permission notice shall be included in
17
- // all copies or substantial portions of the Software.
18
- //
19
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
- // THE SOFTWARE.
26
- //
27
- // **
28
- // Scanning definition details
29
- // *
30
- 'use strict';
31
- const grpc = require('@grpc/grpc-js');
32
- const scanoss_api_common_v2_scanoss$common_pb = require('../../../../scanoss/api/common/v2/scanoss-common_pb.js');
33
- function serialize_scanoss_api_common_v2_EchoRequest(arg) {
34
- if (!(arg instanceof scanoss_api_common_v2_scanoss$common_pb.EchoRequest)) {
35
- throw new Error('Expected argument of type scanoss.api.common.v2.EchoRequest');
36
- }
37
- return Buffer.from(arg.serializeBinary());
38
- }
39
- function deserialize_scanoss_api_common_v2_EchoRequest(buffer_arg) {
40
- return scanoss_api_common_v2_scanoss$common_pb.EchoRequest.deserializeBinary(new Uint8Array(buffer_arg));
41
- }
42
- function serialize_scanoss_api_common_v2_EchoResponse(arg) {
43
- if (!(arg instanceof scanoss_api_common_v2_scanoss$common_pb.EchoResponse)) {
44
- throw new Error('Expected argument of type scanoss.api.common.v2.EchoResponse');
45
- }
46
- return Buffer.from(arg.serializeBinary());
47
- }
48
- function deserialize_scanoss_api_common_v2_EchoResponse(buffer_arg) {
49
- return scanoss_api_common_v2_scanoss$common_pb.EchoResponse.deserializeBinary(new Uint8Array(buffer_arg));
50
- }
51
- // Expose all of the SCANOSS Scanning RPCs here
52
- const ScanningService = exports.ScanningService = {
53
- // Standard echo
54
- echo: {
55
- path: '/scanoss.api.scanning.v2.Scanning/Echo',
56
- requestStream: false,
57
- responseStream: false,
58
- requestType: scanoss_api_common_v2_scanoss$common_pb.EchoRequest,
59
- responseType: scanoss_api_common_v2_scanoss$common_pb.EchoResponse,
60
- requestSerialize: serialize_scanoss_api_common_v2_EchoRequest,
61
- requestDeserialize: deserialize_scanoss_api_common_v2_EchoRequest,
62
- responseSerialize: serialize_scanoss_api_common_v2_EchoResponse,
63
- responseDeserialize: deserialize_scanoss_api_common_v2_EchoResponse,
64
- },
65
- };
66
- exports.ScanningClient = grpc.makeGenericClientConstructor(ScanningService);
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm9zcy1zY2FubmluZ19ncnBjX3BiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjYW5vc3MvYXBpL3NjYW5uaW5nL3YyL3NjYW5vc3Mtc2Nhbm5pbmdfZ3JwY19wYi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjO0FBQ2QsaUNBQWlDO0FBRWpDLDBCQUEwQjtBQUMxQixFQUFFO0FBQ0YsK0JBQStCO0FBQy9CLEVBQUU7QUFDRiw4QkFBOEI7QUFDOUIsRUFBRTtBQUNGLCtFQUErRTtBQUMvRSxnRkFBZ0Y7QUFDaEYsK0VBQStFO0FBQy9FLDRFQUE0RTtBQUM1RSx3RUFBd0U7QUFDeEUsMkRBQTJEO0FBQzNELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0Usc0RBQXNEO0FBQ3RELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsMkVBQTJFO0FBQzNFLDhFQUE4RTtBQUM5RSx5RUFBeUU7QUFDekUsZ0ZBQWdGO0FBQ2hGLDRFQUE0RTtBQUM1RSxnQkFBZ0I7QUFDaEIsRUFBRTtBQUNGLEtBQUs7QUFDTCw4QkFBOEI7QUFDOUIsSUFBSTtBQUNKLFlBQVksQ0FBQztBQUNiLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUN0QyxNQUFNLHVDQUF1QyxHQUFHLE9BQU8sQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO0FBRWxILFNBQVMsMkNBQTJDLENBQUMsR0FBRztJQUN0RCxJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksdUNBQXVDLENBQUMsV0FBVyxDQUFDLEVBQUU7UUFDekUsTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO0tBQ2hGO0lBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRCxTQUFTLDZDQUE2QyxDQUFDLFVBQVU7SUFDL0QsT0FBTyx1Q0FBdUMsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUMzRyxDQUFDO0FBRUQsU0FBUyw0Q0FBNEMsQ0FBQyxHQUFHO0lBQ3ZELElBQUksQ0FBQyxDQUFDLEdBQUcsWUFBWSx1Q0FBdUMsQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUMxRSxNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7S0FDakY7SUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVELFNBQVMsOENBQThDLENBQUMsVUFBVTtJQUNoRSxPQUFPLHVDQUF1QyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQzVHLENBQUM7QUFHRCwrQ0FBK0M7QUFDL0MsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsR0FBRztJQUNoRCxnQkFBZ0I7SUFDaEIsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLHdDQUF3QztRQUM5QyxhQUFhLEVBQUUsS0FBSztRQUNwQixjQUFjLEVBQUUsS0FBSztRQUNyQixXQUFXLEVBQUUsdUNBQXVDLENBQUMsV0FBVztRQUNoRSxZQUFZLEVBQUUsdUNBQXVDLENBQUMsWUFBWTtRQUNsRSxnQkFBZ0IsRUFBRSwyQ0FBMkM7UUFDN0Qsa0JBQWtCLEVBQUUsNkNBQTZDO1FBQ2pFLGlCQUFpQixFQUFFLDRDQUE0QztRQUMvRCxtQkFBbUIsRUFBRSw4Q0FBOEM7S0FDcEU7Q0FDRixDQUFDO0FBRUYsT0FBTyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsZUFBZSxDQUFDLENBQUMifQ==
@@ -1,15 +0,0 @@
1
- // @ts-nocheck
2
- /**
3
- * @fileoverview
4
- * @enhanceable
5
- * @suppress {messageConventions} JS Compiler reports an error if a variable or
6
- * field starts with 'MSG_' and isn't a translatable message.
7
- * @public
8
- */
9
- // GENERATED CODE -- DO NOT EDIT!
10
- const jspb = require('google-protobuf');
11
- const goog = jspb;
12
- const global = Function('return this')();
13
- const scanoss_api_common_v2_scanoss$common_pb = require('../../../../scanoss/api/common/v2/scanoss-common_pb.js');
14
- goog.object.extend(exports, proto.scanoss.api.scanning.v2);
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm9zcy1zY2FubmluZ19wYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zY2Fub3NzL2FwaS9zY2FubmluZy92Mi9zY2Fub3NzLXNjYW5uaW5nX3BiLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWM7QUFDZDs7Ozs7O0dBTUc7QUFDSCxpQ0FBaUM7QUFFakMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ2xCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO0FBRXpDLE1BQU0sdUNBQXVDLEdBQUcsT0FBTyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7QUFDbEgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyJ9
@@ -1,9 +0,0 @@
1
- import { IDependencyResponse } from "./DependencyTypes";
2
- export declare class Dependency {
3
- private workDirectory;
4
- private resultFilePath;
5
- constructor();
6
- scan(fileList: Array<string>): Promise<IDependencyResponse>;
7
- setWorkDirectory(workDirectory: string): void;
8
- private adapterToDependencyResponse;
9
- }
@@ -1,47 +0,0 @@
1
- import os from "os";
2
- import fs from "fs";
3
- import { generateDependenciesPurls } from "./PurlGenerator";
4
- import { PackageURL } from "packageurl-js";
5
- export class Dependency {
6
- workDirectory;
7
- resultFilePath;
8
- constructor() {
9
- this.setWorkDirectory(`${os.tmpdir()}/depscanner-${new Date().getTime()}`);
10
- }
11
- async scan(fileList) {
12
- const toGrpc = await generateDependenciesPurls(fileList);
13
- // Here we should call to the grpc server
14
- return this.adapterToDependencyResponse(toGrpc);
15
- }
16
- setWorkDirectory(workDirectory) {
17
- this.workDirectory = workDirectory;
18
- this.resultFilePath = `${this.workDirectory}/dependencies.json`;
19
- if (!fs.existsSync(this.workDirectory))
20
- fs.mkdirSync(this.workDirectory);
21
- }
22
- adapterToDependencyResponse(dependencies) {
23
- const results = { files: [] };
24
- for (const dependency of dependencies.files) {
25
- let depArr = [];
26
- for (const purl of dependency.purls) {
27
- const pkg = PackageURL.fromString(purl.purl);
28
- depArr.push({
29
- component: null,
30
- purl: purl.purl,
31
- version: pkg.version,
32
- licenses: [{ name: null }]
33
- });
34
- }
35
- let fileArr = {};
36
- fileArr = ({
37
- file: dependency.file,
38
- id: "dependency",
39
- status: "pending",
40
- dependencies: depArr
41
- });
42
- results.files.push(fileArr);
43
- }
44
- return results;
45
- }
46
- }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGVwZW5kZW5jaWVzL0RlcGVuZGVuY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUlwQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE1BQU0sT0FBTyxVQUFVO0lBRWIsYUFBYSxDQUFTO0lBRXRCLGNBQWMsQ0FBUztJQUUvQjtRQUNFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsZUFBZSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBRSxRQUF1QjtRQUN4QyxNQUFNLE1BQU0sR0FBRyxNQUFNLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pELHlDQUF5QztRQUN6QyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsYUFBcUI7UUFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLG9CQUFvQixDQUFDO1FBRWhFLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU8sMkJBQTJCLENBQUUsWUFBZ0M7UUFDbkUsTUFBTSxPQUFPLEdBQXdCLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO1FBRWpELEtBQUssTUFBTSxVQUFVLElBQUksWUFBWSxDQUFDLEtBQUssRUFBQztZQUMxQyxJQUFJLE1BQU0sR0FBdUIsRUFBRSxDQUFDO1lBQ3BDLEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRTtnQkFDbkMsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRTdDLE1BQU0sQ0FBQyxJQUFJLENBQUM7b0JBQ1YsU0FBUyxFQUFFLElBQUk7b0JBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO29CQUNmLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztvQkFDcEIsUUFBUSxFQUFFLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUM7aUJBQ3pCLENBQUMsQ0FBQzthQUNKO1lBRUQsSUFBSSxPQUFPLEdBQVUsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sR0FBRyxDQUFDO2dCQUNULElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtnQkFDckIsRUFBRSxFQUFFLFlBQVk7Z0JBQ2hCLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixZQUFZLEVBQUUsTUFBTTthQUNyQixDQUFDLENBQUM7WUFFSCxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3QjtRQUNELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7Q0FDRiJ9
@@ -1,2 +0,0 @@
1
- import { FileListDependency } from './parsers/types';
2
- export declare function generateDependenciesPurls(files: Array<string>): Promise<FileListDependency>;
@@ -1,39 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import { pomParser } from './parsers/mavenParser';
4
- import { packagelockParser, packageParser } from './parsers/npmParser';
5
- import { requirementsParser } from './parsers/pyParser';
6
- import { gemfilelockParser, gemfileParser } from './parsers/rubyParser';
7
- import { goModParser } from './parsers/golangParser';
8
- /*
9
- This is a hash map that connect a filename with it's own parser function
10
- Any parser function must return a FileDependency object (See type.ts file in src/parser
11
- */
12
- const Parser = {
13
- 'requirements.txt': requirementsParser,
14
- 'pom.xml': pomParser,
15
- 'package.json': packageParser,
16
- 'package-lock.json': packagelockParser,
17
- 'Gemfile': gemfileParser,
18
- 'Gemfile.lock': gemfilelockParser,
19
- 'go.mod': goModParser,
20
- };
21
- export async function generateDependenciesPurls(files) {
22
- let results = { files: [] };
23
- for (const filePath of files) {
24
- const fileName = path.basename(filePath);
25
- if (Parser[fileName] != null) {
26
- try {
27
- const fileContent = await fs.promises.readFile(filePath, 'utf8');
28
- const dependency = Parser[fileName](fileContent, filePath);
29
- if (dependency.purls.length != 0)
30
- results.files.push(dependency);
31
- }
32
- catch (error) {
33
- console.error(`Error parsing file: ${filePath}\n`, error);
34
- }
35
- }
36
- }
37
- return results;
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHVybEdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGVwZW5kZW5jaWVzL1B1cmxHZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUl4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHckQ7OztFQUdFO0FBQ0YsTUFBTSxNQUFNLEdBQXNCO0lBQzlCLGtCQUFrQixFQUFFLGtCQUFrQjtJQUN0QyxTQUFTLEVBQUUsU0FBUztJQUNwQixjQUFjLEVBQUUsYUFBYTtJQUM3QixtQkFBbUIsRUFBRSxpQkFBaUI7SUFDdEMsU0FBUyxFQUFFLGFBQWE7SUFDeEIsY0FBYyxFQUFFLGlCQUFpQjtJQUNqQyxRQUFRLEVBQUUsV0FBVztDQUN4QixDQUFDO0FBR0YsTUFBTSxDQUFDLEtBQUssVUFBVSx5QkFBeUIsQ0FBQyxLQUFvQjtJQUNoRSxJQUFJLE9BQU8sR0FBdUIsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDOUMsS0FBSyxNQUFNLFFBQVEsSUFBSSxLQUFLLEVBQUU7UUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxJQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDM0IsSUFBSTtnQkFDRixNQUFNLFdBQVcsR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDakUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDM0QsSUFBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDO29CQUMzQixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNwQztZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLFFBQVEsSUFBSSxFQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzFEO1NBQ0Y7S0FDSjtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUMifQ==
@@ -1,2 +0,0 @@
1
- import { FileDependency } from "./types";
2
- export declare function goModParser(fileContent: string, filePath: string): FileDependency;
@@ -1,55 +0,0 @@
1
- import { PackageURL } from "packageurl-js";
2
- import path from "path";
3
- function parseModule(str) {
4
- const res = /(?<type>[^\s]+)(?:\s)+(?<ns_name>[^\s]+)\s?(?<version>(.*))/.exec(str);
5
- return {
6
- type: res.groups.type,
7
- ns_name: res.groups.ns_name,
8
- version: res.groups.version
9
- };
10
- }
11
- function parseDepLink(str) {
12
- const res = /.*?(?<ns_name>[^\s]+)\s+(?<version>(.*))/.exec(str);
13
- return {
14
- ns_name: res?.groups?.ns_name,
15
- version: res?.groups?.version
16
- };
17
- }
18
- // Removes comments and spaces
19
- function preprocessLine(line) {
20
- if (line.includes("//"))
21
- line = line.substring(0, line.indexOf("//"));
22
- return line.trim();
23
- }
24
- const PURL_TYPE = 'golang';
25
- // See reference on: https://go.dev/ref/mod#go-mod-file
26
- const MANIFEST_FILE = 'go.mod';
27
- export function goModParser(fileContent, filePath) {
28
- // If the file is not a go.mod manifest file, return an empty results
29
- const results = { file: filePath, purls: [] };
30
- if (path.basename(filePath) != MANIFEST_FILE)
31
- return results;
32
- const lines = fileContent.split('\n');
33
- const require = [];
34
- const exclude = [];
35
- for (let num = 0; num < lines.length; num += 1) {
36
- let line = preprocessLine(lines[num]);
37
- if (line.includes('require') && line.includes('(')) {
38
- num += 1;
39
- line = preprocessLine(lines[num]);
40
- while (num < lines.length && line !== ')') {
41
- const { ns_name, version } = parseDepLink(line);
42
- const index = ns_name.lastIndexOf('/');
43
- const namespace = ns_name.substring(0, index);
44
- const name = ns_name.substring(index + 1);
45
- const purlString = new PackageURL(PURL_TYPE, namespace, name, version, undefined, undefined).toString();
46
- results.purls.push({ purl: purlString });
47
- require.push(line);
48
- num += 1;
49
- line = preprocessLine(lines[num]);
50
- }
51
- }
52
- }
53
- return results;
54
- }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29sYW5nUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvcGFyc2Vycy9nb2xhbmdQYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFHeEIsU0FBUyxXQUFXLENBQUUsR0FBVztJQUMvQixNQUFNLEdBQUcsR0FBRyw2REFBNkQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEYsT0FBTztRQUNMLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDckIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTztRQUMzQixPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPO0tBQzVCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUUsR0FBVztJQUNoQyxNQUFNLEdBQUcsR0FBRywwQ0FBMEMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakUsT0FBTztRQUNMLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU87UUFDN0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTztLQUM5QixDQUFDO0FBQ0osQ0FBQztBQUVELDhCQUE4QjtBQUM5QixTQUFTLGNBQWMsQ0FBQyxJQUFZO0lBQ2hDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDckIsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5QyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN2QixDQUFDO0FBS0QsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDO0FBRzNCLHVEQUF1RDtBQUN2RCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUM7QUFDL0IsTUFBTSxVQUFVLFdBQVcsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBRS9ELHFFQUFxRTtJQUNyRSxNQUFNLE9BQU8sR0FBbUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUM1RCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYTtRQUN2QyxPQUFPLE9BQU8sQ0FBQztJQUVuQixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXZDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNuQixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFFbEIsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUcsR0FBRyxJQUFFLENBQUMsRUFBRTtRQUU5QyxJQUFJLElBQUksR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFHdEMsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakQsR0FBRyxJQUFFLENBQUMsQ0FBQztZQUNQLElBQUksR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbEMsT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLEtBQUcsR0FBRyxFQUFFO2dCQUV2QyxNQUFNLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFOUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzlDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUUxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4RyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO2dCQUV2QyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUVuQixHQUFHLElBQUUsQ0FBQyxDQUFDO2dCQUNQLElBQUksR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDbkM7U0FDRjtLQUNGO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyJ9
@@ -1,2 +0,0 @@
1
- import { FileDependency } from "./types";
2
- export declare function pomParser(fileContent: string, filePath: string): FileDependency;
@@ -1,47 +0,0 @@
1
- import path from "path";
2
- import { PackageURL } from "packageurl-js";
3
- const PURL_TYPE = 'maven';
4
- // Parse a pom.txt file from maven manifest file
5
- // See reference on: https://maven.apache.org/guides/introduction/introduction-to-the-pom.html
6
- // and https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
7
- const MANIFEST_FILE = 'pom.xml';
8
- export function pomParser(fileContent, filePath) {
9
- // If the file is not a python manifest file, return an empty results
10
- const results = { file: filePath, purls: [] };
11
- if (path.basename(filePath) != MANIFEST_FILE)
12
- return results;
13
- const dependencies = fileContent.match(/<dependency>((?:.|\n)*?)<\/dependency>/gm);
14
- if (dependencies) {
15
- // TODO: classifier are not supported yet
16
- dependencies.forEach(dependency => {
17
- // Extract groupId. It's the purl namespace
18
- const groupId = dependency.match(/<groupId>([^<]*)<\/groupId>/);
19
- const namespace = groupId ? groupId[1] : '';
20
- // Extract artifact id. It's the purl name
21
- const artifactId = dependency.match(/<artifactId>([^<]*)<\/artifactId>/);
22
- const name = artifactId ? artifactId[1] : '';
23
- const versionReg = dependency.match(/<version>([^<]*)<\/version>/);
24
- let version = versionReg ? versionReg[1] : '';
25
- const ver = version.match(/\${(.*?)}/);
26
- if (ver && ver.length >= 1) {
27
- if (ver[1] === 'project.version') { // TODO: Add support for project.version
28
- version = undefined;
29
- }
30
- else {
31
- const res = fileContent.match(new RegExp(`<${ver[1]}>([^<]*)<\/${ver[1]}>`));
32
- version = res.length >= 1 ? res[1] : '';
33
- }
34
- }
35
- let purlQualifiers;
36
- const type = dependency.match(/<type>([^<]*)<\/type>/);
37
- if (type) {
38
- purlQualifiers = {};
39
- purlQualifiers['type'] = type[1];
40
- }
41
- const purlString = new PackageURL(PURL_TYPE, namespace, name, version, purlQualifiers, undefined).toString();
42
- results.purls.push({ purl: purlString });
43
- });
44
- }
45
- return results;
46
- }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW5QYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9wYXJzZXJzL21hdmVuUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQztBQUcxQixnREFBZ0Q7QUFDaEQsOEZBQThGO0FBQzlGLDZGQUE2RjtBQUM3RixNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDaEMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBRTNELHFFQUFxRTtJQUNyRSxNQUFNLE9BQU8sR0FBbUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUM1RCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYTtRQUN2QyxPQUFPLE9BQU8sQ0FBQztJQUVuQixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDbkYsSUFBRyxZQUFZLEVBQUU7UUFFZix5Q0FBeUM7UUFDekMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNoQywyQ0FBMkM7WUFDM0MsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFNUMsMENBQTBDO1lBQzFDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztZQUN6RSxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRTdDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUNuRSxJQUFJLE9BQU8sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRTlDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkMsSUFBRyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUc7Z0JBQzFCLElBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLGlCQUFpQixFQUFFLEVBQUUsd0NBQXdDO29CQUN6RSxPQUFPLEdBQUcsU0FBUyxDQUFDO2lCQUNyQjtxQkFBTTtvQkFDTCxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDN0UsT0FBTyxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDekM7YUFDRjtZQUVELElBQUksY0FBYyxDQUFDO1lBQ25CLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUN2RCxJQUFHLElBQUksRUFBRTtnQkFDTCxjQUFjLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQ25DO1lBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3RyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDIn0=
@@ -1,38 +0,0 @@
1
- import path from "path";
2
- import { PackageURL } from "packageurl-js";
3
- const PURL_TYPE = 'npm';
4
- // Parse a package.json file from node projects
5
- // See reference on: https://docs.npmjs.com/cli/v8/configuring-npm/package-json
6
- const MANIFEST_FILE = 'package.json';
7
- export function packageParser(fileContent, filePath) {
8
- // If the file is not manifest file, return an empty results
9
- const results = { file: filePath, purls: [] };
10
- if (path.basename(filePath) != MANIFEST_FILE)
11
- return results;
12
- const o = JSON.parse(fileContent);
13
- let devDeps = Object.keys(o.devDependencies || {});
14
- let deps = Object.keys(o.dependencies || {});
15
- let listDeps = [...deps, ...devDeps];
16
- for (const name of listDeps) {
17
- const purlString = new PackageURL(PURL_TYPE, undefined, name, undefined, undefined, undefined).toString();
18
- results.purls.push({ purl: purlString });
19
- }
20
- return results;
21
- }
22
- // Parse a package-lock.json file from node projects
23
- // See reference on: https://docs.npmjs.com/cli/v8/configuring-npm/package-json
24
- const MANIFEST_FILE_1 = 'package-lock.json';
25
- export function packagelockParser(fileContent, filePath) {
26
- const results = { file: filePath, purls: [] };
27
- if (path.basename(filePath) != MANIFEST_FILE_1)
28
- return results;
29
- const o = JSON.parse(fileContent).dependencies;
30
- for (const [key, value] of Object.entries(o)) {
31
- if (!key)
32
- continue;
33
- let purl = new PackageURL(PURL_TYPE, undefined, key, value['version'], undefined, undefined).toString();
34
- results.purls.push({ purl });
35
- }
36
- return results;
37
- }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvcGFyc2Vycy9ucG1QYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBR3hCLCtDQUErQztBQUMvQywrRUFBK0U7QUFDL0UsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDO0FBQ3JDLE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBbUIsRUFBRSxRQUFnQjtJQUMvRCw0REFBNEQ7SUFDNUQsTUFBTSxPQUFPLEdBQW1CLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDNUQsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWE7UUFDdkMsT0FBTyxPQUFPLENBQUM7SUFDbkIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkQsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLElBQUksUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUNyQyxLQUFJLE1BQU0sSUFBSSxJQUFJLFFBQVEsRUFBQztRQUN2QixNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUM7S0FDMUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBR0Qsb0RBQW9EO0FBQ3BELCtFQUErRTtBQUMvRSxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQztBQUM1QyxNQUFNLFVBQVUsaUJBQWlCLENBQUMsV0FBbUIsRUFBRSxRQUFnQjtJQUVuRSxNQUFNLE9BQU8sR0FBbUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUM1RCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksZUFBZTtRQUN6QyxPQUFPLE9BQU8sQ0FBQztJQUVuQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUMvQyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUMxQyxJQUFHLENBQUMsR0FBRztZQUFFLFNBQVM7UUFDbEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2RyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLENBQUM7S0FDOUI7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDIn0=
@@ -1,2 +0,0 @@
1
- import { FileDependency } from "./types";
2
- export declare function requirementsParser(fileContent: string, filePath: string): FileDependency;
@@ -1,44 +0,0 @@
1
- import path from "path";
2
- import { PackageURL } from "packageurl-js";
3
- import { isValidPath, isValidUrl } from './utils';
4
- const PURL_TYPE = 'pypi';
5
- // Parse a requirements.txt file from python projects
6
- // See reference on: https://pip.pypa.io/en/stable/reference/requirements-file-format/
7
- const MANIFEST_FILE = 'requirements.txt';
8
- export function requirementsParser(fileContent, filePath) {
9
- // If the file is not a python manifest file, return an empty results
10
- const results = { file: filePath, purls: [] };
11
- if (path.basename(filePath) != MANIFEST_FILE)
12
- return results;
13
- const lines = fileContent.split('\n');
14
- let compName = '';
15
- let compVer = '';
16
- for (let line of lines) {
17
- line = line.trim();
18
- if (!line.startsWith('#') && line.length > 0) { // Avoid comments and new lines
19
- if (isValidUrl(line)) {
20
- // For reference about the regex see https://www.rfc-editor.org/rfc/rfc3986#appendix-B
21
- const res = line.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/);
22
- continue;
23
- }
24
- else if (isValidPath(line)) {
25
- continue;
26
- }
27
- else if (line.startsWith('-r')) {
28
- continue;
29
- } // recursive dependencies (NOT SUPPORTED YET)
30
- else {
31
- // Line contains a package name and/or version.
32
- const res = line.match(/^([-\w]+)\s*(?:[>=~!]*)\s*([\d\.]*)/); //Extract name and version
33
- if (res) {
34
- compName = res.length > 1 ? res[1] : ' ';
35
- compVer = undefined;
36
- }
37
- }
38
- const purlString = new PackageURL(PURL_TYPE, undefined, compName, compVer, undefined, undefined).toString();
39
- results.purls.push({ purl: purlString });
40
- }
41
- }
42
- return results;
43
- }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHlQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9wYXJzZXJzL3B5UGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWxELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQztBQUV6QixxREFBcUQ7QUFDckQsc0ZBQXNGO0FBQ3RGLE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDO0FBQ3pDLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBRXBFLHFFQUFxRTtJQUNyRSxNQUFNLE9BQU8sR0FBbUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUM1RCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYTtRQUN2QyxPQUFPLE9BQU8sQ0FBQztJQUduQixNQUFNLEtBQUssR0FBa0IsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxJQUFJLFFBQVEsR0FBVyxFQUFFLENBQUM7SUFDMUIsSUFBSSxPQUFPLEdBQVcsRUFBRSxDQUFDO0lBRXpCLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUUsRUFBRSwrQkFBK0I7WUFDekUsSUFBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pCLHNGQUFzRjtnQkFDdEYsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO2dCQUN4RixTQUFTO2FBQ1o7aUJBQ0ksSUFBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQUMsU0FBUzthQUFDO2lCQUNqQyxJQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQUMsU0FBUzthQUFDLENBQUMsNkNBQTZDO2lCQUNuRjtnQkFDRCwrQ0FBK0M7Z0JBQy9DLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQyxDQUFJLDBCQUEwQjtnQkFDNUYsSUFBSSxHQUFHLEVBQUU7b0JBQ0wsUUFBUSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztvQkFDekMsT0FBTyxHQUFHLFNBQVMsQ0FBQztpQkFDdkI7YUFDSjtZQUNELE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztTQUMxQztLQUNKO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQyJ9
@@ -1,132 +0,0 @@
1
- import path from "path";
2
- import { PackageURL } from "packageurl-js";
3
- const PURL_TYPE = 'gem';
4
- // Parse a gemfile file from ruby
5
- // See reference on: https://bundler.io/gemfile.html
6
- // and https://bundler.io/man/gemfile.5.html
7
- const MANIFEST_FILE = 'Gemfile';
8
- export function gemfileParser(fileContent, filePath) {
9
- // If the file is not a manifest file, return an empty results
10
- const results = { file: filePath, purls: [] };
11
- if (path.basename(filePath) != MANIFEST_FILE)
12
- return results;
13
- const lines = fileContent.split('\n');
14
- let compName = '';
15
- for (let line of lines) {
16
- line = line.trim();
17
- if (!line.startsWith('#') && line.length > 0) { // Avoid comments and empty lines
18
- // Line contains a package name and/or version.
19
- const res = line.match(/^gem\s*(["']\w+["'])/); //Extract name
20
- if (res) {
21
- compName = res.length > 1 ? res[1] : ' ';
22
- compName = compName.replace(/['"]/g, '');
23
- const purlString = new PackageURL(PURL_TYPE, undefined, compName, undefined, undefined, undefined).toString();
24
- results.purls.push({ purl: purlString });
25
- }
26
- }
27
- }
28
- return results;
29
- }
30
- const MANIFEST_FILE_1 = 'Gemfile.lock';
31
- export function gemfilelockParser(fileContent, filePath) {
32
- // If the file is not a manifest file, return an empty results
33
- const results = { file: filePath, purls: [] };
34
- if (path.basename(filePath) != MANIFEST_FILE_1)
35
- return results;
36
- const gemlockParser = new GemfileLockParser();
37
- const purls = gemlockParser.getDependencies(fileContent);
38
- for (const purl of purls) {
39
- results.purls.push({ purl });
40
- }
41
- return results;
42
- }
43
- // Section headings: these are also used as switches to track a parsing state
44
- const PATH = 'PATH';
45
- const GIT = 'GIT';
46
- const SVN = 'SVN';
47
- const GEM = 'GEM';
48
- const PLATFORMS = 'PLATFORMS';
49
- const DEPENDENCIES = 'DEPENDENCIES';
50
- const SPECS = ' specs:';
51
- // types of Gems, which is really where they are provisioned from
52
- // RubyGems repo, local path or VCS
53
- const GEM_TYPES = [GEM, PATH, GIT, SVN];
54
- const specRegex = /(?<name>[^ \)\(,!:]+)?(?: \((?<version>[^-]*?)(?:-(?<platform>[^!]*))?\))?/;
55
- const firstDepLevelRegex = /^ {4}(?! )/;
56
- /*
57
- The parsing use a simple state machine, switching states based on sections
58
- headings. The result is a list of purls
59
- */
60
- class GemfileLockParser {
61
- statesMap;
62
- state;
63
- current_options;
64
- current_gem;
65
- purlList;
66
- constructor() {
67
- this.purlList = [];
68
- // map of a line start string to the next parsing state function
69
- this.statesMap = {};
70
- this.statesMap[DEPENDENCIES] = this.parseDependency;
71
- this.statesMap[PLATFORMS] = this.parsePlatform;
72
- this.statesMap[GIT] = this.parseOptions;
73
- this.statesMap[PATH] = this.parseOptions;
74
- this.statesMap[SVN] = this.parseOptions;
75
- this.statesMap[GEM] = this.parseOptions;
76
- this.statesMap[SPECS] = this.parseSpec;
77
- }
78
- getDependencies(filecontent) {
79
- this.resetState();
80
- let file = filecontent.split('\n');
81
- for (let line of file) {
82
- line = line.trimEnd();
83
- //reset state on empty lines
84
- if (!line.length) {
85
- this.resetState();
86
- continue;
87
- }
88
- //switch to new state
89
- if (line in this.statesMap) {
90
- if (GEM_TYPES.includes(line))
91
- this.current_gem = line;
92
- this.state = this.statesMap[line];
93
- continue;
94
- }
95
- // process the line
96
- if (this.state)
97
- this.state(line);
98
- }
99
- this.refine();
100
- return this.purlList;
101
- }
102
- resetState() {
103
- this.current_options = {};
104
- this.state = null;
105
- }
106
- parseOptions(line) {
107
- const match = line.match(/\s*(\w+):\s*(.*)/);
108
- const key = match.length >= 1 ? match[1] : null;
109
- const value = match.length >= 2 ? match[2] : null;
110
- if (key)
111
- this.current_options[key] = value;
112
- }
113
- parseDependency(line) { }
114
- parsePlatform(line) { }
115
- parseSpec(line) {
116
- if (this.current_gem == GEM) {
117
- if (firstDepLevelRegex.test(line)) {
118
- line = line.trimStart();
119
- const match = line.match(specRegex);
120
- const purl = new PackageURL(PURL_TYPE, undefined, match.groups.name, match.groups.version, undefined, undefined).toString();
121
- this.purlList.push(purl);
122
- }
123
- else { // Second level of dependence
124
- }
125
- }
126
- if (this.current_gem == GIT) { }
127
- // Purl from local dependencies are not generated
128
- if (this.current_gem == PATH) { }
129
- }
130
- refine() { }
131
- }
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVieVBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGVwZW5kZW5jaWVzL3BhcnNlcnMvcnVieVBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUM7QUFHeEIsaUNBQWlDO0FBQ2pDLG9EQUFvRDtBQUNwRCw0Q0FBNEM7QUFDNUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ2hDLE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBbUIsRUFBRSxRQUFnQjtJQUUvRCw4REFBOEQ7SUFDOUQsTUFBTSxPQUFPLEdBQW1CLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDNUQsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWE7UUFDdkMsT0FBTyxPQUFPLENBQUM7SUFHbkIsTUFBTSxLQUFLLEdBQWtCLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckQsSUFBSSxRQUFRLEdBQVcsRUFBRSxDQUFDO0lBRTFCLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUUsRUFBRSxpQ0FBaUM7WUFDM0UsK0NBQStDO1lBQy9DLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFJLGNBQWM7WUFDakUsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsUUFBUSxHQUFHLEdBQUcs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
@@ -1,15 +0,0 @@
1
- export interface Purl {
2
- purl: string;
3
- }
4
- export interface FileDependency {
5
- file: string;
6
- purls: Array<Purl>;
7
- }
8
- export interface FileListDependency {
9
- files: Array<FileDependency>;
10
- }
11
- declare type ParserFuncType = (fileContent: string, filePath: string) => FileDependency;
12
- export interface ParserDefinitions {
13
- [key: string]: ParserFuncType;
14
- }
15
- export {};
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9wYXJzZXJzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -1,15 +0,0 @@
1
- import { URL } from "url";
2
- export function isValidUrl(string) {
3
- let url;
4
- try {
5
- new URL(string);
6
- }
7
- catch (_) {
8
- return false;
9
- }
10
- return true;
11
- }
12
- export function isValidPath(string) {
13
- return /^((?:\.\.?)|(?:[a-zA-Z]:\\)|(?:\/))/gm.test(string);
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RlcGVuZGVuY2llcy9wYXJzZXJzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFMUIsTUFBTSxVQUFVLFVBQVUsQ0FBQyxNQUFjO0lBQ3JDLElBQUksR0FBUSxDQUFDO0lBQ2IsSUFBSTtRQUNGLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ2pCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUgsTUFBTSxVQUFVLFdBQVcsQ0FBQyxNQUFjO0lBQ3hDLE9BQU8sdUNBQXVDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzlELENBQUMifQ==
@@ -1,4 +0,0 @@
1
- export declare class GrpcConfig {
2
- DEFAULT_GRPC_PORT: number;
3
- DEFAULT_GRPC_HOST: string;
4
- }
@@ -1,5 +0,0 @@
1
- export class GrpcConfig {
2
- DEFAULT_GRPC_PORT = 50051;
3
- DEFAULT_GRPC_HOST = 'localhost';
4
- }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JwY0NvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZ3JwYy9HcnBjQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0lBRXJCLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUUxQixpQkFBaUIsR0FBRyxXQUFXLENBQUM7Q0FFakMifQ==