workato-connector-sdk 1.0.3 → 1.2.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 (33) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +1 -0
  3. data/lib/workato/cli/exec_command.rb +31 -8
  4. data/lib/workato/cli/multi_auth_selected_fallback.rb +33 -0
  5. data/lib/workato/cli/oauth2_command.rb +50 -12
  6. data/lib/workato/connector/sdk/connection.rb +84 -14
  7. data/lib/workato/connector/sdk/connector.rb +6 -4
  8. data/lib/workato/connector/sdk/dsl/aws.rb +5 -2
  9. data/lib/workato/connector/sdk/dsl/call.rb +5 -2
  10. data/lib/workato/connector/sdk/dsl/csv.rb +125 -0
  11. data/lib/workato/connector/sdk/dsl/execution_context.rb +44 -0
  12. data/lib/workato/connector/sdk/dsl/workato_code_lib.rb +8 -1
  13. data/lib/workato/connector/sdk/dsl.rb +1 -0
  14. data/lib/workato/connector/sdk/errors.rb +69 -1
  15. data/lib/workato/connector/sdk/lookup_tables.rb +3 -1
  16. data/lib/workato/connector/sdk/object_definitions.rb +16 -10
  17. data/lib/workato/connector/sdk/operation.rb +24 -8
  18. data/lib/workato/connector/sdk/request.rb +136 -58
  19. data/lib/workato/connector/sdk/schema.rb +5 -3
  20. data/lib/workato/connector/sdk/settings.rb +4 -2
  21. data/lib/workato/connector/sdk/trigger.rb +42 -19
  22. data/lib/workato/connector/sdk/version.rb +1 -1
  23. data/lib/workato/connector/sdk.rb +3 -2
  24. data/lib/workato/extension/case_sensitive_headers.rb +0 -25
  25. data/lib/workato/extension/content_encoding_decoder.rb +67 -0
  26. data/lib/workato/extension/currency.rb +1 -1
  27. data/lib/workato/extension/extra_chain_cert.rb +0 -14
  28. data/lib/workato/extension/hash_with_indifferent_access.rb +19 -0
  29. data/lib/workato/extension/phone.rb +1 -1
  30. data/lib/workato/extension/string.rb +6 -2
  31. data/lib/workato/utilities/encoding.rb +57 -0
  32. data/lib/workato/{connector/sdk → utilities}/xml.rb +4 -4
  33. metadata +48 -22
@@ -3,6 +3,8 @@
3
3
 
4
4
  require 'active_support/encrypted_configuration'
5
5
 
6
+ using Workato::Extension::HashWithIndifferentAccess
7
+
6
8
  module Workato
7
9
  module Connector
8
10
  module Sdk
@@ -98,13 +100,13 @@ module Workato
98
100
  end
99
101
 
100
102
  def read_encrypted_file
101
- all_settings = encrypted_configuration.config.with_indifferent_access
103
+ all_settings = HashWithIndifferentAccess.wrap(encrypted_configuration.config)
102
104
 
103
105
  (name ? all_settings.fetch(name) : all_settings) || {}
104
106
  end
105
107
 
106
108
  def update_encrypted_file(new_settings)
107
- all_settings = encrypted_configuration.config.with_indifferent_access
109
+ all_settings = HashWithIndifferentAccess.wrap(encrypted_configuration.config)
108
110
 
109
111
  merge_settings(all_settings, new_settings)
110
112
 
@@ -3,11 +3,27 @@
3
3
 
4
4
  require 'securerandom'
5
5
 
6
+ using Workato::Extension::HashWithIndifferentAccess
7
+
6
8
  module Workato
7
9
  module Connector
8
10
  module Sdk
9
11
  module SorbetTypes
10
12
  WebhookSubscribeOutputHash = T.type_alias { T::Hash[T.any(String, Symbol), T.untyped] }
