@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,132 @@
1
+ import axios from "axios";
2
+ import { flattenObjSchema } from "../../lib/index.js";
3
+ import resourceRbTemplate from "./templates/snippets/resource.rb.template.js";
4
+ import { pascalCase } from "change-case";
5
+ import { RubyClient } from "./ruby-client.js";
6
+ import { getParameterAndResponseSchema } from "../../lib/openapi/get-parameter-and-response-schema.js";
7
+ import base_clientRbTemplate from "./templates/base_client.rb.template.js";
8
+ import readmeMdTemplate from "./templates/readme.md.template.js";
9
+ import rakefileTemplate from "./templates/rakefile.template.js";
10
+ import versionRbTemplate from "./templates/version.rb.template.js";
11
+ import requestRbTemplate from "./templates/request.rb.template.js";
12
+ import loggerRbTemplate from "./templates/logger.rb.template.js";
13
+ import clientRbTemplate from "./templates/client.rb.template.js";
14
+ import gemfileTemplate from "./templates/gemfile.template.js";
15
+ import seamapiGemspecTemplate from "./templates/seamapi.gemspec.template.js";
16
+ import base_resourceRbTemplate from "./templates/base_resource.rb.template.js";
17
+ import resource_errorRbTemplate from "./templates/resource_error.rb.template.js";
18
+ import resource_warningRbTemplate from "./templates/resource_warning.rb.template.js";
19
+ import resource_errors_supportRbTemplate from "./templates/resource_errors_support.rb.template.js";
20
+ import resource_warnings_supportRbTemplate from "./templates/resource_warnings_support.rb.template.js";
21
+ export const generateRubySDK = async () => {
22
+ const openapi = await axios
23
+ .get("https://connect.getseam.com/openapi.json")
24
+ .then((res) => res.data);
25
+ const routes = Object.entries(openapi.paths).map(([path, v]) => ({
26
+ path,
27
+ ...v,
28
+ }));
29
+ const fs = {};
30
+ fs["README.md"] = readmeMdTemplate();
31
+ fs["Rakefile"] = rakefileTemplate();
32
+ fs["spec/spec_helper.rb"] = "";
33
+ fs["spec/smoketest.rb"] = "";
34
+ fs["Gemfile"] = gemfileTemplate();
35
+ fs["seamapi.gemspec"] = seamapiGemspecTemplate();
36
+ fs["lib/seam/version.rb"] = versionRbTemplate();
37
+ fs["lib/seam/request.rb"] = requestRbTemplate();
38
+ fs["lib/seam/logger.rb"] = loggerRbTemplate();
39
+ fs["lib/seam/client.rb"] = clientRbTemplate();
40
+ fs["lib/seam/clients/base_client.rb"] = base_clientRbTemplate();
41
+ fs["lib/seam/resources/base_resource.rb"] = base_resourceRbTemplate();
42
+ fs["lib/seam/resources/resource_error.rb"] = resource_errorRbTemplate();
43
+ fs["lib/seam/resources/resource_warning.rb"] = resource_warningRbTemplate();
44
+ fs["lib/seam/resources/resource_errors_support.rb"] =
45
+ resource_errors_supportRbTemplate();
46
+ fs["lib/seam/resources/resource_warnings_support.rb"] =
47
+ resource_warnings_supportRbTemplate();
48
+ const seamapi_rb_requires = [
49
+ "seam/version",
50
+ "seam/request",
51
+ "seam/logger",
52
+ "seam/client",
53
+ "seam/clients/base_client",
54
+ "seam/resources/base_resource",
55
+ "seam/resources/resource_error",
56
+ "seam/resources/resource_warning",
57
+ "seam/resources/resource_errors_support",
58
+ "seam/resources/resource_warnings_support",
59
+ ];
60
+ const resources = Object.entries(openapi.components.schemas).map(([schema_name, schema]) => [schema_name, flattenObjSchema(schema)]);
61
+ for (const [snake_name, schema] of resources) {
62
+ const params = Object.entries(schema.properties).map(([name, property_schema]) => ({
63
+ name,
64
+ is_date_time: "format" in property_schema && property_schema.format === "date-time",
65
+ }));
66
+ fs[`lib/seam/resources/${snake_name}.rb`] = resourceRbTemplate({
67
+ pascal_name: pascalCase(snake_name),
68
+ attrs: params.filter((p) => !p.is_date_time).map((p) => p.name),
69
+ date_attrs: params.filter((p) => p.is_date_time).map((p) => p.name),
70
+ });
71
+ seamapi_rb_requires.push(`seam/resources/${snake_name}`);
72
+ }
73
+ const clients = {};
74
+ for (const route of routes) {
75
+ if (!route.post)
76
+ continue;
77
+ if (!route.post["x-fern-sdk-group-name"])
78
+ continue;
79
+ const group_names = [...route.post["x-fern-sdk-group-name"]];
80
+ const namespace = group_names.join("_");
81
+ group_names.reverse();
82
+ const class_name = pascalCase(group_names.join("_"));
83
+ if (!clients[class_name]) {
84
+ // namespaces.push(route.post["x-fern-sdk-group-name"])
85
+ clients[class_name] = new RubyClient(class_name, namespace);
86
+ }
87
+ const client = clients[class_name];
88
+ if (!client) {
89
+ console.warn(`No client for "${class_name}", skipping`);
90
+ continue;
91
+ }
92
+ const { parameter_schema, response_obj_type, response_arr_type } = getParameterAndResponseSchema(route);
93
+ if (!parameter_schema) {
94
+ console.warn(`No parameter schema for "${route.path}", skipping`);
95
+ continue;
96
+ }
97
+ if (!response_obj_type && !response_arr_type) {
98
+ console.warn(`No response object/array ref for "${route.path}", skipping`);
99
+ continue;
100
+ }
101
+ client.addMethod({
102
+ method_name: route.post["x-fern-sdk-method-name"],
103
+ path: route.path,
104
+ parameters: Object.entries(parameter_schema.properties)
105
+ .filter(([_, param_val]) => "type" in param_val)
106
+ .map(([param_name, _]) => ({
107
+ name: param_name,
108
+ required: parameter_schema.required?.includes(param_name),
109
+ position: route.post["x-fern-sdk-method-name"] === "get" &&
110
+ param_name === `${route.post["x-fern-sdk-return-value"]}_id`
111
+ ? 0
112
+ : undefined,
113
+ })),
114
+ return_path: route.post["x-fern-sdk-return-value"],
115
+ return_resource: pascalCase(response_obj_type ?? response_arr_type),
116
+ });
117
+ }
118
+ for (const client of Object.values(clients)) {
119
+ fs[`lib/seam/clients/${client.snake_name}.rb`] = client.serialize();
120
+ seamapi_rb_requires.push(`seam/clients/${client.snake_name}`);
121
+ }
122
+ fs["lib/seamapi.rb"] = [
123
+ `# frozen_string_literal: true`,
124
+ "",
125
+ ...seamapi_rb_requires.map((r) => `require_relative "${r}"`),
126
+ "",
127
+ `module Seam`,
128
+ `end`,
129
+ ].join("\n");
130
+ return fs;
131
+ };
132
+ //# sourceMappingURL=generate-ruby-sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-ruby-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-ruby-sdk/generate-ruby-sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./generate-ruby-sdk.js";
@@ -0,0 +1,2 @@
1
+ export * from "./generate-ruby-sdk.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/generate-ruby-sdk/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=request.rb.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.rb.template.js","sourceRoot":"","sources":["../../src/lib/generate-ruby-sdk/request.rb.template.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ export type RubyClientMethodParameter = {
2
+ name: string;
3
+ required?: boolean | undefined;
4
+ position?: number | undefined;
5
+ };
6
+ export type RubyClientMethod = {
7
+ method_name: string;
8
+ path: string;
9
+ parameters: RubyClientMethodParameter[];
10
+ return_resource: string;
11
+ return_path: string;
12
+ };
13
+ export declare class RubyClient {
14
+ pascal_name: string;
15
+ snake_name: string;
16
+ methods: RubyClientMethod[];
17
+ constructor(pascal_name: string, snake_name: string);
18
+ addMethod(method: RubyClientMethod): void;
19
+ /**
20
+ * Example:
21
+ *
22
+ * ```
23
+ * def create(device_id: nil, name: nil, code: nil, starts_at: nil, ends_at: nil)
24
+ * request_seam_object(
25
+ * :post,
26
+ * "/access_codes/create",
27
+ * Seam::AccessCode,
28
+ * "action_attempt",
29
+ * body: {device_id: device_id, code: code, starts_at: starts_at, ends_at: ends_at, name: name}.compact
30
+ * )
31
+ * end
32
+ * ```
33
+ */
34
+ serialize(): string;
35
+ }
@@ -0,0 +1,59 @@
1
+ export class RubyClient {
2
+ constructor(pascal_name, snake_name) {
3
+ this.pascal_name = pascal_name;
4
+ this.snake_name = snake_name;
5
+ this.methods = [];
6
+ this.methods = [];
7
+ }
8
+ addMethod(method) {
9
+ this.methods.push(method);
10
+ }
11
+ /**
12
+ * Example:
13
+ *
14
+ * ```
15
+ * def create(device_id: nil, name: nil, code: nil, starts_at: nil, ends_at: nil)
16
+ * request_seam_object(
17
+ * :post,
18
+ * "/access_codes/create",
19
+ * Seam::AccessCode,
20
+ * "action_attempt",
21
+ * body: {device_id: device_id, code: code, starts_at: starts_at, ends_at: ends_at, name: name}.compact
22
+ * )
23
+ * end
24
+ * ```
25
+ */
26
+ serialize() {
27
+ return [
28
+ `module Seam`,
29
+ ` module Clients`,
30
+ ` class ${this.pascal_name} < BaseClient`,
31
+ ...this.methods.map(({ method_name, path, parameters, return_resource, return_path }) => {
32
+ return [
33
+ " ",
34
+ `def ${method_name}(${parameters
35
+ .sort((a, b) => (a.position ?? a.required ? 1000 : 9999) -
36
+ (b.position ?? b.required ? 1000 : 9999))
37
+ .map((p) => `${p.name}${p.required ? "" : ": nil"}`)
38
+ .join(", ")})`,
39
+ ` request_seam_object(`,
40
+ ` :post,`,
41
+ ` "${path}",`,
42
+ ` ${return_resource},`,
43
+ ` '${return_path}',`,
44
+ ` body: {${parameters
45
+ .map((p) => `${p.name}: ${p.name}`)
46
+ .join(", ")}}.compact`,
47
+ ` )`,
48
+ `end`,
49
+ ]
50
+ .map((s) => ` ${s}`)
51
+ .join("\n");
52
+ }),
53
+ ` end`,
54
+ ` end`,
55
+ `end`,
56
+ ].join("\n");
57
+ }
58
+ }
59
+ //# sourceMappingURL=ruby-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruby-client.js","sourceRoot":"","sources":["../../src/lib/generate-ruby-sdk/ruby-client.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,UAAU;IAGrB,YACS,WAAmB,EACnB,UAAkB;QADlB,gBAAW,GAAX,WAAW,CAAQ;QACnB,eAAU,GAAV,UAAU,CAAQ;QAJ3B,YAAO,GAAuB,EAAE,CAAA;QAM9B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IACnB,CAAC;IAED,SAAS,CAAC,MAAwB;QAChC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS;QACP,OAAO;YACL,aAAa;YACb,kBAAkB;YAClB,aAAa,IAAI,CAAC,WAAW,eAAe;YAC5C,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CACjB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,EAAE;gBAClE,OAAO;oBACL,GAAG;oBACH,OAAO,WAAW,IAAI,UAAU;yBAC7B,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;wBACxC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAC3C;yBACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;yBACnD,IAAI,CAAC,IAAI,CAAC,GAAG;oBAChB,wBAAwB;oBACxB,YAAY;oBACZ,QAAQ,IAAI,IAAI;oBAChB,OAAO,eAAe,GAAG;oBACzB,QAAQ,WAAW,IAAI;oBACvB,cAAc,UAAU;yBACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;yBAClC,IAAI,CAAC,IAAI,CAAC,WAAW;oBACxB,KAAK;oBACL,KAAK;iBACN;qBACE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;qBAC1B,IAAI,CAAC,IAAI,CAAC,CAAA;YACf,CAAC,CACF;YACD,SAAS;YACT,OAAO;YACP,KAAK;SACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACd,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ declare const _default: () => string;
2
+ export default _default;
@@ -0,0 +1,22 @@
1
+ export default () => `# frozen_string_literal: true
2
+
3
+ module Seam
4
+ module Clients
5
+ class BaseClient
6
+ attr_accessor :client
7
+
8
+ def initialize(client)
9
+ @client = client
10
+ end
11
+
12
+ def request_seam_object(*attrs)
13
+ client.request_seam_object(*attrs)
14
+ end
15
+
16
+ def request_seam(*attrs)
17
+ client.request_seam(*attrs)
18
+ end
19
+ end
20
+ end
21
+ end`;
22
+ //# sourceMappingURL=base_client.rb.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base_client.rb.template.js","sourceRoot":"","sources":["../../../src/lib/generate-ruby-sdk/templates/base_client.rb.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;IAoBjB,CAAA"}
@@ -0,0 +1,2 @@
1
+ declare const _default: () => string;
2
+ export default _default;
@@ -0,0 +1,59 @@
1
+ export default () => `# frozen_string_literal: true
2
+
3
+ module Seam
4
+ class BaseResource
5
+ attr_accessor :data, :client
6
+
7
+ def initialize(data, client = nil)
8
+ @data = data
9
+ @client = client
10
+
11
+ @data.each do |key, value|
12
+ instance_variable_set("@#{key}", value)
13
+ end
14
+ end
15
+
16
+ def update_from_response(data)
17
+ @data = data
18
+ @data.each do |key, value|
19
+ instance_variable_set("@#{key}", value)
20
+ end
21
+ end
22
+
23
+ def self.load_from_response(data, client = nil)
24
+ if data.is_a?(Array)
25
+ data.map { |d| new(d, client) }
26
+ else
27
+ new(data, client)
28
+ end
29
+ end
30
+
31
+ def inspect
32
+ "<#{self.class.name}:#{"0x00%x" % (object_id << 1)}\n" + # rubocop:disable Style/StringConcatenation, Style/FormatString
33
+ instance_variables
34
+ .map { |k| k.to_s.sub("@", "") }
35
+ .filter { |k| k != "data" and k != "client" and respond_to? k }
36
+ .map { |k| " #{k}=#{send(k).inspect}" }
37
+ .join("\n") + ">"
38
+ end
39
+
40
+ def self.date_accessor(*attrs)
41
+ attrs.each do |attr|
42
+ define_method(attr) do
43
+ value = instance_variable_get("@#{attr}")
44
+
45
+ raise "No value for #{attr} set" if value.nil?
46
+
47
+ parse_datetime(value)
48
+ end
49
+ end
50
+ end
51
+
52
+ protected
53
+
54
+ def parse_datetime(value)
55
+ Time.parse(value)
56
+ end
57
+ end
58
+ end`;
59
+ //# sourceMappingURL=base_resource.rb.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base_resource.rb.template.js","sourceRoot":"","sources":["../../../src/lib/generate-ruby-sdk/templates/base_resource.rb.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyDjB,CAAA"}
@@ -0,0 +1,2 @@
1
+ declare const _default: () => string;
2
+ export default _default;
@@ -0,0 +1,74 @@
1
+ export default () => `# frozen_string_literal: true
2
+
3
+ module Seam
4
+ class Client
5
+ attr_accessor :api_key, :base_uri, :debug
6
+
7
+ def initialize(api_key: nil, base_uri: "https://connect.getseam.com", debug: false)
8
+ @api_key = api_key || ENV.fetch("SEAM_API_KEY", nil)
9
+ @base_uri = base_uri
10
+ @debug = debug
11
+
12
+ raise ArgumentError, "SEAM_API_KEY not found in environment, and api_key not provided" unless @api_key
13
+ end
14
+
15
+ def health
16
+ request_seam(:get, "/health")
17
+ end
18
+
19
+ def locks
20
+ @locks ||= Seam::Clients::Locks.new(self)
21
+ end
22
+
23
+ def devices
24
+ @devices ||= Seam::Clients::Devices.new(self)
25
+ end
26
+
27
+ def unmanaged_devices
28
+ @unmanaged_devices ||= Seam::Clients::UnmanagedDevices.new(self)
29
+ end
30
+
31
+ def action_attempts
32
+ @action_attempts ||= Seam::Clients::ActionAttempts.new(self)
33
+ end
34
+
35
+ def access_codes
36
+ @access_codes ||= Seam::Clients::AccessCodes.new(self)
37
+ end
38
+
39
+ def connect_webviews
40
+ @connect_webviews ||= Seam::Clients::ConnectWebviews.new(self)
41
+ end
42
+
43
+ def connected_accounts
44
+ @connected_accounts ||= Seam::Clients::ConnectedAccounts.new(self)
45
+ end
46
+
47
+ def workspaces
48
+ @workspaces ||= Seam::Clients::Workspaces.new(self)
49
+ end
50
+
51
+ def events
52
+ @events ||= Seam::Clients::Events.new(self)
53
+ end
54
+
55
+ def request_seam_object(method, path, klass, inner_object, config = {})
56
+ response = request_seam(method, path, config)
57
+
58
+ data = response[inner_object]
59
+
60
+ klass.load_from_response(data, self)
61
+ end
62
+
63
+ def request_seam(method, path, config = {})
64
+ Seam::Request.new(
65
+ api_key: api_key,
66
+ base_uri: base_uri,
67
+ debug: debug
68
+ ).perform(
69
+ method, path, config
70
+ )
71
+ end
72
+ end
73
+ end`;
74
+ //# sourceMappingURL=client.rb.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.rb.template.js","sourceRoot":"","sources":["../../../src/lib/generate-ruby-sdk/templates/client.rb.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwEjB,CAAA"}
@@ -0,0 +1,2 @@
1
+ declare const _default: () => string;
2
+ export default _default;
@@ -0,0 +1,7 @@
1
+ export default () => `# frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in seamapi.gemspec.
6
+ gemspec`;
7
+ //# sourceMappingURL=gemfile.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemfile.template.js","sourceRoot":"","sources":["../../../src/lib/generate-ruby-sdk/templates/gemfile.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;QAKb,CAAA"}
@@ -0,0 +1,2 @@
1
+ declare const _default: () => string;
2
+ export default _default;
@@ -0,0 +1,13 @@
1
+ export default () => `# frozen_string_literal: true
2
+
3
+ require "logger"
4
+
5
+ module Seam
6
+ class Logger
7
+ def self.info(message)
8
+ logger = ::Logger.new($stdout)
9
+ logger.info(message)
10
+ end
11
+ end
12
+ end`;
13
+ //# sourceMappingURL=logger.rb.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.rb.template.js","sourceRoot":"","sources":["../../../src/lib/generate-ruby-sdk/templates/logger.rb.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;;;;;;;IAWjB,CAAA"}
@@ -0,0 +1,2 @@
1
+ declare const _default: () => string;
2
+ export default _default;
@@ -0,0 +1,23 @@
1
+ export default () => `# frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
+ require "standard/rake"
6
+
7
+ RSpec::Core::RakeTask.new(:spec)
8
+
9
+ task default: %i[lint test]
10
+
11
+ task test: "spec"
12
+ task lint: "standard"
13
+ task format: "standard:fix"
14
+
15
+ desc "Open an interactive ruby console"
16
+ task :console do
17
+ require "irb"
18
+ require "bundler/setup"
19
+ require "seamapi"
20
+ ARGV.clear
21
+ IRB.start
22
+ end`;
23
+ //# sourceMappingURL=rakefile.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rakefile.template.js","sourceRoot":"","sources":["../../../src/lib/generate-ruby-sdk/templates/rakefile.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;IAqBjB,CAAA"}
@@ -0,0 +1,2 @@
1
+ declare const _default: () => string;
2
+ export default _default;