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.
- checksums.yaml +5 -5
- data/README.md +1 -0
- data/lib/workato/cli/exec_command.rb +31 -8
- data/lib/workato/cli/multi_auth_selected_fallback.rb +33 -0
- data/lib/workato/cli/oauth2_command.rb +50 -12
- data/lib/workato/connector/sdk/connection.rb +84 -14
- data/lib/workato/connector/sdk/connector.rb +6 -4
- data/lib/workato/connector/sdk/dsl/aws.rb +5 -2
- data/lib/workato/connector/sdk/dsl/call.rb +5 -2
- data/lib/workato/connector/sdk/dsl/csv.rb +125 -0
- data/lib/workato/connector/sdk/dsl/execution_context.rb +44 -0
- data/lib/workato/connector/sdk/dsl/workato_code_lib.rb +8 -1
- data/lib/workato/connector/sdk/dsl.rb +1 -0
- data/lib/workato/connector/sdk/errors.rb +69 -1
- data/lib/workato/connector/sdk/lookup_tables.rb +3 -1
- data/lib/workato/connector/sdk/object_definitions.rb +16 -10
- data/lib/workato/connector/sdk/operation.rb +24 -8
- data/lib/workato/connector/sdk/request.rb +136 -58
- data/lib/workato/connector/sdk/schema.rb +5 -3
- data/lib/workato/connector/sdk/settings.rb +4 -2
- data/lib/workato/connector/sdk/trigger.rb +42 -19
- data/lib/workato/connector/sdk/version.rb +1 -1
- data/lib/workato/connector/sdk.rb +3 -2
- data/lib/workato/extension/case_sensitive_headers.rb +0 -25
- data/lib/workato/extension/content_encoding_decoder.rb +67 -0
- data/lib/workato/extension/currency.rb +1 -1
- data/lib/workato/extension/extra_chain_cert.rb +0 -14
- data/lib/workato/extension/hash_with_indifferent_access.rb +19 -0
- data/lib/workato/extension/phone.rb +1 -1
- data/lib/workato/extension/string.rb +6 -2
- data/lib/workato/utilities/encoding.rb +57 -0
- data/lib/workato/{connector/sdk → utilities}/xml.rb +4 -4
- 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
|
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
|
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
|
-
|
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] =
|
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
|
-
|
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[
|
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
|
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::
|
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:
|
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
|
-
|
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
|
122
|
-
payload
|
123
|
-
Array.wrap(extended_input_schema).map(
|
124
|
-
Array.wrap(extended_output_schema).map(
|
125
|
-
headers
|
126
|
-
params
|
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
|
146
|
+
HashWithIndifferentAccess.wrap(webhook_subscribe_output),
|
129
147
|
&trigger[:webhook_notification]
|
130
|
-
)
|
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 =
|
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
|
195
|
+
T.any(SorbetTypes::WebhookNotificationOutputHash, SorbetTypes::PollOutputHash)
|
173
196
|
)
|
174
197
|
end
|
175
198
|
def invoke(input = {}, payload = {}, headers = {}, params = {}, webhook_subscribe_output = {})
|
@@ -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
|
@@ -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
|
@@ -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
|
-
|
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
|
-
|
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
|
8
|
-
module
|
9
|
-
|
10
|
-
def
|
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
|
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-
|
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
|
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
|
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
|
-
|
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
|
+
...
|