13
+
14
+ WebhookNotificationPayload = T.type_alias { T.untyped }
15
+
16
+ TriggerEventHash = T.type_alias { T::Hash[T.untyped, T.untyped] }
17
+
18
+ WebhookNotificationOutputHash = T.type_alias { T.any(T::Array[TriggerEventHash], TriggerEventHash) }
19
+
20
+ PollOutputHash = T.type_alias do
21
+ {
22
+ 'events' => T::Array[TriggerEventHash],
23
+ 'can_poll_more' => T.nilable(T::Boolean),
24
+ 'next_poll' => T.untyped
25
+ }
26
+ end
11
27
  end
12
28
 
13
29
  class Trigger < Operation
@@ -38,7 +54,7 @@ module Workato
38
54
  extended_input_schema: SorbetTypes::OperationSchema,
39
55
  extended_output_schema: SorbetTypes::OperationSchema
40
56
  ).returns(
41
- HashWithIndifferentAccess
57
+ SorbetTypes::PollOutputHash
42
58
  )
43
59
  end
44
60
  def poll_page(settings = nil, input = {}, closure = nil, extended_input_schema = [],
@@ -52,7 +68,9 @@ module Workato
52
68
  ) do |connection, payload, eis, eos|
53
69
  instance_exec(connection, payload[:input], payload[:closure], eis, eos, &poll_proc)
54
70
  end
55
- output[:events] = ::Array.wrap(output[:events]).reverse!.uniq(&trigger[:dedup])
71
+ output[:events] = Array.wrap(output[:events])
72
+ .reverse!
73
+ .map! { |event| ::Hash.try_convert(event) || event }
56
74
  output[:next_poll] = output[:next_poll].presence || closure
57
75
  output
58
76
  end
@@ -65,11 +83,11 @@ module Workato
65
83
  extended_input_schema: SorbetTypes::OperationSchema,
66
84
  extended_output_schema: SorbetTypes::OperationSchema
67
85
  ).returns(
68
- HashWithIndifferentAccess
86
+ SorbetTypes::PollOutputHash
69
87
  )
70
88
  end
71
89
  def poll(settings = nil, input = {}, closure = nil, extended_input_schema = [], extended_output_schema = [])
72
- events = T.let([], T::Array[T::Hash[T.any(String, Symbol), T.untyped]])
90
+ events = T.let([], T::Array[SorbetTypes::TriggerEventHash])
73
91
 
74
92
  loop do
75
93
  output = poll_page(settings, input, closure, extended_input_schema, extended_output_schema)
@@ -80,13 +98,13 @@ module Workato
80
98
  end
81
99
 
82
100
  {
83
- events: events.uniq(&trigger[:dedup]),
101
+ events: events,
84
102
  can_poll_more: false,
85
103
  next_poll: closure
86
104
  }.with_indifferent_access
87
105
  end
88
106
 
89
- sig { params(input: SorbetTypes::OperationInputHash).returns(T.untyped) }
107
+ sig { params(input: SorbetTypes::TriggerEventHash).returns(T.untyped) }
90
108
  def dedup(input = {})
91
109
  trigger[:dedup].call(input)
92
110
  end
@@ -94,7 +112,7 @@ module Workato
94
112
  sig do
95
113
  params(
96
114
  input: SorbetTypes::OperationInputHash,
97
- payload: T::Hash[T.any(String, Symbol), T.untyped],
115
+ payload: SorbetTypes::WebhookNotificationPayload,
98
116
  extended_input_schema: SorbetTypes::OperationSchema,
99
117
  extended_output_schema: SorbetTypes::OperationSchema,
100
118
  headers: T::Hash[T.any(String, Symbol), T.untyped],
@@ -102,7 +120,7 @@ module Workato
102
120
  settings: T.nilable(SorbetTypes::SettingsHash),
103
121
  webhook_subscribe_output: SorbetTypes::WebhookSubscribeOutputHash
104
122
  ).returns(
105
- HashWithIndifferentAccess
123
+ SorbetTypes::WebhookNotificationOutputHash
106
124
  )
