alchemrest 3.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.
Files changed (245) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +22 -0
  4. data/.rubocop_todo.yml +242 -0
  5. data/.ruby-version +1 -0
  6. data/Appraisals +19 -0
  7. data/Gemfile +6 -0
  8. data/Gemfile.lock +378 -0
  9. data/Rakefile +29 -0
  10. data/alchemrest.gemspec +71 -0
  11. data/coach.yml +5 -0
  12. data/examples/bank_api/client.rb +31 -0
  13. data/examples/bank_api/data/account.rb +21 -0
  14. data/examples/bank_api/data/ach.rb +16 -0
  15. data/examples/bank_api/data/business_account.rb +22 -0
  16. data/examples/bank_api/data/card.rb +21 -0
  17. data/examples/bank_api/data/check.rb +19 -0
  18. data/examples/bank_api/data/product.rb +20 -0
  19. data/examples/bank_api/data/transaction.rb +49 -0
  20. data/examples/bank_api/data/user.rb +27 -0
  21. data/examples/bank_api/factories.rb +68 -0
  22. data/examples/bank_api/graph_visualization.rb +45 -0
  23. data/examples/bank_api/positive_interest_string.rb +33 -0
  24. data/examples/bank_api/requests/delete_user.rb +17 -0
  25. data/examples/bank_api/requests/get_business_account.rb +24 -0
  26. data/examples/bank_api/requests/get_products.rb +12 -0
  27. data/examples/bank_api/requests/get_transactions.rb +34 -0
  28. data/examples/bank_api/requests/get_user.rb +19 -0
  29. data/examples/bank_api/requests/post_transaction.rb +20 -0
  30. data/examples/bank_api/requests/update_user.rb +28 -0
  31. data/examples/bank_api/root.rb +52 -0
  32. data/examples/bank_api.rb +33 -0
  33. data/gemfiles/faraday_2.gemfile +9 -0
  34. data/gemfiles/faraday_2.gemfile.lock +363 -0
  35. data/gemfiles/rails_7_0.gemfile.lock +341 -0
  36. data/gemfiles/rails_7_2.gemfile +9 -0
  37. data/gemfiles/rails_7_2.gemfile.lock +384 -0
  38. data/gemfiles/rails_8_0.gemfile +9 -0
  39. data/gemfiles/rails_8_0.gemfile.lock +385 -0
  40. data/lib/alchemrest/circuit_breaker.rb +84 -0
  41. data/lib/alchemrest/client/configuration/connection.rb +83 -0
  42. data/lib/alchemrest/client/configuration.rb +89 -0
  43. data/lib/alchemrest/client.rb +48 -0
  44. data/lib/alchemrest/cop.rb +8 -0
  45. data/lib/alchemrest/data/capture_configuration.rb +77 -0
  46. data/lib/alchemrest/data/field.rb +36 -0
  47. data/lib/alchemrest/data/graph.rb +40 -0
  48. data/lib/alchemrest/data/record.rb +60 -0
  49. data/lib/alchemrest/data/schema.rb +80 -0
  50. data/lib/alchemrest/data.rb +9 -0
  51. data/lib/alchemrest/endpoint_definition.rb +47 -0
  52. data/lib/alchemrest/error.rb +122 -0
  53. data/lib/alchemrest/factory_bot.rb +64 -0
  54. data/lib/alchemrest/faraday_middleware/external_api_instrumentation.rb +24 -0
  55. data/lib/alchemrest/faraday_middleware/json_parser.rb +30 -0
  56. data/lib/alchemrest/faraday_middleware/kill_switch.rb +22 -0
  57. data/lib/alchemrest/faraday_middleware/underscore_response.rb +24 -0
  58. data/lib/alchemrest/hash_path.rb +81 -0
  59. data/lib/alchemrest/http_request.rb +75 -0
  60. data/lib/alchemrest/kill_switch/adapters.rb +88 -0
  61. data/lib/alchemrest/kill_switch.rb +31 -0
  62. data/lib/alchemrest/railtie.rb +25 -0
  63. data/lib/alchemrest/request/endpoint.rb +29 -0
  64. data/lib/alchemrest/request/returns.rb +46 -0
  65. data/lib/alchemrest/request.rb +80 -0
  66. data/lib/alchemrest/request_definition/builder.rb +13 -0
  67. data/lib/alchemrest/request_definition.rb +26 -0
  68. data/lib/alchemrest/response/pipeline/extract_payload.rb +64 -0
  69. data/lib/alchemrest/response/pipeline/final.rb +11 -0
  70. data/lib/alchemrest/response/pipeline/omit.rb +46 -0
  71. data/lib/alchemrest/response/pipeline/sanitize.rb +59 -0
  72. data/lib/alchemrest/response/pipeline/transform.rb +26 -0
  73. data/lib/alchemrest/response/pipeline/was_successful.rb +29 -0
  74. data/lib/alchemrest/response/pipeline.rb +71 -0
  75. data/lib/alchemrest/response.rb +73 -0
  76. data/lib/alchemrest/response_captured_handler.rb +68 -0
  77. data/lib/alchemrest/result/halt.rb +15 -0
  78. data/lib/alchemrest/result/try_helpers.rb +16 -0
  79. data/lib/alchemrest/result.rb +128 -0
  80. data/lib/alchemrest/root.rb +77 -0
  81. data/lib/alchemrest/transforms/base_to_type_transform_registry.rb +42 -0
  82. data/lib/alchemrest/transforms/constrainable.rb +41 -0
  83. data/lib/alchemrest/transforms/constraint/block.rb +22 -0
  84. data/lib/alchemrest/transforms/constraint/greater_than.rb +19 -0
  85. data/lib/alchemrest/transforms/constraint/greater_than_or_eq.rb +19 -0
  86. data/lib/alchemrest/transforms/constraint/in_list.rb +19 -0
  87. data/lib/alchemrest/transforms/constraint/is_instance_of.rb +19 -0
  88. data/lib/alchemrest/transforms/constraint/is_uuid.rb +19 -0
  89. data/lib/alchemrest/transforms/constraint/less_than.rb +19 -0
  90. data/lib/alchemrest/transforms/constraint/less_than_or_eq.rb +19 -0
  91. data/lib/alchemrest/transforms/constraint/matches_regex.rb +19 -0
  92. data/lib/alchemrest/transforms/constraint/max_length.rb +19 -0
  93. data/lib/alchemrest/transforms/constraint/min_length.rb +19 -0
  94. data/lib/alchemrest/transforms/constraint.rb +17 -0
  95. data/lib/alchemrest/transforms/constraint_builder/for_number.rb +25 -0
  96. data/lib/alchemrest/transforms/constraint_builder/for_string.rb +21 -0
  97. data/lib/alchemrest/transforms/constraint_builder.rb +15 -0
  98. data/lib/alchemrest/transforms/date_transform.rb +30 -0
  99. data/lib/alchemrest/transforms/enum.rb +52 -0
  100. data/lib/alchemrest/transforms/epoch_time.rb +32 -0
  101. data/lib/alchemrest/transforms/from_chain.rb +15 -0
  102. data/lib/alchemrest/transforms/from_number/to_type_transform_registry.rb +18 -0
  103. data/lib/alchemrest/transforms/from_number.rb +47 -0
  104. data/lib/alchemrest/transforms/from_string/to_type_transform_registry.rb +17 -0
  105. data/lib/alchemrest/transforms/from_string.rb +36 -0
  106. data/lib/alchemrest/transforms/from_type/empty_to_type_transform_registry.rb +14 -0
  107. data/lib/alchemrest/transforms/from_type.rb +64 -0
  108. data/lib/alchemrest/transforms/iso_time.rb +58 -0
  109. data/lib/alchemrest/transforms/json_number.rb +26 -0
  110. data/lib/alchemrest/transforms/loose_hash.rb +96 -0
  111. data/lib/alchemrest/transforms/money_transform.rb +42 -0
  112. data/lib/alchemrest/transforms/number.rb +27 -0
  113. data/lib/alchemrest/transforms/output_type.rb +65 -0
  114. data/lib/alchemrest/transforms/to_decimal.rb +22 -0
  115. data/lib/alchemrest/transforms/to_type/from_string_to_time_selector.rb +29 -0
  116. data/lib/alchemrest/transforms/to_type/transforms_selector.rb +61 -0
  117. data/lib/alchemrest/transforms/to_type.rb +86 -0
  118. data/lib/alchemrest/transforms/typed.rb +32 -0
  119. data/lib/alchemrest/transforms/union.rb +44 -0
  120. data/lib/alchemrest/transforms/with_constraint.rb +26 -0
  121. data/lib/alchemrest/transforms.rb +93 -0
  122. data/lib/alchemrest/url_builder/encoders.rb +39 -0
  123. data/lib/alchemrest/url_builder/options.rb +33 -0
  124. data/lib/alchemrest/url_builder.rb +31 -0
  125. data/lib/alchemrest/version.rb +5 -0
  126. data/lib/alchemrest/webmock_helpers.rb +27 -0
  127. data/lib/alchemrest.rb +159 -0
  128. data/lib/generators/alchemrest/kill_switch_migration_generator.rb +27 -0
  129. data/lib/generators/alchemrest/templates/kill_switch_migration.rb.erb +17 -0
  130. data/lib/rubocop/cop/alchemrest/define_request_using_with_params.rb +53 -0
  131. data/lib/rubocop/cop/alchemrest/endpoint_definition_using_generic_params.rb +55 -0
  132. data/lib/rubocop/cop/alchemrest/request_hash_returning_block.rb +54 -0
  133. data/lib/rubocop/cop/alchemrest/time_transform_with_no_zone.rb +56 -0
  134. data/lib/tapioca/dsl/compilers/alchemrest_data.rb +84 -0
  135. data/lib/tapioca/dsl/compilers/alchemrest_root.rb +68 -0
  136. data/mutant.yml +16 -0
  137. data/rbi/alchemrest/result.rbi +80 -0
  138. data/rbi/alchemrest.rbi +246 -0
  139. data/sorbet/config +5 -0
  140. data/sorbet/rbi/gems/.gitattributes +1 -0
  141. data/sorbet/rbi/gems/abstract_type@0.0.7.rbi +41 -0
  142. data/sorbet/rbi/gems/actionpack@8.0.4.rbi +11733 -0
  143. data/sorbet/rbi/gems/actionview@8.0.4.rbi +6560 -0
  144. data/sorbet/rbi/gems/activemodel@8.0.4.rbi +2891 -0
  145. data/sorbet/rbi/gems/activesupport@8.0.4.rbi +9621 -0
  146. data/sorbet/rbi/gems/adamantium@0.2.0.rbi +144 -0
  147. data/sorbet/rbi/gems/addressable@2.8.7.rbi +779 -0
  148. data/sorbet/rbi/gems/anima@0.3.2.rbi +103 -0
  149. data/sorbet/rbi/gems/ast@2.4.2.rbi +107 -0
  150. data/sorbet/rbi/gems/base64@0.3.0.rbi +52 -0
  151. data/sorbet/rbi/gems/benchmark@0.5.0.rbi +153 -0
  152. data/sorbet/rbi/gems/bigdecimal@3.3.1.rbi +77 -0
  153. data/sorbet/rbi/gems/builder@3.3.0.rbi +9 -0
  154. data/sorbet/rbi/gems/circuitbox@2.0.0.rbi +297 -0
  155. data/sorbet/rbi/gems/concord@0.1.6.rbi +51 -0
  156. data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +4716 -0
  157. data/sorbet/rbi/gems/connection_pool@2.5.4.rbi +9 -0
  158. data/sorbet/rbi/gems/crack@1.0.0.rbi +110 -0
  159. data/sorbet/rbi/gems/crass@1.0.6.rbi +294 -0
  160. data/sorbet/rbi/gems/date@3.4.1.rbi +58 -0
  161. data/sorbet/rbi/gems/drb@2.2.3.rbi +639 -0
  162. data/sorbet/rbi/gems/equalizer@0.0.11.rbi +38 -0
  163. data/sorbet/rbi/gems/erubi@1.13.1.rbi +85 -0
  164. data/sorbet/rbi/gems/factory_bot@6.5.0.rbi +1529 -0
  165. data/sorbet/rbi/gems/faraday-em_http@1.0.0.rbi +181 -0
  166. data/sorbet/rbi/gems/faraday-em_synchrony@1.0.1.rbi +120 -0
  167. data/sorbet/rbi/gems/faraday-excon@1.1.0.rbi +128 -0
  168. data/sorbet/rbi/gems/faraday-httpclient@1.0.1.rbi +123 -0
  169. data/sorbet/rbi/gems/faraday-multipart@1.2.0.rbi +190 -0
  170. data/sorbet/rbi/gems/faraday-net_http@1.0.2.rbi +140 -0
  171. data/sorbet/rbi/gems/faraday-net_http_persistent@1.2.0.rbi +116 -0
  172. data/sorbet/rbi/gems/faraday-patron@1.0.0.rbi +119 -0
  173. data/sorbet/rbi/gems/faraday-rack@1.0.0.rbi +113 -0
  174. data/sorbet/rbi/gems/faraday-retry@1.0.3.rbi +149 -0
  175. data/sorbet/rbi/gems/faraday@1.10.5.rbi +1620 -0
  176. data/sorbet/rbi/gems/hansi@0.2.1.rbi +9 -0
  177. data/sorbet/rbi/gems/hashdiff@1.1.2.rbi +174 -0
  178. data/sorbet/rbi/gems/i18n@1.14.7.rbi +1328 -0
  179. data/sorbet/rbi/gems/ice_nine@0.11.2.rbi +145 -0
  180. data/sorbet/rbi/gems/io-console@0.8.0.rbi +9 -0
  181. data/sorbet/rbi/gems/json@2.9.1.rbi +282 -0
  182. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +8057 -0
  183. data/sorbet/rbi/gems/logger@1.7.0.rbi +260 -0
  184. data/sorbet/rbi/gems/loofah@2.24.0.rbi +571 -0
  185. data/sorbet/rbi/gems/memoizable@0.4.2.rbi +131 -0
  186. data/sorbet/rbi/gems/memosa@0.8.2.rbi +185 -0
  187. data/sorbet/rbi/gems/minitest@5.26.0.rbi +824 -0
  188. data/sorbet/rbi/gems/money@6.19.0.rbi +815 -0
  189. data/sorbet/rbi/gems/morpher@0.4.2.rbi +388 -0
  190. data/sorbet/rbi/gems/mprelude@0.1.0.rbi +140 -0
  191. data/sorbet/rbi/gems/multi_json@1.15.0.rbi +180 -0
  192. data/sorbet/rbi/gems/multipart-post@2.4.1.rbi +154 -0
  193. data/sorbet/rbi/gems/mustermann-contrib@3.0.3.rbi +9 -0
  194. data/sorbet/rbi/gems/mustermann@3.0.3.rbi +809 -0
  195. data/sorbet/rbi/gems/netrc@0.11.0.rbi +112 -0
  196. data/sorbet/rbi/gems/nokogiri@1.19.1.rbi +3412 -0
  197. data/sorbet/rbi/gems/parallel@1.26.3.rbi +234 -0
  198. data/sorbet/rbi/gems/parser@3.3.7.0.rbi +4877 -0
  199. data/sorbet/rbi/gems/pp@0.6.2.rbi +176 -0
  200. data/sorbet/rbi/gems/prettyprint@0.2.0.rbi +155 -0
  201. data/sorbet/rbi/gems/prism@1.5.1.rbi +26368 -0
  202. data/sorbet/rbi/gems/procto@0.0.3.rbi +9 -0
  203. data/sorbet/rbi/gems/psych@5.2.3.rbi +806 -0
  204. data/sorbet/rbi/gems/public_suffix@6.0.1.rbi +267 -0
  205. data/sorbet/rbi/gems/racc@1.8.1.rbi +120 -0
  206. data/sorbet/rbi/gems/rack-session@2.1.1.rbi +458 -0
  207. data/sorbet/rbi/gems/rack-test@2.2.0.rbi +405 -0
  208. data/sorbet/rbi/gems/rack@3.1.14.rbi +2774 -0
  209. data/sorbet/rbi/gems/rackup@2.2.1.rbi +132 -0
  210. data/sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi +266 -0
  211. data/sorbet/rbi/gems/rails-html-sanitizer@1.6.2.rbi +545 -0
  212. data/sorbet/rbi/gems/railties@8.0.4.rbi +2150 -0
  213. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +333 -0
  214. data/sorbet/rbi/gems/rake@13.2.1.rbi +2054 -0
  215. data/sorbet/rbi/gems/rbi@0.2.3.rbi +3961 -0
  216. data/sorbet/rbi/gems/rdoc@6.13.1.rbi +6784 -0
  217. data/sorbet/rbi/gems/regexp_parser@2.11.3.rbi +3020 -0
  218. data/sorbet/rbi/gems/reline@0.6.0.rbi +9 -0
  219. data/sorbet/rbi/gems/rexml@3.4.2.rbi +1777 -0
  220. data/sorbet/rbi/gems/rubocop-ast@1.38.0.rbi +5293 -0
  221. data/sorbet/rbi/gems/rubocop@1.71.1.rbi +31846 -0
  222. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +980 -0
  223. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +9 -0
  224. data/sorbet/rbi/gems/securerandom@0.4.1.rbi +33 -0
  225. data/sorbet/rbi/gems/sentry-ruby@5.22.1.rbi +3782 -0
  226. data/sorbet/rbi/gems/spoom@1.5.1.rbi +4321 -0
  227. data/sorbet/rbi/gems/stringio@3.1.2.rbi +9 -0
  228. data/sorbet/rbi/gems/tapioca@0.16.8.rbi +3399 -0
  229. data/sorbet/rbi/gems/thor@1.3.2.rbi +2012 -0
  230. data/sorbet/rbi/gems/thread_safe@0.3.6.rbi +711 -0
  231. data/sorbet/rbi/gems/timeout@0.4.4.rbi +80 -0
  232. data/sorbet/rbi/gems/tsort@0.2.0.rbi +50 -0
  233. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +1677 -0
  234. data/sorbet/rbi/gems/unicode-display_width@2.6.0.rbi +62 -0
  235. data/sorbet/rbi/gems/uri@1.1.0.rbi +760 -0
  236. data/sorbet/rbi/gems/useragent@0.16.11.rbi +9 -0
  237. data/sorbet/rbi/gems/webmock@3.24.0.rbi +1362 -0
  238. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +345 -0
  239. data/sorbet/rbi/gems/yard@0.9.37.rbi +8795 -0
  240. data/sorbet/rbi/gems/zeitwerk@2.7.1.rbi +589 -0
  241. data/sorbet/tapioca/config.yml +45 -0
  242. data/sorbet/tapioca/require.rb +8 -0
  243. data/sorbet/tapioca/sorbet/rbi/dsl/.gitattributes +1 -0
  244. data/sorbet/tapioca/sorbet/rbi/dsl/active_support/callbacks.rbi +23 -0
  245. metadata +737 -0
