my_api_client 0.14.0 → 0.18.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.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +99 -53
  3. data/.dependabot/config.yml +19 -1
  4. data/.rubocop.yml +5 -1
  5. data/.rubocop_challenge.yml +5 -0
  6. data/.rubocop_todo.yml +53 -1
  7. data/CHANGELOG.md +192 -0
  8. data/Gemfile +0 -3
  9. data/Gemfile.lock +60 -56
  10. data/README.jp.md +159 -24
  11. data/bin/console +4 -0
  12. data/example/api_clients/application_api_client.rb +2 -10
  13. data/example/api_clients/my_pagination_api_client.rb +18 -0
  14. data/example/api_clients/my_rest_api_client.rb +9 -3
  15. data/lib/generators/rails/USAGE +1 -1
  16. data/lib/generators/rails/api_client_generator.rb +6 -0
  17. data/lib/generators/rails/templates/api_client.rb.erb +1 -1
  18. data/lib/generators/rails/templates/application_api_client.rb.erb +0 -11
  19. data/lib/generators/rspec/USAGE +1 -1
  20. data/lib/generators/rspec/api_client_generator.rb +6 -0
  21. data/lib/generators/rspec/templates/api_client_spec.rb.erb +23 -16
  22. data/lib/my_api_client.rb +7 -0
  23. data/lib/my_api_client/base.rb +4 -2
  24. data/lib/my_api_client/default_error_handlers.rb +64 -0
  25. data/lib/my_api_client/error_handling.rb +6 -6
  26. data/lib/my_api_client/error_handling/generator.rb +23 -7
  27. data/lib/my_api_client/errors.rb +1 -53
  28. data/lib/my_api_client/errors/api_limit_error.rb +6 -0
  29. data/lib/my_api_client/errors/client_error.rb +93 -0
  30. data/lib/my_api_client/errors/network_error.rb +43 -0
  31. data/lib/my_api_client/errors/server_error.rb +42 -0
  32. data/lib/my_api_client/params/params.rb +1 -3
  33. data/lib/my_api_client/request.rb +29 -34
  34. data/lib/my_api_client/request/basic.rb +32 -0
  35. data/lib/my_api_client/request/executor.rb +1 -1
  36. data/lib/my_api_client/request/pagination.rb +39 -0
  37. data/lib/my_api_client/version.rb +1 -1
  38. data/my_api/.ruby-version +1 -1
  39. data/my_api/Gemfile.lock +86 -86
  40. data/my_api/README.md +6 -0
  41. data/my_api/app/controllers/pagination_controller.rb +58 -0
  42. data/my_api/config/routes.rb +1 -0
  43. data/my_api/spec/controllers/pagination_controller_spec.rb +73 -0
  44. data/my_api/spec/controllers/rest_controller_spec.rb +23 -5
  45. data/my_api/spec/spec_helper.rb +5 -0
  46. data/my_api_client.gemspec +2 -2
  47. data/rails_app/rails_5.2/.rspec +3 -0
  48. data/rails_app/rails_5.2/Gemfile +17 -0
  49. data/rails_app/rails_5.2/Gemfile.lock +171 -0
  50. data/rails_app/rails_5.2/README.md +24 -0
  51. data/rails_app/rails_5.2/Rakefile +8 -0
  52. data/rails_app/rails_5.2/app/controllers/application_controller.rb +4 -0
  53. data/rails_app/rails_5.2/app/jobs/application_job.rb +4 -0
  54. data/rails_app/rails_5.2/bin/bundle +5 -0
  55. data/rails_app/rails_5.2/bin/rails +6 -0
  56. data/rails_app/rails_5.2/bin/rake +6 -0
  57. data/rails_app/rails_5.2/bin/setup +27 -0
  58. data/rails_app/rails_5.2/bin/update +27 -0
  59. data/rails_app/rails_5.2/config.ru +7 -0
  60. data/rails_app/rails_5.2/config/application.rb +37 -0
  61. data/rails_app/rails_5.2/config/boot.rb +6 -0
  62. data/rails_app/rails_5.2/config/credentials.yml.enc +1 -0
  63. data/rails_app/rails_5.2/config/environment.rb +7 -0
  64. data/rails_app/rails_5.2/config/environments/development.rb +41 -0
  65. data/rails_app/rails_5.2/config/environments/production.rb +70 -0
  66. data/rails_app/rails_5.2/config/environments/test.rb +38 -0
  67. data/rails_app/rails_5.2/config/initializers/application_controller_renderer.rb +9 -0
  68. data/rails_app/rails_5.2/config/initializers/backtrace_silencers.rb +8 -0
  69. data/rails_app/rails_5.2/config/initializers/cors.rb +17 -0
  70. data/rails_app/rails_5.2/config/initializers/filter_parameter_logging.rb +6 -0
  71. data/rails_app/rails_5.2/config/initializers/inflections.rb +17 -0
  72. data/rails_app/rails_5.2/config/initializers/mime_types.rb +5 -0
  73. data/rails_app/rails_5.2/config/initializers/wrap_parameters.rb +11 -0
  74. data/rails_app/rails_5.2/config/locales/en.yml +33 -0
  75. data/rails_app/rails_5.2/config/routes.rb +5 -0
  76. data/rails_app/rails_5.2/config/spring.rb +8 -0
  77. data/rails_app/rails_5.2/public/robots.txt +1 -0
  78. data/rails_app/rails_5.2/spec/rails_helper.rb +14 -0
  79. data/rails_app/rails_5.2/spec/spec_helper.rb +13 -0
  80. data/rails_app/rails_6.0/.rspec +3 -0
  81. data/rails_app/rails_6.0/Gemfile +17 -0
  82. data/rails_app/rails_6.0/Gemfile.lock +186 -0
  83. data/rails_app/rails_6.0/README.md +24 -0
  84. data/rails_app/rails_6.0/Rakefile +8 -0
  85. data/rails_app/rails_6.0/app/controllers/application_controller.rb +4 -0
  86. data/rails_app/rails_6.0/app/jobs/application_job.rb +9 -0
  87. data/rails_app/rails_6.0/bin/rails +6 -0
  88. data/rails_app/rails_6.0/bin/rake +6 -0
  89. data/rails_app/rails_6.0/bin/setup +27 -0
  90. data/rails_app/rails_6.0/config.ru +7 -0
  91. data/rails_app/rails_6.0/config/application.rb +39 -0
  92. data/rails_app/rails_6.0/config/boot.rb +6 -0
  93. data/rails_app/rails_6.0/config/credentials.yml.enc +1 -0
  94. data/rails_app/rails_6.0/config/environment.rb +7 -0
  95. data/rails_app/rails_6.0/config/environments/development.rb +39 -0
  96. data/rails_app/rails_6.0/config/environments/production.rb +90 -0
  97. data/rails_app/rails_6.0/config/environments/test.rb +41 -0
  98. data/rails_app/rails_6.0/config/initializers/application_controller_renderer.rb +9 -0
  99. data/rails_app/rails_6.0/config/initializers/backtrace_silencers.rb +8 -0
  100. data/rails_app/rails_6.0/config/initializers/cors.rb +17 -0
  101. data/rails_app/rails_6.0/config/initializers/filter_parameter_logging.rb +6 -0
  102. data/rails_app/rails_6.0/config/initializers/inflections.rb +17 -0
  103. data/rails_app/rails_6.0/config/initializers/mime_types.rb +5 -0
  104. data/rails_app/rails_6.0/config/initializers/wrap_parameters.rb +11 -0
  105. data/rails_app/rails_6.0/config/locales/en.yml +33 -0
  106. data/rails_app/rails_6.0/config/routes.rb +5 -0
  107. data/rails_app/rails_6.0/config/spring.rb +8 -0
  108. data/rails_app/rails_6.0/public/robots.txt +1 -0
  109. data/rails_app/rails_6.0/spec/rails_helper.rb +14 -0
  110. data/rails_app/rails_6.0/spec/spec_helper.rb +13 -0
  111. metadata +81 -8
  112. data/gemfiles/rails_4.2.gemfile +0 -15
  113. data/renovate.json +0 -21
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MyApiClient
4
+ # For API request limit error
5
+ class ApiLimitError < Error; end
6
+ end
@@ -0,0 +1,93 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MyApiClient
4
+ # For 4xx client error
5
+ class ClientError < Error
6
+ # 400 Bad Request
7
+ class BadRequest < ClientError; end
8
+
9
+ # 401 Unauthorized
10
+ class Unauthorized < ClientError; end
11
+
12
+ # 402 Payment Required
13
+ class PaymentRequired < ClientError; end
14
+
15
+ # 403 Forbidden
16
+ class Forbidden < ClientError; end
17
+
18
+ # 404 Not Found
19
+ class NotFound < ClientError; end
20
+
21
+ # 405 Method Not Allowed
22
+ class MethodNotAllowed < ClientError; end
23
+
24
+ # 406 Not Acceptable
25
+ class NotAcceptable < ClientError; end
26
+
27
+ # 407 Proxy Authentication Required
28
+ class ProxyAuthenticationRequired < ClientError; end
29
+
30
+ # 408 Request Timeout
31
+ class RequestTimeout < ClientError; end
32
+
33
+ # 409 Conflict
34
+ class Conflict < ClientError; end
35
+
36
+ # 410 Gone
37
+ class Gone < ClientError; end
38
+
39
+ # 411 Length Required
40
+ class LengthRequired < ClientError; end
41
+
42
+ # 412 Precondition Failed
43
+ class PreconditionFailed < ClientError; end
44
+
45
+ # 413 Payload Too Large
46
+ class RequestEntityTooLarge < ClientError; end
47
+
48
+ # 414 URI Too Long
49
+ class RequestUriTooLong < ClientError; end
50
+
51
+ # 415 Unsupported Media Type
52
+ class UnsupportedMediaType < ClientError; end
53
+
54
+ # 416 Range Not Satisfiable
55
+ class RequestedRangeNotSatisfiable < ClientError; end
56
+
57
+ # 417 Expectation Failed
58
+ class ExpectationFailed < ClientError; end
59
+
60
+ # 418 I'm a teapot
61
+ class IamTeapot < ClientError; end
62
+
63
+ # 421 Misdirected Request
64
+ class MisdirectedRequest < ClientError; end
65
+
66
+ # 422 Unprocessable Entity
67
+ class UnprocessableEntity < ClientError; end
68
+
69
+ # 423 Locked
70
+ class Locked < ClientError; end
71
+
72
+ # 424 Failed Dependency
73
+ class FailedDependency < ClientError; end
74
+
75
+ # 425 Too Early
76
+ class TooEarly < ClientError; end
77
+
78
+ # 426 Upgrade Required
79
+ class UpgradeRequired < ClientError; end
80
+
81
+ # 428 Precondition Required
82
+ class PreconditionRequired < ClientError; end
83
+
84
+ # 429 Too Many Requests
85
+ class TooManyRequests < ClientError; end
86
+
87
+ # 431 Request Header Fields Too Large
88
+ class RequestHeaderFieldsTooLarge < ClientError; end
89
+
90
+ # 451 Unavailable for Legal Reasons
91
+ class UnavailableForLegalReasons < ClientError; end
92
+ end
93
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MyApiClient
4
+ NETWORK_ERRORS = [
5
+ Faraday::TimeoutError,
6
+ Faraday::ConnectionFailed,
7
+ Faraday::SSLError,
8
+ OpenSSL::SSL::SSLError,
9
+ Net::OpenTimeout,
10
+ Net::ReadTimeout,
11
+ SocketError,
12
+ ].freeze
13
+
14
+ # Raises it when occurred to some network error
15
+ class NetworkError < Error
16
+ attr_reader :original_error
17
+
18
+ # Initialize the error class
19
+ #
20
+ # @param params [MyApiClient::Params::Params]
21
+ # The request and response parameters
22
+ # @param original_error [StandardError]
23
+ # Some network error
24
+ def initialize(params, original_error)
25
+ @original_error = original_error
26
+ super params, original_error.message
27
+ end
28
+
29
+ # Returns contents as string for to be readable for human
30
+ #
31
+ # @return [String] Contents as string
32
+ def inspect
33
+ { error: original_error, params: params }.inspect
34
+ end
35
+
36
+ # Generate metadata for bugsnag.
37
+ #
38
+ # @return [Hash] Metadata for bugsnag
39
+ def metadata
40
+ super.merge(original_error: original_error.inspect)
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MyApiClient
4
+ # For 5xx server error
5
+ class ServerError < Error
6
+ # 500 Internal Server Error
7
+ class InternalServerError < ServerError; end
8
+
9
+ # 501 Not Implemented
10
+ class NotImplemented < ServerError; end
11
+
12
+ # 502 Bad Gateway
13
+ class BadGateway < ServerError; end
14
+
15
+ # 503 Service Unavailable
16
+ class ServiceUnavailable < ServerError; end
17
+
18
+ # 504 Gateway Timeout
19
+ class GatewayTimeout < ServerError; end
20
+
21
+ # 505 HTTP Version Not Supported
22
+ class HttpVersionNotSupported < ServerError; end
23
+
24
+ # 506 Variant Also Negotiates
25
+ class VariantAlsoNegotiates < ServerError; end
26
+
27
+ # 507 Insufficient Storage
28
+ class InsufficientStorage < ServerError; end
29
+
30
+ # 508 Loop Detected
31
+ class LoopDetected < ServerError; end
32
+
33
+ # 509 Bandwidth Limit Exceeded
34
+ class BandwidthLimitExceeded < ServerError; end
35
+
36
+ # 510 Not Extended
37
+ class NotExtended < ServerError; end
38
+
39
+ # 511 Network Authentication Required
40
+ class NetworkAuthenticationRequired < ServerError; end
41
+ end
42
+ end
@@ -40,9 +40,7 @@ module MyApiClient
40
40
  # @return [Hash] Metadata for bugsnag