107
125
  end
108
126
  def webhook_notification(
@@ -116,18 +134,23 @@ module Workato
116
134
  webhook_subscribe_output = {}
117
135
  )
118
136
  connection.merge_settings!(settings) if settings
119
- Dsl::WithDsl.execute(
137
+ output = Dsl::WithDsl.execute(
120
138
  connection,
121
- input.with_indifferent_access,
122
- payload.with_indifferent_access,
123
- Array.wrap(extended_input_schema).map(&:with_indifferent_access),
124
- Array.wrap(extended_output_schema).map(&:with_indifferent_access),
125
- headers.with_indifferent_access,
126
- params.with_indifferent_access,
139
+ HashWithIndifferentAccess.wrap(input),
140
+ payload,
141
+ Array.wrap(extended_input_schema).map { |i| HashWithIndifferentAccess.wrap(i) },
142
+ Array.wrap(extended_output_schema).map { |i| HashWithIndifferentAccess.wrap(i) },
143
+ HashWithIndifferentAccess.wrap(headers),
144
+ HashWithIndifferentAccess.wrap(params),
127
145
  connection.settings,
128
- webhook_subscribe_output.with_indifferent_access,
146
+ HashWithIndifferentAccess.wrap(webhook_subscribe_output),
129
147
  &trigger[:webhook_notification]
130
- ).with_indifferent_access
148
+ )
149
+ if output.is_a?(::Array)
150
+ output.map! { |event| ::Hash.try_convert(event) || event }
151
+ else
152
+ ::Hash.try_convert(output) || output
153
+ end
131
154
  end
132
155
 
133
156
  sig do
@@ -140,7 +163,7 @@ module Workato
140
163
  SorbetTypes::WebhookSubscribeOutputHash
141
164
  )
142
165
  end
143
- def webhook_subscribe(webhook_url = '', settings = nil, input = {}, recipe_id = SecureRandom.uuid)
166
+ def webhook_subscribe(webhook_url = '', settings = nil, input = {}, recipe_id = recipe_id!)
144
167
  webhook_subscribe_proc = trigger[:webhook_subscribe]
145
168
  execute(settings, { input: input, webhook_url: webhook_url, recipe_id: recipe_id }) do |connection, payload|
146
169
  instance_exec(
@@ -169,7 +192,7 @@ module Workato
169
192
  params: T::Hash[T.any(String, Symbol), T.untyped],
170
193
  webhook_subscribe_output: SorbetTypes::WebhookSubscribeOutputHash
171
194
  ).returns(
172
- T::Hash[T.any(String, Symbol), T.untyped]
195
+ T.any(SorbetTypes::WebhookNotificationOutputHash, SorbetTypes::PollOutputHash)
173
196
  )
174
197
  end
175
198
  def invoke(input = {}, payload = {}, headers = {}, params = {}, webhook_subscribe_output = {})
@@ -4,7 +4,7 @@
4
4
  module Workato
5
5
  module Connector
6
6
  module Sdk
7
- VERSION = '1.0.3'
7
+ VERSION = '1.2.0'
8
8
  end
9
9
  end
10
10
  end
@@ -39,11 +39,13 @@ require 'active_support/all'
39
39
  require 'active_support/json'
40
40
  require_relative '../extension/array'
41
41
  require_relative '../extension/case_sensitive_headers'
42
+ require_relative '../extension/content_encoding_decoder'
42
43
  require_relative '../extension/currency'
43
44
  require_relative '../extension/date'
44
45
  require_relative '../extension/enumerable'
45
46
  require_relative '../extension/extra_chain_cert'
46
47
  require_relative '../extension/hash'
48
+ require_relative '../extension/hash_with_indifferent_access'
47
49
  require_relative '../extension/integer'
48
50
  require_relative '../extension/nil_class'
49
51
  require_relative '../extension/object'
@@ -52,12 +54,12 @@ require_relative '../extension/string'
52
54
  require_relative '../extension/symbol'
