package-audit 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/package/audit/cli.rb +42 -42
- data/lib/package/audit/const/cmd.rb +3 -3
- data/lib/package/audit/const/fields.rb +4 -4
- data/lib/package/audit/const/file.rb +1 -0
- data/lib/package/audit/const/yaml.rb +13 -0
- data/lib/package/audit/enum/option.rb +13 -0
- data/lib/package/audit/enum/report.rb +12 -0
- data/lib/package/audit/enum/technology.rb +14 -0
- data/lib/package/audit/formatter/risk.rb +1 -1
- data/lib/package/audit/formatter/version.rb +1 -1
- data/lib/package/audit/formatter/version_date.rb +1 -1
- data/lib/package/audit/formatter/vulnerability.rb +1 -1
- data/lib/package/audit/{package.rb → models/package.rb} +8 -7
- data/lib/package/audit/npm/node_collection.rb +25 -14
- data/lib/package/audit/npm/vulnerability_finder.rb +4 -3
- data/lib/package/audit/npm/yarn_lock_parser.rb +10 -6
- data/lib/package/audit/ruby/bundler_specs.rb +16 -9
- data/lib/package/audit/ruby/gem_collection.rb +36 -15
- data/lib/package/audit/ruby/gem_meta_data.rb +1 -1
- data/lib/package/audit/ruby/vulnerability_finder.rb +4 -3
- data/lib/package/audit/services/command_parser.rb +103 -0
- data/lib/package/audit/services/package_filter.rb +39 -0
- data/lib/package/audit/services/package_finder.rb +58 -0
- data/lib/package/audit/{printer.rb → services/package_printer.rb} +12 -11
- data/lib/package/audit/{risk_calculator.rb → services/risk_calculator.rb} +8 -4
- data/lib/package/audit/technology/detector.rb +40 -0
- data/lib/package/audit/technology/validator.rb +56 -0
- data/lib/package/audit/util/summary_printer.rb +22 -11
- data/lib/package/audit/version.rb +1 -1
- data/sig/package/audit/cli.rbs +2 -0
- data/sig/package/audit/const/fields.rbs +2 -1
- data/sig/package/audit/const/file.rbs +1 -0
- data/sig/package/audit/const/yaml.rbs +13 -0
- data/sig/package/audit/enum/option.rbs +13 -0
- data/sig/package/audit/enum/report.rbs +12 -0
- data/sig/package/audit/enum/technology.rbs +12 -0
- data/sig/package/audit/{package.rbs → models/package.rbs} +3 -1
- data/sig/package/audit/{risk.rbs → models/risk.rbs} +1 -1
- data/sig/package/audit/npm/node_collection.rbs +4 -5
- data/sig/package/audit/npm/vulnerability_finder.rbs +3 -2
- data/sig/package/audit/npm/yarn_lock_parser.rbs +1 -0
- data/sig/package/audit/ruby/bundler_specs.rbs +2 -2
- data/sig/package/audit/ruby/gem_collection.rbs +11 -4
- data/sig/package/audit/ruby/vulnerability_finder.rbs +3 -0
- data/sig/package/audit/services/command_parser.rbs +31 -0
- data/sig/package/audit/services/package_filter.rbs +19 -0
- data/sig/package/audit/services/package_finder.rbs +23 -0
- data/sig/package/audit/{printer.rbs → services/package_printer.rbs} +3 -3
- data/sig/package/audit/technology/detector.rbs +19 -0
- data/sig/package/audit/technology/validator.rbs +19 -0
- data/sig/package/audit/util/summary_printer.rbs +5 -5
- metadata +30 -14
- data/lib/package/audit/command_service.rb +0 -187
- data/sig/package/audit/command_service.rbs +0 -29
- /data/lib/package/audit/{risk.rb → models/risk.rb} +0 -0
- /data/lib/package/audit/{duplicate_package_merger.rb → services/duplicate_package_merger.rb} +0 -0
- /data/sig/package/audit/{duplicate_package_merger.rbs → services/duplicate_package_merger.rbs} +0 -0
- /data/sig/package/audit/{risk_calculator.rbs → services/risk_calculator.rbs} +0 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
module Package
|
2
|
+
module Audit
|
3
|
+
class CommandParser
|
4
|
+
@config: Hash[String, untyped]?
|
5
|
+
@dir: String
|
6
|
+
@options: Hash[String, untyped]
|
7
|
+
@report: Symbol
|
8
|
+
@technologies: Array[String]
|
9
|
+
|
10
|
+
def initialize: (String, Hash[String, untyped], Symbol) -> void
|
11
|
+
|
12
|
+
def run: -> bool
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def learn_more_command: (String) -> String?
|
17
|
+
|
18
|
+
def parse_config_file: -> Hash[String, untyped]?
|
19
|
+
|
20
|
+
def parse_technologies: -> Array[String]
|
21
|
+
|
22
|
+
def print_disclaimer: (String) -> void
|
23
|
+
|
24
|
+
def print_results: (String, Array[Package], Array[Package]) -> void
|
25
|
+
|
26
|
+
def print_summary: (String, Array[Package], Array[Package]) -> void
|
27
|
+
|
28
|
+
def report_fields: -> Array[Symbol]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Package
|
2
|
+
module Audit
|
3
|
+
class PackageFilter
|
4
|
+
@config: Hash[String, untyped]?
|
5
|
+
|
6
|
+
def initialize: (Hash[String, untyped]?) -> void
|
7
|
+
|
8
|
+
def ignored?: (Package) -> bool
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def ignore_package?: (Package, Hash[String, untyped]?) -> bool
|
13
|
+
|
14
|
+
def pkg_version_in_config?: (Package, Hash[String, untyped]?) -> bool
|
15
|
+
|
16
|
+
def pkg_yaml_from_config: (Package) -> Hash[String, untyped]?
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Package
|
2
|
+
module Audit
|
3
|
+
class PackageFinder
|
4
|
+
@config: Hash[String, untyped]?
|
5
|
+
@dir: String
|
6
|
+
@report: Symbol
|
7
|
+
|
8
|
+
def initialize: (Hash[String, untyped]?, String, Symbol) -> void
|
9
|
+
|
10
|
+
def run: (String) -> Array[Array[Package]]
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def filter_pkgs_based_on_config: (Array[Package]) -> Array[Package]
|
15
|
+
|
16
|
+
def find_by_technology: (String) -> Array[Package]
|
17
|
+
|
18
|
+
def find_node: -> Array[Package]
|
19
|
+
|
20
|
+
def find_ruby: -> Array[Package]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
module Package
|
2
2
|
module Audit
|
3
|
-
class
|
3
|
+
class PackagePrinter
|
4
4
|
BASH_FORMATTING_REGEX: Regexp
|
5
5
|
COLUMN_GAP: Integer
|
6
6
|
CSV_HEADERS: Hash[Symbol, String]
|
7
7
|
|
8
8
|
@pkgs: Array[Package]
|
9
|
-
@options: Hash[
|
9
|
+
@options: Hash[String, untyped]
|
10
10
|
|
11
|
-
def initialize: (
|
11
|
+
def initialize: (Hash[String, untyped], Array[Package]) -> void
|
12
12
|
|
13
13
|
def print: (Array[Symbol]) -> void
|
14
14
|
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Package
|
2
|
+
module Audit
|
3
|
+
module Technology
|
4
|
+
class Detector
|
5
|
+
@dir: String
|
6
|
+
|
7
|
+
def initialize: (String) -> void
|
8
|
+
|
9
|
+
def detect: -> Array[String]
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def node?: -> bool
|
14
|
+
|
15
|
+
def ruby?: -> bool
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Package
|
2
|
+
module Audit
|
3
|
+
module Technology
|
4
|
+
class Validator
|
5
|
+
@dir: String
|
6
|
+
|
7
|
+
def initialize: (String) -> void
|
8
|
+
|
9
|
+
def validate!: (String) -> void
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def validate_node!: -> void
|
14
|
+
|
15
|
+
def validate_ruby!: -> void
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -2,17 +2,17 @@ module Package
|
|
2
2
|
module Audit
|
3
3
|
module Util
|
4
4
|
module SummaryPrinter
|
5
|
-
def self.
|
5
|
+
def self.all: -> void
|
6
6
|
|
7
|
-
def self.
|
7
|
+
def self.deprecated: -> void
|
8
8
|
|
9
9
|
def self.risk: -> void
|
10
10
|
|
11
|
-
def self.statistics: (String, Array[Package]) -> void
|
11
|
+
def self.statistics: (String, Symbol, Array[Package], Array[Package]) -> void
|
12
12
|
|
13
|
-
def self.total: (String, Array[Package]) -> void
|
13
|
+
def self.total: (String, Symbol, Array[Package], Array[Package]) -> void
|
14
14
|
|
15
|
-
def self.vulnerable: (String, String) -> void
|
15
|
+
def self.vulnerable: (String, String?) -> void
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: package-audit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vadim Kononov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler-audit
|
@@ -49,64 +49,80 @@ extra_rdoc_files: []
|
|
49
49
|
files:
|
50
50
|
- exe/package-audit
|
51
51
|
- lib/package/audit/cli.rb
|
52
|
-
- lib/package/audit/command_service.rb
|
53
52
|
- lib/package/audit/const/cmd.rb
|
54
53
|
- lib/package/audit/const/fields.rb
|
55
54
|
- lib/package/audit/const/file.rb
|
56
55
|
- lib/package/audit/const/time.rb
|
57
|
-
- lib/package/audit/
|
56
|
+
- lib/package/audit/const/yaml.rb
|
58
57
|
- lib/package/audit/enum/environment.rb
|
58
|
+
- lib/package/audit/enum/option.rb
|
59
|
+
- lib/package/audit/enum/report.rb
|
59
60
|
- lib/package/audit/enum/risk_explanation.rb
|
60
61
|
- lib/package/audit/enum/risk_type.rb
|
62
|
+
- lib/package/audit/enum/technology.rb
|
61
63
|
- lib/package/audit/enum/vulnerability_type.rb
|
62
64
|
- lib/package/audit/formatter/base.rb
|
63
65
|
- lib/package/audit/formatter/risk.rb
|
64
66
|
- lib/package/audit/formatter/version.rb
|
65
67
|
- lib/package/audit/formatter/version_date.rb
|
66
68
|
- lib/package/audit/formatter/vulnerability.rb
|
69
|
+
- lib/package/audit/models/package.rb
|
70
|
+
- lib/package/audit/models/risk.rb
|
67
71
|
- lib/package/audit/npm/node_collection.rb
|
68
72
|
- lib/package/audit/npm/npm_meta_data.rb
|
69
73
|
- lib/package/audit/npm/vulnerability_finder.rb
|
70
74
|
- lib/package/audit/npm/yarn_lock_parser.rb
|
71
|
-
- lib/package/audit/package.rb
|
72
|
-
- lib/package/audit/printer.rb
|
73
|
-
- lib/package/audit/risk.rb
|
74
|
-
- lib/package/audit/risk_calculator.rb
|
75
75
|
- lib/package/audit/ruby/bundler_specs.rb
|
76
76
|
- lib/package/audit/ruby/gem_collection.rb
|
77
77
|
- lib/package/audit/ruby/gem_meta_data.rb
|
78
78
|
- lib/package/audit/ruby/vulnerability_finder.rb
|
79
|
+
- lib/package/audit/services/command_parser.rb
|
80
|
+
- lib/package/audit/services/duplicate_package_merger.rb
|
81
|
+
- lib/package/audit/services/package_filter.rb
|
82
|
+
- lib/package/audit/services/package_finder.rb
|
83
|
+
- lib/package/audit/services/package_printer.rb
|
84
|
+
- lib/package/audit/services/risk_calculator.rb
|
85
|
+
- lib/package/audit/technology/detector.rb
|
86
|
+
- lib/package/audit/technology/validator.rb
|
79
87
|
- lib/package/audit/util/bash_color.rb
|
80
88
|
- lib/package/audit/util/summary_printer.rb
|
81
89
|
- lib/package/audit/version.rb
|
82
90
|
- sig/package/audit/cli.rbs
|
83
|
-
- sig/package/audit/command_service.rbs
|
84
91
|
- sig/package/audit/const/cmd.rbs
|
85
92
|
- sig/package/audit/const/fields.rbs
|
86
93
|
- sig/package/audit/const/file.rbs
|
87
94
|
- sig/package/audit/const/time.rbs
|
88
|
-
- sig/package/audit/
|
95
|
+
- sig/package/audit/const/yaml.rbs
|
89
96
|
- sig/package/audit/enum/environment.rbs
|
97
|
+
- sig/package/audit/enum/option.rbs
|
98
|
+
- sig/package/audit/enum/report.rbs
|
90
99
|
- sig/package/audit/enum/risk_explanation.rbs
|
91
100
|
- sig/package/audit/enum/risk_type.rbs
|
101
|
+
- sig/package/audit/enum/technology.rbs
|
92
102
|
- sig/package/audit/enum/vulnerability_type.rbs
|
93
103
|
- sig/package/audit/formatter/base.rbs
|
94
104
|
- sig/package/audit/formatter/risk_printer.rbs
|
95
105
|
- sig/package/audit/formatter/version_date.rbs
|
96
106
|
- sig/package/audit/formatter/version_printer.rbs
|
97
107
|
- sig/package/audit/formatter/vulnerability.rbs
|
108
|
+
- sig/package/audit/models/package.rbs
|
109
|
+
- sig/package/audit/models/risk.rbs
|
98
110
|
- sig/package/audit/npm/node_collection.rbs
|
99
111
|
- sig/package/audit/npm/npm_meta_data.rbs
|
100
112
|
- sig/package/audit/npm/vulnerability_finder.rbs
|
101
113
|
- sig/package/audit/npm/yarn_lock_parser.rbs
|
102
|
-
- sig/package/audit/package.rbs
|
103
|
-
- sig/package/audit/printer.rbs
|
104
|
-
- sig/package/audit/risk.rbs
|
105
|
-
- sig/package/audit/risk_calculator.rbs
|
106
114
|
- sig/package/audit/ruby/bundler_specs.rbs
|
107
115
|
- sig/package/audit/ruby/gem_collection.rbs
|
108
116
|
- sig/package/audit/ruby/gem_meta_data.rbs
|
109
117
|
- sig/package/audit/ruby/vulnerability_finder.rbs
|
118
|
+
- sig/package/audit/services/command_parser.rbs
|
119
|
+
- sig/package/audit/services/duplicate_package_merger.rbs
|
120
|
+
- sig/package/audit/services/package_filter.rbs
|
121
|
+
- sig/package/audit/services/package_finder.rbs
|
122
|
+
- sig/package/audit/services/package_printer.rbs
|
123
|
+
- sig/package/audit/services/risk_calculator.rbs
|
124
|
+
- sig/package/audit/technology/detector.rbs
|
125
|
+
- sig/package/audit/technology/validator.rbs
|
110
126
|
- sig/package/audit/util/bash_color.rbs
|
111
127
|
- sig/package/audit/util/summary_printer.rbs
|
112
128
|
- sig/package/audit/version.rbs
|
@@ -1,187 +0,0 @@
|
|
1
|
-
require_relative './const/cmd'
|
2
|
-
require_relative './const/file'
|
3
|
-
|
4
|
-
module Package
|
5
|
-
module Audit
|
6
|
-
class CommandService # rubocop:disable Metrics/ClassLength
|
7
|
-
RUBY_GEM = 'ruby gem'
|
8
|
-
NODE_MODULE = 'node module'
|
9
|
-
|
10
|
-
def initialize(dir, options)
|
11
|
-
@dir = dir
|
12
|
-
@options = options
|
13
|
-
end
|
14
|
-
|
15
|
-
def all # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
|
16
|
-
pkgs = []
|
17
|
-
|
18
|
-
if ruby?
|
19
|
-
gems = Ruby::GemCollection.all
|
20
|
-
pkgs += gems
|
21
|
-
Printer.new(gems, @options).print(Const::Fields::REPORT)
|
22
|
-
|
23
|
-
unless @options[:csv]
|
24
|
-
if gems.any?
|
25
|
-
Util::SummaryPrinter.statistics(RUBY_GEM, gems)
|
26
|
-
Util::SummaryPrinter.vulnerable(RUBY_GEM, Const::Cmd::BUNDLE_AUDIT)
|
27
|
-
else
|
28
|
-
print_success_message "There are no deprecated, outdated or vulnerable #{RUBY_GEM}s!"
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
if node?
|
34
|
-
npms = Npm::NodeCollection.new(@dir).all
|
35
|
-
pkgs += npms
|
36
|
-
Printer.new(npms, @options).print(Const::Fields::REPORT)
|
37
|
-
|
38
|
-
unless @options[:csv]
|
39
|
-
if npms.any?
|
40
|
-
Util::SummaryPrinter.statistics(NODE_MODULE, npms)
|
41
|
-
Util::SummaryPrinter.vulnerable(NODE_MODULE, Const::Cmd::YARN_AUDIT)
|
42
|
-
else
|
43
|
-
print_success_message "There are no deprecated, outdated or vulnerable #{NODE_MODULE}s!"
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
pkgs.any?
|
49
|
-
end
|
50
|
-
|
51
|
-
def vulnerable # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
|
52
|
-
pkgs = []
|
53
|
-
|
54
|
-
if ruby?
|
55
|
-
gems = Ruby::GemCollection.vulnerable
|
56
|
-
pkgs += gems
|
57
|
-
Printer.new(gems, @options).print(Const::Fields::VULNERABLE)
|
58
|
-
|
59
|
-
unless @options[:csv]
|
60
|
-
if gems.any?
|
61
|
-
Util::SummaryPrinter.total(RUBY_GEM, gems)
|
62
|
-
Util::SummaryPrinter.vulnerable(RUBY_GEM, Const::Cmd::BUNDLE_AUDIT)
|
63
|
-
else
|
64
|
-
print_success_message "There are no #{RUBY_GEM} vulnerabilities!"
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
if node?
|
70
|
-
npms = Npm::NodeCollection.new(@dir).vulnerable
|
71
|
-
pkgs += npms
|
72
|
-
Printer.new(npms, @options).print(Const::Fields::VULNERABLE)
|
73
|
-
|
74
|
-
unless @options[:csv]
|
75
|
-
if npms.any?
|
76
|
-
Util::SummaryPrinter.total(NODE_MODULE, npms)
|
77
|
-
Util::SummaryPrinter.vulnerable(NODE_MODULE, Const::Cmd::YARN_AUDIT)
|
78
|
-
else
|
79
|
-
print_success_message "There are no #{NODE_MODULE} vulnerabilities!"
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
pkgs.any?
|
85
|
-
end
|
86
|
-
|
87
|
-
def outdated # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
|
88
|
-
pkgs = []
|
89
|
-
|
90
|
-
if ruby?
|
91
|
-
gems = Ruby::GemCollection.outdated
|
92
|
-
pkgs += gems
|
93
|
-
Printer.new(gems, @options).print(Const::Fields::OUTDATED)
|
94
|
-
|
95
|
-
unless @options[:csv]
|
96
|
-
if gems.any?
|
97
|
-
Util::SummaryPrinter.total(RUBY_GEM, gems)
|
98
|
-
else
|
99
|
-
print_success_message "There are no outdated #{RUBY_GEM}s!"
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
if node?
|
105
|
-
npms = Npm::NodeCollection.new(@dir).outdated
|
106
|
-
pkgs += npms
|
107
|
-
Printer.new(npms, @options).print(Const::Fields::OUTDATED)
|
108
|
-
|
109
|
-
unless @options[:csv]
|
110
|
-
if npms.any?
|
111
|
-
Util::SummaryPrinter.total(NODE_MODULE, npms)
|
112
|
-
else
|
113
|
-
print_success_message "There are no outdated #{NODE_MODULE}s!"
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
pkgs.any?
|
119
|
-
end
|
120
|
-
|
121
|
-
def deprecated # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
|
122
|
-
pkgs = []
|
123
|
-
|
124
|
-
if ruby?
|
125
|
-
gems = Ruby::GemCollection.deprecated
|
126
|
-
pkgs += gems
|
127
|
-
Printer.new(gems, @options).print(Const::Fields::OUTDATED)
|
128
|
-
|
129
|
-
unless @options[:csv]
|
130
|
-
if gems.any?
|
131
|
-
Util::SummaryPrinter.total(RUBY_GEM, gems)
|
132
|
-
Util::SummaryPrinter.deprecated
|
133
|
-
else
|
134
|
-
print_success_message "There are no potentially deprecated #{RUBY_GEM}s!"
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
if node?
|
140
|
-
npms = Npm::NodeCollection.new(@dir).deprecated
|
141
|
-
pkgs += npms
|
142
|
-
Printer.new(npms, @options).print(Const::Fields::OUTDATED)
|
143
|
-
|
144
|
-
unless @options[:csv]
|
145
|
-
if npms.any?
|
146
|
-
Util::SummaryPrinter.total(NODE_MODULE, npms)
|
147
|
-
Util::SummaryPrinter.deprecated
|
148
|
-
else
|
149
|
-
print_success_message "There are no potentially deprecated #{NODE_MODULE}s!"
|
150
|
-
end
|
151
|
-
end
|
152
|
-
end
|
153
|
-
|
154
|
-
pkgs.any?
|
155
|
-
end
|
156
|
-
|
157
|
-
private
|
158
|
-
|
159
|
-
def ruby?
|
160
|
-
gemfile_present = File.exist?("#{@dir}/#{Const::File::GEMFILE}")
|
161
|
-
gemfile_lock_present = File.exist?("#{@dir}/#{Const::File::GEMFILE_LOCK}")
|
162
|
-
|
163
|
-
if gemfile_present && gemfile_lock_present
|
164
|
-
true
|
165
|
-
elsif gemfile_present
|
166
|
-
raise "#{Const::File::GEMFILE_LOCK} was not found in #{@dir}/"
|
167
|
-
end
|
168
|
-
end
|
169
|
-
|
170
|
-
def node?
|
171
|
-
package_json_present = File.exist?("#{@dir}/#{Const::File::PACKAGE_JSON}")
|
172
|
-
package_lock_json_present = File.exist?("#{@dir}/#{Const::File::PACKAGE_LOCK_JSON}")
|
173
|
-
yarn_lock_present = File.exist?("#{@dir}/#{Const::File::YARN_LOCK}")
|
174
|
-
|
175
|
-
if package_json_present && (package_lock_json_present || yarn_lock_present)
|
176
|
-
true
|
177
|
-
elsif package_json_present
|
178
|
-
raise "#{Const::File::PACKAGE_LOCK_JSON} or #{Const::File::YARN_LOCK} was not found in #{@dir}/"
|
179
|
-
end
|
180
|
-
end
|
181
|
-
|
182
|
-
def print_success_message(msg)
|
183
|
-
puts Util::BashColor.green msg
|
184
|
-
end
|
185
|
-
end
|
186
|
-
end
|
187
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module Package
|
2
|
-
module Audit
|
3
|
-
class CommandService
|
4
|
-
NODE_MODULE: String
|
5
|
-
RUBY_GEM: String
|
6
|
-
|
7
|
-
@dir: String
|
8
|
-
@options: Hash[Symbol, untyped]
|
9
|
-
|
10
|
-
def initialize: (String, Hash[Symbol, untyped]) -> void
|
11
|
-
|
12
|
-
def all: -> bool
|
13
|
-
|
14
|
-
def deprecated: -> bool
|
15
|
-
|
16
|
-
def outdated: -> bool
|
17
|
-
|
18
|
-
def vulnerable: -> bool
|
19
|
-
|
20
|
-
private
|
21
|
-
|
22
|
-
def node?: -> bool?
|
23
|
-
|
24
|
-
def print_success_message: (String) -> void
|
25
|
-
|
26
|
-
def ruby?: -> bool?
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
File without changes
|
/data/lib/package/audit/{duplicate_package_merger.rb → services/duplicate_package_merger.rb}
RENAMED
File without changes
|
/data/sig/package/audit/{duplicate_package_merger.rbs → services/duplicate_package_merger.rbs}
RENAMED
File without changes
|
File without changes
|