kintsugi_sdk 5.5.14 → 5.6.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 (167) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/enum.rbi +17 -0
  3. data/lib/crystalline/metadata_fields.rb +94 -38
  4. data/lib/crystalline/module.rb +103 -13
  5. data/lib/crystalline/types.rb +100 -16
  6. data/lib/crystalline/utils.rb +13 -0
  7. data/lib/kintsugi_sdk/addressvalidation.rb +3 -3
  8. data/lib/kintsugi_sdk/customers.rb +10 -10
  9. data/lib/kintsugi_sdk/exemptions.rb +7 -7
  10. data/lib/kintsugi_sdk/models/errors/backend_src_address_validation_responses_validationerrorresponse.rb +0 -1
  11. data/lib/kintsugi_sdk/models/errors/backend_src_customers_responses_validationerrorresponse.rb +0 -1
  12. data/lib/kintsugi_sdk/models/errors/backend_src_exemptions_responses_validationerrorresponse.rb +0 -1
  13. data/lib/kintsugi_sdk/models/errors/backend_src_products_responses_validationerrorresponse.rb +0 -1
  14. data/lib/kintsugi_sdk/models/errors/backend_src_tax_estimation_responses_validationerrorresponse.rb +0 -1
  15. data/lib/kintsugi_sdk/models/errors/backend_src_transactions_responses_validationerrorresponse.rb +0 -1
  16. data/lib/kintsugi_sdk/models/errors/errorresponse.rb +0 -1
  17. data/lib/kintsugi_sdk/models/errors/httpvalidationerror.rb +0 -1
  18. data/lib/kintsugi_sdk/models/ops/createtransactionbycustomer_request.rb +0 -1
  19. data/lib/kintsugi_sdk/models/ops/estimate_tax_v1_tax_estimate_post_request.rb +2 -3
  20. data/lib/kintsugi_sdk/models/ops/get_customer_by_external_id_v1_customers_external_external_id_get_request.rb +0 -1
  21. data/lib/kintsugi_sdk/models/ops/get_customer_by_id_v1_customers_customer_id_get_request.rb +0 -1
  22. data/lib/kintsugi_sdk/models/ops/get_customers_v1_request.rb +0 -1
  23. data/lib/kintsugi_sdk/models/ops/get_exemption_by_id_v1_exemptions_exemption_id_get_request.rb +0 -1
  24. data/lib/kintsugi_sdk/models/ops/get_exemptions_v1_exemptions_get_request.rb +0 -1
  25. data/lib/kintsugi_sdk/models/ops/get_nexus_for_org_v1_nexus_get_request.rb +6 -3
  26. data/lib/kintsugi_sdk/models/ops/get_nexus_for_org_v1_nexus_get_request.rbi +2 -0
  27. data/lib/kintsugi_sdk/models/ops/get_product_by_id_v1_products_product_id_get_request.rb +0 -1
  28. data/lib/kintsugi_sdk/models/ops/get_transaction_by_id_v1_transactions_transaction_id_get_request.rb +0 -1
  29. data/lib/kintsugi_sdk/models/ops/get_transactions_v1_transactions_get_request.rb +0 -1
  30. data/lib/kintsugi_sdk/models/ops/getexemptionattachments_request.rb +0 -1
  31. data/lib/kintsugi_sdk/models/ops/gettransactionbyexternalid_request.rb +0 -1
  32. data/lib/kintsugi_sdk/models/ops/gettransactionsbycustomer_request.rb +0 -1
  33. data/lib/kintsugi_sdk/models/ops/gettransactionsbyfiling_request.rb +0 -1
  34. data/lib/kintsugi_sdk/models/ops/search_v1_address_validation_search_post_security.rb +0 -1
  35. data/lib/kintsugi_sdk/models/ops/update_customer_v1_customers_customer_id_put_request.rb +0 -1
  36. data/lib/kintsugi_sdk/models/ops/update_product_v1_products_product_id_put_request.rb +0 -1
  37. data/lib/kintsugi_sdk/models/ops/update_transaction_v1_transactions_transaction_id_put_request.rb +0 -1
  38. data/lib/kintsugi_sdk/models/ops/uploadexemptioncert_request.rb +0 -1
  39. data/lib/kintsugi_sdk/models/ops.rb +0 -1
  40. data/lib/kintsugi_sdk/models/shared/addressbase.rb +1 -2
  41. data/lib/kintsugi_sdk/models/shared/addresses.rb +3 -4
  42. data/lib/kintsugi_sdk/models/shared/addressresponsedata.rb +0 -1
  43. data/lib/kintsugi_sdk/models/shared/addresssearchresponse.rb +0 -1
  44. data/lib/kintsugi_sdk/models/shared/addressstatus.rb +0 -3
  45. data/lib/kintsugi_sdk/models/shared/addresssubmittedresponse.rb +0 -1
  46. data/lib/kintsugi_sdk/models/shared/addresstype.rb +0 -3
  47. data/lib/kintsugi_sdk/models/shared/appliedto.rb +0 -3
  48. data/lib/kintsugi_sdk/models/shared/attachmentread.rb +1 -2
  49. data/lib/kintsugi_sdk/models/shared/backend_src_address_validation_responses_validationerroritem.rb +0 -1
  50. data/lib/kintsugi_sdk/models/shared/backend_src_customers_responses_validationerroritem.rb +0 -1
  51. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_models_exemptionread.rb +4 -5
  52. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_responses_validationerroritem.rb +0 -1
  53. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_serializers_exemptionread.rb +4 -5
  54. data/lib/kintsugi_sdk/models/shared/backend_src_products_responses_validationerroritem.rb +0 -1
  55. data/lib/kintsugi_sdk/models/shared/backend_src_tax_estimation_responses_validationerroritem.rb +0 -1
  56. data/lib/kintsugi_sdk/models/shared/backend_src_transactions_responses_validationerroritem.rb +0 -1
  57. data/lib/kintsugi_sdk/models/shared/body_upload_exemption_certificate_v1_exemptions_exemption_id_attachments_post.rb +0 -1
  58. data/lib/kintsugi_sdk/models/shared/countrycodeenum.rb +1 -3
  59. data/lib/kintsugi_sdk/models/shared/currencyenum.rb +0 -3
  60. data/lib/kintsugi_sdk/models/shared/customerbase.rb +4 -5
  61. data/lib/kintsugi_sdk/models/shared/customerbasebase.rb +4 -5
  62. data/lib/kintsugi_sdk/models/shared/customerbasepublic.rb +4 -5
  63. data/lib/kintsugi_sdk/models/shared/customercreate.rb +4 -5
  64. data/lib/kintsugi_sdk/models/shared/customerread.rb +4 -5
  65. data/lib/kintsugi_sdk/models/shared/customertaxregistrationread.rb +2 -3
  66. data/lib/kintsugi_sdk/models/shared/customertaxtypeenum.rb +0 -3
  67. data/lib/kintsugi_sdk/models/shared/customerupdate.rb +4 -5
  68. data/lib/kintsugi_sdk/models/shared/discountbuilder.rb +2 -3
  69. data/lib/kintsugi_sdk/models/shared/exemption.rb +5 -6
  70. data/lib/kintsugi_sdk/models/shared/exemptioncreate.rb +4 -5
  71. data/lib/kintsugi_sdk/models/shared/exemptionrequired.rb +6 -5
  72. data/lib/kintsugi_sdk/models/shared/exemptionstatus.rb +0 -3
  73. data/lib/kintsugi_sdk/models/shared/exemptiontype.rb +0 -3
  74. data/lib/kintsugi_sdk/models/shared/fastapi_pagination_default_page_exemptionread_2.rb +3 -4
  75. data/lib/kintsugi_sdk/models/shared/file.rb +0 -1
  76. data/lib/kintsugi_sdk/models/shared/findthresholdcrossingtransactionstate.rb +56 -0
  77. data/lib/kintsugi_sdk/models/shared/findthresholdcrossingtransactionstate.rbi +25 -0
  78. data/lib/kintsugi_sdk/models/shared/jurisdictiontype.rb +0 -3
  79. data/lib/kintsugi_sdk/models/shared/nexusresponse.rb +41 -22
  80. data/lib/kintsugi_sdk/models/shared/nexusresponse.rbi +10 -0
  81. data/lib/kintsugi_sdk/models/shared/nexusstateenum.rb +0 -3
  82. data/lib/kintsugi_sdk/models/shared/nexusstatusenum.rb +0 -3
  83. data/lib/kintsugi_sdk/models/shared/nexustypeenum.rb +0 -3
  84. data/lib/kintsugi_sdk/models/shared/page_customerread_.rb +3 -4
  85. data/lib/kintsugi_sdk/models/shared/page_nexusresponse_.rb +3 -4
  86. data/lib/kintsugi_sdk/models/shared/page_transactionestimateresponse_.rb +3 -4
  87. data/lib/kintsugi_sdk/models/shared/page_transactionread_.rb +3 -4
  88. data/lib/kintsugi_sdk/models/shared/periodmodelenum.rb +0 -3
  89. data/lib/kintsugi_sdk/models/shared/processingstatusenum.rb +1 -3
  90. data/lib/kintsugi_sdk/models/shared/productread.rb +12 -9
  91. data/lib/kintsugi_sdk/models/shared/productstatusenum.rb +0 -3
  92. data/lib/kintsugi_sdk/models/shared/productupdate.rb +10 -7
  93. data/lib/kintsugi_sdk/models/shared/registration.rb +0 -1
  94. data/lib/kintsugi_sdk/models/shared/registrationsregimeenum.rb +0 -3
  95. data/lib/kintsugi_sdk/models/shared/relatedentitytype.rb +0 -3
  96. data/lib/kintsugi_sdk/models/shared/salesortransactionsenum.rb +0 -3
  97. data/lib/kintsugi_sdk/models/shared/security.rb +0 -1
  98. data/lib/kintsugi_sdk/models/shared/sourceenum.rb +6 -3
  99. data/lib/kintsugi_sdk/models/shared/statusenum.rb +0 -3
  100. data/lib/kintsugi_sdk/models/shared/taxexemptionenum.rb +1 -3
  101. data/lib/kintsugi_sdk/models/shared/taxitembuilder.rb +4 -5
  102. data/lib/kintsugi_sdk/models/shared/taxitemestimate.rb +1 -2
  103. data/lib/kintsugi_sdk/models/shared/taxitemread.rb +4 -5
  104. data/lib/kintsugi_sdk/models/shared/taxitemreturnreasonenum.rb +2 -3
  105. data/lib/kintsugi_sdk/models/shared/taxitemtypeenum.rb +0 -3
  106. data/lib/kintsugi_sdk/models/shared/taxliabilitysourceenum.rb +0 -3
  107. data/lib/kintsugi_sdk/models/shared/transactionaddressbuilder.rb +3 -4
  108. data/lib/kintsugi_sdk/models/shared/transactionaddresspublic.rb +2 -3
  109. data/lib/kintsugi_sdk/models/shared/transactionaddressread_output.rb +3 -4
  110. data/lib/kintsugi_sdk/models/shared/transactioncreate.rb +23 -19
  111. data/lib/kintsugi_sdk/models/shared/transactioncreate.rbi +2 -2
  112. data/lib/kintsugi_sdk/models/shared/transactionestimatepublicrequest.rb +6 -11
  113. data/lib/kintsugi_sdk/models/shared/transactionestimatepublicrequest.rbi +0 -2
  114. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse.rb +7 -12
  115. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse.rbi +0 -2
  116. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse_addresses.rb +3 -4
  117. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse_type.rb +0 -3
  118. data/lib/kintsugi_sdk/models/shared/transactionexemptstatusenum.rb +2 -3
  119. data/lib/kintsugi_sdk/models/shared/transactionitembuilder.rb +8 -7
  120. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate.rb +8 -7
  121. data/lib/kintsugi_sdk/models/shared/transactionitemestimatebase.rb +2 -3
  122. data/lib/kintsugi_sdk/models/shared/transactionitemestimateresponse.rb +3 -4
  123. data/lib/kintsugi_sdk/models/shared/transactionitemread.rb +7 -6
  124. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest.rb +21 -17
  125. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest.rbi +2 -2
  126. data/lib/kintsugi_sdk/models/shared/transactionread.rb +24 -20
  127. data/lib/kintsugi_sdk/models/shared/transactionread.rbi +2 -2
  128. data/lib/kintsugi_sdk/models/shared/transactionrefundstatus.rb +0 -3
  129. data/lib/kintsugi_sdk/models/shared/transactionstatusenum.rb +0 -3
  130. data/lib/kintsugi_sdk/models/shared/transactiontypeenum.rb +0 -3
  131. data/lib/kintsugi_sdk/models/shared/transactionupdate.rb +20 -16
  132. data/lib/kintsugi_sdk/models/shared/transactionupdate.rbi +2 -2
  133. data/lib/kintsugi_sdk/models/shared/treatmentenum.rb +0 -3
  134. data/lib/kintsugi_sdk/models/shared/type.rb +0 -3
  135. data/lib/kintsugi_sdk/models/shared/validationaddress.rb +0 -1
  136. data/lib/kintsugi_sdk/models/shared/validationerror.rb +0 -1
  137. data/lib/kintsugi_sdk/models/shared.rb +1 -7
  138. data/lib/kintsugi_sdk/nexus.rb +1 -1
  139. data/lib/kintsugi_sdk/openapisdk.rb +13 -15
  140. data/lib/kintsugi_sdk/products.rb +6 -414
  141. data/lib/kintsugi_sdk/sdk_hooks/hooks.rb +0 -1
  142. data/lib/kintsugi_sdk/sdkconfiguration.rb +5 -10
  143. data/lib/kintsugi_sdk/taxestimation.rb +4 -4
  144. data/lib/kintsugi_sdk/transactions.rb +8 -8
  145. data/lib/kintsugi_sdk/utils/forms.rb +1 -1
  146. data/lib/kintsugi_sdk/utils/query_params.rb +4 -2
  147. data/lib/kintsugi_sdk/utils/request_bodies.rb +11 -6
  148. data/lib/kintsugi_sdk/utils/security.rb +10 -0
  149. data/lib/kintsugi_sdk/utils/url.rb +11 -5
  150. data/lib/kintsugi_sdk/utils/utils.rb +45 -3
  151. metadata +73 -41
  152. data/lib/kintsugi_sdk/models/ops/get_products_v1_products_get_request.rb +0 -61
  153. data/lib/kintsugi_sdk/models/ops/get_products_v1_products_get_request.rbi +0 -27
  154. data/lib/kintsugi_sdk/models/shared/page_productread_.rb +0 -49
  155. data/lib/kintsugi_sdk/models/shared/page_productread_.rbi +0 -21
  156. data/lib/kintsugi_sdk/models/shared/productcategories.rb +0 -38
  157. data/lib/kintsugi_sdk/models/shared/productcategories.rbi +0 -15
  158. data/lib/kintsugi_sdk/models/shared/productcategoryenum.rb +0 -25
  159. data/lib/kintsugi_sdk/models/shared/productcategoryenum.rbi +0 -11
  160. data/lib/kintsugi_sdk/models/shared/productcodeenum.rb +0 -82
  161. data/lib/kintsugi_sdk/models/shared/productcodeenum.rbi +0 -11
  162. data/lib/kintsugi_sdk/models/shared/productcreatemanual.rb +0 -61
  163. data/lib/kintsugi_sdk/models/shared/productcreatemanual.rbi +0 -27
  164. data/lib/kintsugi_sdk/models/shared/productsubcategory.rb +0 -46
  165. data/lib/kintsugi_sdk/models/shared/productsubcategory.rbi +0 -19
  166. data/lib/kintsugi_sdk/models/shared/productsubcategoryenum.rb +0 -83
  167. data/lib/kintsugi_sdk/models/shared/productsubcategoryenum.rbi +0 -11