53
55
  require_relative '../extension/time'
54
56
 
57
+ require_relative './sdk/errors'
55
58
  require_relative './sdk/account_properties'
56
59
  require_relative './sdk/action'
57
60
  require_relative './sdk/connection'
58
61
  require_relative './sdk/connector'
59
62
  require_relative './sdk/dsl'
60
- require_relative './sdk/errors'
61
63
  require_relative './sdk/lookup_tables'
62
64
  require_relative './sdk/object_definitions'
63
65
  require_relative './sdk/operation'
@@ -67,4 +69,3 @@ require_relative './sdk/summarize'
67
69
  require_relative './sdk/trigger'
68
70
  require_relative './sdk/version'
69
71
  require_relative './sdk/workato_schemas'
70
- require_relative './sdk/xml'
@@ -22,31 +22,6 @@ module Workato
22
22
 
23
23
  ::Net::HTTPHeader.prepend Net::HTTPHeader
24
24
  ::Net::HTTPGenericRequest.prepend Net::HTTPHeader
25
-
26
- module RestClient
27
- module Request
28
- attr_accessor :case_sensitive_headers
29
-
30
- def processed_headers
31
- return @processed_headers if case_sensitive_headers.blank?
32
- return case_sensitive_headers if @processed_headers.blank?
33
-
34
- @processed_headers.merge(case_sensitive_headers)
35
- end
36
-
37
- def execute(&block)
38
- # With 2.0.0+, net/http accepts URI objects in requests and handles wrapping
39
- # IPv6 addresses in [] for use in the Host request header.
40
- net_http_request = net_http_request_class(method).new(uri, processed_headers)
41
- net_http_request.case_sensitive_headers = case_sensitive_headers
42
- transmit(uri, net_http_request, payload, &block)
43
- ensure
44
- payload&.close
45
- end
46
- end
47
- end
48
-
49
- ::RestClient::Request.prepend RestClient::Request
50
25
  end
51
26
  end
52
27
  end
