@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,432 @@
1
+ import os from "os";
2
+ class CompilerCtx {
3
+ constructor() {
4
+ this.tabSize = 4;
5
+ this.eol = os.EOL;
6
+ }
7
+ indent() {
8
+ return " ".repeat(this.tabSize);
9
+ }
10
+ withIndent(serialized) {
11
+ return serialized
12
+ .split(this.eol)
13
+ .map((l) => (l.trim() ? this.indent() + l : ""))
14
+ .join(this.eol);
15
+ }
16
+ combineWords(...words) {
17
+ return words.filter((x) => Boolean(x)).join(" ");
18
+ }
19
+ combineStatements(...statements) {
20
+ return statements.filter((x) => Boolean(x)).join(this.eol);
21
+ }
22
+ combineNodes(...nodes) {
23
+ return this.combineWords(...nodes.map((n) => n?.serialize(this)));
24
+ }
25
+ combineAdjacent(...nodes) {
26
+ return nodes
27
+ .filter((x) => Boolean(x))
28
+ .map((n) => n?.serialize(this))
29
+ .join("");
30
+ }
31
+ serializeNamespace(namespace) {
32
+ return namespace.join(".");
33
+ }
34
+ }
35
+ class CSharpNode {
36
+ }
37
+ class Statement extends CSharpNode {
38
+ constructor(includeSemicolon) {
39
+ super();
40
+ this.includeSemicolon = includeSemicolon;
41
+ }
42
+ serialize(ctx) {
43
+ return this.serializeStatement(ctx) + (this.includeSemicolon ? ";" : "");
44
+ }
45
+ }
46
+ class StatementBlock extends Statement {
47
+ constructor(statements) {
48
+ super(false);
49
+ this.statements = statements;
50
+ }
51
+ serializeStatement(ctx) {
52
+ return this.statements.map((s) => s.serialize(ctx)).join(ctx.eol);
53
+ }
54
+ }
55
+ class CSharpFile extends Statement {
56
+ constructor(statements) {
57
+ super(false);
58
+ this.statements = statements;
59
+ }
60
+ serializeStatement(ctx) {
61
+ return this.statements.map((n) => n.serialize(ctx)).join(ctx.eol.repeat(2));
62
+ }
63
+ }
64
+ class CurlyBlock extends Statement {
65
+ constructor(statements, separator) {
66
+ super(false);
67
+ this.statements = statements;
68
+ this.separator = separator;
69
+ }
70
+ serializeStatement(ctx) {
71
+ const { eol } = ctx;
72
+ return `{${eol}${ctx.withIndent(this.statements
73
+ .map((s) => s.serialize(ctx))
74
+ .join((this.separator ?? "") + eol.repeat(2)))}${eol}}`;
75
+ }
76
+ }
77
+ class CurlyBlockWithNode extends CurlyBlock {
78
+ constructor(declaration, statements, separator) {
79
+ super(statements, separator);
80
+ this.declaration = declaration;
81
+ }
82
+ serialize(ctx) {
83
+ return [this.declaration.serialize(ctx), super.serialize(ctx)].join(ctx.eol);
84
+ }
85
+ }
86
+ class UsingStatement extends Statement {
87
+ constructor(namespace) {
88
+ super(true);
89
+ this.namespace = namespace;
90
+ }
91
+ serializeStatement(ctx) {
92
+ return ctx.combineWords("using", ctx.serializeNamespace(this.namespace));
93
+ }
94
+ }
95
+ class NamespaceNode extends CSharpNode {
96
+ constructor(namespace) {
97
+ super();
98
+ this.namespace = namespace;
99
+ }
100
+ serialize(ctx) {
101
+ return ctx.combineNodes(new SyntaxNode("namespace"), new AccessChain(this.namespace.map((n) => new TokenNode(n))));
102
+ }
103
+ }
104
+ class VisibilityModifiers extends CSharpNode {
105
+ constructor(visibility) {
106
+ super();
107
+ this.visibility = visibility;
108
+ }
109
+ serialize(_ctx) {
110
+ return this.visibility.join(" ");
111
+ }
112
+ }
113
+ class ClassDeclarationSpecifier extends CSharpNode {
114
+ constructor(name, base, modifiers, classToken = new TokenNode("class")) {
115
+ super();
116
+ this.name = name;
117
+ this.base = base;
118
+ this.modifiers = modifiers;
119
+ this.classToken = classToken;
120
+ }
121
+ serialize(ctx) {
122
+ const base = this.base ? ` : ${this.base}` : "";
123
+ return ctx.combineWords(this.modifiers?.serialize(ctx), `${this.classToken.serialize(ctx)} ${this.name.serialize(ctx)}${base}`);
124
+ }
125
+ }
126
+ class EnumDeclarationSpecifier extends CSharpNode {
127
+ constructor(name, modifiers) {
128
+ super();
129
+ this.name = name;
130
+ this.modifiers = modifiers;
131
+ }
132
+ serialize(ctx) {
133
+ return ctx.combineNodes(this.modifiers, new TokenNode("enum"), this.name);
134
+ }
135
+ }
136
+ class Class extends CurlyBlockWithNode {
137
+ }
138
+ class Enum extends CurlyBlockWithNode {
139
+ constructor(declaration, statements) {
140
+ super(declaration, statements, ",");
141
+ this.declaration = declaration;
142
+ }
143
+ }
144
+ class RawNode extends CSharpNode {
145
+ constructor(raw) {
146
+ super();
147
+ this.raw = raw;
148
+ }
149
+ serialize() {
150
+ return this.raw;
151
+ }
152
+ }
153
+ class CompositeNode extends CSharpNode {
154
+ constructor(nodes) {
155
+ super();
156
+ this.nodes = nodes;
157
+ }
158
+ serialize(ctx) {
159
+ return ctx.combineNodes(...this.nodes);
160
+ }
161
+ }
162
+ class NodeStatement extends Statement {
163
+ constructor(node, includeSemicolon = true) {
164
+ super(includeSemicolon);
165
+ this.node = node;
166
+ }
167
+ serializeStatement(ctx) {
168
+ return this.node.serialize(ctx);
169
+ }
170
+ }
171
+ class RawStatement extends Statement {
172
+ constructor(raw, includeSemicolon = true) {
173
+ super(includeSemicolon);
174
+ this.raw = raw;
175
+ }
176
+ serializeStatement() {
177
+ return this.raw;
178
+ }
179
+ }
180
+ class AnnotatedStatement extends Statement {
181
+ static getPropertyList(properties) {
182
+ return Object.entries(properties).map(([property_name, value]) => value
183
+ ? new AssignNode(new TokenNode(property_name), value)
184
+ : new TokenNode(property_name));
185
+ }
186
+ constructor(annotation, annotated, properties) {
187
+ super(false);
188
+ this.annotation = annotation;
189
+ this.annotated = annotated;
190
+ this.properties = properties;
191
+ }
192
+ serializeStatement(ctx) {
193
+ const props = this.properties
194
+ ? `(${this.properties.map((p) => p.serialize(ctx)).join(", ")})`
195
+ : "";
196
+ return [`[${this.annotation}${props}]`, this.annotated.serialize(ctx)].join(ctx.eol);
197
+ }
198
+ }
199
+ class Literal extends CSharpNode {
200
+ constructor(value) {
201
+ super();
202
+ this.value = value;
203
+ }
204
+ serialize() {
205
+ switch (typeof this.value) {
206
+ case "string":
207
+ return `"${this.value}"`;
208
+ case "number":
209
+ return this.value.toString();
210
+ case "boolean":
211
+ return this.value ? "true" : "false";
212
+ default:
213
+ if (typeof this.value === "object" && this.value === null)
214
+ return "null";
215
+ throw new Error(`Unknown literal type: ${typeof this.value}`);
216
+ }
217
+ }
218
+ }
219
+ const RESERVED_TOKENS = ["event"];
220
+ class TokenNode extends CSharpNode {
221
+ constructor(token, isReserved = false) {
222
+ if (!isReserved && RESERVED_TOKENS.includes(token)) {
223
+ token += "_";
224
+ }
225
+ super();
226
+ this.token = token;
227
+ }
228
+ serialize(_) {
229
+ return this.token;
230
+ }
231
+ }
232
+ TokenNode.TYPE_STRING = new TokenNode("string");
233
+ TokenNode.TYPE_INT = new TokenNode("int");
234
+ TokenNode.TYPE_FLOAT = new TokenNode("float");
235
+ TokenNode.TYPE_BOOLEAN = new TokenNode("bool");
236
+ TokenNode.TYPE_OBJECT = new TokenNode("object");
237
+ TokenNode.TYPE_OBJECT_CLASS = new TokenNode("Object");
238
+ TokenNode.TYPE_JOBJECT = new TokenNode("JObject");
239
+ class TokenNodeGeneric extends TokenNode {
240
+ constructor(token, generics) {
241
+ super(token);
242
+ this.token = token;
243
+ this.generics = generics;
244
+ }
245
+ serialize(ctx) {
246
+ return `${super.serialize(ctx)}<${this.generics
247
+ .map((g) => g.serialize(ctx))
248
+ .join(", ")}>`;
249
+ }
250
+ }
251
+ class TypeArgumentsNode extends CSharpNode {
252
+ constructor(generics) {
253
+ super();
254
+ this.generics = generics;
255
+ }
256
+ serialize(ctx) {
257
+ return `<${this.generics.map((g) => g.serialize(ctx)).join(", ")}>`;
258
+ }
259
+ }
260
+ class FunctionArgumentsNode extends CSharpNode {
261
+ constructor(args) {
262
+ super();
263
+ this.args = args;
264
+ }
265
+ serialize(ctx) {
266
+ return `(${this.args.map((a) => a.serialize(ctx)).join(", ")})`;
267
+ }
268
+ }
269
+ class TokenNodeApplyFunction extends CSharpNode {
270
+ constructor(token, args, typeArguments) {
271
+ super();
272
+ this.token = token;
273
+ this.args = args;
274
+ this.typeArguments = typeArguments;
275
+ }
276
+ serialize(ctx) {
277
+ return ctx.combineAdjacent(this.token, this.typeArguments, new FunctionArgumentsNode(this.args));
278
+ }
279
+ }
280
+ class ApplyConstructorNode extends TokenNodeApplyFunction {
281
+ constructor(token, args, typeArguments) {
282
+ super(token, args, typeArguments);
283
+ this.token = token;
284
+ this.args = args;
285
+ this.typeArguments = typeArguments;
286
+ }
287
+ serialize(ctx) {
288
+ return `new ${super.serialize(ctx)}`;
289
+ }
290
+ }
291
+ class ReturnStatement extends Statement {
292
+ constructor(value) {
293
+ super(true);
294
+ this.value = value;
295
+ }
296
+ serializeStatement(ctx) {
297
+ return ctx.combineWords("return", this.value.serialize(ctx));
298
+ }
299
+ }
300
+ class SyntaxNode extends CSharpNode {
301
+ constructor(syntax) {
302
+ super();
303
+ this.syntax = syntax;
304
+ }
305
+ serialize(_) {
306
+ return this.syntax;
307
+ }
308
+ }
309
+ class TypeNode extends CSharpNode {
310
+ constructor(type, nullable = false, generics) {
311
+ super();
312
+ this.type = type;
313
+ this.nullable = nullable;
314
+ this.generics = generics;
315
+ }
316
+ serialize(ctx) {
317
+ return ctx.combineAdjacent(this.type, this.nullable ? new SyntaxNode("?") : undefined, this.generics);
318
+ }
319
+ }
320
+ class AccessChain extends CSharpNode {
321
+ constructor(nodes) {
322
+ super();
323
+ this.nodes = nodes;
324
+ }
325
+ serialize(ctx) {
326
+ return this.nodes.map((n) => n.serialize(ctx)).join(".");
327
+ }
328
+ }
329
+ class AbstractFieldDeclaration extends Statement {
330
+ constructor(type, token, body, visibility, rhs) {
331
+ super(!body || !!rhs);
332
+ this.type = type;
333
+ this.token = token;
334
+ this.body = body;
335
+ this.visibility = visibility;
336
+ this.rhs = rhs;
337
+ }
338
+ serializeStatement(ctx) {
339
+ return ctx.combineWords(this.visibility?.serialize(ctx), this.type?.serialize(ctx), this.token.serialize(ctx), this.body?.serialize(ctx), ...(this.rhs ? ["=", this.rhs.serialize(ctx)] : []));
340
+ }
341
+ }
342
+ class FieldDeclaration extends AbstractFieldDeclaration {
343
+ }
344
+ class ParameterNode extends CSharpNode {
345
+ constructor(type, name, defaultValue) {
346
+ if (!type) {
347
+ throw new Error("wut?");
348
+ }
349
+ super();
350
+ this.type = type;
351
+ this.name = name;
352
+ this.defaultValue = defaultValue;
353
+ }
354
+ serialize(ctx) {
355
+ return ctx.combineWords(this.type.serialize(ctx), this.name.serialize(ctx), ...(this.defaultValue ? ["=", this.defaultValue.serialize(ctx)] : []));
356
+ }
357
+ }
358
+ class MethodNode extends CSharpNode {
359
+ // TODO: generics
360
+ constructor(name, parameters) {
361
+ super();
362
+ this.name = name;
363
+ this.parameters = parameters;
364
+ }
365
+ serialize(ctx) {
366
+ const parametersSerialized = this.parameters
367
+ ? `(${this.parameters.map((p) => p.serialize(ctx)).join(", ")})`
368
+ : "";
369
+ return `${this.name.serialize(ctx)}${parametersSerialized}`;
370
+ }
371
+ }
372
+ class MethodDeclaration extends AbstractFieldDeclaration {
373
+ }
374
+ class PropertyMethods extends Statement {
375
+ constructor(get, set) {
376
+ super(false);
377
+ this.get = get;
378
+ this.set = set;
379
+ }
380
+ serializeStatement(ctx) {
381
+ const statements = [];
382
+ if (this.get) {
383
+ const getMethod = new MethodDeclaration(undefined, new MethodNode(new TokenNode("get")), this.get.statements ? new CurlyBlock(this.get.statements) : undefined, this.get.visibility);
384
+ statements.push(getMethod);
385
+ }
386
+ if (this.set) {
387
+ const setMethod = new MethodDeclaration(undefined, new MethodNode(new TokenNode("set")), this.set.statements ? new CurlyBlock(this.set.statements) : undefined, this.set.visibility);
388
+ statements.push(setMethod);
389
+ }
390
+ return new CurlyBlock([new StatementBlock(statements)]).serialize(ctx);
391
+ }
392
+ }
393
+ class PropertyDeclaration extends AbstractFieldDeclaration {
394
+ }
395
+ class AssignNode extends CSharpNode {
396
+ constructor(lhs, rhs, operation = "=") {
397
+ super();
398
+ this.lhs = lhs;
399
+ this.rhs = rhs;
400
+ this.operation = operation;
401
+ }
402
+ serialize(ctx) {
403
+ return ctx.combineNodes(this.lhs, new SyntaxNode(this.operation), this.rhs);
404
+ }
405
+ }
406
+ class AssignStatement extends Statement {
407
+ constructor(lhs, rhs, includeSemicolon = true, operation = "=") {
408
+ super(includeSemicolon);
409
+ this.lhs = lhs;
410
+ this.rhs = rhs;
411
+ this.operation = operation;
412
+ }
413
+ serializeStatement(ctx) {
414
+ return new AssignNode(this.lhs, this.rhs, this.operation).serialize(ctx);
415
+ }
416
+ }
417
+ class AwaitNode extends CompositeNode {
418
+ constructor(node) {
419
+ super([new TokenNode("await"), node]);
420
+ this.node = node;
421
+ }
422
+ }
423
+ class ParanthesisNode extends CompositeNode {
424
+ constructor(node) {
425
+ super([new TokenNode("("), node, new TokenNode(")")]);
426
+ this.node = node;
427
+ }
428
+ }
429
+ class NamespaceBlock extends CurlyBlockWithNode {
430
+ }
431
+ export { RawNode, RawStatement, CSharpFile, CurlyBlock, CurlyBlockWithNode, UsingStatement, ClassDeclarationSpecifier, Class, StatementBlock, AnnotatedStatement, Literal, VisibilityModifiers, CompilerCtx, FieldDeclaration, TokenNode, PropertyDeclaration, MethodDeclaration, MethodNode, TypeNode, PropertyMethods, TokenNodeGeneric, ParameterNode, AssignStatement, Statement, EnumDeclarationSpecifier, AssignNode, Enum, TokenNodeApplyFunction, TypeArgumentsNode, ReturnStatement, ApplyConstructorNode, AccessChain, CompositeNode, NamespaceBlock, NamespaceNode, AwaitNode, ParanthesisNode, CSharpNode, NodeStatement, };
432
+ //# sourceMappingURL=codegen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/lib/generate-csharp-sdk/codegen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const GLOBAL_NAMESPACE: string[];
@@ -0,0 +1,2 @@
1
+ export const GLOBAL_NAMESPACE = ["Seam"];
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/generate-csharp-sdk/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAM,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export declare const generateCSharpSDK: (packageVersion?: string, dotNetVersions?: string[]) => Promise<any>;
@@ -0,0 +1,81 @@
1
+ import * as url from "url";
2
+ import path from "path";
3
+ import axios from "axios";
4
+ import { pascalCase } from "change-case";
5
+ import { deepFlattenAllOfSchema, getParameterAndResponseSchema, populateFs, } from "@seamapi/nextlove-sdk-generator";
6
+ import * as cs from "./codegen.js";
7
+ import { generateDataclassFileForSchema, generateDataclassFileForRoutes, } from "./templates/dataclass.js";
8
+ import { GLOBAL_NAMESPACE } from "./constants.js";
9
+ import { csprojTemplate } from "./generate-csproj.js";
10
+ Error.stackTraceLimit = Infinity;
11
+ export const generateCSharpSDK = async (packageVersion = "1.0.0", dotNetVersions = ["6.0", "7.0"]) => {
12
+ const openapi = await axios
13
+ .get("https://connect.getseam.com/openapi.json")
14
+ .then((res) => res.data);
15
+ const routes = Object.entries(openapi.paths).map(([path, v]) => ({
16
+ path,
17
+ ...v,
18
+ }));
19
+ const fs = {};
20
+ populateFs(
21
+ // FIXME: __dirname is not giving the right path here
22
+ path.join(url.fileURLToPath(new URL(".", import.meta.url)), "templates/fs"), fs);
23
+ const compilerCtx = new cs.CompilerCtx();
24
+ const classMap = {};
25
+ for (const route of routes) {
26
+ if (!route.post)
27
+ continue;
28
+ if (!route.post["x-fern-sdk-group-name"])
29
+ continue;
30
+ const group_names = [...route.post["x-fern-sdk-group-name"]];
31
+ const namespace = group_names;
32
+ group_names.reverse();
33
+ const class_name = pascalCase(group_names.join("_"));
34
+ const { parameter_schema, response_obj_type, response_arr_type, nullable } = getParameterAndResponseSchema(route);
35
+ if (!response_obj_type && !response_arr_type) {
36
+ console.log(`No response object/array ref for "${route.path}", skipping`);
37
+ continue;
38
+ }
39
+ if (!parameter_schema) {
40
+ console.log(`No parameter schema for "${route.path}", skipping`);
41
+ continue;
42
+ }
43
+ const routeInfo = {
44
+ method_name: route.post["x-fern-sdk-method-name"],
45
+ path: route.path,
46
+ parameter_schema,
47
+ response_obj_type,
48
+ response_arr_type,
49
+ return_path: route.post["x-fern-sdk-return-value"],
50
+ namespace,
51
+ nullable,
52
+ };
53
+ classMap[class_name] ??= [];
54
+ classMap[class_name].push(routeInfo);
55
+ }
56
+ for (const [class_name, routes] of Object.entries(classMap)) {
57
+ const { classFile, className } = generateDataclassFileForRoutes(class_name, routes, [...GLOBAL_NAMESPACE, "Api"]);
58
+ fs[`src/Seam/Api/${className}.cs`] = classFile.serialize(compilerCtx);
59
+ }
60
+ Object.entries(openapi.components.schemas)
61
+ .map(([schema_name, schema]) => [schema_name, schema])
62
+ .forEach(([schema_name, schema]) => {
63
+ try {
64
+ if ("allOf" in schema) {
65
+ const flattened = deepFlattenAllOfSchema(schema);
66
+ if (flattened == null)
67
+ return;
68
+ schema = flattened;
69
+ }
70
+ const { classFile, name } = generateDataclassFileForSchema(schema_name, schema, "model", [...GLOBAL_NAMESPACE, "Model"]);
71
+ fs[`src/Seam/Model/${name}.cs`] = classFile.serialize(compilerCtx);
72
+ }
73
+ catch (e) {
74
+ console.log(`Failed at ${schema_name}`);
75
+ throw e;
76
+ }
77
+ });
78
+ fs[`src/Seam/Seam.csproj`] = csprojTemplate(packageVersion, dotNetVersions);
79
+ return fs;
80
+ };
81
+ //# sourceMappingURL=generate-csharp-sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-csharp-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-csharp-sdk/generate-csharp-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,UAAU,GAIX,MAAM,iCAAiC,CAAA;AAExC,OAAO,KAAK,EAAE,MAAM,cAAc,CAAA;AAClC,OAAO,EAEL,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,KAAK,CAAC,eAAe,GAAG,QAAQ,CAAA;AAEhC,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,iBAAyB,OAAO,EAChC,iBAA2B,CAAC,KAAK,EAAE,KAAK,CAAC,EACzC,EAAE;IACF,MAAM,OAAO,GAAkB,MAAM,KAAK;SACvC,GAAG,CAAC,0CAA0C,CAAC;SAC/C,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC1B,MAAM,MAAM,GAAY,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxE,IAAI;QACJ,GAAG,CAAC;KACL,CAAC,CAAC,CAAA;IAEH,MAAM,EAAE,GAAQ,EAAE,CAAA;IAElB,UAAU;IACR,qDAAqD;IACrD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,EAC3E,EAAE,CACH,CAAA;IAED,MAAM,WAAW,GAAG,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAExC,MAAM,QAAQ,GAAgC,EAAE,CAAA;IAEhD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,SAAQ;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC;YAAE,SAAQ;QAClD,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAA;QAC5D,MAAM,SAAS,GAAG,WAAW,CAAA;QAC7B,WAAW,CAAC,OAAO,EAAE,CAAA;QACrB,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAEpD,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GACxE,6BAA6B,CAAC,KAAK,CAAC,CAAA;QAEtC,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,EAAE;YAC5C,OAAO,CAAC,GAAG,CAAC,qCAAqC,KAAK,CAAC,IAAI,aAAa,CAAC,CAAA;YACzE,SAAQ;SACT;QAED,IAAI,CAAC,gBAAgB,EAAE;YACrB,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,CAAC,IAAI,aAAa,CAAC,CAAA;YAChE,SAAQ;SACT;QAED,MAAM,SAAS,GAAc;YAC3B,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC;YACjD,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,gBAAgB;YAChB,iBAAiB;YACjB,iBAAiB;YACjB,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC;YAClD,SAAS;YACT,QAAQ;SACT,CAAA;QAED,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QAC3B,QAAQ,CAAC,UAAU,CAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;KACtC;IAED,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3D,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,8BAA8B,CAC7D,UAAU,EACV,MAAM,EACN,CAAC,GAAG,gBAAgB,EAAE,KAAK,CAAC,CAC7B,CAAA;QAED,EAAE,CAAC,gBAAgB,SAAS,KAAK,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;KACtE;IAED,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;SACvC,GAAG,CACF,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,CACxB,CAAC,WAAW,EAAE,MAAM,CAA6B,CACpD;SACA,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE;QACjC,IAAI;YACF,IAAI,OAAO,IAAI,MAAM,EAAE;gBACrB,MAAM,SAAS,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;gBAChD,IAAI,SAAS,IAAI,IAAI;oBAAE,OAAM;gBAE7B,MAAM,GAAG,SAAS,CAAA;aACnB;YAED,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,8BAA8B,CACxD,WAAW,EACX,MAAM,EACN,OAAO,EACP,CAAC,GAAG,gBAAgB,EAAE,OAAO,CAAC,CAC/B,CAAA;YAED,EAAE,CAAC,kBAAkB,IAAI,KAAK,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;SACnE;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,aAAa,WAAW,EAAE,CAAC,CAAA;YACvC,MAAM,CAAC,CAAA;SACR;IACH,CAAC,CAAC,CAAA;IAEJ,EAAE,CAAC,sBAAsB,CAAC,GAAG,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;IAE3E,OAAO,EAAE,CAAA;AACX,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export declare const csprojTemplate: (version: string, dotNetVersions: string[]) => string;
@@ -0,0 +1,45 @@
1
+ export const csprojTemplate = (version, dotNetVersions) => `
2
+ <Project Sdk="Microsoft.NET.Sdk">
3
+
4
+ <PropertyGroup>
5
+ <TargetFrameworks>${dotNetVersions
6
+ .map((v) => `net${v}`)
7
+ .join(";")}</TargetFrameworks>
8
+ <ImplicitUsings>enable</ImplicitUsings>
9
+ <Nullable>annotations</Nullable>
10
+
11
+ <PackageId>Seam</PackageId>
12
+
13
+ <PackageVersion>${version}</PackageVersion>
14
+
15
+ <Authors>Seam</Authors>
16
+
17
+ <Owners>Seam</Owners>
18
+
19
+ <PackageReadmeFile>README.md</PackageReadmeFile>
20
+
21
+ <PackageProjectUrl>http://github.com/seamapi/seam-connect</PackageProjectUrl>
22
+
23
+ <PackageIcon>icon.png</PackageIcon>
24
+
25
+ <Description>Seam API for C#</Description>
26
+
27
+ <Copyright>Copyright (c) 2021-2023 Seam Labs, Inc.</Copyright>
28
+
29
+ <PackageTags>api iot</PackageTags>
30
+ </PropertyGroup>
31
+
32
+ <ItemGroup>
33
+ <None Include="icon.png" Pack="true" PackagePath="icon.png" />
34
+ <None Include="README.md" Pack="true" PackagePath="README.md" />
35
+
36
+ <PackageReference Include="JsonSubTypes" Version="2.0.1" />
37
+ <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
38
+ <PackageReference Include="Polly" Version="7.2.4" />
39
+ <PackageReference Include="RestSharp" Version="110.2.0" />
40
+ </ItemGroup>
41
+
42
+ </Project>
43
+
44
+ `.trim();
45
+ //# sourceMappingURL=generate-csproj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-csproj.js","sourceRoot":"","sources":["../../src/lib/generate-csharp-sdk/generate-csproj.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,cAAwB,EAAE,EAAE,CAC1E;;;;sBAIoB,cAAc;KAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;KACrB,IAAI,CAAC,GAAG,CAAC;;;;;;oBAMM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B1B,CAAC,IAAI,EAAE,CAAA"}
@@ -0,0 +1,24 @@
1
+ import * as cs from "../codegen.js";
2
+ import { type AllOfSchema, type ObjSchema, type PropertySchema } from "@seamapi/nextlove-sdk-generator";
3
+ export type RouteInfo = {
4
+ method_name: string;
5
+ path: string;
6
+ parameter_schema: ObjSchema;
7
+ response_obj_type: string | undefined;
8
+ response_arr_type: string | undefined;
9
+ nullable: boolean;
10
+ return_path: string;
11
+ namespace: string[];
12
+ };
13
+ export declare const DATA_CLASS_IMPORT_BLOCKS: cs.StatementBlock;
14
+ export declare const API_IMPORT_BLOCKS: cs.StatementBlock;
15
+ export declare const generateDataclassFileForSchema: (name: string, schema: SupportedPropertySchema, resource_type: "response" | "request" | "model", namespace?: string[]) => {
16
+ classFile: cs.CSharpFile;
17
+ name: string;
18
+ };
19
+ export declare const generateDataclassFileForRoutes: (class_name: string, routes: RouteInfo[], namespace?: string[]) => {
20
+ classFile: cs.CSharpFile;
21
+ className: string;
22
+ };
23
+ type SupportedPropertySchema = Exclude<PropertySchema, AllOfSchema>;
24
+ export {};