41
41
  def request_metadata
42
42
  if request.present?
43
- request.metadata.each_with_object({}) do |(key, value), memo|
44
- memo[:"request_#{key}"] = value
45
- end
43
+ request.metadata.transform_keys { |key| :"request_#{key}" }
46
44
  else
47
45
  {}
48
46
  end
@@ -1,41 +1,38 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MyApiClient
4
- # Description of Request
4
+ # Provides HTTP request method.
5
5
  module Request
6
- HTTP_METHODS = %i[get post patch delete].freeze
7
-
8
- HTTP_METHODS.each do |http_method|
9
- class_eval <<~METHOD, __FILE__, __LINE__ + 1
10
- # Executes HTTP request with #{http_method.upcase} method
11
- #
12
- # @param pathname [String]
13
- # Pathname of the request target URL.
14
- # It's joined with the defined `endpoint`.
15
- # @param headers [Hash, nil]
16
- # Request headers.
17
- # @param query [Hash, nil]
18
- # Query string.
19
- # @param body [Hash, nil]
20
- # Request body. You should not specify it when use GET method.
21
- # @return [Sawyer::Resouce]
22
- # Response body instance.
23
- def #{http_method}(pathname, headers: nil, query: nil, body: nil)
24
- query_strings = query.present? ? '?' + query&.to_query : ''
25
- uri = URI.join(File.join(endpoint, pathname), query_strings)
26
- response = call(:_request, :#{http_method}, uri, headers, body)
27
- response.data
28
- end
29
- METHOD
30
- end
31
- alias put patch
6
+ include Basic
7
+ include Pagination
32
8
 
33
9
  private
34
10
 
35
- # Executes HTTP request.
11
+ # Executes HTTP request with relative URI.
12
+ #
13
+ # @param http_method [Symbol]
14
+ # HTTP method. e.g. `:get`, `:post`, `:put`, `:patch` and `:delete`.
15
+ # @param pathname [String]
16
+ # Pathname of the request target URL.
17
+ # It's joined with the defined by `endpoint`.
18
+ # @param headers [Hash, nil]
19
+ # Request headers.
20
+ # @param query [Hash, nil]
21
+ # Query string.
22
+ # @param body [Hash, nil]
23
+ # Request body.
24
+ # @return [Sawyer::Response]
25
+ # Response instance.
26
+ def _request_with_relative_uri(http_method, pathname, headers, query, body)
27
+ query_strings = query.present? ? '?' + query&.to_query : ''
28
+ uri = URI.join(File.join(endpoint, pathname), query_strings)
29
+ _request_with_absolute_uri(http_method, uri, headers, body)
30
+ end
31
+
32
+ # Executes HTTP request with absolute URI.
36
33
  #
37
34
  # @param http_method [Symbol]
38
- # HTTP method. e.g. `:get`, `:post`, `:patch` and `:delete`.
35
+ # HTTP method. e.g. `:get`, `:post`, `:put`, `:patch` and `:delete`.
39
36
  # @param uri [URI]
40
37
  # Request target URI including query strings.
41
38
  # @param headers [Hash, nil]
@@ -44,13 +41,11 @@ module MyApiClient
44
41
  # Request body.
45
42
  # @return [Sawyer::Response]
46
43
  # Response instance.
47
- def _request(http_method, uri, headers, body)
48
- request_params = Params::Request.new(http_method, uri, headers, body)
49
- request_logger = Logger.new(logger, http_method, uri)
44
+ def _request_with_absolute_uri(http_method, uri, headers, body)
50
45
  Executor.call(
51
46
  instance: self,
52
- request_params: request_params,
53
- request_logger: request_logger,
47
+ request_params: Params::Request.new(http_method, uri, headers, body),
48
+ request_logger: Logger.new(logger, http_method, uri),
54
49
  faraday_options: faraday_options
55
50
  )
56
51
  end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MyApiClient
4
+ module Request
5
+ # Provides basic HTTP request method.
6
+ module Basic
7
+ HTTP_METHODS = %i[get post put patch delete].freeze
8
+
9
+ HTTP_METHODS.each do |http_method|
10
+ class_eval <<~METHOD, __FILE__, __LINE__ + 1
11
+ # Executes HTTP request with #{http_method.upcase} method
12
+ #
13
+ # @param pathname [String]
14
+ # Pathname of the request target URL.
15
+ # It's joined with the defined by `endpoint`.
16
+ # @param headers [Hash, nil]
17
+ # Request headers.
18
+ # @param query [Hash, nil]
19
+ # Query string.
20
+ # @param body [Hash, nil]
21
+ # Request body. You should not specify it when use GET method.
22
+ # @return [Sawyer::Resource]
23
+ # Response body instance.
24
+ def #{http_method}(pathname, headers: nil, query: nil, body: nil)
25
+ response = call(:_request_with_relative_uri, :#{http_method}, pathname, headers, query, body)
26
+ response.data
27
+ end
28
+ METHOD
29
+ end
30
+ end
31
+ end
32
+ end
@@ -32,7 +32,7 @@ module MyApiClient
32
32
  def call
33
33
  request_logger.info('Start')
34
34
  response = api_request
35
- request_logger.info("Duration #{response.timing} sec")
35
+ request_logger.info("Duration #{response.timing.in_milliseconds} msec")
36
36
  verify(response)
37
37
  rescue MyApiClient::Error => e
38
38
  request_logger.warn("Failure (#{e.message})")
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MyApiClient
4
+ module Request
5
+ # Provides enumerable HTTP request method.
6
+ module Pagination
7
+ # Executes HTTP request with GET method, for pagination API. Expects the
8
+ # pagination API to provide pagination links as part of the content of the response.
9
+ #
10
+ # @param pathname [String]
11
+ # Pathname of the request target URL. It's joined with the defined by `endpoint`.
12
+ # @param paging [String]
13
+ # Specify the pagination link path included in the response body as JsonPath expression
14
+ # @param headers [Hash, nil]
15
+ # Request headers.
16
+ # @param query [Hash, nil]
17
+ # Query string.
18
+ # @param body [Hash, nil]
19
+ # Request body. You should not specify it when use GET method.
20
+ # @return [Enumerator::Lazy]
21
+ # Yields the pagination API response.
22
+ def pageable_get(pathname, paging:, headers: nil, query: nil)
23
+ Enumerator.new do |y|
24
+ response = call(:_request_with_relative_uri, :get, pathname, headers, query, nil)
25
+ loop do
26
+ y << response.data
27
+
28
+ next_uri = JsonPath.new(paging).first(response.body)
29
+ break if next_uri.blank?
30
+
31
+ response = call(:_request_with_absolute_uri, :get, next_uri, headers, nil)
32
+ end
33
+ end.lazy
34
+ end
35
+
36
+ alias pget pageable_get
37
+ end
38
+ end
39
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MyApiClient
4
- VERSION = '0.14.0'
4
+ VERSION = '0.18.0'
5
5
  end
@@ -1 +1 @@
1
- 2.7.0
1
+ 2.5.7
@@ -1,43 +1,43 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- actionmailer (6.0.2.1)
5
- actionpack (= 6.0.2.1)
6
- actionview (= 6.0.2.1)
7
- activejob (= 6.0.2.1)
4
+ actionmailer (6.0.3.4)
5
+ actionpack (= 6.0.3.4)
6
+ actionview (= 6.0.3.4)
7
+ activejob (= 6.0.3.4)
8
8
  mail (~> 2.5, >= 2.5.4)
9
9
  rails-dom-testing (~> 2.0)
10
- actionpack (6.0.2.1)
11
- actionview (= 6.0.2.1)
12
- activesupport (= 6.0.2.1)
10
+ actionpack (6.0.3.4)
11
+ actionview (= 6.0.3.4)
12
+ activesupport (= 6.0.3.4)
13
13
  rack (~> 2.0, >= 2.0.8)
14
14
  rack-test (>= 0.6.3)
15
15
  rails-dom-testing (~> 2.0)
16
16
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
17
- actionview (6.0.2.1)
18
- activesupport (= 6.0.2.1)
17
+ actionview (6.0.3.4)
18
+ activesupport (= 6.0.3.4)
19
19
  builder (~> 3.1)
20
20
  erubi (~> 1.4)
21
21
  rails-dom-testing (~> 2.0)
22
22
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
23
- activejob (6.0.2.1)
24
- activesupport (= 6.0.2.1)
23
+ activejob (6.0.3.4)
24
+ activesupport (= 6.0.3.4)
25
25
  globalid (>= 0.3.6)
26
- activemodel (6.0.2.1)
27
- activesupport (= 6.0.2.1)
28
- activerecord (6.0.2.1)
29
- activemodel (= 6.0.2.1)
30
- activesupport (= 6.0.2.1)
31
- activesupport (6.0.2.1)
26
+ activemodel (6.0.3.4)
27
+ activesupport (= 6.0.3.4)
28
+ activerecord (6.0.3.4)
29
+ activemodel (= 6.0.3.4)
30
+ activesupport (= 6.0.3.4)
31
+ activesupport (6.0.3.4)
32
32
  concurrent-ruby (~> 1.0, >= 1.0.2)
33
33
  i18n (>= 0.7, < 2)
34
34
  minitest (~> 5.1)
35
35
  tzinfo (~> 1.1)
36
- zeitwerk (~> 2.2)
36
+ zeitwerk (~> 2.2, >= 2.2.2)
37
37
  addressable (2.7.0)
38
38
  public_suffix (>= 2.0.2, < 5.0)
39
- aws-eventstream (1.0.3)
40
- aws-mfa-secure (0.4.0)
39
+ aws-eventstream (1.1.0)
40
+ aws-mfa-secure (0.4.2)
41
41
  activesupport
42
42
  aws-sdk-core
43
43
  aws_config
@@ -45,52 +45,52 @@ GEM
45
45
  rainbow
46
46
  thor
47
47
  zeitwerk
48
- aws-partitions (1.278.0)
49
- aws-sdk-apigateway (1.36.0)
50
- aws-sdk-core (~> 3, >= 3.71.0)
48
+ aws-partitions (1.358.0)
49
+ aws-sdk-apigateway (1.49.0)
50
+ aws-sdk-core (~> 3, >= 3.99.0)
51
51
  aws-sigv4 (~> 1.1)
52
- aws-sdk-cloudformation (1.30.0)
53
- aws-sdk-core (~> 3, >= 3.71.0)
52
+ aws-sdk-cloudformation (1.41.0)
53
+ aws-sdk-core (~> 3, >= 3.99.0)
54
54
  aws-sigv4 (~> 1.1)
55
- aws-sdk-cloudwatchlogs (1.28.0)
56
- aws-sdk-core (~> 3, >= 3.71.0)
55
+ aws-sdk-cloudwatchlogs (1.34.0)
56
+ aws-sdk-core (~> 3, >= 3.99.0)
57
57
  aws-sigv4 (~> 1.1)
58
- aws-sdk-core (3.90.1)
59
- aws-eventstream (~> 1.0, >= 1.0.2)
58
+ aws-sdk-core (3.104.4)
59
+ aws-eventstream (~> 1, >= 1.0.2)
60
60
  aws-partitions (~> 1, >= 1.239.0)
61
61
  aws-sigv4 (~> 1.1)
62
62
  jmespath (~> 1.0)
63
- aws-sdk-dynamodb (1.43.0)
64
- aws-sdk-core (~> 3, >= 3.71.0)
63
+ aws-sdk-dynamodb (1.51.0)
64
+ aws-sdk-core (~> 3, >= 3.99.0)
65
65
  aws-sigv4 (~> 1.1)
66
- aws-sdk-kinesis (1.20.0)
67
- aws-sdk-core (~> 3, >= 3.71.0)
66
+ aws-sdk-kinesis (1.27.0)
67
+ aws-sdk-core (~> 3, >= 3.99.0)
68
68
  aws-sigv4 (~> 1.1)
69
- aws-sdk-kms (1.29.0)
70
- aws-sdk-core (~> 3, >= 3.71.0)
69
+ aws-sdk-kms (1.36.0)
70
+ aws-sdk-core (~> 3, >= 3.99.0)
71
71
  aws-sigv4 (~> 1.1)
72
- aws-sdk-lambda (1.36.0)
73
- aws-sdk-core (~> 3, >= 3.71.0)
72
+ aws-sdk-lambda (1.48.0)
73
+ aws-sdk-core (~> 3, >= 3.99.0)
74
74
  aws-sigv4 (~> 1.1)
75
- aws-sdk-s3 (1.60.2)
76
- aws-sdk-core (~> 3, >= 3.83.0)
75
+ aws-sdk-s3 (1.78.0)
76
+ aws-sdk-core (~> 3, >= 3.104.3)
77
77
  aws-sdk-kms (~> 1)
78
78
  aws-sigv4 (~> 1.1)
79
- aws-sdk-sns (1.21.0)
80
- aws-sdk-core (~> 3, >= 3.71.0)
79
+ aws-sdk-sns (1.29.0)
80
+ aws-sdk-core (~> 3, >= 3.99.0)
81
81
  aws-sigv4 (~> 1.1)
82
- aws-sdk-sqs (1.23.1)
83
- aws-sdk-core (~> 3, >= 3.71.0)
82
+ aws-sdk-sqs (1.30.0)
83
+ aws-sdk-core (~> 3, >= 3.99.0)
84
84
  aws-sigv4 (~> 1.1)
85
- aws-sdk-ssm (1.71.0)
86
- aws-sdk-core (~> 3, >= 3.71.0)
85
+ aws-sdk-ssm (1.86.0)
86
+ aws-sdk-core (~> 3, >= 3.99.0)
87
87
  aws-sigv4 (~> 1.1)
88
- aws-sigv4 (1.1.1)
89
- aws-eventstream (~> 1.0, >= 1.0.2)
88
+ aws-sigv4 (1.2.2)
89
+ aws-eventstream (~> 1, >= 1.0.2)
90
90
  aws_config (0.1.0)
91
91
  builder (3.2.4)
92
- byebug (11.1.1)
93
- capybara (3.31.0)
92
+ byebug (11.1.3)
93
+ capybara (3.34.0)
94
94
  addressable
95
95
  mini_mime (>= 0.1.3)
96
96
  nokogiri (~> 1.8)
@@ -103,11 +103,11 @@ GEM
103
103
  memoist
104
104
  rainbow
105
105
  cfnresponse (0.4.0)
106
- concurrent-ruby (1.1.6)
106
+ concurrent-ruby (1.1.7)
107
107
  crass (1.0.6)
108
- diff-lcs (1.3)
109
- dotenv (2.7.5)
110
- dynomite (1.2.5)
108
+ diff-lcs (1.4.4)
109
+ dotenv (2.7.6)
110
+ dynomite (1.2.6)
111
111
  activesupport
112
112
  aws-sdk-dynamodb
113
113
  rainbow
@@ -116,9 +116,9 @@ GEM
116
116
  globalid (0.4.2)
117
117
  activesupport (>= 4.2.0)
118
118
  hashie (4.1.0)
119
- i18n (1.8.2)
119
+ i18n (1.8.5)
120
120
  concurrent-ruby (~> 1.0)
121
- jets (2.3.13)
121
+ jets (2.3.17)
122
122
  actionmailer (~> 6.0.0)
123
123
  actionpack (~> 6.0.0)
124
124
  actionview (~> 6.0.0)
@@ -142,7 +142,6 @@ GEM
142
142
  hashie
143
143
  jets-gems
144
144
  jets-html-sanitizer
145
- json
146
145
  kramdown
147
146
  memoist
148
147
  mimemagic
@@ -154,33 +153,33 @@ GEM
154
153
  text-table
155
154
  thor
156
155
  zeitwerk
157
- jets-gems (0.2.0)
156
+ jets-gems (0.2.2)
158
157
  gems
159
158
  jets-html-sanitizer (1.0.4)
160
159
  loofah (~> 2.2, >= 2.2.2)
161
160
  jmespath (1.4.0)
162
- json (2.3.0)
163
- kramdown (2.1.0)
161
+ kramdown (2.3.0)
162
+ rexml
164
163
  launchy (2.5.0)
165
164
  addressable (~> 2.7)
166
- loofah (2.4.0)
165
+ loofah (2.7.0)
167
166
  crass (~> 1.0.2)
168
167
  nokogiri (>= 1.5.9)
169
168
  mail (2.7.1)
170
169
  mini_mime (>= 0.1.1)
171
170
  memoist (0.16.2)
172
- method_source (0.9.2)
173
- mimemagic (0.3.4)
171
+ method_source (1.0.0)
172
+ mimemagic (0.3.5)
174
173
  mini_mime (1.0.2)
175
174
  mini_portile2 (2.4.0)
176
- minitest (5.14.0)
177
- nio4r (2.5.2)
178
- nokogiri (1.10.8)
175
+ minitest (5.14.2)
176
+ nio4r (2.5.4)
177
+ nokogiri (1.10.10)
179
178
  mini_portile2 (~> 2.4.0)
180
- public_suffix (4.0.3)
181
- puma (4.3.3)
179
+ public_suffix (4.0.6)
180
+ puma (5.1.0)
182
181
  nio4r (~> 2.0)
183
- rack (2.2.2)
182
+ rack (2.2.3)
184
183
  rack-test (1.1.0)
185
184
  rack (>= 1.0, < 3)
186
185
  rails-dom-testing (2.0.3)
@@ -188,29 +187,30 @@ GEM
188
187
  nokogiri (>= 1.6)
189
188
  rails-html-sanitizer (1.3.0)
190
189
  loofah (~> 2.3)
191
- railties (6.0.2.1)
192
- actionpack (= 6.0.2.1)
193
- activesupport (= 6.0.2.1)
190
+ railties (6.0.3.4)
191
+ actionpack (= 6.0.3.4)
192
+ activesupport (= 6.0.3.4)
194
193
  method_source
195
194
  rake (>= 0.8.7)
196
195
  thor (>= 0.20.3, < 2.0)
197
196
  rainbow (3.0.0)
198
197
  rake (13.0.1)
199
- recursive-open-struct (1.1.0)
200
- regexp_parser (1.7.0)
201
- rspec (3.9.0)
202
- rspec-core (~> 3.9.0)
203
- rspec-expectations (~> 3.9.0)
204
- rspec-mocks (~> 3.9.0)
205
- rspec-core (3.9.1)
206
- rspec-support (~> 3.9.1)
207
- rspec-expectations (3.9.0)
198
+ recursive-open-struct (1.1.2)
199
+ regexp_parser (1.8.2)
200
+ rexml (3.2.4)
201
+ rspec (3.10.0)
202
+ rspec-core (~> 3.10.0)
203
+ rspec-expectations (~> 3.10.0)
204
+ rspec-mocks (~> 3.10.0)
205
+ rspec-core (3.10.0)
206
+ rspec-support (~> 3.10.0)
207
+ rspec-expectations (3.10.0)
208
208
  diff-lcs (>= 1.2.0, < 2.0)
209
- rspec-support (~> 3.9.0)
210
- rspec-mocks (3.9.1)
209
+ rspec-support (~> 3.10.0)
210
+ rspec-mocks (3.10.0)
211
211
  diff-lcs (>= 1.2.0, < 2.0)
212
- rspec-support (~> 3.9.0)
213
- rspec-support (3.9.2)
212
+ rspec-support (~> 3.10.0)
213
+ rspec-support (3.10.0)
214
214
  rspec_junit_formatter (0.4.1)
215
215
  rspec-core (>= 2, < 4, != 2.12.0)
216
216
  shotgun (0.9.2)
@@ -218,11 +218,11 @@ GEM
218
218
  text-table (1.2.4)
219
219
  thor (1.0.1)
220
220
  thread_safe (0.3.6)
221
- tzinfo (1.2.6)
221
+ tzinfo (1.2.7)
222
222
  thread_safe (~> 0.1)
223
223
  xpath (3.2.0)
224
224
  nokogiri (~> 1.8)
225
- zeitwerk (2.2.2)
225
+ zeitwerk (2.4.0)
226
226
 
227
227
  PLATFORMS
228
228
  ruby