@seamapi/nextlove-sdk-generator 1.4.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 (287) hide show
  1. package/LICENSE.txt +20 -0
  2. package/README.md +16 -0
  3. package/index.d.ts +6 -0
  4. package/index.js +7 -0
  5. package/index.js.map +1 -0
  6. package/lib/cli.d.ts +2 -0
  7. package/lib/cli.js +53 -0
  8. package/lib/cli.js.map +1 -0
  9. package/lib/fs-util/index.d.ts +2 -0
  10. package/lib/fs-util/index.js +3 -0
  11. package/lib/fs-util/index.js.map +1 -0
  12. package/lib/fs-util/populate-fs.d.ts +1 -0
  13. package/lib/fs-util/populate-fs.js +11 -0
  14. package/lib/fs-util/populate-fs.js.map +1 -0
  15. package/lib/fs-util/write-fs.d.ts +1 -0
  16. package/lib/fs-util/write-fs.js +10 -0
  17. package/lib/fs-util/write-fs.js.map +1 -0
  18. package/lib/generate-csharp-sdk/codegen.d.ts +235 -0
  19. package/lib/generate-csharp-sdk/codegen.js +432 -0
  20. package/lib/generate-csharp-sdk/codegen.js.map +1 -0
  21. package/lib/generate-csharp-sdk/constants.d.ts +1 -0
  22. package/lib/generate-csharp-sdk/constants.js +2 -0
  23. package/lib/generate-csharp-sdk/constants.js.map +1 -0
  24. package/lib/generate-csharp-sdk/generate-csharp-sdk.d.ts +1 -0
  25. package/lib/generate-csharp-sdk/generate-csharp-sdk.js +81 -0
  26. package/lib/generate-csharp-sdk/generate-csharp-sdk.js.map +1 -0
  27. package/lib/generate-csharp-sdk/generate-csproj.d.ts +1 -0
  28. package/lib/generate-csharp-sdk/generate-csproj.js +45 -0
  29. package/lib/generate-csharp-sdk/generate-csproj.js.map +1 -0
  30. package/lib/generate-csharp-sdk/templates/dataclass.d.ts +24 -0
  31. package/lib/generate-csharp-sdk/templates/dataclass.js +468 -0
  32. package/lib/generate-csharp-sdk/templates/dataclass.js.map +1 -0
  33. package/lib/generate-csharp-sdk/templates/fs/csharp-testing.sln +34 -0
  34. package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/ApiResponse.cs +159 -0
  35. package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/ClientUtils.cs +280 -0
  36. package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/ExceptionFactory.cs +12 -0
  37. package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/GlobalSeamRequestConfiguration.cs +60 -0
  38. package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/HttpMethod.cs +29 -0
  39. package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/IAsynchronousSeam.cs +142 -0
  40. package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/IReadableSeamRequestConfiguration.cs +68 -0
  41. package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/ISynchronousSeam.cs +103 -0
  42. package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/Multimap.cs +286 -0
  43. package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/RequestOptions.cs +74 -0
  44. package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/RetryConfiguration.cs +21 -0
  45. package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/Seam.cs +1070 -0
  46. package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/SeamException.cs +64 -0
  47. package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/SeamRequestConfiguration.cs +662 -0
  48. package/lib/generate-csharp-sdk/templates/fs/src/Seam/Model/AsbtractModelSchema.cs +62 -0
  49. package/lib/generate-php-sdk/generate-php-sdk.d.ts +1 -0
  50. package/lib/generate-php-sdk/generate-php-sdk.js +127 -0
  51. package/lib/generate-php-sdk/generate-php-sdk.js.map +1 -0
  52. package/lib/generate-php-sdk/index.d.ts +1 -0
  53. package/lib/generate-php-sdk/index.js +2 -0
  54. package/lib/generate-php-sdk/index.js.map +1 -0
  55. package/lib/generate-php-sdk/templates/composer.json.template.d.ts +2 -0
  56. package/lib/generate-php-sdk/templates/composer.json.template.js +25 -0
  57. package/lib/generate-php-sdk/templates/composer.json.template.js.map +1 -0
  58. package/lib/generate-php-sdk/templates/env.example.template.d.ts +2 -0
  59. package/lib/generate-php-sdk/templates/env.example.template.js +4 -0
  60. package/lib/generate-php-sdk/templates/env.example.template.js.map +1 -0
  61. package/lib/generate-php-sdk/templates/gitignore.template.d.ts +2 -0
  62. package/lib/generate-php-sdk/templates/gitignore.template.js +6 -0
  63. package/lib/generate-php-sdk/templates/gitignore.template.js.map +1 -0
  64. package/lib/generate-php-sdk/templates/package.json.template.d.ts +2 -0
  65. package/lib/generate-php-sdk/templates/package.json.template.js +12 -0
  66. package/lib/generate-php-sdk/templates/package.json.template.js.map +1 -0
  67. package/lib/generate-php-sdk/templates/readme.md.template.d.ts +2 -0
  68. package/lib/generate-php-sdk/templates/readme.md.template.js +86 -0
  69. package/lib/generate-php-sdk/templates/readme.md.template.js.map +1 -0
  70. package/lib/generate-php-sdk/templates/smoke-test.template.d.ts +2 -0
  71. package/lib/generate-php-sdk/templates/smoke-test.template.js +30 -0
  72. package/lib/generate-php-sdk/templates/smoke-test.template.js.map +1 -0
  73. package/lib/generate-php-sdk/templates/test-fixture.template.d.ts +2 -0
  74. package/lib/generate-php-sdk/templates/test-fixture.template.js +21 -0
  75. package/lib/generate-php-sdk/templates/test-fixture.template.js.map +1 -0
  76. package/lib/generate-php-sdk/utils/deep-extract-resource-object-schemas.d.ts +16 -0
  77. package/lib/generate-php-sdk/utils/deep-extract-resource-object-schemas.js +97 -0
  78. package/lib/generate-php-sdk/utils/deep-extract-resource-object-schemas.js.map +1 -0
  79. package/lib/generate-php-sdk/utils/deep-flatten-one-of-and-all-of-schema.d.ts +2 -0
  80. package/lib/generate-php-sdk/utils/deep-flatten-one-of-and-all-of-schema.js +95 -0
  81. package/lib/generate-php-sdk/utils/deep-flatten-one-of-and-all-of-schema.js.map +1 -0
  82. package/lib/generate-php-sdk/utils/generate-resource-object-class.d.ts +8 -0
  83. package/lib/generate-php-sdk/utils/generate-resource-object-class.js +73 -0
  84. package/lib/generate-php-sdk/utils/generate-resource-object-class.js.map +1 -0
  85. package/lib/generate-php-sdk/utils/generate-seam-client.d.ts +7 -0
  86. package/lib/generate-php-sdk/utils/generate-seam-client.js +103 -0
  87. package/lib/generate-php-sdk/utils/generate-seam-client.js.map +1 -0
  88. package/lib/generate-php-sdk/utils/get-php-type.d.ts +1 -0
  89. package/lib/generate-php-sdk/utils/get-php-type.js +17 -0
  90. package/lib/generate-php-sdk/utils/get-php-type.js.map +1 -0
  91. package/lib/generate-php-sdk/utils/php-client.d.ts +31 -0
  92. package/lib/generate-php-sdk/utils/php-client.js +130 -0
  93. package/lib/generate-php-sdk/utils/php-client.js.map +1 -0
  94. package/lib/generate-python-sdk/class-file.d.ts +20 -0
  95. package/lib/generate-python-sdk/class-file.js +75 -0
  96. package/lib/generate-python-sdk/class-file.js.map +1 -0
  97. package/lib/generate-python-sdk/generate-python-sdk.d.ts +1 -0
  98. package/lib/generate-python-sdk/generate-python-sdk.js +117 -0
  99. package/lib/generate-python-sdk/generate-python-sdk.js.map +1 -0
  100. package/lib/generate-python-sdk/index.d.ts +1 -0
  101. package/lib/generate-python-sdk/index.js +2 -0
  102. package/lib/generate-python-sdk/index.js.map +1 -0
  103. package/lib/generate-python-sdk/map-python-type.d.ts +2 -0
  104. package/lib/generate-python-sdk/map-python-type.js +26 -0
  105. package/lib/generate-python-sdk/map-python-type.js.map +1 -0
  106. package/lib/generate-python-sdk/templates/conftest.py.template.d.ts +2 -0
  107. package/lib/generate-python-sdk/templates/conftest.py.template.js +12 -0
  108. package/lib/generate-python-sdk/templates/conftest.py.template.js.map +1 -0
  109. package/lib/generate-python-sdk/templates/pyproject.toml.template.d.ts +2 -0
  110. package/lib/generate-python-sdk/templates/pyproject.toml.template.js +21 -0
  111. package/lib/generate-python-sdk/templates/pyproject.toml.template.js.map +1 -0
  112. package/lib/generate-python-sdk/templates/readme.md.template.d.ts +2 -0
  113. package/lib/generate-python-sdk/templates/readme.md.template.js +48 -0
  114. package/lib/generate-python-sdk/templates/readme.md.template.js.map +1 -0
  115. package/lib/generate-python-sdk/templates/routes.py.template.d.ts +2 -0
  116. package/lib/generate-python-sdk/templates/routes.py.template.js +13 -0
  117. package/lib/generate-python-sdk/templates/routes.py.template.js.map +1 -0
  118. package/lib/generate-python-sdk/templates/seam.py.template.d.ts +2 -0
  119. package/lib/generate-python-sdk/templates/seam.py.template.js +74 -0
  120. package/lib/generate-python-sdk/templates/seam.py.template.js.map +1 -0
  121. package/lib/generate-python-sdk/templates/snippets/abstract-routes.template.d.ts +2 -0
  122. package/lib/generate-python-sdk/templates/snippets/abstract-routes.template.js +9 -0
  123. package/lib/generate-python-sdk/templates/snippets/abstract-routes.template.js.map +1 -0
  124. package/lib/generate-python-sdk/templates/snippets/abstract-seam.template.d.ts +2 -0
  125. package/lib/generate-python-sdk/templates/snippets/abstract-seam.template.js +9 -0
  126. package/lib/generate-python-sdk/templates/snippets/abstract-seam.template.js.map +1 -0
  127. package/lib/generate-python-sdk/templates/snippets/resource-dataclass.template.d.ts +5 -0
  128. package/lib/generate-python-sdk/templates/snippets/resource-dataclass.template.js +10 -0
  129. package/lib/generate-python-sdk/templates/snippets/resource-dataclass.template.js.map +1 -0
  130. package/lib/generate-python-sdk/templates/test_smoke.py.template.d.ts +2 -0
  131. package/lib/generate-python-sdk/templates/test_smoke.py.template.js +13 -0
  132. package/lib/generate-python-sdk/templates/test_smoke.py.template.js.map +1 -0
  133. package/lib/generate-python-sdk/templates/utils/deep_attr_dict.py.template.d.ts +2 -0
  134. package/lib/generate-python-sdk/templates/utils/deep_attr_dict.py.template.js +28 -0
  135. package/lib/generate-python-sdk/templates/utils/deep_attr_dict.py.template.js.map +1 -0
  136. package/lib/generate-ruby-sdk/generate-ruby-sdk.d.ts +1 -0
  137. package/lib/generate-ruby-sdk/generate-ruby-sdk.js +132 -0
  138. package/lib/generate-ruby-sdk/generate-ruby-sdk.js.map +1 -0
  139. package/lib/generate-ruby-sdk/index.d.ts +1 -0
  140. package/lib/generate-ruby-sdk/index.js +2 -0
  141. package/lib/generate-ruby-sdk/index.js.map +1 -0
  142. package/lib/generate-ruby-sdk/request.rb.template.d.ts +1 -0
  143. package/lib/generate-ruby-sdk/request.rb.template.js +2 -0
  144. package/lib/generate-ruby-sdk/request.rb.template.js.map +1 -0
  145. package/lib/generate-ruby-sdk/ruby-client.d.ts +35 -0
  146. package/lib/generate-ruby-sdk/ruby-client.js +59 -0
  147. package/lib/generate-ruby-sdk/ruby-client.js.map +1 -0
  148. package/lib/generate-ruby-sdk/templates/base_client.rb.template.d.ts +2 -0
  149. package/lib/generate-ruby-sdk/templates/base_client.rb.template.js +22 -0
  150. package/lib/generate-ruby-sdk/templates/base_client.rb.template.js.map +1 -0
  151. package/lib/generate-ruby-sdk/templates/base_resource.rb.template.d.ts +2 -0
  152. package/lib/generate-ruby-sdk/templates/base_resource.rb.template.js +59 -0
  153. package/lib/generate-ruby-sdk/templates/base_resource.rb.template.js.map +1 -0
  154. package/lib/generate-ruby-sdk/templates/client.rb.template.d.ts +2 -0
  155. package/lib/generate-ruby-sdk/templates/client.rb.template.js +74 -0
  156. package/lib/generate-ruby-sdk/templates/client.rb.template.js.map +1 -0
  157. package/lib/generate-ruby-sdk/templates/gemfile.template.d.ts +2 -0
  158. package/lib/generate-ruby-sdk/templates/gemfile.template.js +7 -0
  159. package/lib/generate-ruby-sdk/templates/gemfile.template.js.map +1 -0
  160. package/lib/generate-ruby-sdk/templates/logger.rb.template.d.ts +2 -0
  161. package/lib/generate-ruby-sdk/templates/logger.rb.template.js +13 -0
  162. package/lib/generate-ruby-sdk/templates/logger.rb.template.js.map +1 -0
  163. package/lib/generate-ruby-sdk/templates/rakefile.template.d.ts +2 -0
  164. package/lib/generate-ruby-sdk/templates/rakefile.template.js +23 -0
  165. package/lib/generate-ruby-sdk/templates/rakefile.template.js.map +1 -0
  166. package/lib/generate-ruby-sdk/templates/readme.md.template.d.ts +2 -0
  167. package/lib/generate-ruby-sdk/templates/readme.md.template.js +184 -0
  168. package/lib/generate-ruby-sdk/templates/readme.md.template.js.map +1 -0
  169. package/lib/generate-ruby-sdk/templates/request.rb.template.d.ts +2 -0
  170. package/lib/generate-ruby-sdk/templates/request.rb.template.js +71 -0
  171. package/lib/generate-ruby-sdk/templates/request.rb.template.js.map +1 -0
  172. package/lib/generate-ruby-sdk/templates/resource_error.rb.template.d.ts +2 -0
  173. package/lib/generate-ruby-sdk/templates/resource_error.rb.template.js +8 -0
  174. package/lib/generate-ruby-sdk/templates/resource_error.rb.template.js.map +1 -0
  175. package/lib/generate-ruby-sdk/templates/resource_errors_support.rb.template.d.ts +2 -0
  176. package/lib/generate-ruby-sdk/templates/resource_errors_support.rb.template.js +10 -0
  177. package/lib/generate-ruby-sdk/templates/resource_errors_support.rb.template.js.map +1 -0
  178. package/lib/generate-ruby-sdk/templates/resource_warning.rb.template.d.ts +2 -0
  179. package/lib/generate-ruby-sdk/templates/resource_warning.rb.template.js +8 -0
  180. package/lib/generate-ruby-sdk/templates/resource_warning.rb.template.js.map +1 -0
  181. package/lib/generate-ruby-sdk/templates/resource_warnings_support.rb.template.d.ts +2 -0
  182. package/lib/generate-ruby-sdk/templates/resource_warnings_support.rb.template.js +10 -0
  183. package/lib/generate-ruby-sdk/templates/resource_warnings_support.rb.template.js.map +1 -0
  184. package/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.d.ts +2 -0
  185. package/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.js +41 -0
  186. package/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.js.map +1 -0
  187. package/lib/generate-ruby-sdk/templates/snippets/resource.rb.template.d.ts +6 -0
  188. package/lib/generate-ruby-sdk/templates/snippets/resource.rb.template.js +15 -0
  189. package/lib/generate-ruby-sdk/templates/snippets/resource.rb.template.js.map +1 -0
  190. package/lib/generate-ruby-sdk/templates/version.rb.template.d.ts +2 -0
  191. package/lib/generate-ruby-sdk/templates/version.rb.template.js +6 -0
  192. package/lib/generate-ruby-sdk/templates/version.rb.template.js.map +1 -0
  193. package/lib/index.d.ts +2 -0
  194. package/lib/index.js +3 -0
  195. package/lib/index.js.map +1 -0
  196. package/lib/openapi/flatten-obj-schema.d.ts +5 -0
  197. package/lib/openapi/flatten-obj-schema.js +86 -0
  198. package/lib/openapi/flatten-obj-schema.js.map +1 -0
  199. package/lib/openapi/get-parameter-and-response-schema.d.ts +20 -0
  200. package/lib/openapi/get-parameter-and-response-schema.js +42 -0
  201. package/lib/openapi/get-parameter-and-response-schema.js.map +1 -0
  202. package/lib/openapi/index.d.ts +2 -0
  203. package/lib/openapi/index.js +3 -0
  204. package/lib/openapi/index.js.map +1 -0
  205. package/lib/types.d.ts +91 -0
  206. package/lib/types.js +2 -0
  207. package/lib/types.js.map +1 -0
  208. package/package.json +95 -0
  209. package/src/index.ts +6 -0
  210. package/src/lib/cli.ts +71 -0
  211. package/src/lib/fs-util/index.ts +2 -0
  212. package/src/lib/fs-util/populate-fs.ts +14 -0
  213. package/src/lib/fs-util/write-fs.ts +10 -0
  214. package/src/lib/generate-csharp-sdk/codegen.ts +648 -0
  215. package/src/lib/generate-csharp-sdk/constants.ts +1 -0
  216. package/src/lib/generate-csharp-sdk/generate-csharp-sdk.ts +126 -0
  217. package/src/lib/generate-csharp-sdk/generate-csproj.ts +45 -0
  218. package/src/lib/generate-csharp-sdk/templates/dataclass.ts +973 -0
  219. package/src/lib/generate-csharp-sdk/templates/fs/csharp-testing.sln +34 -0
  220. package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/ApiResponse.cs +159 -0
  221. package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/ClientUtils.cs +280 -0
  222. package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/ExceptionFactory.cs +12 -0
  223. package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/GlobalSeamRequestConfiguration.cs +60 -0
  224. package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/HttpMethod.cs +29 -0
  225. package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/IAsynchronousSeam.cs +142 -0
  226. package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/IReadableSeamRequestConfiguration.cs +68 -0
  227. package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/ISynchronousSeam.cs +103 -0
  228. package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/Multimap.cs +286 -0
  229. package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/RequestOptions.cs +74 -0
  230. package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/RetryConfiguration.cs +21 -0
  231. package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/Seam.cs +1070 -0
  232. package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/SeamException.cs +64 -0
  233. package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/SeamRequestConfiguration.cs +662 -0
  234. package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Model/AsbtractModelSchema.cs +62 -0
  235. package/src/lib/generate-php-sdk/generate-php-sdk.ts +176 -0
  236. package/src/lib/generate-php-sdk/index.ts +1 -0
  237. package/src/lib/generate-php-sdk/templates/composer.json.template.ts +24 -0
  238. package/src/lib/generate-php-sdk/templates/env.example.template.ts +3 -0
  239. package/src/lib/generate-php-sdk/templates/gitignore.template.ts +5 -0
  240. package/src/lib/generate-php-sdk/templates/package.json.template.ts +11 -0
  241. package/src/lib/generate-php-sdk/templates/readme.md.template.ts +85 -0
  242. package/src/lib/generate-php-sdk/templates/smoke-test.template.ts +29 -0
  243. package/src/lib/generate-php-sdk/templates/test-fixture.template.ts +20 -0
  244. package/src/lib/generate-php-sdk/utils/deep-extract-resource-object-schemas.ts +160 -0
  245. package/src/lib/generate-php-sdk/utils/deep-flatten-one-of-and-all-of-schema.ts +128 -0
  246. package/src/lib/generate-php-sdk/utils/generate-resource-object-class.ts +105 -0
  247. package/src/lib/generate-php-sdk/utils/generate-seam-client.ts +115 -0
  248. package/src/lib/generate-php-sdk/utils/get-php-type.ts +21 -0
  249. package/src/lib/generate-php-sdk/utils/php-client.ts +189 -0
  250. package/src/lib/generate-python-sdk/class-file.ts +114 -0
  251. package/src/lib/generate-python-sdk/generate-python-sdk.ts +147 -0
  252. package/src/lib/generate-python-sdk/index.ts +1 -0
  253. package/src/lib/generate-python-sdk/map-python-type.ts +29 -0
  254. package/src/lib/generate-python-sdk/templates/conftest.py.template.ts +11 -0
  255. package/src/lib/generate-python-sdk/templates/pyproject.toml.template.ts +20 -0
  256. package/src/lib/generate-python-sdk/templates/readme.md.template.ts +47 -0
  257. package/src/lib/generate-python-sdk/templates/routes.py.template.ts +13 -0
  258. package/src/lib/generate-python-sdk/templates/seam.py.template.ts +73 -0
  259. package/src/lib/generate-python-sdk/templates/snippets/abstract-routes.template.ts +9 -0
  260. package/src/lib/generate-python-sdk/templates/snippets/abstract-seam.template.ts +8 -0
  261. package/src/lib/generate-python-sdk/templates/snippets/resource-dataclass.template.ts +15 -0
  262. package/src/lib/generate-python-sdk/templates/test_smoke.py.template.ts +12 -0
  263. package/src/lib/generate-python-sdk/templates/utils/deep_attr_dict.py.template.ts +27 -0
  264. package/src/lib/generate-ruby-sdk/generate-ruby-sdk.ts +153 -0
  265. package/src/lib/generate-ruby-sdk/index.ts +1 -0
  266. package/src/lib/generate-ruby-sdk/request.rb.template.ts +0 -0
  267. package/src/lib/generate-ruby-sdk/ruby-client.ts +81 -0
  268. package/src/lib/generate-ruby-sdk/templates/base_client.rb.template.ts +21 -0
  269. package/src/lib/generate-ruby-sdk/templates/base_resource.rb.template.ts +58 -0
  270. package/src/lib/generate-ruby-sdk/templates/client.rb.template.ts +73 -0
  271. package/src/lib/generate-ruby-sdk/templates/gemfile.template.ts +6 -0
  272. package/src/lib/generate-ruby-sdk/templates/logger.rb.template.ts +12 -0
  273. package/src/lib/generate-ruby-sdk/templates/rakefile.template.ts +22 -0
  274. package/src/lib/generate-ruby-sdk/templates/readme.md.template.ts +183 -0
  275. package/src/lib/generate-ruby-sdk/templates/request.rb.template.ts +70 -0
  276. package/src/lib/generate-ruby-sdk/templates/resource_error.rb.template.ts +7 -0
  277. package/src/lib/generate-ruby-sdk/templates/resource_errors_support.rb.template.ts +9 -0
  278. package/src/lib/generate-ruby-sdk/templates/resource_warning.rb.template.ts +7 -0
  279. package/src/lib/generate-ruby-sdk/templates/resource_warnings_support.rb.template.ts +9 -0
  280. package/src/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.ts +40 -0
  281. package/src/lib/generate-ruby-sdk/templates/snippets/resource.rb.template.ts +24 -0
  282. package/src/lib/generate-ruby-sdk/templates/version.rb.template.ts +5 -0
  283. package/src/lib/index.ts +2 -0
  284. package/src/lib/openapi/flatten-obj-schema.ts +124 -0
  285. package/src/lib/openapi/get-parameter-and-response-schema.ts +59 -0
  286. package/src/lib/openapi/index.ts +2 -0
  287. package/src/lib/types.ts +96 -0
