pwn 0.5.527 → 0.5.529
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/.ruby-version +1 -1
- data/Gemfile +3 -3
- data/README.md +5 -5
- data/bin/pwn_gqrx_scanner +7 -7
- data/lib/pwn/sdr/gqrx.rb +18 -6
- data/lib/pwn/version.rb +1 -1
- data/third_party/pwn_rdoc.jsonl +3 -5
- metadata +7 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2837cafb8268a67d624fd9115ee04597fe9edf7f126bde373f181be6ae7859bb
|
|
4
|
+
data.tar.gz: 2855cbda367a81a7c854c08edcf0f0d1d59f96321df8c23b3834003e99bb4df3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cf65609b278025eb8e3bceac9be6be4cdbd89aacf4cd506945da1b6c9b6285de2008b3bb00d7f540fe4587229649e708e0c01cf0583bf2f61f73bff985234324
|
|
7
|
+
data.tar.gz: 669851be6eaedebc14a193767f930c6101fd9fae7e843ddf2ed74642979ce8d1e02dde0e48d4eb8b9f1ac0f20fda7a009114b506085351b1e9bf31e68e97f418
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
4.0.0
|
data/Gemfile
CHANGED
|
@@ -18,7 +18,7 @@ gem 'aws-sdk', '3.3.0'
|
|
|
18
18
|
gem 'barby', '0.7.0'
|
|
19
19
|
gem 'base32', '0.3.4'
|
|
20
20
|
gem 'bitcoin-ruby', '0.0.20'
|
|
21
|
-
gem 'brakeman', '7.1.
|
|
21
|
+
gem 'brakeman', '7.1.2'
|
|
22
22
|
gem 'bson', '5.2.0'
|
|
23
23
|
gem 'bundler', '>=4.0.3'
|
|
24
24
|
gem 'bundler-audit', '>=0.9.3'
|
|
@@ -73,14 +73,14 @@ gem 'pry-doc', '1.6.0'
|
|
|
73
73
|
gem 'rake', '13.3.1'
|
|
74
74
|
gem 'rb-readline', '0.5.5'
|
|
75
75
|
gem 'rbvmomi2', '3.8.0'
|
|
76
|
-
gem 'rdoc', '7.0.
|
|
76
|
+
gem 'rdoc', '7.0.3'
|
|
77
77
|
gem 'rest-client', '2.1.0'
|
|
78
78
|
gem 'rex', '2.0.13'
|
|
79
79
|
gem 'rmagick', '6.1.4'
|
|
80
80
|
gem 'rqrcode', '3.1.1'
|
|
81
81
|
gem 'rspec', '3.13.2'
|
|
82
82
|
gem 'rtesseract', '3.1.4'
|
|
83
|
-
gem 'rubocop', '1.82.
|
|
83
|
+
gem 'rubocop', '1.82.1'
|
|
84
84
|
gem 'rubocop-rake', '0.7.1'
|
|
85
85
|
gem 'rubocop-rspec', '3.8.0'
|
|
86
86
|
gem 'ruby-audio', '1.6.1'
|
data/README.md
CHANGED
|
@@ -37,7 +37,7 @@ $ cd /opt/pwn
|
|
|
37
37
|
$ ./install.sh
|
|
38
38
|
$ ./install.sh ruby-gem
|
|
39
39
|
$ pwn
|
|
40
|
-
pwn[v0.5.
|
|
40
|
+
pwn[v0.5.529]:001 >>> PWN.help
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
[](https://youtu.be/G7iLUY4FzsI)
|
|
@@ -48,21 +48,21 @@ pwn[v0.5.527]:001 >>> PWN.help
|
|
|
48
48
|
It's wise to update pwn often as numerous versions are released/week:
|
|
49
49
|
```
|
|
50
50
|
$ rvm list gemsets
|
|
51
|
-
$ rvm use ruby-
|
|
51
|
+
$ rvm use ruby-4.0.0@pwn
|
|
52
52
|
$ gem uninstall --all --executables pwn
|
|
53
53
|
$ gem install --verbose pwn
|
|
54
54
|
$ pwn
|
|
55
|
-
pwn[v0.5.
|
|
55
|
+
pwn[v0.5.529]:001 >>> PWN.help
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
If you're using a multi-user install of RVM do:
|
|
59
59
|
```
|
|
60
60
|
$ rvm list gemsets
|
|
61
|
-
$ rvm use ruby-
|
|
61
|
+
$ rvm use ruby-4.0.0@pwn
|
|
62
62
|
$ rvmsudo gem uninstall --all --executables pwn
|
|
63
63
|
$ rvmsudo gem install --verbose pwn
|
|
64
64
|
$ pwn
|
|
65
|
-
pwn[v0.5.
|
|
65
|
+
pwn[v0.5.529]:001 >>> PWN.help
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
PWN periodically upgrades to the latest version of Ruby which is reflected in `/opt/pwn/.ruby-version`. The easiest way to upgrade to the latest version of Ruby from a previous PWN installation is to run the following script:
|
data/bin/pwn_gqrx_scanner
CHANGED
|
@@ -65,6 +65,10 @@ PWN::Driver::Parser.new do |options|
|
|
|
65
65
|
opts[:baseband_gain] = b
|
|
66
66
|
end
|
|
67
67
|
|
|
68
|
+
options.on('-k', '--keep-looping', '<Optional - Keep looping over the scan range indefinitely until CTRL+C is caught (Defaults to false)>') do |k|
|
|
69
|
+
opts[:keep_looping] = k
|
|
70
|
+
end
|
|
71
|
+
|
|
68
72
|
options.on('-LFILE', '--scan-log=FILE', '<Optional - Path to log scan results to (Defaults to /tmp/pwn_sdr_gqrx_scan_<start_freq>-<target_freq>_<timestamp>.json)>') do |l|
|
|
69
73
|
opts[:scan_log] = l
|
|
70
74
|
end
|
|
@@ -72,10 +76,6 @@ PWN::Driver::Parser.new do |options|
|
|
|
72
76
|
options.on('-wLOC', '--location=LOC', '<Optional - Location string to include in AI analysis (e.g. "New York, NY", 90210, GPS coords, etc.)>') do |l|
|
|
73
77
|
opts[:location] = l
|
|
74
78
|
end
|
|
75
|
-
|
|
76
|
-
options.on('-k', '--keep-looping', '<Optional - Keep looping over the scan range indefinitely until CTRL+C is caught (Defaults to false)>') do |k|
|
|
77
|
-
opts[:keep_looping] = k
|
|
78
|
-
end
|
|
79
79
|
end.parse!
|
|
80
80
|
|
|
81
81
|
begin
|
|
@@ -132,10 +132,10 @@ begin
|
|
|
132
132
|
baseband_gain = opts[:baseband_gain]
|
|
133
133
|
baseband_gain = baseband_gain.to_f unless baseband_gain.nil?
|
|
134
134
|
|
|
135
|
+
keep_looping = opts[:keep_looping]
|
|
135
136
|
scan_log = opts[:scan_log]
|
|
136
137
|
decoder = opts[:decoder]
|
|
137
138
|
location = opts[:location]
|
|
138
|
-
keep_looping = opts[:keep_looping]
|
|
139
139
|
|
|
140
140
|
# Merge opts again to ensure we override profile values with CLI values
|
|
141
141
|
PWN::SDR::GQRX.scan_range(
|
|
@@ -151,10 +151,10 @@ begin
|
|
|
151
151
|
rf_gain: rf_gain,
|
|
152
152
|
intermediate_gain: intermediate_gain,
|
|
153
153
|
baseband_gain: baseband_gain,
|
|
154
|
+
keep_looping: keep_looping,
|
|
154
155
|
scan_log: scan_log,
|
|
155
156
|
decoder: decoder,
|
|
156
|
-
location: location
|
|
157
|
-
keep_looping: keep_looping
|
|
157
|
+
location: location
|
|
158
158
|
)
|
|
159
159
|
puts 'Scan Complete.'
|
|
160
160
|
rescue StandardError => e
|
data/lib/pwn/sdr/gqrx.rb
CHANGED
|
@@ -651,9 +651,9 @@ module PWN
|
|
|
651
651
|
# rf_gain: 'optional - RF gain (defaults to 0.0)',
|
|
652
652
|
# intermediate_gain: 'optional - Intermediate gain (defaults to 32.0)',
|
|
653
653
|
# baseband_gain: 'optional - Baseband gain (defaults to 10.0)',
|
|
654
|
-
#
|
|
655
|
-
#
|
|
656
|
-
#
|
|
654
|
+
# keep_looping: 'optional - Boolean to keep scanning indefinitely (defaults to false)',
|
|
655
|
+
# scan_log: 'optional - Path to save detected signals log (defaults to /tmp/pwn_sdr_gqrx_scan_<start_freq>-<target_freq>_<timestamp>_lN.json)',
|
|
656
|
+
# location: 'optional - Location string to include in AI analysis (e.g., "New York, NY", 90210, GPS coords, etc.)'
|
|
657
657
|
# )
|
|
658
658
|
|
|
659
659
|
public_class_method def self.scan_range(opts = {})
|
|
@@ -678,10 +678,21 @@ module PWN
|
|
|
678
678
|
squelch = opts[:squelch] ||= (strength_lock - 3.0)
|
|
679
679
|
decoder = opts[:decoder]
|
|
680
680
|
|
|
681
|
+
keep_looping = opts[:keep_looping] || false
|
|
682
|
+
|
|
681
683
|
log_timestamp = Time.now.strftime('%Y-%m-%d')
|
|
682
|
-
scan_log = opts[:scan_log] ||= "/tmp/pwn_sdr_gqrx_scan_#{PWN::SDR.hz_to_s(hz_start)}-#{PWN::SDR.hz_to_s(hz_target)}_#{log_timestamp}
|
|
684
|
+
scan_log = opts[:scan_log] ||= "/tmp/pwn_sdr_gqrx_scan_#{PWN::SDR.hz_to_s(hz_start)}-#{PWN::SDR.hz_to_s(hz_target)}_#{log_timestamp}.json"
|
|
685
|
+
|
|
686
|
+
if keep_looping
|
|
687
|
+
# inject _lN before file extension if keep_looping is true
|
|
688
|
+
scan_log.gsub!("_l#{loop_count}", '')
|
|
689
|
+
scan_log = File.join(
|
|
690
|
+
File.dirname(scan_log),
|
|
691
|
+
"#{File.basename(scan_log, '.*')}_l#{loop_count}#{File.extname(scan_log)}"
|
|
692
|
+
)
|
|
693
|
+
end
|
|
694
|
+
|
|
683
695
|
location = opts[:location] ||= 'United States'
|
|
684
|
-
keep_looping = opts[:keep_looping] || false
|
|
685
696
|
|
|
686
697
|
step_hz = 10**(precision - 1)
|
|
687
698
|
step_hz_direction = hz_start > hz_target ? -step_hz : step_hz
|
|
@@ -818,7 +829,7 @@ module PWN
|
|
|
818
829
|
keep_alive: true
|
|
819
830
|
)
|
|
820
831
|
prev_freq_obj[:strength_lock] = strength_lock
|
|
821
|
-
prev_freq_obj[:strength_db] = best_strength_db
|
|
832
|
+
prev_freq_obj[:strength_db] = best_strength_db.round(1)
|
|
822
833
|
|
|
823
834
|
system_role_content = "Analyze signal data captured by a software-defined-radio using GQRX at the following location: #{location}. Respond with just FCC information about the transmission if available. If the frequency is unlicensed or not found in FCC records, state that clearly. Be clear and concise in your analysis."
|
|
824
835
|
ai_analysis = PWN::AI::Introspection.reflect_on(
|
|
@@ -993,6 +1004,7 @@ module PWN
|
|
|
993
1004
|
rf_gain: 'optional - RF gain (defaults to 0.0)',
|
|
994
1005
|
intermediate_gain: 'optional - Intermediate gain (defaults to 32.0)',
|
|
995
1006
|
baseband_gain: 'optional - Baseband gain (defaults to 10.0)',
|
|
1007
|
+
keep_looping: 'optional - Boolean to keep scanning indefinitely (defaults to false)',
|
|
996
1008
|
scan_log: 'optional - Path to save detected signals log (defaults to /tmp/pwn_sdr_gqrx_scan_<start_freq>-<target_freq>_<timestamp>.json)',
|
|
997
1009
|
location: 'optional - Location string to include in AI analysis (e.g., \"New York, NY\", 90210, GPS coords, etc.)'
|
|
998
1010
|
)
|
data/lib/pwn/version.rb
CHANGED
data/third_party/pwn_rdoc.jsonl
CHANGED
|
@@ -1282,10 +1282,8 @@
|
|
|
1282
1282
|
{"messages":[{"role":"user","content":"PWN::SDR::Decoder::GSM.start Usage"},{"role":"assistant","content":"`PWN::SDR::Decoder::GSM.start`: "}]}
|
|
1283
1283
|
{"messages":[{"role":"user","content":"PWN::SDR::Decoder::GSM.stop Usage"},{"role":"assistant","content":"`PWN::SDR::Decoder::GSM.stop`: "}]}
|
|
1284
1284
|
{"messages":[{"role":"user","content":"PWN::SDR::Decoder::RDS.authors Usage"},{"role":"assistant","content":"`PWN::SDR::Decoder::RDS.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
1285
|
-
{"messages":[{"role":"user","content":"PWN::SDR::Decoder::RDS.decode Usage"},{"role":"assistant","content":"`PWN::SDR::Decoder::RDS.decode`: "}]}
|
|
1285
|
+
{"messages":[{"role":"user","content":"PWN::SDR::Decoder::RDS.decode Usage"},{"role":"assistant","content":"`PWN::SDR::Decoder::RDS.decode`: Supported Method Parameters\n\nrds_resp = PWN::SDR::GQRX.decode_rds(\n\nfreq_obj: 'required - GQRX socket object returned from #connect method'\n\n)\n"}]}
|
|
1286
1286
|
{"messages":[{"role":"user","content":"PWN::SDR::Decoder::RDS.help Usage"},{"role":"assistant","content":"`PWN::SDR::Decoder::RDS.help`: "}]}
|
|
1287
|
-
{"messages":[{"role":"user","content":"PWN::SDR::Decoder::RDS.start Usage"},{"role":"assistant","content":"`PWN::SDR::Decoder::RDS.start`: "}]}
|
|
1288
|
-
{"messages":[{"role":"user","content":"PWN::SDR::Decoder::RDS.stop Usage"},{"role":"assistant","content":"`PWN::SDR::Decoder::RDS.stop`: "}]}
|
|
1289
1287
|
{"messages":[{"role":"user","content":"PWN::SDR::FlipperZero.authors Usage"},{"role":"assistant","content":"`PWN::SDR::FlipperZero.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
1290
1288
|
{"messages":[{"role":"user","content":"PWN::SDR::FlipperZero.connect Usage"},{"role":"assistant","content":"`PWN::SDR::FlipperZero.connect`: Supported Method Parameters\n\nflipper_zero_obj = PWN::SDR::FlipperZero.connect(\n\nblock_dev: 'optional serial block device path (defaults to /dev/ttyACM0)',\nbaud: 'optional (defaults to 9600)',\ndata_bits: 'optional (defaults to 8)',\nstop_bits: 'optional (defaults to 1)',\nparity: 'optional - :even||:odd|:none (defaults to :none)'\n\n)\n"}]}
|
|
1291
1289
|
{"messages":[{"role":"user","content":"PWN::SDR::FlipperZero.connect_via_screen Usage"},{"role":"assistant","content":"`PWN::SDR::FlipperZero.connect_via_screen`: Supported Method Parameters\n\nPWN::SDR::FlipperZero.connect_via_screen(\n\nblock_dev: 'optional - serial block device path (defaults to /dev/ttyACM0)'\n\n)\n"}]}
|
|
@@ -1304,10 +1302,10 @@
|
|
|
1304
1302
|
{"messages":[{"role":"user","content":"PWN::SDR::GQRX.find_best_peak Usage"},{"role":"assistant","content":"`PWN::SDR::GQRX.find_best_peak`: Supported Method Parameters\n\nbest_peak = PWN::SDR::GQRX.find_best_peak(\n\ngqrx_sock: 'required - GQRX socket object returned from #connect method',\ncandidate_signals: 'required - Array of candidate signals from edge_detection',\nstep_hz: 'required - Frequency step in Hz for peak finding',\nstrength_lock: 'required - Strength lock in dBFS to determine signal edges'\n\n)\n"}]}
|
|
1305
1303
|
{"messages":[{"role":"user","content":"PWN::SDR::GQRX.gqrx_cmd Usage"},{"role":"assistant","content":"`PWN::SDR::GQRX.gqrx_cmd`: Supported Method Parameters\n\ngqrx_resp = PWN::SDR::GQRX.gqrx_cmd(\n\ngqrx_sock: 'required - GQRX socket object returned from #connect method',\ncmd: 'required - GQRX command to execute',\nresp_ok: 'optional - Expected response from GQRX to indicate success'\n\n)\n"}]}
|
|
1306
1304
|
{"messages":[{"role":"user","content":"PWN::SDR::GQRX.help Usage"},{"role":"assistant","content":"`PWN::SDR::GQRX.help`: "}]}
|
|
1307
|
-
{"messages":[{"role":"user","content":"PWN::SDR::GQRX.init_freq Usage"},{"role":"assistant","content":"`PWN::SDR::GQRX.init_freq`: Supported Method Parameters\n\nfreq_obj = PWN::SDR::GQRX.init_freq(\n\ngqrx_sock: 'required - GQRX socket object returned from #connect method',\nfreq: 'required - Frequency to set',\ndemodulator_mode: 'optional - Demodulator mode (defaults to WFM)',\
|
|
1305
|
+
{"messages":[{"role":"user","content":"PWN::SDR::GQRX.init_freq Usage"},{"role":"assistant","content":"`PWN::SDR::GQRX.init_freq`: Supported Method Parameters\n\nfreq_obj = PWN::SDR::GQRX.init_freq(\n\ngqrx_sock: 'required - GQRX socket object returned from #connect method',\nfreq: 'required - Frequency to set',\ndemodulator_mode: 'optional - Demodulator mode (defaults to WFM)',\nbandwidth: 'optional - Bandwidth (defaults to \"200.000\")',\nsquelch: 'optional - Squelch level to set (Defaults to current value)',\ndecoder: 'optional - Decoder key (e.g., :gsm) to start live decoding (starts recording if provided)',\nrecord_dir: 'optional - Directory where GQRX saves recordings (required if decoder provided; defaults to /tmp/gqrx_recordings)',\nsuppress_details: 'optional - Boolean to include extra frequency details in return hash (defaults to false)',\nkeep_alive: 'optional - Boolean to keep GQRX connection alive after method completion (defaults to false)'\n\n)\n"}]}
|
|
1308
1306
|
{"messages":[{"role":"user","content":"PWN::SDR::GQRX.log_signals Usage"},{"role":"assistant","content":"`PWN::SDR::GQRX.log_signals`: Supported Method Parameters\n\nscan_resp = PWN::SDR::GQRX.log_signals(\n\nsignals_arr: 'required - Array of detected signals',\ntimestamp_start: 'required - Scan start timestamp',\nscan_log: 'required - Path to save detected signals log'\n\n)\n"}]}
|
|
1309
1307
|
{"messages":[{"role":"user","content":"PWN::SDR::GQRX.measure_signal_strength Usage"},{"role":"assistant","content":"`PWN::SDR::GQRX.measure_signal_strength`: Supported Method Parameters\n\nstrength_db = PWN::SDR::GQRX.measure_signal_strength(\n\ngqrx_sock: 'required - GQRX socket object returned from #connect method',\nfreq: 'required - Frequency to measure signal strength',\nstrength_lock: 'optional - Strength lock in dBFS to determine signal edges (defaults to -70.0)',\nphase: 'optional - Phase of measurement for logging purposes (defaults to :find_candidates)'\n\n)\n"}]}
|
|
1310
|
-
{"messages":[{"role":"user","content":"PWN::SDR::GQRX.scan_range Usage"},{"role":"assistant","content":"`PWN::SDR::GQRX.scan_range`: Supported Method Parameters\n\nscan_resp = PWN::SDR::GQRX.scan_range(\n\ngqrx_sock: 'required - GQRX socket object returned from #connect method',\nstart_freq: 'required - Start frequency of scan range',\ntarget_freq: 'required - Target frequency of scan range',\ndemodulator_mode: 'optional - Demodulator mode (e.g. WFM, AM, FM, USB, LSB, RAW, CW, RTTY / defaults to WFM)',\
|
|
1308
|
+
{"messages":[{"role":"user","content":"PWN::SDR::GQRX.scan_range Usage"},{"role":"assistant","content":"`PWN::SDR::GQRX.scan_range`: Supported Method Parameters\n\nscan_resp = PWN::SDR::GQRX.scan_range(\n\ngqrx_sock: 'required - GQRX socket object returned from #connect method',\nstart_freq: 'required - Start frequency of scan range',\ntarget_freq: 'required - Target frequency of scan range',\ndemodulator_mode: 'optional - Demodulator mode (e.g. WFM, AM, FM, USB, LSB, RAW, CW, RTTY / defaults to WFM)',\nbandwidth: 'optional - Bandwidth in Hz (Defaults to \"200.000\")',\nprecision: 'optional - Frequency step precision (number of digits; defaults to 1)',\nstrength_lock: 'optional - Strength lock in dBFS (defaults to -70.0)',\nsquelch: 'optional - Squelch level in dBFS (defaults to strength_lock - 3.0)',\naudio_gain_db: 'optional - Audio gain in dB (defaults to 6.0)',\nrf_gain: 'optional - RF gain (defaults to 0.0)',\nintermediate_gain: 'optional - Intermediate gain (defaults to 32.0)',\nbaseband_gain: 'optional - Baseband gain (defaults to 10.0)',\nkeep_looping: 'optional - Boolean to keep scanning indefinitely (defaults to false)',\nscan_log: 'optional - Path to save detected signals log (defaults to /tmp/pwn_sdr_gqrx_scan_<start_freq>-<target_freq>_<timestamp>_lN.json)',\nlocation: 'optional - Location string to include in AI analysis (e.g., \"New York, NY\", 90210, GPS coords, etc.)'\n\n)\n"}]}
|
|
1311
1309
|
{"messages":[{"role":"user","content":"PWN::SDR::GQRX.tune_to Usage"},{"role":"assistant","content":"`PWN::SDR::GQRX.tune_to`: Supported Method Parameters\n\ntune_resp = PWN::SDR::GQRX.tune_to(\n\ngqrx_sock: 'required - GQRX socket object returned from #connect method',\nhz: 'required - Frequency to tune to'\n\n)\n"}]}
|
|
1312
1310
|
{"messages":[{"role":"user","content":"PWN::SDR::RFIDler.authors Usage"},{"role":"assistant","content":"`PWN::SDR::RFIDler.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
1313
1311
|
{"messages":[{"role":"user","content":"PWN::SDR::RFIDler.connect_via_screen Usage"},{"role":"assistant","content":"`PWN::SDR::RFIDler.connect_via_screen`: Supported Method Parameters\n\nPWN::SDR::RFIDler.connect_via_screen(\n\nblock_dev: 'optional - serial block device path (defaults to /dev/ttyUSB0)'\n\n)\n"}]}
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pwn
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.5.
|
|
4
|
+
version: 0.5.529
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- 0day Inc.
|
|
@@ -113,14 +113,14 @@ dependencies:
|
|
|
113
113
|
requirements:
|
|
114
114
|
- - '='
|
|
115
115
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: 7.1.
|
|
116
|
+
version: 7.1.2
|
|
117
117
|
type: :runtime
|
|
118
118
|
prerelease: false
|
|
119
119
|
version_requirements: !ruby/object:Gem::Requirement
|
|
120
120
|
requirements:
|
|
121
121
|
- - '='
|
|
122
122
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: 7.1.
|
|
123
|
+
version: 7.1.2
|
|
124
124
|
- !ruby/object:Gem::Dependency
|
|
125
125
|
name: bson
|
|
126
126
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -869,14 +869,14 @@ dependencies:
|
|
|
869
869
|
requirements:
|
|
870
870
|
- - '='
|
|
871
871
|
- !ruby/object:Gem::Version
|
|
872
|
-
version: 7.0.
|
|
872
|
+
version: 7.0.3
|
|
873
873
|
type: :development
|
|
874
874
|
prerelease: false
|
|
875
875
|
version_requirements: !ruby/object:Gem::Requirement
|
|
876
876
|
requirements:
|
|
877
877
|
- - '='
|
|
878
878
|
- !ruby/object:Gem::Version
|
|
879
|
-
version: 7.0.
|
|
879
|
+
version: 7.0.3
|
|
880
880
|
- !ruby/object:Gem::Dependency
|
|
881
881
|
name: rest-client
|
|
882
882
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -967,14 +967,14 @@ dependencies:
|
|
|
967
967
|
requirements:
|
|
968
968
|
- - '='
|
|
969
969
|
- !ruby/object:Gem::Version
|
|
970
|
-
version: 1.82.
|
|
970
|
+
version: 1.82.1
|
|
971
971
|
type: :runtime
|
|
972
972
|
prerelease: false
|
|
973
973
|
version_requirements: !ruby/object:Gem::Requirement
|
|
974
974
|
requirements:
|
|
975
975
|
- - '='
|
|
976
976
|
- !ruby/object:Gem::Version
|
|
977
|
-
version: 1.82.
|
|
977
|
+
version: 1.82.1
|
|
978
978
|
- !ruby/object:Gem::Dependency
|
|
979
979
|
name: rubocop-rake
|
|
980
980
|
requirement: !ruby/object:Gem::Requirement
|