@@ -0,0 +1,67 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ module Workato
5
+ module Extension
6
+ module ContentEncodingDecoder
7
+ module RestClient
8
+ module Response
9
+ def create(body, net_http_res, request, start_time)
10
+ body = decode_content_encoding(net_http_res, body)
11
+ super(body, net_http_res, request, start_time)
12
+ end
13
+
14
+ private
15
+
16
+ def decode_content_encoding(response, body)
17
+ content_encoding = response['content-encoding']
18
+
19
+ case content_encoding&.downcase
20
+ when 'deflate', 'gzip', 'x-gzip'
21
+ response.delete 'content-encoding'
22
+ return body if body.blank?
23
+
24
+ deflate_string(body).force_encoding(Encoding.default_external)
25
+ when 'none', 'identity'
26
+ response.delete 'content-encoding'
27
+ body
28
+ else
29
+ body
30
+ end
31
+ end
32
+
33
+ def deflate_string(body)
34
+ # Decodes all deflate, gzip or x-gzip
35
+ zstream = Zlib::Inflate.new(Zlib::MAX_WBITS + 32)
36
+
37
+ zstream.inflate(body) + zstream.finish
38
+ rescue Zlib::DataError
39
+ # No luck with Zlib decompression. Let's try with raw deflate,
40
+ # like some broken web servers do. This part isn't compatible with Net::HTTP content-decoding
41
+ zstream.close
42
+
43
+ zstream = Zlib::Inflate.new(-Zlib::MAX_WBITS)
44
+ zstream.inflate(body) + zstream.finish
45
+ ensure
46
+ zstream.close
47
+ end
48
+ end
49
+ end
50
+
51
+ ::RestClient::Response.singleton_class.prepend(RestClient::Response)
52
+
53
+ ::RestClient::Request.prepend(
54
+ Module.new do
55
+ def default_headers
56
+ # Should pass this header to be compatible with rest-client 2.0.2 version
57
+ # and rely on decode_content_encoding patch
58
+ # since net/http does not decompress response body if Content-Range is specified
59
+ # (see https://github.com/ruby/ruby/blob/27f6ad737b13062339df0a0c80449cf0dbc92ba5/lib/net/http/response.rb#L254)
60
+ # while the previous version of rest-client does.
61
+ super.tap { |headers| headers[:accept_encoding] = 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3' }
62
+ end
63
+ end
64
+ )
65
+ end
66
+ end
67
+ end
@@ -5,7 +5,7 @@ module Workato
5
5
  module Extension
6
6
  module Currency
7
7
  def to_currency(options = {})
8
- ActiveSupport::NumberHelper::NumberToCurrencyConverter(self, options)
8
+ ActiveSupport::NumberHelper::NumberToCurrencyConverter.convert(self, options)
9
9
  end
10
10
  end
11
11
  end
@@ -22,20 +22,6 @@ module Workato
22
22
  end
23
23
 
24
24
  ::Net::HTTP.include Net::HTTP
25
-
26
- module RestClient
27
- module Request
28
- attr_accessor :extra_chain_cert
29
-
30
- def net_http_object(hostname, port)
31
- net = super(hostname, port)
32
- net.extra_chain_cert = extra_chain_cert if extra_chain_cert
33
- net
34
- end
35
- end
36
- end
37
-
38
- ::RestClient::Request.prepend RestClient::Request
39
25
  end
40
26
  end
41
27
  end
@@ -0,0 +1,19 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ require 'active_support/hash_with_indifferent_access'
5
+
6
+ module Workato
7
+ module Extension
8
+ module HashWithIndifferentAccess
9
+ refine ::ActiveSupport::HashWithIndifferentAccess.singleton_class do
10
+ def wrap(value)
11
+ return ::ActiveSupport::HashWithIndifferentAccess.new unless value
12
+ return value if value.is_a?(ActiveSupport::HashWithIndifferentAccess)
13
+
14
+ value.with_indifferent_access
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -5,7 +5,7 @@ module Workato
5
5
  module Extension
6
6
  module Phone
7
7
  def to_phone(options = {})
8
- ActiveSupport::NumberHelper::NumberToPhoneConverter(self, options).to_s
8
+ ActiveSupport::NumberHelper::NumberToPhoneConverter.convert(self, options).to_s
9
9
  end
10
10
  end
11
11
  end
@@ -1,6 +1,9 @@
1
1
  # typed: false
2
2
  # frozen_string_literal: true
3
3
 
4
+ require 'rails-html-sanitizer'
5
+ require 'workato/utilities/xml'
6
+
4
7
  module Workato
5
8
  module Extension
6
9
  module String
@@ -36,7 +39,8 @@ module Workato
36
39
  end
37
40
 
38
41
  def strip_tags
39
- Loofah::Helpers.strip_tags(self)
42
+ @html_full_sanitizer ||= Rails::Html::Sanitizer.full_sanitizer.new
43
+ @html_full_sanitizer.sanitize(self)
40
44
  end
41
45
 
42
46
  def to_time(form = :local, format: nil)
@@ -165,7 +169,7 @@ module Workato
165
169
  end
166
170
 
167
171
  def from_xml
168
- Connector::Sdk::Xml.parse_xml_to_hash self
172
+ Workato::Utilities::Xml.parse_xml_to_hash(self)
169
173
  end
170
174
 
171
175
  TO_COUNTRY_METHODS.each do |suffix|
@@ -0,0 +1,57 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ require 'charlock_holmes'
5
+
6
+ module Workato
7
+ module Utilities
8
+ module Encoding
9
+ class << self
10
+ # this function finds first possible encoding that allows to perform correct encoding operations
11
+ # if no encoding is found it preserves initial and replaces bad symbols with ?
12
+ def force_best_encoding!(string)
13
+ original_encoding = string.encoding
14
+
15
+ possible_encodings(string).each do |encoding|
16
+ return string.force_encoding(::Encoding::ASCII_8BIT) if encoding.nil? # for binary
17
+ next unless string.force_encoding(encoding).valid_encoding?
18
+
19
+ begin
20
+ # try encode to utf
21
+ string.encode(::Encoding::UTF_8)
22
+ return string
23
+ rescue ::Encoding::UndefinedConversionError
24
+ next
25
+ end
26
+ end
27
+ if original_encoding == ::Encoding::BINARY
28
+ string.force_encoding(::Encoding::BINARY)
29
+ else
30
+ string
31
+ .encode!(::Encoding::UTF_8, invalid: :replace, undef: :replace, replace: '?')
32
+ .encode!(original_encoding, invalid: :replace, undef: :replace, replace: '?')
33
+ end
34
+ end
35
+
36
+ private
37
+
38
+ def possible_encodings(string)
39
+ encoding_candidates = CharlockHolmes::EncodingDetector.detect_all(string).sort! do |a, b|
40
+ confidence_a, encoding_a = a.values_at(:confidence, :ruby_encoding)
41
+ confidence_b, encoding_b = b.values_at(:confidence, :ruby_encoding)
42
+ # If equal and one binary, prefer non-binary.
43
+ if confidence_a == confidence_b
44
+ if encoding_a == 'binary'
45
+ confidence_b += 100
46
+ elsif encoding_b == 'binary'
47
+ confidence_a += 100
48
+ end
49
+ end
50
+ confidence_b <=> confidence_a
51
+ end
52
+ encoding_candidates.map { |candidate| candidate[:ruby_encoding] }
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -4,10 +4,10 @@
4
4
  require 'nokogiri'
5
5
 
6
6
  module Workato
7
- module Connector
8
- module Sdk
9
- module Xml
10
- def self.parse_xml_to_hash(payload, strip_namespaces: false)
7
+ module Utilities
8
+ module Xml
9
+ class << self
10
+ def parse_xml_to_hash(payload, strip_namespaces: false)
11
11
  parse_options = Nokogiri::XML::ParseOptions.new.nonet
12
12
  lazy_reader = Nokogiri::XML::Reader(payload, nil, nil, parse_options).to_enum.lazy
13
13
  lazy_reader.each_with_object([{}]) do |node, ancestors|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workato-connector-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Abolmasov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-10-11 00:00:00.000000000 Z
11
+ date: 2022-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
40
  version: 1.2.4
41
+ - !ruby/object:Gem::Dependency
42
+ name: charlock_holmes
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 0.7.7
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 0.7.7
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: countries
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -136,20 +150,6 @@ dependencies:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
152
  version: '2.0'
139
- - !ruby/object:Gem::Dependency
140
- name: loofah
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - '='
144
- - !ruby/object:Gem::Version
145
- version: 2.16.0
146
- type: :runtime
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - '='
151
- - !ruby/object:Gem::Version
152
- version: 2.16.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: net-http-digest_auth
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -206,20 +206,34 @@ dependencies:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
208
  version: '2.0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: rails-html-sanitizer
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - '='
214
+ - !ruby/object:Gem::Version
215
+ version: 1.4.3
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - '='
221
+ - !ruby/object:Gem::Version
222
+ version: 1.4.3
209
223
  - !ruby/object:Gem::Dependency
210
224
  name: rest-client
211
225
  requirement: !ruby/object:Gem::Requirement
212
226
  requirements:
213
227
  - - '='
214
228
  - !ruby/object:Gem::Version
215
- version: 2.0.2
229
+ version: 2.1.0
216
230
  type: :runtime
217
231
  prerelease: false
218
232
  version_requirements: !ruby/object:Gem::Requirement
219
233
  requirements:
220
234
  - - '='
221
235
  - !ruby/object:Gem::Version
222
- version: 2.0.2
236
+ version: 2.1.0
223
237
  - !ruby/object:Gem::Dependency
224
238
  name: ruby-progressbar
225
239
  requirement: !ruby/object:Gem::Requirement
@@ -434,6 +448,7 @@ files:
434
448
  - lib/workato/cli/generators/connector_generator.rb
435
449
  - lib/workato/cli/generators/master_key_generator.rb
436
450
  - lib/workato/cli/main.rb
451
+ - lib/workato/cli/multi_auth_selected_fallback.rb
437
452
  - lib/workato/cli/oauth2_command.rb
438
453
  - lib/workato/cli/push_command.rb
439
454
  - lib/workato/cli/schema_command.rb
@@ -447,7 +462,9 @@ files:
447
462
  - lib/workato/connector/sdk/dsl/account_property.rb
448
463
  - lib/workato/connector/sdk/dsl/aws.rb
449
464
  - lib/workato/connector/sdk/dsl/call.rb
465
+ - lib/workato/connector/sdk/dsl/csv.rb
450
466
  - lib/workato/connector/sdk/dsl/error.rb
467
+ - lib/workato/connector/sdk/dsl/execution_context.rb
451
468
  - lib/workato/connector/sdk/dsl/http.rb
452
469
  - lib/workato/connector/sdk/dsl/lookup_table.rb
453
470
  - lib/workato/connector/sdk/dsl/time.rb
@@ -474,14 +491,15 @@ files:
474
491
  - lib/workato/connector/sdk/trigger.rb
475
492
  - lib/workato/connector/sdk/version.rb
476
493
  - lib/workato/connector/sdk/workato_schemas.rb
477
- - lib/workato/connector/sdk/xml.rb
478
494
  - lib/workato/extension/array.rb
479
495
  - lib/workato/extension/case_sensitive_headers.rb
496
+ - lib/workato/extension/content_encoding_decoder.rb
480
497
  - lib/workato/extension/currency.rb
481
498
  - lib/workato/extension/date.rb
482
499
  - lib/workato/extension/enumerable.rb
483
500
  - lib/workato/extension/extra_chain_cert.rb
484
501
  - lib/workato/extension/hash.rb
502
+ - lib/workato/extension/hash_with_indifferent_access.rb
485
503
  - lib/workato/extension/integer.rb
486
504
  - lib/workato/extension/nil_class.rb
487
505
  - lib/workato/extension/object.rb
@@ -491,6 +509,8 @@ files:
491
509
  - lib/workato/extension/time.rb
492
510
  - lib/workato/testing/vcr_encrypted_cassette_serializer.rb
493
511
  - lib/workato/testing/vcr_multipart_body_matcher.rb
512
+ - lib/workato/utilities/encoding.rb
513
+ - lib/workato/utilities/xml.rb
494
514
  - lib/workato/web/app.rb
495
515
  - templates/.rspec.erb
496
516
  - templates/Gemfile.erb
@@ -510,7 +530,13 @@ metadata:
510
530
  documentation_uri: https://docs.workato.com/developing-connectors/sdk/cli.html
511
531
  homepage_uri: https://www.workato.com/
512
532
  source_code_uri: https://github.com/workato/workato-connector-sdk
513
- post_install_message:
533
+ post_install_message: |2+
534
+
535
+ If you updated from workato-connector-sdk prior 1.2.0 your tests could be broken.
536
+
537
+ For more details see here:
538
+ https://github.com/workato/workato-connector-sdk/releases/tag/v1.2.0
539
+
514
540
  rdoc_options: []
515
541
  require_paths:
516
542
  - lib
@@ -525,9 +551,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
525
551
  - !ruby/object:Gem::Version
526
552
  version: '0'
527
553
  requirements: []
528
- rubyforge_project:
529
- rubygems_version: 2.6.14.4
554
+ rubygems_version: 3.2.3
530
555
  signing_key:
531
556
  specification_version: 4
532
557
  summary: Gem for running adapter's code outside Workato infrastructure
533
558
  test_files: []
559
+ ...