lamby 5.2.2 → 6.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '080a9068193b2f2afdb3b3552dc4a810480d6adca8db7ffd4cc87600cd44c236'
4
- data.tar.gz: 6624c5ae8fd629b48771698e1401b6b07df6b1d2dbad120cf87f55d405d95500
3
+ metadata.gz: 79c4dc3717bca2047df8aad522de82aef8152de33ead5736a3bbe7b906a2ade9
4
+ data.tar.gz: 69e60e6da361e2dce84c3fb70544e38aed1573a9547f6122b8d97b295bcdba38
5
5
  SHA512:
6
- metadata.gz: e520c73320c6b8bbce4c37fca9ef8770882769471ef6de65114b7aa9645134a31715ab489ba88e8d3d279c8ee5fd81de56e2f22990c7ae9400bf93b0a025508c
7
- data.tar.gz: c63dbe6e8c382a7fe97fb9f4c16b5d85bc96d2485ae6622b3913c0e8eeceff992543124058fc6ac83d5ea255452d544ee6d07cdce52cdf777327db0e0393c3c7
6
+ metadata.gz: c73664327b1a65093c7e4d8bf783dab564198d474c1ae888d979a4ef4a8bcc252eee56fc829757eeceeeca5e0509e47ac543a03834ea1c3acdb46a9a6bab722a
7
+ data.tar.gz: 55b8775795c750ce1c7a49868b4323e272492cf072c7d7e68ebb34856217441947780a3630b5a9f6c732b6d15d04b58aac7bf1cc346f25e9f65f124b63f01351
data/CHANGELOG.md CHANGED
@@ -2,9 +2,13 @@
2
2
 
3
3
  See this http://keepachangelog.com link for information on how we want this documented formatted.
4
4
 
5
- ## v5.2.2
5
+ ## v6.0.0
6
6
 
7
- - Lock down to Rack < 3 in 5-stable branch.
7
+ ### Changed
8
+
9
+ - ⚠️ Breaking Changes ⚠️
10
+ - Remove Rack v2 support.
11
+ - Added Rack v3 support.
8
12
 
9
13
  ## v5.2.1
10
14
 
data/Gemfile CHANGED
@@ -2,7 +2,9 @@ source "https://rubygems.org"
2
2
  git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
3
3
  gemspec
4
4
 
5
- gem 'rails'
5
+ gem 'rails', '7.1.3.4'
6
+ gem 'mocha', '~> 2.4'
7
+ gem 'rack', "~> 3.1", ">= 3.1.7"
6
8
 
7
9
  group :test do
8
10
  gem 'lambdakiq'
data/Gemfile.lock CHANGED
@@ -1,103 +1,120 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lamby (5.2.2)
4
+ lamby (6.0.0)
5
5
  lambda-console-ruby