@@ -0,0 +1,190 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `faraday-multipart` gem.
5
+ # Please instead update this file by running `bin/tapioca gem faraday-multipart`.
6
+
7
+
8
+ # source://faraday-multipart//lib/faraday/multipart/version.rb#3
9
+ module Faraday
10
+ class << self
11
+ # source://faraday/1.10.5/lib/faraday.rb#81
12
+ def default_adapter; end
13
+
14
+ # source://faraday/1.10.5/lib/faraday.rb#137
15
+ def default_adapter=(adapter); end
16
+
17
+ # source://faraday/1.10.5/lib/faraday.rb#155
18
+ def default_connection; end
19
+
20
+ # source://faraday/1.10.5/lib/faraday.rb#84
21
+ def default_connection=(_arg0); end
22
+
23
+ # source://faraday/1.10.5/lib/faraday.rb#162
24
+ def default_connection_options; end
25
+
26
+ # source://faraday/1.10.5/lib/faraday.rb#169
27
+ def default_connection_options=(options); end
28
+
29
+ # source://faraday/1.10.5/lib/faraday.rb#89
30
+ def ignore_env_proxy; end
31
+
32
+ # source://faraday/1.10.5/lib/faraday.rb#89
33
+ def ignore_env_proxy=(_arg0); end
34
+
35
+ # source://faraday/1.10.5/lib/faraday.rb#72
36
+ def lib_path; end
37
+
38
+ # source://faraday/1.10.5/lib/faraday.rb#72
39
+ def lib_path=(_arg0); end
40
+
41
+ # source://faraday/1.10.5/lib/faraday.rb#118
42
+ def new(url = T.unsafe(nil), options = T.unsafe(nil), &block); end
43
+
44
+ # source://faraday/1.10.5/lib/faraday.rb#128
45
+ def require_lib(*libs); end
46
+
47
+ # source://faraday/1.10.5/lib/faraday.rb#128
48
+ def require_libs(*libs); end
49
+
50
+ # source://faraday/1.10.5/lib/faraday.rb#142
51
+ def respond_to_missing?(symbol, include_private = T.unsafe(nil)); end
52
+
53
+ # source://faraday/1.10.5/lib/faraday.rb#68
54
+ def root_path; end
55
+
56
+ # source://faraday/1.10.5/lib/faraday.rb#68
57
+ def root_path=(_arg0); end
58
+
59
+ private
60
+
61
+ # source://faraday/1.10.5/lib/faraday.rb#178
62
+ def method_missing(name, *args, &block); end
63
+ end
64
+ end
65
+
66
+ # source://faraday-multipart//lib/faraday/multipart.rb#18
67
+ Faraday::CompositeReadIO = Faraday::Multipart::CompositeReadIO
68
+
69
+ # source://faraday-multipart//lib/faraday/multipart.rb#15
70
+ Faraday::FilePart = Multipart::Post::UploadIO
71
+
72
+ # source://faraday-multipart//lib/faraday/multipart/version.rb#5
73
+ module Faraday::Multipart
74
+ class << self
75
+ # source://faraday-multipart//lib/faraday/multipart/version.rb#8
76
+ def multipart_post_version; end
77
+ end
78
+ end
79
+
80
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#67
81
+ class Faraday::Multipart::CompositeReadIO
82
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#68
83
+ def initialize(*parts); end
84
+
85
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#111
86
+ def close; end
87
+
88
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#115
89
+ def ensure_open_and_readable; end
90
+
91
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#75
92
+ def length; end
93
+
94
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#91
95
+ def read(length = T.unsafe(nil), outbuf = T.unsafe(nil)); end
96
+
97
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#82
98
+ def rewind; end
99
+
100
+ private
101
+
102
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#125
103
+ def advance_io; end
104
+
105
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#121
106
+ def current_io; end
107
+ end
108
+
109
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#55
110
+ Faraday::Multipart::FilePart = Multipart::Post::UploadIO
111
+
112
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#8
113
+ class Faraday::Multipart::Middleware < ::Faraday::Middleware
114
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#12
115
+ def initialize(app = T.unsafe(nil), options = T.unsafe(nil)); end
116
+
117
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#20
118
+ def call(env); end
119
+
120
+ private
121
+
122
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#76
123
+ def create_multipart(env, params); end
124
+
125
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#65
126
+ def has_multipart?(obj); end
127
+
128
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#34
129
+ def match_content_type(env); end
130
+
131
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#125
132
+ def mime_type; end
133
+
134
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#88
135
+ def part(boundary, key, value); end
136
+
137
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#104
138
+ def process_params(params, prefix = T.unsafe(nil), pieces = T.unsafe(nil), &block); end
139
+
140
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#44
141
+ def process_request?(env); end
142
+
143
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#55
144
+ def request_type(env); end
145
+
146
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#97
147
+ def unique_boundary; end
148
+ end
149
+
150
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#9
151
+ Faraday::Multipart::Middleware::CONTENT_TYPE = T.let(T.unsafe(nil), String)
152
+
153
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#10
154
+ Faraday::Multipart::Middleware::DEFAULT_BOUNDARY_PREFIX = T.let(T.unsafe(nil), String)
155
+
156
+ # source://faraday-multipart//lib/faraday/multipart/param_part.rb#6
157
+ class Faraday::Multipart::ParamPart
158
+ # source://faraday-multipart//lib/faraday/multipart/param_part.rb#12
159
+ def initialize(value, content_type, content_id = T.unsafe(nil)); end
160
+
161
+ # source://faraday-multipart//lib/faraday/multipart/param_part.rb#52
162
+ def content_id; end
163
+
164
+ # source://faraday-multipart//lib/faraday/multipart/param_part.rb#47
165
+ def content_type; end
166
+
167
+ # source://faraday-multipart//lib/faraday/multipart/param_part.rb#32
168
+ def headers; end
169
+
170
+ # source://faraday-multipart//lib/faraday/multipart/param_part.rb#25
171
+ def to_part(boundary, key); end
172
+
173
+ # source://faraday-multipart//lib/faraday/multipart/param_part.rb#42
174
+ def value; end
175
+ end
176
+
177
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#56
178
+ Faraday::Multipart::Parts = Multipart::Post::Parts
179
+
180
+ # source://faraday-multipart//lib/faraday/multipart/version.rb#6
181
+ Faraday::Multipart::VERSION = T.let(T.unsafe(nil), String)
182
+
183
+ # source://faraday-multipart//lib/faraday/multipart.rb#16
184
+ Faraday::ParamPart = Faraday::Multipart::ParamPart
185
+
186
+ # source://faraday-multipart//lib/faraday/multipart.rb#17
187
+ Faraday::Parts = Multipart::Post::Parts
188
+
189
+ # source://faraday-multipart//lib/faraday/multipart.rb#21
190
+ Faraday::UploadIO = Multipart::Post::UploadIO
@@ -0,0 +1,140 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `faraday-net_http` gem.
5
+ # Please instead update this file by running `bin/tapioca gem faraday-net_http`.
6
+
7
+
8
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#12
9
+ module Faraday
10
+ class << self
11
+ # source://faraday/1.10.4/lib/faraday.rb#81
12
+ def default_adapter; end
13
+
14
+ # source://faraday/1.10.4/lib/faraday.rb#137
15
+ def default_adapter=(adapter); end
16
+
17
+ # source://faraday/1.10.4/lib/faraday.rb#155
18
+ def default_connection; end
19
+
20
+ # source://faraday/1.10.4/lib/faraday.rb#84
21
+ def default_connection=(_arg0); end
22
+
23
+ # source://faraday/1.10.4/lib/faraday.rb#162
24
+ def default_connection_options; end
25
+
26
+ # source://faraday/1.10.4/lib/faraday.rb#169
27
+ def default_connection_options=(options); end
28
+
29
+ # source://faraday/1.10.4/lib/faraday.rb#89
30
+ def ignore_env_proxy; end
31
+
32
+ # source://faraday/1.10.4/lib/faraday.rb#89
33
+ def ignore_env_proxy=(_arg0); end
34
+
35
+ # source://faraday/1.10.4/lib/faraday.rb#72
36
+ def lib_path; end
37
+
38
+ # source://faraday/1.10.4/lib/faraday.rb#72
39
+ def lib_path=(_arg0); end
40
+
41
+ # source://faraday/1.10.4/lib/faraday.rb#118
42
+ def new(url = T.unsafe(nil), options = T.unsafe(nil), &block); end
43
+
44
+ # source://faraday/1.10.4/lib/faraday.rb#128
45
+ def require_lib(*libs); end
46
+
47
+ # source://faraday/1.10.4/lib/faraday.rb#128
48
+ def require_libs(*libs); end
49
+
50
+ # source://faraday/1.10.4/lib/faraday.rb#142
51
+ def respond_to_missing?(symbol, include_private = T.unsafe(nil)); end
52
+
53
+ # source://faraday/1.10.4/lib/faraday.rb#68
54
+ def root_path; end
55
+
56
+ # source://faraday/1.10.4/lib/faraday.rb#68
57
+ def root_path=(_arg0); end
58
+
59
+ private
60
+
61
+ # source://faraday/1.10.4/lib/faraday.rb#178
62
+ def method_missing(name, *args, &block); end
63
+ end
64
+ end
65
+
66
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#13
67
+ class Faraday::Adapter
68
+ # source://faraday/1.10.4/lib/faraday/adapter.rb#33
69
+ def initialize(_app = T.unsafe(nil), opts = T.unsafe(nil), &block); end
70
+
71
+ # source://faraday/1.10.4/lib/faraday/adapter.rb#60
72
+ def call(env); end
73
+
74
+ # source://faraday/1.10.4/lib/faraday/adapter.rb#55
75
+ def close; end
76
+
77
+ # source://faraday/1.10.4/lib/faraday/adapter.rb#46
78
+ def connection(env); end
79
+
80
+ private
81
+
82
+ # source://faraday/1.10.4/lib/faraday/adapter.rb#91
83
+ def request_timeout(type, options); end
84
+
85
+ # source://faraday/1.10.4/lib/faraday/adapter.rb#67
86
+ def save_response(env, status, body, headers = T.unsafe(nil), reason_phrase = T.unsafe(nil)); end
87
+ end
88
+
89
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#14
90
+ class Faraday::Adapter::NetHttp < ::Faraday::Adapter
91
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#37
92
+ def initialize(app = T.unsafe(nil), opts = T.unsafe(nil), &block); end
93
+
94
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#42
95
+ def build_connection(env); end
96
+
97
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#61
98
+ def call(env); end
99
+
100
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#49
101
+ def net_http_connection(env); end
102
+
103
+ private
104
+
105
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#172
106
+ def configure_request(http, req); end
107
+
108
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#156
109
+ def configure_ssl(http, ssl); end
110
+
111
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#88
112
+ def create_request(env); end
113
+
114
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#104
115
+ def perform_request(http, env); end
116
+
117
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#134
118
+ def request_via_get_method(http, env, &block); end
119
+
120
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#142
121
+ def request_via_request_method(http, env, &block); end
122
+
123
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#125
124
+ def request_with_wrapped_block(http, env, &block); end
125
+
126
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#192
127
+ def ssl_cert_store(ssl); end
128
+
129
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#201
130
+ def ssl_verify_mode(ssl); end
131
+ end
132
+
133
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#35
134
+ Faraday::Adapter::NetHttp::NET_HTTP_EXCEPTIONS = T.let(T.unsafe(nil), Array)
135
+
136
+ # source://faraday-net_http//lib/faraday/net_http/version.rb#4
137
+ module Faraday::NetHttp; end
138
+
139
+ # source://faraday-net_http//lib/faraday/net_http/version.rb#5
140
+ Faraday::NetHttp::VERSION = T.let(T.unsafe(nil), String)
@@ -0,0 +1,116 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `faraday-net_http_persistent` gem.
5
+ # Please instead update this file by running `bin/tapioca gem faraday-net_http_persistent`.
6
+
7
+
8
+ # source://faraday-net_http_persistent//lib/faraday/adapter/net_http_persistent.rb#3
9
+ module Faraday
10
+ class << self
11
+ # source://faraday/1.10.3/lib/faraday.rb#81
12
+ def default_adapter; end
13
+
14
+ # source://faraday/1.10.3/lib/faraday.rb#137
15
+ def default_adapter=(adapter); end
16
+
17
+ # source://faraday/1.10.3/lib/faraday.rb#155
18
+ def default_connection; end
19
+
20
+ # source://faraday/1.10.3/lib/faraday.rb#84
21
+ def default_connection=(_arg0); end
22
+
23
+ # source://faraday/1.10.3/lib/faraday.rb#162
24
+ def default_connection_options; end
25
+
26
+ # source://faraday/1.10.3/lib/faraday.rb#169
27
+ def default_connection_options=(options); end
28
+
29
+ # source://faraday/1.10.3/lib/faraday.rb#89
30
+ def ignore_env_proxy; end
31
+
32
+ # source://faraday/1.10.3/lib/faraday.rb#89
33
+ def ignore_env_proxy=(_arg0); end
34
+
35
+ # source://faraday/1.10.3/lib/faraday.rb#72
36
+ def lib_path; end
37
+
38
+ # source://faraday/1.10.3/lib/faraday.rb#72
39
+ def lib_path=(_arg0); end
40
+
41
+ # source://faraday/1.10.3/lib/faraday.rb#118
42
+ def new(url = T.unsafe(nil), options = T.unsafe(nil), &block); end
43
+
44
+ # source://faraday/1.10.3/lib/faraday.rb#128
45
+ def require_lib(*libs); end
46
+
47
+ # source://faraday/1.10.3/lib/faraday.rb#128
48
+ def require_libs(*libs); end
49
+
50
+ # source://faraday/1.10.3/lib/faraday.rb#142
51
+ def respond_to_missing?(symbol, include_private = T.unsafe(nil)); end
52
+
53
+ # source://faraday/1.10.3/lib/faraday.rb#68
54
+ def root_path; end
55
+
56
+ # source://faraday/1.10.3/lib/faraday.rb#68
57
+ def root_path=(_arg0); end
58
+
59
+ private
60
+
61
+ # source://faraday/1.10.3/lib/faraday.rb#178
62
+ def method_missing(name, *args, &block); end
63
+ end
64
+ end
65
+
66
+ # source://faraday-net_http_persistent//lib/faraday/adapter/net_http_persistent.rb#4
67
+ class Faraday::Adapter
68
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#33
69
+ def initialize(_app = T.unsafe(nil), opts = T.unsafe(nil), &block); end
70
+
71
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#60
72
+ def call(env); end
73
+
74
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#55
75
+ def close; end
76
+
77
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#46
78
+ def connection(env); end
79
+
80
+ private
81
+
82
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#91
83
+ def request_timeout(type, options); end
84
+
85
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#67
86
+ def save_response(env, status, body, headers = T.unsafe(nil), reason_phrase = T.unsafe(nil)); end
87
+ end
88
+
89
+ # source://faraday-net_http_persistent//lib/faraday/adapter/net_http_persistent.rb#6
90
+ class Faraday::Adapter::NetHttpPersistent < ::Faraday::Adapter::NetHttp
91
+ private
92
+
93
+ # source://faraday-net_http_persistent//lib/faraday/adapter/net_http_persistent.rb#94
94
+ def configure_ssl(http, ssl); end
95
+
96
+ # source://faraday-net_http_persistent//lib/faraday/adapter/net_http_persistent.rb#105
97
+ def http_set(http, attr, value); end
98
+
99
+ # source://faraday-net_http_persistent//lib/faraday/adapter/net_http_persistent.rb#11
100
+ def net_http_connection(env); end
101
+
102
+ # source://faraday-net_http_persistent//lib/faraday/adapter/net_http_persistent.rb#52
103
+ def perform_request(http, env); end
104
+
105
+ # source://faraday-net_http_persistent//lib/faraday/adapter/net_http_persistent.rb#31
106
+ def proxy_uri(env); end
107
+ end
108
+
109
+ # source://faraday-net_http_persistent//lib/faraday/adapter/net_http_persistent.rb#85
110
+ Faraday::Adapter::NetHttpPersistent::SSL_CONFIGURATIONS = T.let(T.unsafe(nil), Hash)
111
+
112
+ # source://faraday-net_http_persistent//lib/faraday/net_http_persistent/version.rb#4
113
+ module Faraday::NetHttpPersistent; end
114
+
115
+ # source://faraday-net_http_persistent//lib/faraday/net_http_persistent/version.rb#5
116
+ Faraday::NetHttpPersistent::VERSION = T.let(T.unsafe(nil), String)
@@ -0,0 +1,119 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `faraday-patron` gem.
5
+ # Please instead update this file by running `bin/tapioca gem faraday-patron`.
6
+
7
+
8
+ # source://faraday-patron//lib/faraday/adapter/patron.rb#3
9
+ module Faraday
10
+ class << self
11
+ # source://faraday/1.10.3/lib/faraday.rb#81
12
+ def default_adapter; end
13
+
14
+ # source://faraday/1.10.3/lib/faraday.rb#137
15
+ def default_adapter=(adapter); end
16
+
17
+ # source://faraday/1.10.3/lib/faraday.rb#155
18
+ def default_connection; end
19
+
20
+ # source://faraday/1.10.3/lib/faraday.rb#84
21
+ def default_connection=(_arg0); end
22
+
23
+ # source://faraday/1.10.3/lib/faraday.rb#162
24
+ def default_connection_options; end
25
+
26
+ # source://faraday/1.10.3/lib/faraday.rb#169
27
+ def default_connection_options=(options); end
28
+
29
+ # source://faraday/1.10.3/lib/faraday.rb#89
30
+ def ignore_env_proxy; end
31
+
32
+ # source://faraday/1.10.3/lib/faraday.rb#89
33
+ def ignore_env_proxy=(_arg0); end
34
+
35
+ # source://faraday/1.10.3/lib/faraday.rb#72
36
+ def lib_path; end
37
+
38
+ # source://faraday/1.10.3/lib/faraday.rb#72
39
+ def lib_path=(_arg0); end
40
+
41
+ # source://faraday/1.10.3/lib/faraday.rb#118
42
+ def new(url = T.unsafe(nil), options = T.unsafe(nil), &block); end
43
+
44
+ # source://faraday/1.10.3/lib/faraday.rb#128
45
+ def require_lib(*libs); end
46
+
47
+ # source://faraday/1.10.3/lib/faraday.rb#128
48
+ def require_libs(*libs); end
49
+
50
+ # source://faraday/1.10.3/lib/faraday.rb#142
51
+ def respond_to_missing?(symbol, include_private = T.unsafe(nil)); end
52
+
53
+ # source://faraday/1.10.3/lib/faraday.rb#68
54
+ def root_path; end
55
+
56
+ # source://faraday/1.10.3/lib/faraday.rb#68
57
+ def root_path=(_arg0); end
58
+
59
+ private
60
+
61
+ # source://faraday/1.10.3/lib/faraday.rb#178
62
+ def method_missing(name, *args, &block); end
63
+ end
64
+ end
65
+
66
+ # source://faraday-patron//lib/faraday/adapter/patron.rb#4
67
+ class Faraday::Adapter
68
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#33
69
+ def initialize(_app = T.unsafe(nil), opts = T.unsafe(nil), &block); end
70
+
71
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#60
72
+ def call(env); end
73
+
74
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#55
75
+ def close; end
76
+
77
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#46
78
+ def connection(env); end
79
+
80
+ private
81
+
82
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#91
83
+ def request_timeout(type, options); end
84
+
85
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#67
86
+ def save_response(env, status, body, headers = T.unsafe(nil), reason_phrase = T.unsafe(nil)); end
87
+ end
88
+
89
+ # source://faraday-patron//lib/faraday/adapter/patron.rb#6
90
+ class Faraday::Adapter::Patron < ::Faraday::Adapter
91
+ # source://faraday-patron//lib/faraday/adapter/patron.rb#9
92
+ def build_connection(env); end
93
+
94
+ # source://faraday-patron//lib/faraday/adapter/patron.rb#24
95
+ def call(env); end
96
+
97
+ # source://faraday-patron//lib/faraday/adapter/patron.rb#101
98
+ def configure_proxy(session, proxy); end
99
+
100
+ # source://faraday-patron//lib/faraday/adapter/patron.rb#81
101
+ def configure_ssl(session, ssl); end
102
+
103
+ # source://faraday-patron//lib/faraday/adapter/patron.rb#89
104
+ def configure_timeouts(session, req); end
105
+
106
+ private
107
+
108
+ # source://faraday-patron//lib/faraday/adapter/patron.rb#125
109
+ def connection_timed_out_message?(message); end
110
+ end
111
+
112
+ # source://faraday-patron//lib/faraday/adapter/patron.rb#114
113
+ Faraday::Adapter::Patron::CURL_TIMEOUT_MESSAGES = T.let(T.unsafe(nil), Array)
114
+
115
+ # source://faraday-patron//lib/faraday/patron/version.rb#4
116
+ module Faraday::Patron; end
117
+
118
+ # source://faraday-patron//lib/faraday/patron/version.rb#5
119
+ Faraday::Patron::VERSION = T.let(T.unsafe(nil), String)
@@ -0,0 +1,113 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `faraday-rack` gem.
5
+ # Please instead update this file by running `bin/tapioca gem faraday-rack`.
6
+
7
+
8
+ # source://faraday-rack//lib/faraday/adapter/rack.rb#3
9
+ module Faraday
10
+ class << self
11
+ # source://faraday/1.10.3/lib/faraday.rb#81
12
+ def default_adapter; end
13
+
14
+ # source://faraday/1.10.3/lib/faraday.rb#137
15
+ def default_adapter=(adapter); end
16
+
17
+ # source://faraday/1.10.3/lib/faraday.rb#155
18
+ def default_connection; end
19
+
20
+ # source://faraday/1.10.3/lib/faraday.rb#84
21
+ def default_connection=(_arg0); end
22
+
23
+ # source://faraday/1.10.3/lib/faraday.rb#162
24
+ def default_connection_options; end
25
+
26
+ # source://faraday/1.10.3/lib/faraday.rb#169
27
+ def default_connection_options=(options); end
28
+
29
+ # source://faraday/1.10.3/lib/faraday.rb#89
30
+ def ignore_env_proxy; end
31
+
32
+ # source://faraday/1.10.3/lib/faraday.rb#89
33
+ def ignore_env_proxy=(_arg0); end
34
+
35
+ # source://faraday/1.10.3/lib/faraday.rb#72
36
+ def lib_path; end
37
+
38
+ # source://faraday/1.10.3/lib/faraday.rb#72
39
+ def lib_path=(_arg0); end
40
+
41
+ # source://faraday/1.10.3/lib/faraday.rb#118
42
+ def new(url = T.unsafe(nil), options = T.unsafe(nil), &block); end
43
+
44
+ # source://faraday/1.10.3/lib/faraday.rb#128
45
+ def require_lib(*libs); end
46
+
47
+ # source://faraday/1.10.3/lib/faraday.rb#128
48
+ def require_libs(*libs); end
49
+
50
+ # source://faraday/1.10.3/lib/faraday.rb#142
51
+ def respond_to_missing?(symbol, include_private = T.unsafe(nil)); end
52
+
53
+ # source://faraday/1.10.3/lib/faraday.rb#68
54
+ def root_path; end
55
+
56
+ # source://faraday/1.10.3/lib/faraday.rb#68
57
+ def root_path=(_arg0); end
58
+
59
+ private
60
+
61
+ # source://faraday/1.10.3/lib/faraday.rb#178
62
+ def method_missing(name, *args, &block); end
63
+ end
64
+ end
65
+
66
+ # source://faraday-rack//lib/faraday/adapter/rack.rb#4
67
+ class Faraday::Adapter
68
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#33
69
+ def initialize(_app = T.unsafe(nil), opts = T.unsafe(nil), &block); end
70
+
71
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#60
72
+ def call(env); end
73
+
74
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#55
75
+ def close; end
76
+
77
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#46
78
+ def connection(env); end
79
+
80
+ private
81
+
82
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#91
83
+ def request_timeout(type, options); end
84
+
85
+ # source://faraday/1.10.3/lib/faraday/adapter.rb#67
86
+ def save_response(env, status, body, headers = T.unsafe(nil), reason_phrase = T.unsafe(nil)); end
87
+ end
88
+
89
+ # source://faraday-rack//lib/faraday/adapter/rack.rb#18
90
+ class Faraday::Adapter::Rack < ::Faraday::Adapter
91
+ # source://faraday-rack//lib/faraday/adapter/rack.rb#24
92
+ def initialize(faraday_app, rack_app); end
93
+
94
+ # source://faraday-rack//lib/faraday/adapter/rack.rb#30
95
+ def call(env); end
96
+
97
+ private
98
+
99
+ # source://faraday-rack//lib/faraday/adapter/rack.rb#66
100
+ def build_rack_env(env); end
101
+
102
+ # source://faraday-rack//lib/faraday/adapter/rack.rb#62
103
+ def execute_request(env, rack_env); end
104
+ end
105
+
106
+ # source://faraday-rack//lib/faraday/adapter/rack.rb#22
107
+ Faraday::Adapter::Rack::SPECIAL_HEADERS = T.let(T.unsafe(nil), Array)
108
+
109
+ # source://faraday-rack//lib/faraday/rack/version.rb#4
110
+ module Faraday::Rack; end
111
+
112
+ # source://faraday-rack//lib/faraday/rack/version.rb#5
113
+ Faraday::Rack::VERSION = T.let(T.unsafe(nil), String)