@@ -37,6 +37,16 @@ module KintsugiSDK
37
37
 
38
38
  sig { params(req: Faraday::Request, option: Object).void }
39
39
  def self._parse_security_option(req, option)
40
+ # Check if this option uses basic auth (needs the whole object, not individual fields)
41
+ first_field = T.unsafe(option).fields.first
42
+ if first_field
43
+ first_meta = first_field.metadata[:security]
44
+ if first_meta && first_meta[:type] == 'http' && first_meta[:sub_type] == 'basic'
45
+ _parse_security_scheme(req, first_meta, option)
46
+ return
47
+ end
48
+ end
49
+
40
50
  T.unsafe(option).fields.each do |opt_field|
41
51
  metadata = opt_field.metadata[:security]
42
52
  next if metadata.nil? || !metadata.include?(:scheme)
@@ -24,7 +24,7 @@ module KintsugiSDK
24
24
  if serialization != ''
25
25
  serialized_params = _get_serialized_params(param_metadata, f_name, param)
26
26
  serialized_params.each do |k, v|
27
- path = path.sub("{#{k}}", v.join(', '))
27
+ path = path.gsub("{#{k}}", v.join(', '))
28
28
  end
29
29
  else
30
30
  if param.is_a? Array
@@ -32,7 +32,7 @@ module KintsugiSDK
32
32
  param.each do |pp_val|