6
- rack (< 3)
6
+ rack (>= 3.0.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- actioncable (7.0.4.3)
12
- actionpack (= 7.0.4.3)
13
- activesupport (= 7.0.4.3)
11
+ actioncable (7.1.3.4)
12
+ actionpack (= 7.1.3.4)
13
+ activesupport (= 7.1.3.4)
14
14
  nio4r (~> 2.0)
15
15
  websocket-driver (>= 0.6.1)
16
- actionmailbox (7.0.4.3)
17
- actionpack (= 7.0.4.3)
18
- activejob (= 7.0.4.3)
19
- activerecord (= 7.0.4.3)
20
- activestorage (= 7.0.4.3)
21
- activesupport (= 7.0.4.3)
16
+ zeitwerk (~> 2.6)
17
+ actionmailbox (7.1.3.4)
18
+ actionpack (= 7.1.3.4)
19
+ activejob (= 7.1.3.4)
20
+ activerecord (= 7.1.3.4)
21
+ activestorage (= 7.1.3.4)
22
+ activesupport (= 7.1.3.4)
22
23
  mail (>= 2.7.1)
23
24
  net-imap
24
25
  net-pop
25
26
  net-smtp
26
- actionmailer (7.0.4.3)
27
- actionpack (= 7.0.4.3)
28
- actionview (= 7.0.4.3)
29
- activejob (= 7.0.4.3)
30
- activesupport (= 7.0.4.3)
27
+ actionmailer (7.1.3.4)
28
+ actionpack (= 7.1.3.4)
29
+ actionview (= 7.1.3.4)
30
+ activejob (= 7.1.3.4)
31
+ activesupport (= 7.1.3.4)
31
32
  mail (~> 2.5, >= 2.5.4)
32
33
  net-imap
33
34
  net-pop
34
35
  net-smtp
35
- rails-dom-testing (~> 2.0)
36
- actionpack (7.0.4.3)
37
- actionview (= 7.0.4.3)
38
- activesupport (= 7.0.4.3)
39
- rack (~> 2.0, >= 2.2.0)
36
+ rails-dom-testing (~> 2.2)
37
+ actionpack (7.1.3.4)
38
+ actionview (= 7.1.3.4)
39
+ activesupport (= 7.1.3.4)
40
+ nokogiri (>= 1.8.5)
41
+ racc
42
+ rack (>= 2.2.4)
43
+ rack-session (>= 1.0.1)
40
44
  rack-test (>= 0.6.3)
41
- rails-dom-testing (~> 2.0)
42
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
43
- actiontext (7.0.4.3)
44
- actionpack (= 7.0.4.3)
45
- activerecord (= 7.0.4.3)
46
- activestorage (= 7.0.4.3)
47
- activesupport (= 7.0.4.3)
45
+ rails-dom-testing (~> 2.2)
46
+ rails-html-sanitizer (~> 1.6)
47
+ actiontext (7.1.3.4)
48
+ actionpack (= 7.1.3.4)
49
+ activerecord (= 7.1.3.4)
50
+ activestorage (= 7.1.3.4)
51
+ activesupport (= 7.1.3.4)
48
52
  globalid (>= 0.6.0)
49
53
  nokogiri (>= 1.8.5)
50
- actionview (7.0.4.3)
51
- activesupport (= 7.0.4.3)
54
+ actionview (7.1.3.4)
55
+ activesupport (= 7.1.3.4)
52
56
  builder (~> 3.1)
53
- erubi (~> 1.4)
54
- rails-dom-testing (~> 2.0)
55
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
56
- activejob (7.0.4.3)
57
- activesupport (= 7.0.4.3)
57
+ erubi (~> 1.11)
58
+ rails-dom-testing (~> 2.2)
59
+ rails-html-sanitizer (~> 1.6)
60
+ activejob (7.1.3.4)
61
+ activesupport (= 7.1.3.4)
58
62
  globalid (>= 0.3.6)
59
- activemodel (7.0.4.3)
60
- activesupport (= 7.0.4.3)
61
- activerecord (7.0.4.3)
62
- activemodel (= 7.0.4.3)
63
- activesupport (= 7.0.4.3)
64
- activestorage (7.0.4.3)
65
- actionpack (= 7.0.4.3)
66
- activejob (= 7.0.4.3)
67
- activerecord (= 7.0.4.3)
68
- activesupport (= 7.0.4.3)
63
+ activemodel (7.1.3.4)
64
+ activesupport (= 7.1.3.4)
65
+ activerecord (7.1.3.4)
66
+ activemodel (= 7.1.3.4)
67
+ activesupport (= 7.1.3.4)
68
+ timeout (>= 0.4.0)
69
+ activestorage (7.1.3.4)
70
+ actionpack (= 7.1.3.4)
71
+ activejob (= 7.1.3.4)
72
+ activerecord (= 7.1.3.4)
73
+ activesupport (= 7.1.3.4)
69
74
  marcel (~> 1.0)
70
- mini_mime (>= 1.1.0)
71
- activesupport (7.0.4.3)
75
+ activesupport (7.1.3.4)
76
+ base64
77
+ bigdecimal
72
78
  concurrent-ruby (~> 1.0, >= 1.0.2)
79
+ connection_pool (>= 2.2.5)
80
+ drb
73
81
  i18n (>= 1.6, < 2)
74
82
  minitest (>= 5.1)
83
+ mutex_m
75
84
  tzinfo (~> 2.0)
76
- aws-eventstream (1.2.0)
77
- aws-partitions (1.752.0)
78
- aws-sdk-core (3.171.0)
79
- aws-eventstream (~> 1, >= 1.0.2)
85
+ aws-eventstream (1.3.0)
86
+ aws-partitions (1.956.0)
87
+ aws-sdk-core (3.201.1)
88
+ aws-eventstream (~> 1, >= 1.3.0)
80
89
  aws-partitions (~> 1, >= 1.651.0)
81
- aws-sigv4 (~> 1.5)
90
+ aws-sigv4 (~> 1.8)
82
91
  jmespath (~> 1, >= 1.6.1)
83
- aws-sdk-sqs (1.53.0)
84
- aws-sdk-core (~> 3, >= 3.165.0)
85
- aws-sigv4 (~> 1.1)
92
+ aws-sdk-sqs (1.80.0)
93
+ aws-sdk-core (~> 3, >= 3.201.0)
94
+ aws-sigv4 (~> 1.5)
86
95
  aws-sdk-ssm (1.150.0)
87
96
  aws-sdk-core (~> 3, >= 3.165.0)
88
97
  aws-sigv4 (~> 1.1)
89
- aws-sigv4 (1.5.2)
98
+ aws-sigv4 (1.8.0)
90
99
  aws-eventstream (~> 1, >= 1.0.2)
91
- builder (3.2.4)
100
+ base64 (0.2.0)
101
+ bigdecimal (3.1.8)
102
+ builder (3.3.0)
92
103
  coderay (1.1.3)
93
- concurrent-ruby (1.2.2)
104
+ concurrent-ruby (1.3.3)
105
+ connection_pool (2.4.1)
94
106
  crass (1.0.6)
95
- date (3.3.3)
96
- erubi (1.12.0)
97
- globalid (1.1.0)
98
- activesupport (>= 5.0)
99
- i18n (1.12.0)
107
+ date (3.3.4)
108
+ drb (2.2.1)
109
+ erubi (1.13.0)
110
+ globalid (1.2.1)
111
+ activesupport (>= 6.1)
112
+ i18n (1.14.5)
100
113
  concurrent-ruby (~> 1.0)
114
+ io-console (0.7.2)
115
+ irb (1.14.0)
116
+ rdoc (>= 4.0.0)
117
+ reline (>= 0.4.2)
101
118
  jmespath (1.6.2)
102
119
  lambda-console-ruby (1.0.0)
103
120
  lambdakiq (2.2.0)
@@ -105,81 +122,97 @@ GEM
105
122
  aws-sdk-sqs
106
123
  concurrent-ruby
107
124
  railties
108
- loofah (2.20.0)
125
+ loofah (2.22.0)
109
126
  crass (~> 1.0.2)
110
- nokogiri (>= 1.5.9)
127
+ nokogiri (>= 1.12.0)
111
128
  mail (2.8.1)
112
129
  mini_mime (>= 0.1.1)
113
130
  net-imap
114
131
  net-pop
115
132
  net-smtp
116
- marcel (1.0.2)
133
+ marcel (1.0.4)
117
134
  method_source (1.0.0)
118
- mini_mime (1.1.2)
119
- minitest (5.18.0)
135
+ mini_mime (1.1.5)
136
+ minitest (5.24.1)
120
137
  minitest-focus (1.3.1)
121
138
  minitest (>= 4, < 6)
122
- mocha (2.0.2)
139
+ mocha (2.4.0)
123
140
  ruby2_keywords (>= 0.0.5)
124
- net-imap (0.3.4)
141
+ mutex_m (0.2.0)
142
+ net-imap (0.4.14)
125
143
  date
126
144
  net-protocol
127
145
  net-pop (0.1.2)
128
146
  net-protocol
129
- net-protocol (0.2.1)
147
+ net-protocol (0.2.2)
130
148
  timeout
131
- net-smtp (0.3.3)
149
+ net-smtp (0.5.0)
132
150
  net-protocol
133
- nio4r (2.5.9)
134
- nokogiri (1.14.3-aarch64-linux)
151
+ nio4r (2.7.3)
152
+ nokogiri (1.16.6-aarch64-linux)
135
153
  racc (~> 1.4)
136
- nokogiri (1.14.3-arm64-darwin)
154
+ nokogiri (1.16.6-arm64-darwin)
137
155
  racc (~> 1.4)
138
156
  pry (0.14.2)
139
157
  coderay (~> 1.1)
140
158
  method_source (~> 1.0)
141
- racc (1.6.2)
142
- rack (2.2.6.4)
159
+ psych (5.1.2)
160
+ stringio
161
+ racc (1.8.0)
162
+ rack (3.1.7)
163
+ rack-session (2.0.0)
164
+ rack (>= 3.0.0)
143
165
  rack-test (2.1.0)
144
166
  rack (>= 1.3)
145
- rails (7.0.4.3)
146
- actioncable (= 7.0.4.3)
147
- actionmailbox (= 7.0.4.3)
148
- actionmailer (= 7.0.4.3)
149
- actionpack (= 7.0.4.3)
150
- actiontext (= 7.0.4.3)
151
- actionview (= 7.0.4.3)
152
- activejob (= 7.0.4.3)
153
- activemodel (= 7.0.4.3)
154
- activerecord (= 7.0.4.3)
155
- activestorage (= 7.0.4.3)
156
- activesupport (= 7.0.4.3)
167
+ rackup (2.1.0)
168
+ rack (>= 3)
169
+ webrick (~> 1.8)
170
+ rails (7.1.3.4)
171
+ actioncable (= 7.1.3.4)
172
+ actionmailbox (= 7.1.3.4)
173
+ actionmailer (= 7.1.3.4)
174
+ actionpack (= 7.1.3.4)
175
+ actiontext (= 7.1.3.4)
176
+ actionview (= 7.1.3.4)
177
+ activejob (= 7.1.3.4)
178
+ activemodel (= 7.1.3.4)
179
+ activerecord (= 7.1.3.4)
180
+ activestorage (= 7.1.3.4)
181
+ activesupport (= 7.1.3.4)
157
182
  bundler (>= 1.15.0)
158
- railties (= 7.0.4.3)
159
- rails-dom-testing (2.0.3)
160
- activesupport (>= 4.2.0)
183
+ railties (= 7.1.3.4)
184
+ rails-dom-testing (2.2.0)
185
+ activesupport (>= 5.0.0)
186
+ minitest
161
187
  nokogiri (>= 1.6)
162
- rails-html-sanitizer (1.5.0)
163
- loofah (~> 2.19, >= 2.19.1)
164
- railties (7.0.4.3)
165
- actionpack (= 7.0.4.3)
166
- activesupport (= 7.0.4.3)
167
- method_source
188
+ rails-html-sanitizer (1.6.0)
189
+ loofah (~> 2.21)
190
+ nokogiri (~> 1.14)
191
+ railties (7.1.3.4)
192
+ actionpack (= 7.1.3.4)
193
+ activesupport (= 7.1.3.4)
194
+ irb
195
+ rackup (>= 1.0.0)
168
196
  rake (>= 12.2)
169
- thor (~> 1.0)
170
- zeitwerk (~> 2.5)
171
- rake (13.0.6)
197
+ thor (~> 1.0, >= 1.2.2)
198
+ zeitwerk (~> 2.6)
199
+ rake (13.2.1)
200
+ rdoc (6.7.0)
201
+ psych (>= 4.0.0)
202
+ reline (0.5.9)
203
+ io-console (~> 0.5)
172
204
  ruby2_keywords (0.0.5)
173
- thor (1.2.1)
205
+ stringio (3.1.1)
206
+ thor (1.3.1)
174
207
  timecop (0.9.6)
175
- timeout (0.3.2)
208
+ timeout (0.4.1)
176
209
  tzinfo (2.0.6)
177
210
  concurrent-ruby (~> 1.0)
178
211
  webrick (1.8.1)
179
- websocket-driver (0.7.5)
212
+ websocket-driver (0.7.6)
180
213
  websocket-extensions (>= 0.1.0)
181
214
  websocket-extensions (0.1.5)
182
- zeitwerk (2.6.7)
215
+ zeitwerk (2.6.16)
183
216
 
184
217
  PLATFORMS
185
218
  aarch64-linux
@@ -194,9 +227,10 @@ DEPENDENCIES
194
227
  lamby!
195
228
  minitest
196
229
  minitest-focus
197
- mocha
230
+ mocha (~> 2.4)
198
231
  pry
199
- rails
232
+ rack (~> 3.1, >= 3.1.7)
233
+ rails (= 7.1.3.4)
200
234
  rake
201
235
  timecop
202
236
  webrick
data/bin/setup CHANGED
@@ -3,4 +3,4 @@ set -e
3
3
 
4
4
  echo '== Installing dependencies =='
5
5
  bundle config set --local path 'vendor/bundle'
6
- bundle install
6
+ bundle install
data/bin/test CHANGED
@@ -5,4 +5,4 @@ export RAILS_ENV="test"
5
5
 
6
6
  bundle exec rake test
7
7
  LAMBY_TEST_DYNAMIC_HANDLER=1 bundle exec rake test
8
- LAMBY_RACK_DEFLATE_ENABLED=1 bundle exec rake test_deflate
8
+ LAMBY_RACK_DEFLATE_ENABLED=1 bundle exec rake test_deflate
data/lamby.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.bindir = "exe"
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
- spec.add_dependency 'rack', '< 3'
21
+ spec.add_dependency 'rack', '>= 3.0.0'
22
22
  spec.add_dependency 'lambda-console-ruby'
23
23
  spec.add_development_dependency 'aws-sdk-ssm'
24
24
  spec.add_development_dependency 'bundler'
data/lib/lamby/handler.rb CHANGED
@@ -31,14 +31,15 @@ module Lamby
31
31
 
32
32
  def set_cookies
33
33
  return @set_cookies if defined?(@set_cookies)
34
- @set_cookies = if @headers && @headers['Set-Cookie']
35
- @headers.delete('Set-Cookie').split("\n")
34
+ set_cookie = @headers.delete("Set-Cookie") || @headers.delete("set-cookie")
35
+ @set_cookies = if @headers && set_cookie
36
+ Array(set_cookie).flat_map { |cookie| cookie.split("\n").map(&:strip) }
36
37
  end
37
38
  end
38
39
 
39
40
  def body
40
41
  @rbody ||= ''.tap do |rbody|
41
- @body.each { |part| rbody << part if part }
42
+ @body.each { |part| rbody << part.to_s if part }
42
43
  @body.close if @body.respond_to? :close
43
44
  end
44
45
  end
@@ -50,6 +51,7 @@ module Lamby
50
51
 
51
52
  def base64_encodeable?(hdrs = @headers)
52
53
  hdrs && (
54
+ hdrs['content-transfer-encoding'] == 'binary' ||
53
55
  hdrs['Content-Transfer-Encoding'] == 'binary' ||
54
56
  content_encoding_compressed?(hdrs) ||
55
57
  hdrs['X-Lamby-Base64'] == '1'
@@ -78,10 +80,18 @@ module Lamby
78
80
 
79
81
  def rack_response
80
82
  { statusCode: status,
81
- headers: headers,
83
+ headers: stringify_values!(headers),
84
+ cookies: @set_cookies,
82
85
  body: body }.merge(rack.response(self))
83
86
  end
84
87
 
88
+ def stringify_values!(headers)
89
+ headers.each do |k, v|
90
+ headers[k] = v.to_s
91
+ end
92
+ headers
93
+ end
94
+
85
95
  def call_app
86
96
  if Debug.on?(@event)
87
97
  Debug.call @event, @context, rack.env
@@ -103,7 +113,7 @@ module Lamby
103
113
  end
104
114
 
105
115
  def content_encoding_compressed?(hdrs)
106
- content_encoding_header = hdrs['Content-Encoding'] || ''
116
+ content_encoding_header = hdrs['Content-Encoding'] || hdrs['content-encoding'] || ''
107
117
  content_encoding_header.split(', ').any? { |h| ['br', 'gzip'].include?(h) }
108
118
  end
109
119
 
@@ -36,6 +36,7 @@ module Lamby
36
36
  private
37
37
 
38
38
  def env_base
39
+ rack_version = defined?(::Rack::VERSION) ? ::Rack::VERSION : ::Rack.release
39
40
  { ::Rack::REQUEST_METHOD => event['httpMethod'],
40
41
  ::Rack::SCRIPT_NAME => '',
41
42
  ::Rack::PATH_INFO => event['path'] || '',
@@ -43,7 +44,7 @@ module Lamby
43
44
  ::Rack::SERVER_NAME => headers['host'],
44
45
  ::Rack::SERVER_PORT => headers['x-forwarded-port'],
45
46
  ::Rack::SERVER_PROTOCOL => 'HTTP/1.1',
46
- ::Rack::RACK_VERSION => ::Rack::VERSION,
47
+ ::Rack::RACK_VERSION => rack_version,
47
48
  ::Rack::RACK_URL_SCHEME => headers['x-forwarded-proto'],
48
49
  ::Rack::RACK_INPUT => StringIO.new(body || ''),
49
50
  ::Rack::RACK_ERRORS => $stderr,
@@ -31,6 +31,7 @@ module Lamby
31
31
  private
32
32
 
33
33
  def env_base
34
+ rack_version = defined?(::Rack::VERSION) ? ::Rack::VERSION : ::Rack.release
34
35
  { ::Rack::REQUEST_METHOD => request_method,
35
36
  ::Rack::SCRIPT_NAME => '',
36
37
  ::Rack::PATH_INFO => path_info,
@@ -38,7 +39,7 @@ module Lamby
38
39
  ::Rack::SERVER_NAME => server_name,
39
40
  ::Rack::SERVER_PORT => server_port,
40
41
  ::Rack::SERVER_PROTOCOL => server_protocol,
41
- ::Rack::RACK_VERSION => ::Rack::VERSION,
42
+ ::Rack::RACK_VERSION => rack_version,
42
43
  ::Rack::RACK_URL_SCHEME => 'https',
43
44
  ::Rack::RACK_INPUT => StringIO.new(body || ''),
44
45
  ::Rack::RACK_ERRORS => $stderr,
@@ -25,6 +25,7 @@ module Lamby
25
25
  private
26
26
 
27
27
  def env_base
28
+ rack_version = defined?(::Rack::VERSION) ? ::Rack::VERSION : ::Rack.release
28
29
  { ::Rack::REQUEST_METHOD => event['httpMethod'],
29
30
  ::Rack::SCRIPT_NAME => '',
30
31
  ::Rack::PATH_INFO => event['path'] || '',
@@ -32,7 +33,7 @@ module Lamby
32
33
  ::Rack::SERVER_NAME => headers['Host'],
33
34
  ::Rack::SERVER_PORT => headers['X-Forwarded-Port'],
34
35
  ::Rack::SERVER_PROTOCOL => event.dig('requestContext', 'protocol') || 'HTTP/1.1',
35
- ::Rack::RACK_VERSION => ::Rack::VERSION,
36
+ ::Rack::RACK_VERSION => rack_version,
36
37
  ::Rack::RACK_URL_SCHEME => 'https',
37
38
  ::Rack::RACK_INPUT => StringIO.new(body || ''),
38
39
  ::Rack::RACK_ERRORS => $stderr,
data/lib/lamby/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lamby
2
- VERSION = '5.2.2'
2
+ VERSION = '6.0.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lamby
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.2
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Collins
@@ -14,16 +14,16 @@ dependencies:
14
14
  name: rack
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "<"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '3'
19
+ version: 3.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "<"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '3'
26
+ version: 3.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: lambda-console-ruby
29
29
  requirement: !ruby/object:Gem::Requirement