@@ -0,0 +1,159 @@
1
+ using System;
2
+ using System.Collections.Generic;
3
+ using System.Net;
4
+ using Seam.Client;
5
+
6
+ namespace Seam.Client
7
+ {
8
+ /// <summary>
9
+ /// Provides a non-generic contract for the ApiResponse wrapper.
10
+ /// </summary>
11
+ public interface IApiResponse
12
+ {
13
+ /// <summary>
14
+ /// The data type of <see cref="Content"/>
15
+ /// </summary>
16
+ Type ResponseType { get; }
17
+
18
+ /// <summary>
19
+ /// The content of this response
20
+ /// </summary>
21
+ Object Content { get; }
22
+
23
+ /// <summary>
24
+ /// Gets or sets the status code (HTTP status code)
25
+ /// </summary>
26
+ /// <value>The status code.</value>
27
+ HttpStatusCode StatusCode { get; }
28
+
29
+ /// <summary>
30
+ /// Gets or sets the HTTP headers
31
+ /// </summary>
32
+ /// <value>HTTP headers</value>
33
+ Multimap<string, string> Headers { get; }
34
+
35
+ /// <summary>
36
+ /// Gets or sets any error text defined by the calling client.
37
+ /// </summary>
38
+ string ErrorText { get; set; }
39
+
40
+ /// <summary>
41
+ /// Gets or sets any cookies passed along on the response.
42
+ /// </summary>
43
+ List<Cookie> Cookies { get; set; }
44
+
45
+ /// <summary>
46
+ /// The raw content of this response
47
+ /// </summary>
48
+ string RawContent { get; }
49
+ }
50
+
51
+ /// <summary>
52
+ /// API Response
53
+ /// </summary>
54
+ public class ApiResponse<T> : IApiResponse
55
+ {
56
+ #region Properties
57
+
58
+ /// <summary>
59
+ /// Gets or sets the status code (HTTP status code)
60
+ /// </summary>
61
+ /// <value>The status code.</value>
62
+ public HttpStatusCode StatusCode { get; }
63
+
64
+ /// <summary>
65
+ /// Gets or sets the HTTP headers
66
+ /// </summary>
67
+ /// <value>HTTP headers</value>
68
+ public Multimap<string, string> Headers { get; }
69
+
70
+ /// <summary>
71
+ /// Gets or sets the data (parsed HTTP body)
72
+ /// </summary>
73
+ /// <value>The data.</value>
74
+ public T Data { get; }
75
+
76
+ /// <summary>
77
+ /// Gets or sets any error text defined by the calling client.
78
+ /// </summary>
79
+ public string ErrorText { get; set; }
80
+
81
+ /// <summary>
82
+ /// Gets or sets any cookies passed along on the response.
83
+ /// </summary>
84
+ public List<Cookie> Cookies { get; set; }
85
+
86
+ /// <summary>
87
+ /// The content of this response
88
+ /// </summary>
89
+ public Type ResponseType
90
+ {
91
+ get { return typeof(T); }
92
+ }
93
+
94
+ /// <summary>
95
+ /// The data type of <see cref="Content"/>
96
+ /// </summary>
97
+ public object Content
98
+ {
99
+ get { return Data; }
100
+ }
101
+
102
+ /// <summary>
103
+ /// The raw content
104
+ /// </summary>
105
+ public string RawContent { get; }
106
+
107
+ #endregion Properties
108
+
109
+ #region Constructors
110
+
111
+ /// <summary>
112
+ /// Initializes a new instance of the <see cref="ApiResponse{T}" /> class.
113
+ /// </summary>
114
+ /// <param name="statusCode">HTTP status code.</param>
115
+ /// <param name="headers">HTTP headers.</param>
116
+ /// <param name="data">Data (parsed HTTP body)</param>
117
+ /// <param name="rawContent">Raw content.</param>
118
+ public ApiResponse(
119
+ HttpStatusCode statusCode,
120
+ Multimap<string, string> headers,
121
+ T data,
122
+ string rawContent
123
+ )
124
+ {
125
+ StatusCode = statusCode;
126
+ Headers = headers;
127
+ Data = data;
128
+ RawContent = rawContent;
129
+ }
130
+
131
+ /// <summary>
132
+ /// Initializes a new instance of the <see cref="ApiResponse{T}" /> class.
133
+ /// </summary>
134
+ /// <param name="statusCode">HTTP status code.</param>
135
+ /// <param name="headers">HTTP headers.</param>
136
+ /// <param name="data">Data (parsed HTTP body)</param>
137
+ public ApiResponse(HttpStatusCode statusCode, Multimap<string, string> headers, T data)
138
+ : this(statusCode, headers, data, null) { }
139
+
140
+ /// <summary>
141
+ /// Initializes a new instance of the <see cref="ApiResponse{T}" /> class.
142
+ /// </summary>
143
+ /// <param name="statusCode">HTTP status code.</param>
144
+ /// <param name="data">Data (parsed HTTP body)</param>
145
+ /// <param name="rawContent">Raw content.</param>
146
+ public ApiResponse(HttpStatusCode statusCode, T data, string rawContent)
147
+ : this(statusCode, null, data, rawContent) { }
148
+
149
+ /// <summary>
150
+ /// Initializes a new instance of the <see cref="ApiResponse{T}" /> class.
151
+ /// </summary>
152
+ /// <param name="statusCode">HTTP status code.</param>
153
+ /// <param name="data">Data (parsed HTTP body)</param>
154
+ public ApiResponse(HttpStatusCode statusCode, T data)
155
+ : this(statusCode, data, null) { }
156
+
157
+ #endregion Constructors
158
+ }
159
+ }
@@ -0,0 +1,280 @@
1
+ /*
2
+ * Seam Connect
3
+ *
4
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
+ *
6
+ * The version of the OpenAPI document: 1.0.0
7
+ * Generated by: https://github.com/openapitools/openapi-generator.git
8
+ */
9
+
10
+
11
+ using System;
12
+ using System.Collections;
13
+ using System.Collections.Generic;
14
+ using System.Globalization;
15
+ using System.IO;
16
+ using System.Linq;
17
+ using System.Runtime.Serialization;
18
+ using System.Text;
19
+ using System.Text.RegularExpressions;
20
+
21
+ namespace Seam.Client
22
+ {
23
+ /// <summary>
24
+ /// Utility functions providing some benefit to API client consumers.
25
+ /// </summary>
26
+ public static class ClientUtils
27
+ {
28
+ /// <summary>
29
+ /// Sanitize filename by removing the path
30
+ /// </summary>
31
+ /// <param name="filename">Filename</param>
32
+ /// <returns>Filename</returns>
33
+ public static string SanitizeFilename(string filename)
34
+ {
35
+ Match match = Regex.Match(filename, @".*[/\\](.*)$");
36
+ return match.Success ? match.Groups[1].Value : filename;
37
+ }
38
+
39
+ /// <summary>
40
+ /// Convert params to key/value pairs.
41
+ /// Use collectionFormat to properly format lists and collections.
42
+ /// </summary>
43
+ /// <param name="collectionFormat">The swagger-supported collection format, one of: csv, tsv, ssv, pipes, multi</param>
44
+ /// <param name="name">Key name.</param>
45
+ /// <param name="value">Value object.</param>
46
+ /// <returns>A multimap of keys with 1..n associated values.</returns>
47
+ public static Multimap<string, string> ParameterToMultiMap(
48
+ string collectionFormat,
49
+ string name,
50
+ object value
51
+ )
52
+ {
53
+ var parameters = new Multimap<string, string>();
54
+
55
+ if (value is ICollection collection && collectionFormat == "multi")
56
+ {
57
+ foreach (var item in collection)
58
+ {
59
+ parameters.Add(name, ParameterToString(item));
60
+ }
61
+ }
62
+ else if (value is IDictionary dictionary)
63
+ {
64
+ if (collectionFormat == "deepObject")
65
+ {
66
+ foreach (DictionaryEntry entry in dictionary)
67
+ {
68
+ parameters.Add(
69
+ name + "[" + entry.Key + "]",
70
+ ParameterToString(entry.Value)
71
+ );
72
+ }
73
+ }
74
+ else
75
+ {
76
+ foreach (DictionaryEntry entry in dictionary)
77
+ {
78
+ parameters.Add(entry.Key.ToString(), ParameterToString(entry.Value));
79
+ }
80
+ }
81
+ }
82
+ else
83
+ {
84
+ parameters.Add(name, ParameterToString(value));
85
+ }
86
+
87
+ return parameters;
88
+ }
89
+
90
+ /// <summary>
91
+ /// If parameter is DateTime, output in a formatted string (default ISO 8601), customizable with Configuration.DateTime.
92
+ /// If parameter is a list, join the list with ",".
93
+ /// Otherwise just return the string.
94
+ /// </summary>
95
+ /// <param name="obj">The parameter (header, path, query, form).</param>
96
+ /// <param name="configuration">An optional configuration instance, providing formatting options used in processing.</param>
97
+ /// <returns>Formatted string.</returns>
98
+ public static string ParameterToString(
99
+ object obj,
100
+ IReadableSeamRequestConfiguration configuration = null
101
+ )
102
+ {
103
+ if (obj is DateTime dateTime)
104
+ // Return a formatted date string - Can be customized with Configuration.DateTimeFormat
105
+ // Defaults to an ISO 8601, using the known as a Round-trip date/time pattern ("o")
106
+ // https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Anchor_8
107
+ // For example: 2009-06-15T13:45:30.0000000
108
+ return dateTime.ToString(
109
+ (configuration ?? GlobalSeamRequestConfiguration.Instance).DateTimeFormat
110
+ );
111
+ if (obj is DateTimeOffset dateTimeOffset)
112
+ // Return a formatted date string - Can be customized with Configuration.DateTimeFormat
113
+ // Defaults to an ISO 8601, using the known as a Round-trip date/time pattern ("o")
114
+ // https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Anchor_8
115
+ // For example: 2009-06-15T13:45:30.0000000
116
+ return dateTimeOffset.ToString(
117
+ (configuration ?? GlobalSeamRequestConfiguration.Instance).DateTimeFormat
118
+ );
119
+ if (obj is bool boolean)
120
+ return boolean ? "true" : "false";
121
+ if (obj is ICollection collection)
122
+ {
123
+ List<string> entries = new List<string>();
124
+ foreach (var entry in collection)
125
+ entries.Add(ParameterToString(entry, configuration));
126
+ return string.Join(",", entries);
127
+ }
128
+ if (obj is Enum && HasEnumMemberAttrValue(obj))
129
+ return GetEnumMemberAttrValue(obj);
130
+
131
+ return Convert.ToString(obj, CultureInfo.InvariantCulture);
132
+ }
133
+
134
+ /// <summary>
135
+ /// Serializes the given object when not null. Otherwise return null.
136
+ /// </summary>
137
+ /// <param name="obj">The object to serialize.</param>
138
+ /// <returns>Serialized string.</returns>
139
+ public static string Serialize(object obj)
140
+ {
141
+ return obj != null ? Newtonsoft.Json.JsonConvert.SerializeObject(obj) : null;
142
+ }
143
+
144
+ /// <summary>
145
+ /// Encode string in base64 format.
146
+ /// </summary>
147
+ /// <param name="text">string to be encoded.</param>
148
+ /// <returns>Encoded string.</returns>
149
+ public static string Base64Encode(string text)
150
+ {
151
+ return Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(text));
152
+ }
153
+
154
+ /// <summary>
155
+ /// Convert stream to byte array
156
+ /// </summary>
157
+ /// <param name="inputStream">Input stream to be converted</param>
158
+ /// <returns>Byte array</returns>
159
+ public static byte[] ReadAsBytes(Stream inputStream)
160
+ {
161
+ using (var ms = new MemoryStream())
162
+ {
163
+ inputStream.CopyTo(ms);
164
+ return ms.ToArray();
165
+ }
166
+ }
167
+
168
+ /// <summary>
169
+ /// Select the Content-Type header's value from the given content-type array:
170
+ /// if JSON type exists in the given array, use it;
171
+ /// otherwise use the first one defined in 'consumes'
172
+ /// </summary>
173
+ /// <param name="contentTypes">The Content-Type array to select from.</param>
174
+ /// <returns>The Content-Type header to use.</returns>
175
+ public static string SelectHeaderContentType(string[] contentTypes)
176
+ {
177
+ if (contentTypes.Length == 0)
178
+ return null;
179
+
180
+ foreach (var contentType in contentTypes)
181
+ {
182
+ if (IsJsonMime(contentType))
183
+ return contentType;
184
+ }
185
+
186
+ return contentTypes[0]; // use the first content type specified in 'consumes'
187
+ }
188
+
189
+ /// <summary>
190
+ /// Select the Accept header's value from the given accepts array:
191
+ /// if JSON exists in the given array, use it;
192
+ /// otherwise use all of them (joining into a string)
193
+ /// </summary>
194
+ /// <param name="accepts">The accepts array to select from.</param>
195
+ /// <returns>The Accept header to use.</returns>
196
+ public static string SelectHeaderAccept(string[] accepts)
197
+ {
198
+ if (accepts.Length == 0)
199
+ return null;
200
+
201
+ if (accepts.Contains("application/json", StringComparer.OrdinalIgnoreCase))
202
+ return "application/json";
203
+
204
+ return string.Join(",", accepts);
205
+ }
206
+
207
+ /// <summary>
208
+ /// Provides a case-insensitive check that a provided content type is a known JSON-like content type.
209
+ /// </summary>
210
+ public static readonly Regex JsonRegex = new Regex(
211
+ "(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$"
212
+ );
213
+
214
+ /// <summary>
215
+ /// Check if the given MIME is a JSON MIME.
216
+ /// JSON MIME examples:
217
+ /// application/json
218
+ /// application/json; charset=UTF8
219
+ /// APPLICATION/JSON
220
+ /// application/vnd.company+json
221
+ /// </summary>
222
+ /// <param name="mime">MIME</param>
223
+ /// <returns>Returns True if MIME type is json.</returns>
224
+ public static bool IsJsonMime(string mime)
225
+ {
226
+ if (string.IsNullOrWhiteSpace(mime))
227
+ return false;
228
+
229
+ return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
230
+ }
231
+
232
+ /// <summary>
233
+ /// Is the Enum decorated with EnumMember Attribute
234
+ /// </summary>
235
+ /// <param name="enumVal"></param>
236
+ /// <returns>true if found</returns>
237
+ private static bool HasEnumMemberAttrValue(object enumVal)
238
+ {
239
+ if (enumVal == null)
240
+ throw new ArgumentNullException(nameof(enumVal));
241
+ var enumType = enumVal.GetType();
242
+ var memInfo = enumType.GetMember(
243
+ enumVal.ToString() ?? throw new InvalidOperationException()
244
+ );
245
+ var attr = memInfo
246
+ .FirstOrDefault()
247
+ ?.GetCustomAttributes(false)
248
+ .OfType<EnumMemberAttribute>()
249
+ .FirstOrDefault();
250
+ if (attr != null)
251
+ return true;
252
+ return false;
253
+ }
254
+
255
+ /// <summary>
256
+ /// Get the EnumMember value
257
+ /// </summary>
258
+ /// <param name="enumVal"></param>
259
+ /// <returns>EnumMember value as string otherwise null</returns>
260
+ private static string GetEnumMemberAttrValue(object enumVal)
261
+ {
262
+ if (enumVal == null)
263
+ throw new ArgumentNullException(nameof(enumVal));
264
+ var enumType = enumVal.GetType();
265
+ var memInfo = enumType.GetMember(
266
+ enumVal.ToString() ?? throw new InvalidOperationException()
267
+ );
268
+ var attr = memInfo
269
+ .FirstOrDefault()
270
+ ?.GetCustomAttributes(false)
271
+ .OfType<EnumMemberAttribute>()
272
+ .FirstOrDefault();
273
+ if (attr != null)
274
+ {
275
+ return attr.Value;
276
+ }
277
+ return null;
278
+ }
279
+ }
280
+ }
@@ -0,0 +1,12 @@
1
+ using System;
2
+
3
+ namespace Seam.Client
4
+ {
5
+ /// <summary>
6
+ /// A delegate to ExceptionFactory method
7
+ /// </summary>
8
+ /// <param name="methodName">Method name</param>
9
+ /// <param name="response">Response</param>
10
+ /// <returns>Exceptions</returns>
11
+ public delegate Exception ExceptionFactory(string methodName, IApiResponse response);
12
+ }
@@ -0,0 +1,60 @@
1
+ using System.Collections.Generic;
2
+ using Seam.Client;
3
+
4
+ namespace Seam.Client
5
+ {
6
+ /// <summary>
7
+ /// <see cref="GlobalConfiguration"/> provides a compile-time extension point for globally configuring
8
+ /// API Clients.
9
+ /// </summary>
10
+ /// <remarks>
11
+ /// A customized implementation via partial class may reside in another file and may
12
+ /// be excluded from automatic generation via a .openapi-generator-ignore file.
13
+ /// </remarks>
14
+ public partial class GlobalSeamRequestConfiguration : SeamRequestConfiguration
15
+ {
16
+ #region Private Members
17
+
18
+ private static readonly object GlobalConfigSync = new { };
19
+ private static IReadableSeamRequestConfiguration _globalConfiguration;
20
+
21
+ #endregion Private Members
22
+
23
+ #region Constructors
24
+
25
+ /// <inheritdoc />
26
+ private GlobalSeamRequestConfiguration() { }
27
+
28
+ /// <inheritdoc />
29
+ public GlobalSeamRequestConfiguration(
30
+ IDictionary<string, string> defaultHeader,
31
+ // IDictionary<string, string> apiKey,
32
+ // IDictionary<string, string> apiKeyPrefix,
33
+ string basePath = "https://connect.getseam.com"
34
+ )
35
+ : base(defaultHeader, basePath) { }
36
+
37
+ static GlobalSeamRequestConfiguration()
38
+ {
39
+ Instance = new GlobalSeamRequestConfiguration();
40
+ }
41
+
42
+ #endregion Constructors
43
+
44
+ /// <summary>
45
+ /// Gets or sets the default Configuration.
46
+ /// </summary>
47
+ /// <value>Configuration.</value>
48
+ public static IReadableSeamRequestConfiguration Instance
49
+ {
50
+ get { return _globalConfiguration; }
51
+ set
52
+ {
53
+ lock (GlobalConfigSync)
54
+ {
55
+ _globalConfiguration = value;
56
+ }
57
+ }
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,29 @@
1
+ namespace Seam.Client
2
+ {
3
+ /// <summary>
4
+ /// Http methods supported by swagger
5
+ /// </summary>
6
+ public enum HttpMethod
7
+ {
8
+ /// <summary>HTTP GET request.</summary>
9
+ Get,
10
+
11
+ /// <summary>HTTP POST request.</summary>
12
+ Post,
13
+
14
+ /// <summary>HTTP PUT request.</summary>
15
+ Put,
16
+
17
+ /// <summary>HTTP DELETE request.</summary>
18
+ Delete,
19
+
20
+ /// <summary>HTTP HEAD request.</summary>
21
+ Head,
22
+
23
+ /// <summary>HTTP OPTIONS request.</summary>
24
+ Options,
25
+
26
+ /// <summary>HTTP PATCH request.</summary>
27
+ Patch
28
+ }
29
+ }