33
33
  pp_vals.append(pp_val.to_s)
34
34
  end
35
- path = path.sub("{#{param_metadata.fetch(:field_name, f.name)}}", pp_vals.join(','))
35
+ path = path.gsub("{#{param_metadata.fetch(:field_name, f.name)}}", pp_vals.join(','))
36
36
  elsif param.is_a? Hash
37
37
  pp_vals = []
38
38
  param.each do |pp_key, pp_val|
@@ -44,7 +44,7 @@ module KintsugiSDK
44
44
  pp_vals.append("#{pp_key},#{value}")
45
45
  end
46
46
  end
47
- path = path.sub("{#{param_metadata.fetch(:field_name, f.name)}}", pp_vals.join(','))
47
+ path = path.gsub("{#{param_metadata.fetch(:field_name, f.name)}}", pp_vals.join(','))
48
48
  elsif param.class.include?(::Crystalline::MetadataFields)
49
49
  pp_vals = []
50
50
  attrs = T.unsafe(param).fields.filter { |field| field.name && param.respond_to?(field.name.to_sym) }.map(&:name)
@@ -72,9 +72,9 @@ module KintsugiSDK
72
72
  pp_vals.append("#{parm_name},#{param_field_val}")
73
73
  end
74
74
  end
75
- path = path.sub("{#{param_metadata.fetch(:field_name, f.name)}}", pp_vals.join(','))
75
+ path = path.gsub("{#{param_metadata.fetch(:field_name, f.name)}}", pp_vals.join(','))
76
76
  else
