workato-connector-sdk 1.0.1 → 1.1.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 +4 -4
- data/README.md +17 -11
- data/lib/workato/cli/edit_command.rb +4 -3
- data/lib/workato/cli/exec_command.rb +27 -35
- data/lib/workato/cli/generate_command.rb +1 -0
- data/lib/workato/cli/generators/connector_generator.rb +1 -0
- data/lib/workato/cli/generators/master_key_generator.rb +1 -0
- data/lib/workato/cli/main.rb +44 -11
- data/lib/workato/cli/oauth2_command.rb +6 -5
- data/lib/workato/cli/push_command.rb +8 -5
- data/lib/workato/cli/schema_command.rb +6 -7
- data/lib/workato/connector/sdk/account_properties.rb +1 -0
- data/lib/workato/connector/sdk/action.rb +78 -20
- data/lib/workato/connector/sdk/block_invocation_refinements.rb +1 -0
- data/lib/workato/connector/sdk/connection.rb +204 -44
- data/lib/workato/connector/sdk/connector.rb +200 -65
- data/lib/workato/connector/sdk/dsl/account_property.rb +1 -0
- data/lib/workato/connector/sdk/dsl/aws.rb +23 -27
- data/lib/workato/connector/sdk/dsl/call.rb +6 -2
- data/lib/workato/connector/sdk/dsl/error.rb +1 -0
- data/lib/workato/connector/sdk/dsl/http.rb +2 -7
- data/lib/workato/connector/sdk/dsl/lookup_table.rb +1 -0
- data/lib/workato/connector/sdk/dsl/time.rb +6 -0
- data/lib/workato/connector/sdk/dsl/workato_code_lib.rb +38 -0
- data/lib/workato/connector/sdk/dsl/workato_schema.rb +1 -0
- data/lib/workato/connector/sdk/dsl.rb +19 -4
- data/lib/workato/connector/sdk/errors.rb +62 -4
- data/lib/workato/connector/sdk/lookup_tables.rb +1 -0
- data/lib/workato/connector/sdk/object_definitions.rb +22 -17
- data/lib/workato/connector/sdk/operation.rb +127 -88
- data/lib/workato/connector/sdk/request.rb +95 -31
- data/lib/workato/connector/sdk/schema/field/array.rb +1 -0
- data/lib/workato/connector/sdk/schema/field/convertors.rb +1 -0
- data/lib/workato/connector/sdk/schema/field/date.rb +1 -0
- data/lib/workato/connector/sdk/schema/field/date_time.rb +1 -0
- data/lib/workato/connector/sdk/schema/field/integer.rb +1 -0
- data/lib/workato/connector/sdk/schema/field/number.rb +1 -0
- data/lib/workato/connector/sdk/schema/field/object.rb +1 -0
- data/lib/workato/connector/sdk/schema/field/string.rb +1 -0
- data/lib/workato/connector/sdk/schema/type/time.rb +1 -0
- data/lib/workato/connector/sdk/schema/type/unicode_string.rb +1 -0
- data/lib/workato/connector/sdk/schema.rb +1 -0
- data/lib/workato/connector/sdk/settings.rb +9 -4
- data/lib/workato/connector/sdk/summarize.rb +3 -2
- data/lib/workato/connector/sdk/trigger.rb +106 -10
- data/lib/workato/connector/sdk/version.rb +2 -1
- data/lib/workato/connector/sdk/workato_schemas.rb +1 -0
- data/lib/workato/connector/sdk/xml.rb +1 -0
- data/lib/workato/connector/sdk.rb +8 -0
- data/lib/workato/extension/array.rb +1 -0
- data/lib/workato/extension/case_sensitive_headers.rb +1 -0
- data/lib/workato/extension/currency.rb +2 -1
- data/lib/workato/extension/date.rb +1 -0
- data/lib/workato/extension/enumerable.rb +1 -0
- data/lib/workato/extension/extra_chain_cert.rb +1 -0
- data/lib/workato/extension/hash.rb +1 -0
- data/lib/workato/extension/integer.rb +1 -0
- data/lib/workato/extension/nil_class.rb +1 -0
- data/lib/workato/extension/object.rb +1 -0
- data/lib/workato/extension/phone.rb +2 -1
- data/lib/workato/extension/string.rb +6 -2
- data/lib/workato/extension/symbol.rb +1 -0
- data/lib/workato/extension/time.rb +1 -0
- data/lib/workato/testing/vcr_encrypted_cassette_serializer.rb +5 -0
- data/lib/workato/testing/vcr_multipart_body_matcher.rb +1 -0
- data/lib/workato/utilities/encoding.rb +57 -0
- data/lib/workato/web/app.rb +1 -0
- data/lib/workato-connector-sdk.rb +1 -0
- metadata +88 -17
@@ -1,10 +1,11 @@
|
|
1
|
+
# typed: false
|
1
2
|
# frozen_string_literal: true
|
2
3
|
|
3
4
|
module Workato
|
4
5
|
module Extension
|
5
6
|
module Phone
|
6
7
|
def to_phone(options = {})
|
7
|
-
ActiveSupport::NumberHelper::NumberToPhoneConverter(self, options).to_s
|
8
|
+
ActiveSupport::NumberHelper::NumberToPhoneConverter.convert(self, options).to_s
|
8
9
|
end
|
9
10
|
end
|
10
11
|
end
|
@@ -1,5 +1,8 @@
|
|
1
|
+
# typed: false
|
1
2
|
# frozen_string_literal: true
|
2
3
|
|
4
|
+
require 'rails-html-sanitizer'
|
5
|
+
|
3
6
|
module Workato
|
4
7
|
module Extension
|
5
8
|
module String
|
@@ -35,7 +38,8 @@ module Workato
|
|
35
38
|
end
|
36
39
|
|
37
40
|
def strip_tags
|
38
|
-
|
41
|
+
@html_full_sanitizer ||= Rails::Html::Sanitizer.full_sanitizer.new
|
42
|
+
@html_full_sanitizer.sanitize(self)
|
39
43
|
end
|
40
44
|
|
41
45
|
def to_time(form = :local, format: nil)
|
@@ -164,7 +168,7 @@ module Workato
|
|
164
168
|
end
|
165
169
|
|
166
170
|
def from_xml
|
167
|
-
|
171
|
+
Connector::Sdk::Xml.parse_xml_to_hash self
|
168
172
|
end
|
169
173
|
|
170
174
|
TO_COUNTRY_METHODS.each do |suffix|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# typed: true
|
1
2
|
# frozen_string_literal: true
|
2
3
|
|
3
4
|
module Workato
|
@@ -24,6 +25,7 @@ module Workato
|
|
24
25
|
File.binread(content_path)
|
25
26
|
ensure
|
26
27
|
File.unlink(content_path) if content_path.exist?
|
28
|
+
@content_path = ''
|
27
29
|
end
|
28
30
|
|
29
31
|
def deserialize(string)
|
@@ -32,6 +34,9 @@ module Workato
|
|
32
34
|
end
|
33
35
|
File.write(@content_path, string)
|
34
36
|
::YAML.safe_load(read).presence || {}
|
37
|
+
ensure
|
38
|
+
File.unlink(content_path) if content_path.exist?
|
39
|
+
@content_path = ''
|
35
40
|
end
|
36
41
|
end
|
37
42
|
end
|
@@ -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
|
data/lib/workato/web/app.rb
CHANGED
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.1.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-09-28 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
|
@@ -95,47 +109,47 @@ dependencies:
|
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: 1.3.1
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
112
|
+
name: i18n
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
115
|
- - '='
|
102
116
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
117
|
+
version: 0.9.5
|
104
118
|
type: :runtime
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
122
|
- - '='
|
109
123
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
124
|
+
version: 0.9.5
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
126
|
+
name: jwt
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
|
-
- -
|
129
|
+
- - '='
|
116
130
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
131
|
+
version: 1.5.6
|
118
132
|
type: :runtime
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
|
-
- -
|
136
|
+
- - '='
|
123
137
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
138
|
+
version: 1.5.6
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
140
|
+
name: launchy
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
|
-
- -
|
143
|
+
- - "~>"
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version: 2.
|
145
|
+
version: '2.0'
|
132
146
|
type: :runtime
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
|
-
- -
|
150
|
+
- - "~>"
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version: 2.
|
152
|
+
version: '2.0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: net-http-digest_auth
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,6 +206,20 @@ dependencies:
|
|
192
206
|
- - "~>"
|
193
207
|
- !ruby/object:Gem::Version
|
194
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
|
195
223
|
- !ruby/object:Gem::Dependency
|
196
224
|
name: rest-client
|
197
225
|
requirement: !ruby/object:Gem::Requirement
|
@@ -220,20 +248,48 @@ dependencies:
|
|
220
248
|
- - "~>"
|
221
249
|
- !ruby/object:Gem::Version
|
222
250
|
version: '1.0'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: ruby_rncryptor
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - "~>"
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '3.0'
|
258
|
+
type: :runtime
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - "~>"
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '3.0'
|
223
265
|
- !ruby/object:Gem::Dependency
|
224
266
|
name: rubyzip
|
225
267
|
requirement: !ruby/object:Gem::Requirement
|
226
268
|
requirements:
|
227
269
|
- - "~>"
|
228
270
|
- !ruby/object:Gem::Version
|
229
|
-
version: '
|
271
|
+
version: '2.3'
|
272
|
+
type: :runtime
|
273
|
+
prerelease: false
|
274
|
+
version_requirements: !ruby/object:Gem::Requirement
|
275
|
+
requirements:
|
276
|
+
- - "~>"
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '2.3'
|
279
|
+
- !ruby/object:Gem::Dependency
|
280
|
+
name: sorbet-runtime
|
281
|
+
requirement: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - "~>"
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: '0.5'
|
230
286
|
type: :runtime
|
231
287
|
prerelease: false
|
232
288
|
version_requirements: !ruby/object:Gem::Requirement
|
233
289
|
requirements:
|
234
290
|
- - "~>"
|
235
291
|
- !ruby/object:Gem::Version
|
236
|
-
version: '
|
292
|
+
version: '0.5'
|
237
293
|
- !ruby/object:Gem::Dependency
|
238
294
|
name: thor
|
239
295
|
requirement: !ruby/object:Gem::Requirement
|
@@ -304,6 +360,20 @@ dependencies:
|
|
304
360
|
- - "~>"
|
305
361
|
- !ruby/object:Gem::Version
|
306
362
|
version: '3.0'
|
363
|
+
- !ruby/object:Gem::Dependency
|
364
|
+
name: sorbet
|
365
|
+
requirement: !ruby/object:Gem::Requirement
|
366
|
+
requirements:
|
367
|
+
- - "~>"
|
368
|
+
- !ruby/object:Gem::Version
|
369
|
+
version: '0.5'
|
370
|
+
type: :development
|
371
|
+
prerelease: false
|
372
|
+
version_requirements: !ruby/object:Gem::Requirement
|
373
|
+
requirements:
|
374
|
+
- - "~>"
|
375
|
+
- !ruby/object:Gem::Version
|
376
|
+
version: '0.5'
|
307
377
|
- !ruby/object:Gem::Dependency
|
308
378
|
name: stub_server
|
309
379
|
requirement: !ruby/object:Gem::Requirement
|
@@ -435,6 +505,7 @@ files:
|
|
435
505
|
- lib/workato/extension/time.rb
|
436
506
|
- lib/workato/testing/vcr_encrypted_cassette_serializer.rb
|
437
507
|
- lib/workato/testing/vcr_multipart_body_matcher.rb
|
508
|
+
- lib/workato/utilities/encoding.rb
|
438
509
|
- lib/workato/web/app.rb
|
439
510
|
- templates/.rspec.erb
|
440
511
|
- templates/Gemfile.erb
|