77
- path = path.sub("{#{param_metadata.fetch(:field_name, f.name)}}", param.to_s)
77
+ path = path.gsub("{#{param_metadata.fetch(:field_name, f.name)}}", _encode_path_param(val_to_string(param)))
78
78
  end
79
79
  end
80
80
  end
@@ -82,6 +82,12 @@ module KintsugiSDK
82
82
  server_url.delete_suffix('/') + path
83
83
  end
84
84
 
85
+ # Percent-encode characters that are invalid in URI path segments
86
+ sig { params(value: String).returns(String) }
87
+ def self._encode_path_param(value)
88
+ value.gsub(/[<>{}\[\]|\\^`\s?#%]/) { |c| format('%%%02X', c.ord) }
89
+ end
90
+
85
91
  sig { params(url_with_params: String, params: T::Hash[Symbol, T.any(String, T::Enum)]).returns(String) }
86
92
  def self.template_url(url_with_params, params)
87
93
  params.each do |key, value|
@@ -19,13 +19,43 @@ module KintsugiSDK
19
19
  if val.class.respond_to?(:enums)
20
20
  T.unsafe(val).serialize.to_s
21
21
  elsif val.is_a? DateTime
22
- val.strftime('%Y-%m-%dT%H:%M:%S.%NZ')
22
+ val.strftime('%Y-%m-%dT%H:%M:%S.%NZ').sub(/(\.\d*[1-9])0+Z\z/, '\1Z').sub(/\.0+Z\z/, 'Z')
23
23
  else
24
24
  val.to_s
25
25
 
26
26
  end
27
27
  end
28
28
 
29
+ MIME_TYPES = {
30
+ '.json' => 'application/json',
31
+ '.xml' => 'application/xml',
32
+ '.pdf' => 'application/pdf',
33
+ '.zip' => 'application/zip',
34
+ '.gz' => 'application/gzip',
35
+ '.csv' => 'text/csv',
36
+ '.txt' => 'text/plain',
37
+ '.html' => 'text/html',
38
+ '.htm' => 'text/html',
39
+ '.css' => 'text/css',
40
+ '.js' => 'application/javascript',
41
+ '.png' => 'image/png',
42
+ '.jpg' => 'image/jpeg',
43
+ '.jpeg' => 'image/jpeg',
44
+ '.gif' => 'image/gif',
45
+ '.svg' => 'image/svg+xml',
46
+ '.webp' => 'image/webp',
47
+ '.mp3' => 'audio/mpeg',
48
+ '.mp4' => 'video/mp4',
49
+ '.yaml' => 'application/yaml',
50
+ '.yml' => 'application/yaml',
51
+ }.freeze
52
+
53
+ sig { params(filename: String).returns(String) }
54
+ def self.mime_type_for_filename(filename)
55
+ ext = File.extname(filename).downcase
56
+ MIME_TYPES.fetch(ext, 'application/octet-stream')
57
+ end
58
+
29
59
  sig do
30
60
  params(metadata: T::Hash[Symbol, String], field_name: String, obj: Object)
31
61
  .returns(T::Hash[Symbol, T::Array[String]])
@@ -102,6 +132,18 @@ module KintsugiSDK
102
132
  end
103
133
  end
104
134
 
135
+ sig do
136
+ params(enum_type: Module, optional: T::Boolean)
137
+ .returns(T.proc.params(s: String).returns(T.untyped))
138
+ end
139
+ def self.open_enum_from_string(enum_type, optional)
140
+ Kernel.lambda do |s|
141
+ return nil if optional && s.nil?
142
+
143
+ return T.unsafe(enum_type).deserialize(s)
144
+ end
145
+ end
146
+
105
147
  sig { params(name: String).returns(T.proc.returns(String)) }
106
148
  def self.field_name(name)
107
149
  T.let(proc { name }, T.proc.returns(String))
@@ -143,7 +185,7 @@ module KintsugiSDK
143
185
  # Handle file uploads
144
186
  file_part = Faraday::Multipart::FilePart.new(
145
187
  StringIO.new(T.must(field[1])),
146
- 'application/octet-stream',
188
+ mime_type_for_filename(T.must(field[0])),
147
189
  field[0]
148
190
  )
149
191
 
@@ -158,7 +200,7 @@ module KintsugiSDK
158
200
  end
159
201
  end
160
202
  elsif field.length == 3
161
- param_part = Faraday::Multipart::ParamPart.new(field[1].to_json, field[2])
203
+ param_part = Faraday::Multipart::ParamPart.new(field[1], field[2])
162
204
 
163
205
  # Handle multiple values for the same field name (arrays)
164
206
  if payload.key?(field_name)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kintsugi_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.5.14
4
+ version: 5.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kintsugi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-09-26 00:00:00.000000000 Z
11
+ date: 2026-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -36,50 +36,64 @@ dependencies:
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: '0'
39
+ version: 2.14.1
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: '0'
46
+ version: 2.14.1
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: faraday-multipart
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ">="
51
+ - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '0'
53
+ version: 1.2.0
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ">="
58
+ - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '0'
60
+ version: 1.2.0
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: faraday-retry
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 2.2.1
67
+ version: 2.4.0
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: 2.2.1
74
+ version: 2.4.0
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: sorbet-runtime
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: 0.6.12872
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 0.6.12872
89
+ - !ruby/object:Gem::Dependency
90
+ name: irb
77
91
  requirement: !ruby/object:Gem::Requirement
78
92
  requirements:
79
93
  - - ">="
80
94
  - !ruby/object:Gem::Version
81
95
  version: '0'
82
- type: :runtime
96
+ type: :development
83
97
  prerelease: false
84
98
  version_requirements: !ruby/object:Gem::Requirement
85
99
  requirements:
@@ -92,28 +106,42 @@ dependencies:
92
106
  requirements:
93
107
  - - ">="
94
108
  - !ruby/object:Gem::Version
95
- version: '0'
109
+ version: 5.27.0
96
110
  type: :development
97
111
  prerelease: false
98
112
  version_requirements: !ruby/object:Gem::Requirement
99
113
  requirements:
100
114
  - - ">="
101
115
  - !ruby/object:Gem::Version
102
- version: '0'
116
+ version: 5.27.0
103
117
  - !ruby/object:Gem::Dependency
104
118
  name: minitest-focus
105
119
  requirement: !ruby/object:Gem::Requirement
106
120
  requirements:
107
- - - ">="
121
+ - - "~>"
108
122
  - !ruby/object:Gem::Version
109
- version: '0'
123
+ version: 1.4.1
110
124
  type: :development
111
125
  prerelease: false
112
126
  version_requirements: !ruby/object:Gem::Requirement
113
127
  requirements:
114
- - - ">="
128
+ - - "~>"
115
129
  - !ruby/object:Gem::Version
116
- version: '0'
130
+ version: 1.4.1
131
+ - !ruby/object:Gem::Dependency
132
+ name: minitest-reporters
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: 1.7.1
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: 1.7.1
117
145
  - !ruby/object:Gem::Dependency
118
146
  name: rake
119
147
  requirement: !ruby/object:Gem::Requirement
@@ -160,30 +188,44 @@ dependencies:
160
188
  name: sorbet
161
189
  requirement: !ruby/object:Gem::Requirement
162
190
  requirements:
163
- - - ">="
191
+ - - "~>"
164
192
  - !ruby/object:Gem::Version
165
- version: '0'
193
+ version: 0.6.12872
166
194
  type: :development
167
195
  prerelease: false
168
196
  version_requirements: !ruby/object:Gem::Requirement
169
197
  requirements:
170
- - - ">="
198
+ - - "~>"
171
199
  - !ruby/object:Gem::Version
172
- version: '0'
200
+ version: 0.6.12872
173
201
  - !ruby/object:Gem::Dependency
174
202
  name: tapioca
175
203
  requirement: !ruby/object:Gem::Requirement
176
204
  requirements:
177
205
  - - "~>"
178
206
  - !ruby/object:Gem::Version
179
- version: 0.16.11
207
+ version: 0.17.10
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: 0.17.10
215
+ - !ruby/object:Gem::Dependency
216
+ name: tsort
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: 0.2.0
180
222
  type: :development
181
223
  prerelease: false
182
224
  version_requirements: !ruby/object:Gem::Requirement
183
225
  requirements:
184
226
  - - "~>"
185
227
  - !ruby/object:Gem::Version
186
- version: 0.16.11
228
+ version: 0.2.0
187
229
  description: Ruby SDK for Kintsugi Tax Platform
188
230
  email:
189
231
  executables: []
@@ -191,6 +233,7 @@ extensions: []
191
233
  extra_rdoc_files: []
192
234
  files:
193
235
  - lib/crystalline.rb
236
+ - lib/crystalline/enum.rbi
194
237
  - lib/crystalline/metadata_fields.rb
195
238
  - lib/crystalline/module.rb
196
239
  - lib/crystalline/types.rb
@@ -238,8 +281,6 @@ files:
238
281
  - lib/kintsugi_sdk/models/ops/get_nexus_for_org_v1_nexus_get_request.rbi
239
282
  - lib/kintsugi_sdk/models/ops/get_product_by_id_v1_products_product_id_get_request.rb
240
283
  - lib/kintsugi_sdk/models/ops/get_product_by_id_v1_products_product_id_get_request.rbi
241
- - lib/kintsugi_sdk/models/ops/get_products_v1_products_get_request.rb
242
- - lib/kintsugi_sdk/models/ops/get_products_v1_products_get_request.rbi
243
284
  - lib/kintsugi_sdk/models/ops/get_transaction_by_id_v1_transactions_transaction_id_get_request.rb
244
285
  - lib/kintsugi_sdk/models/ops/get_transaction_by_id_v1_transactions_transaction_id_get_request.rbi
245
286
  - lib/kintsugi_sdk/models/ops/get_transactions_v1_transactions_get_request.rb
@@ -335,6 +376,8 @@ files:
335
376
  - lib/kintsugi_sdk/models/shared/fastapi_pagination_default_page_exemptionread_2.rbi
336
377
  - lib/kintsugi_sdk/models/shared/file.rb
337
378
  - lib/kintsugi_sdk/models/shared/file.rbi
379
+ - lib/kintsugi_sdk/models/shared/findthresholdcrossingtransactionstate.rb
380
+ - lib/kintsugi_sdk/models/shared/findthresholdcrossingtransactionstate.rbi
338
381
  - lib/kintsugi_sdk/models/shared/jurisdictiontype.rb
339
382
  - lib/kintsugi_sdk/models/shared/jurisdictiontype.rbi
340
383
  - lib/kintsugi_sdk/models/shared/nexusresponse.rb
@@ -349,8 +392,6 @@ files:
349
392
  - lib/kintsugi_sdk/models/shared/page_customerread_.rbi
350
393
  - lib/kintsugi_sdk/models/shared/page_nexusresponse_.rb
351
394
  - lib/kintsugi_sdk/models/shared/page_nexusresponse_.rbi
352
- - lib/kintsugi_sdk/models/shared/page_productread_.rb
353
- - lib/kintsugi_sdk/models/shared/page_productread_.rbi
354
395
  - lib/kintsugi_sdk/models/shared/page_transactionestimateresponse_.rb
355
396
  - lib/kintsugi_sdk/models/shared/page_transactionestimateresponse_.rbi
356
397
  - lib/kintsugi_sdk/models/shared/page_transactionread_.rb
@@ -359,22 +400,10 @@ files:
359
400
  - lib/kintsugi_sdk/models/shared/periodmodelenum.rbi
360
401
  - lib/kintsugi_sdk/models/shared/processingstatusenum.rb
361
402
  - lib/kintsugi_sdk/models/shared/processingstatusenum.rbi
362
- - lib/kintsugi_sdk/models/shared/productcategories.rb
363
- - lib/kintsugi_sdk/models/shared/productcategories.rbi
364
- - lib/kintsugi_sdk/models/shared/productcategoryenum.rb
365
- - lib/kintsugi_sdk/models/shared/productcategoryenum.rbi
366
- - lib/kintsugi_sdk/models/shared/productcodeenum.rb
367
- - lib/kintsugi_sdk/models/shared/productcodeenum.rbi
368
- - lib/kintsugi_sdk/models/shared/productcreatemanual.rb
369
- - lib/kintsugi_sdk/models/shared/productcreatemanual.rbi
370
403
  - lib/kintsugi_sdk/models/shared/productread.rb
371
404
  - lib/kintsugi_sdk/models/shared/productread.rbi
372
405
  - lib/kintsugi_sdk/models/shared/productstatusenum.rb
373
406
  - lib/kintsugi_sdk/models/shared/productstatusenum.rbi
374
- - lib/kintsugi_sdk/models/shared/productsubcategory.rb
375
- - lib/kintsugi_sdk/models/shared/productsubcategory.rbi
376
- - lib/kintsugi_sdk/models/shared/productsubcategoryenum.rb
377
- - lib/kintsugi_sdk/models/shared/productsubcategoryenum.rbi
378
407
  - lib/kintsugi_sdk/models/shared/productupdate.rb
379
408
  - lib/kintsugi_sdk/models/shared/productupdate.rbi
380
409
  - lib/kintsugi_sdk/models/shared/registration.rb
@@ -470,10 +499,13 @@ files:
470
499
  - lib/kintsugi_sdk/utils/security.rb
471
500
  - lib/kintsugi_sdk/utils/url.rb
472
501
  - lib/kintsugi_sdk/utils/utils.rb
473
- homepage:
502
+ homepage: https://github.com/kintsugi-tax/kintsugi-tax-ruby-sdk.git
474
503
  licenses:
475
504
  - Apache-2.0
476
- metadata: {}
505
+ metadata:
506
+ homepage_uri: https://github.com/kintsugi-tax/kintsugi-tax-ruby-sdk.git
507
+ documentation_uri: https://github.com/kintsugi-tax/kintsugi-tax-ruby-sdk.git
508
+ source_code_uri: https://github.com/kintsugi-tax/kintsugi-tax-ruby-sdk.git
477
509
  post_install_message:
478
510
  rdoc_options: []
479
511
  require_paths:
@@ -1,61 +0,0 @@
1
- # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
-
3
- # typed: true
4
- # frozen_string_literal: true
5
-
6
-
7
- module KintsugiSDK
8
- module Models
9
- module Ops
10
-
11
-
12
- class GetProductsV1ProductsGetRequest
13
- extend T::Sig
14
- include Crystalline::MetadataFields
15
-
16
- # Search term to filter products by name or other details.
17
- field :query, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'query', 'style': 'form', 'explode': true } }
18
- # Filter products by status (comma-separated)
19
- field :status_in, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'status__in', 'style': 'form', 'explode': true } }
20
- # Filter products by category (comma-separated)
21
- field :product_category_in, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'product_category__in', 'style': 'form', 'explode': true } }
22
- # Filter products by subcategory (comma-separated)
23
- field :product_subcategory_in, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'product_subcategory__in', 'style': 'form', 'explode': true } }
24
- # Filter products by source (comma-separated)
25
- field :source_in, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'source__in', 'style': 'form', 'explode': true } }
26
- # Order results by specified fields (comma-separated)
27
- field :order_by, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'order_by', 'style': 'form', 'explode': true } }
28
- # Page number
29
- field :page, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'page', 'style': 'form', 'explode': true } }
30
- # Page size
31
- field :size, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'size', 'style': 'form', 'explode': true } }
32
-
33
- sig { params(query: T.nilable(::String), status_in: T.nilable(::String), product_category_in: T.nilable(::String), product_subcategory_in: T.nilable(::String), source_in: T.nilable(::String), order_by: T.nilable(::String), page: T.nilable(::Integer), size: T.nilable(::Integer)).void }
34
- def initialize(query: nil, status_in: nil, product_category_in: nil, product_subcategory_in: nil, source_in: nil, order_by: nil, page: 1, size: 50)
35
- @query = query
36
- @status_in = status_in
37
- @product_category_in = product_category_in
38
- @product_subcategory_in = product_subcategory_in
39
- @source_in = source_in
40
- @order_by = order_by
41
- @page = page
42
- @size = size
43
- end
44
-
45
- sig { params(other: T.untyped).returns(T::Boolean) }
46
- def ==(other)
47
- return false unless other.is_a? self.class
48
- return false unless @query == other.query
49
- return false unless @status_in == other.status_in
50
- return false unless @product_category_in == other.product_category_in
51
- return false unless @product_subcategory_in == other.product_subcategory_in
52
- return false unless @source_in == other.source_in
53
- return false unless @order_by == other.order_by
54
- return false unless @page == other.page
55
- return false unless @size == other.size
56
- true
57
- end
58
- end
59
- end
60
- end
61
- end
@@ -1,27 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
-
5
- class KintsugiSDK::Models::Ops::GetProductsV1ProductsGetRequest
6
- extend ::Crystalline::MetadataFields::ClassMethods
7
- end
8
-
9
-
10
- class KintsugiSDK::Models::Ops::GetProductsV1ProductsGetRequest
11
- def query(); end
12
- def query=(str_); end
13
- def status_in(); end
14
- def status_in=(str_); end
15
- def product_category_in(); end
16
- def product_category_in=(str_); end
17
- def product_subcategory_in(); end
18
- def product_subcategory_in=(str_); end
19
- def source_in(); end
20
- def source_in=(str_); end
21
- def order_by(); end
22
- def order_by=(str_); end
23
- def page(); end
24
- def page=(str_); end
25
- def size(); end
26
- def size=(str_); end
27
- end
@@ -1,49 +0,0 @@
1
- # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
-
3
- # typed: true
4
- # frozen_string_literal: true
5
-
6
-
7
- module KintsugiSDK
8
- module Models
9
- module Shared
10
-
11
-
12
- class PageProductRead
13
- extend T::Sig
14
- include Crystalline::MetadataFields
15
-
16
-
17
- field :items, Crystalline::Array.new(Models::Shared::ProductRead), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('items'), required: true } }
18
-
19
- field :total, ::Integer, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('total'), required: true } }
20
-
21
- field :page, ::Integer, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('page'), required: true } }
22
-
23
- field :size, ::Integer, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('size'), required: true } }
24
-
25
- field :pages, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('pages') } }
26
-
27
- sig { params(items: T::Array[Models::Shared::ProductRead], total: ::Integer, page: ::Integer, size: ::Integer, pages: T.nilable(::Integer)).void }
28
- def initialize(items:, total:, page:, size:, pages: nil)
29
- @items = items
30
- @total = total
31
- @page = page
32
- @size = size
33
- @pages = pages
34
- end
35
-
36
- sig { params(other: T.untyped).returns(T::Boolean) }
37
- def ==(other)
38
- return false unless other.is_a? self.class
39
- return false unless @items == other.items
40
- return false unless @total == other.total
41
- return false unless @page == other.page
42
- return false unless @size == other.size
43
- return false unless @pages == other.pages
44
- true
45
- end
46
- end
47
- end
48
- end
49
- end
@@ -1,21 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
-
5
- class KintsugiSDK::Models::Shared::PageProductRead
6
- extend ::Crystalline::MetadataFields::ClassMethods
7
- end
8
-
9
-
10
- class KintsugiSDK::Models::Shared::PageProductRead
11
- def items(); end
12
- def items=(str_); end
13
- def total(); end
14
- def total=(str_); end
15
- def page(); end
16
- def page=(str_); end
17
- def size(); end
18
- def size=(str_); end
19
- def pages(); end
20
- def pages=(str_); end
21
- end
@@ -1,38 +0,0 @@
1
- # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
-
3
- # typed: true
4
- # frozen_string_literal: true
5
-
6
-
7
- module KintsugiSDK
8
- module Models
9
- module Shared
10
-
11
-
12
- class ProductCategories
13
- extend T::Sig
14
- include Crystalline::MetadataFields
15
-
16
- # Name of the product category
17
- # (e.g., PHYSICAL, SERVICE, DIGITAL, MISCELLANEOUS)
18
- field :name, ::String, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('name'), required: true } }
19
- # List of subcategories associated with the product category
20
- field :subcategories, Crystalline::Array.new(Models::Shared::ProductSubCategory), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('subcategories'), required: true } }
21
-
22
- sig { params(name: ::String, subcategories: T::Array[Models::Shared::ProductSubCategory]).void }
23
- def initialize(name:, subcategories:)
24
- @name = name
25
- @subcategories = subcategories
26
- end
27
-
28
- sig { params(other: T.untyped).returns(T::Boolean) }
29
- def ==(other)
30
- return false unless other.is_a? self.class
31
- return false unless @name == other.name
32
- return false unless @subcategories == other.subcategories
33
- true
34
- end
35
- end
36
- end
37
- end
38
- end
@@ -1,15 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
-
5
- class KintsugiSDK::Models::Shared::ProductCategories
6
- extend ::Crystalline::MetadataFields::ClassMethods
7
- end
8
-
9
-
10
- class KintsugiSDK::Models::Shared::ProductCategories
11
- def name(); end
12
- def name=(str_); end
13
- def subcategories(); end
14
- def subcategories=(str_); end
15
- end
@@ -1,25 +0,0 @@
1
- # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
-
3
- # typed: true
4
- # frozen_string_literal: true
5
-
6
-
7
- module KintsugiSDK
8
- module Models
9
- module Shared
10
-
11
-
12
- class ProductCategoryEnum < T::Enum
13
-
14
-
15
- enums do
16
- PHYSICAL = new('PHYSICAL')
17
- DIGITAL = new('DIGITAL')
18
- SERVICE = new('SERVICE')
19
- UNKNOWN = new('UNKNOWN')
20
- MISCELLANEOUS = new('MISCELLANEOUS')
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
-
5
- class KintsugiSDK::Models::Shared::ProductCategoryEnum
6
- extend ::Crystalline::MetadataFields::ClassMethods
7
- end
8
-
9
-
10
- class KintsugiSDK::Models::Shared::ProductCategoryEnum
11
- end