@hyperweb/telescope 1.15.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 (382) hide show
  1. package/README.md +1529 -0
  2. package/main/build.js +183 -0
  3. package/main/builder.js +229 -0
  4. package/main/bundle.js +162 -0
  5. package/main/bundler.js +100 -0
  6. package/main/cli.js +71 -0
  7. package/main/cmds.js +28 -0
  8. package/main/commands/download.js +122 -0
  9. package/main/commands/generate.js +151 -0
  10. package/main/commands/install.js +143 -0
  11. package/main/commands/transpile.js +197 -0
  12. package/main/contracts/generate.js +31 -0
  13. package/main/contracts/install.js +107 -0
  14. package/main/contracts/message-composer.js +31 -0
  15. package/main/contracts/react-query.js +31 -0
  16. package/main/contracts/recoil.js +31 -0
  17. package/main/file.js +20 -0
  18. package/main/generators/create-aggregated-lcd-client.js +87 -0
  19. package/main/generators/create-all-stargate-clients.js +96 -0
  20. package/main/generators/create-amino-converters.js +43 -0
  21. package/main/generators/create-bundle.js +83 -0
  22. package/main/generators/create-cosmwasm-bundle.js +15 -0
  23. package/main/generators/create-custom-stargate-clients.js +100 -0
  24. package/main/generators/create-helpers.js +119 -0
  25. package/main/generators/create-index.js +75 -0
  26. package/main/generators/create-lcd-client-all.js +116 -0
  27. package/main/generators/create-lcd-client-scoped.js +89 -0
  28. package/main/generators/create-lcd-clients.js +78 -0
  29. package/main/generators/create-mcp-server.js +1853 -0
  30. package/main/generators/create-mobx-bundle.js +52 -0
  31. package/main/generators/create-msg-funcs.js +132 -0
  32. package/main/generators/create-pinia-store-bundle.js +50 -0
  33. package/main/generators/create-pinia-store.js +90 -0
  34. package/main/generators/create-query-funcs.js +133 -0
  35. package/main/generators/create-react-query-bundle.js +103 -0
  36. package/main/generators/create-registries.js +49 -0
  37. package/main/generators/create-root-readme.js +259 -0
  38. package/main/generators/create-rpc-msg-client-all.js +135 -0
  39. package/main/generators/create-rpc-msg-client-scoped.js +114 -0
  40. package/main/generators/create-rpc-msg-clients.js +116 -0
  41. package/main/generators/create-rpc-ops-bundle.js +119 -0
  42. package/main/generators/create-rpc-query-client-all.js +137 -0
  43. package/main/generators/create-rpc-query-client-scoped.js +110 -0
  44. package/main/generators/create-rpc-query-clients.js +198 -0
  45. package/main/generators/create-sdk-module-stargate-clients.js +95 -0
  46. package/main/generators/create-stargate-clients.js +96 -0
  47. package/main/generators/create-types.js +164 -0
  48. package/main/generators/customize-utils.js +50 -0
  49. package/main/helpers/__test__/internalTimestamp.js +49 -0
  50. package/main/helpers/__test__/internalTimestampBigint.js +45 -0
  51. package/main/helpers/binary-coder.js +535 -0
  52. package/main/helpers/decimals.js +111 -0
  53. package/main/helpers/external-comet.js +52 -0
  54. package/main/helpers/external-icjs.js +36 -0
  55. package/main/helpers/external.js +31 -0
  56. package/main/helpers/grpc-gateway.js +348 -0
  57. package/main/helpers/grpc-web.js +14 -0
  58. package/main/helpers/helper-func-types-interface.js +106 -0
  59. package/main/helpers/helper-func-types.js +93 -0
  60. package/main/helpers/index.js +38 -0
  61. package/main/helpers/internal-for-bigint.js +259 -0
  62. package/main/helpers/internal.js +240 -0
  63. package/main/helpers/json-safe.js +12 -0
  64. package/main/helpers/mobx.js +80 -0
  65. package/main/helpers/pinia-endpoint.js +20 -0
  66. package/main/helpers/react-query-hooks-icjs.js +223 -0
  67. package/main/helpers/react-query-hooks.js +258 -0
  68. package/main/helpers/react-query.js +93 -0
  69. package/main/helpers/registry-helper.js +229 -0
  70. package/main/helpers/types-helper.js +165 -0
  71. package/main/helpers/utf8-helper.js +146 -0
  72. package/main/helpers/varint.js +486 -0
  73. package/main/helpers/vue-query-hooks.js +226 -0
  74. package/main/imports.js +416 -0
  75. package/main/index.js +24 -0
  76. package/main/parse.js +194 -0
  77. package/main/prompt.js +64 -0
  78. package/main/protod/bufbuild.js +87 -0
  79. package/main/protod/config.js +30 -0
  80. package/main/protod/git-repo.js +58 -0
  81. package/main/protod/index.js +17 -0
  82. package/main/protod/recursive.js +134 -0
  83. package/main/protod/types.js +2 -0
  84. package/main/protod/utils.js +91 -0
  85. package/main/telescope.js +10 -0
  86. package/main/types.js +2 -0
  87. package/main/utils/common-create-bundle.js +29 -0
  88. package/main/utils/contracts.js +39 -0
  89. package/main/utils/files.js +138 -0
  90. package/main/utils/index.js +163 -0
  91. package/main/utils/unused.js +73 -0
  92. package/module/build.js +176 -0
  93. package/module/builder.js +222 -0
  94. package/module/bundle.js +128 -0
  95. package/module/bundler.js +96 -0
  96. package/module/cli.js +44 -0
  97. package/module/cmds.js +22 -0
  98. package/module/commands/download.js +94 -0
  99. package/module/commands/generate.js +123 -0
  100. package/module/commands/install.js +141 -0
  101. package/module/commands/transpile.js +169 -0
  102. package/module/contracts/generate.js +29 -0
  103. package/module/contracts/install.js +105 -0
  104. package/module/contracts/message-composer.js +29 -0
  105. package/module/contracts/react-query.js +29 -0
  106. package/module/contracts/recoil.js +29 -0
  107. package/module/file.js +18 -0
  108. package/module/generators/create-aggregated-lcd-client.js +83 -0
  109. package/module/generators/create-all-stargate-clients.js +92 -0
  110. package/module/generators/create-amino-converters.js +39 -0
  111. package/module/generators/create-bundle.js +79 -0
  112. package/module/generators/create-cosmwasm-bundle.js +11 -0
  113. package/module/generators/create-custom-stargate-clients.js +96 -0
  114. package/module/generators/create-helpers.js +112 -0
  115. package/module/generators/create-index.js +45 -0
  116. package/module/generators/create-lcd-client-all.js +89 -0
  117. package/module/generators/create-lcd-client-scoped.js +62 -0
  118. package/module/generators/create-lcd-clients.js +74 -0
  119. package/module/generators/create-mcp-server.js +1849 -0
  120. package/module/generators/create-mobx-bundle.js +25 -0
  121. package/module/generators/create-msg-funcs.js +128 -0
  122. package/module/generators/create-pinia-store-bundle.js +23 -0
  123. package/module/generators/create-pinia-store.js +86 -0
  124. package/module/generators/create-query-funcs.js +129 -0
  125. package/module/generators/create-react-query-bundle.js +76 -0
  126. package/module/generators/create-registries.js +45 -0
  127. package/module/generators/create-root-readme.js +255 -0
  128. package/module/generators/create-rpc-msg-client-all.js +108 -0
  129. package/module/generators/create-rpc-msg-client-scoped.js +87 -0
  130. package/module/generators/create-rpc-msg-clients.js +112 -0
  131. package/module/generators/create-rpc-ops-bundle.js +92 -0
  132. package/module/generators/create-rpc-query-client-all.js +110 -0
  133. package/module/generators/create-rpc-query-client-scoped.js +83 -0
  134. package/module/generators/create-rpc-query-clients.js +198 -0
  135. package/module/generators/create-sdk-module-stargate-clients.js +91 -0
  136. package/module/generators/create-stargate-clients.js +92 -0
  137. package/module/generators/create-types.js +137 -0
  138. package/module/generators/customize-utils.js +46 -0
  139. package/module/helpers/__test__/internalTimestamp.js +39 -0
  140. package/module/helpers/__test__/internalTimestampBigint.js +38 -0
  141. package/module/helpers/binary-coder.js +531 -0
  142. package/module/helpers/decimals.js +108 -0
  143. package/module/helpers/external-comet.js +49 -0
  144. package/module/helpers/external-icjs.js +33 -0
  145. package/module/helpers/external.js +28 -0
  146. package/module/helpers/grpc-gateway.js +345 -0
  147. package/module/helpers/grpc-web.js +11 -0
  148. package/module/helpers/helper-func-types-interface.js +102 -0
  149. package/module/helpers/helper-func-types.js +89 -0
  150. package/module/helpers/index.js +22 -0
  151. package/module/helpers/internal-for-bigint.js +255 -0
  152. package/module/helpers/internal.js +236 -0
  153. package/module/helpers/json-safe.js +9 -0
  154. package/module/helpers/mobx.js +77 -0
  155. package/module/helpers/pinia-endpoint.js +17 -0
  156. package/module/helpers/react-query-hooks-icjs.js +219 -0
  157. package/module/helpers/react-query-hooks.js +254 -0
  158. package/module/helpers/react-query.js +89 -0
  159. package/module/helpers/registry-helper.js +225 -0
  160. package/module/helpers/types-helper.js +161 -0
  161. package/module/helpers/utf8-helper.js +143 -0
  162. package/module/helpers/varint.js +483 -0
  163. package/module/helpers/vue-query-hooks.js +222 -0
  164. package/module/imports.js +382 -0
  165. package/module/index.js +8 -0
  166. package/module/parse.js +185 -0
  167. package/module/prompt.js +58 -0
  168. package/module/protod/bufbuild.js +76 -0
  169. package/module/protod/config.js +27 -0
  170. package/module/protod/git-repo.js +54 -0
  171. package/module/protod/index.js +1 -0
  172. package/module/protod/recursive.js +125 -0
  173. package/module/protod/types.js +1 -0
  174. package/module/protod/utils.js +77 -0
  175. package/module/telescope.js +8 -0
  176. package/module/types.js +1 -0
  177. package/module/utils/common-create-bundle.js +25 -0
  178. package/module/utils/contracts.js +33 -0
  179. package/module/utils/files.js +106 -0
  180. package/module/utils/index.js +143 -0
  181. package/module/utils/unused.js +47 -0
  182. package/package.json +115 -0
  183. package/src/build.ts +255 -0
  184. package/src/builder.ts +302 -0
  185. package/src/bundle.ts +160 -0
  186. package/src/bundler.ts +153 -0
  187. package/src/cli.js +51 -0
  188. package/src/cmds.js +25 -0
  189. package/src/commands/download.ts +120 -0
  190. package/src/commands/generate.ts +156 -0
  191. package/src/commands/install.ts +154 -0
  192. package/src/commands/transpile.ts +198 -0
  193. package/src/contracts/generate.ts +33 -0
  194. package/src/contracts/install.ts +118 -0
  195. package/src/contracts/message-composer.ts +34 -0
  196. package/src/contracts/react-query.ts +33 -0
  197. package/src/contracts/recoil.ts +32 -0
  198. package/src/file.js +20 -0
  199. package/src/generators/create-aggregated-lcd-client.ts +133 -0
  200. package/src/generators/create-all-stargate-clients.ts +121 -0
  201. package/src/generators/create-amino-converters.ts +62 -0
  202. package/src/generators/create-bundle.ts +97 -0
  203. package/src/generators/create-cosmwasm-bundle.ts +17 -0
  204. package/src/generators/create-custom-stargate-clients.ts +128 -0
  205. package/src/generators/create-helpers.ts +196 -0
  206. package/src/generators/create-index.ts +72 -0
  207. package/src/generators/create-lcd-client-all.ts +139 -0
  208. package/src/generators/create-lcd-client-scoped.ts +109 -0
  209. package/src/generators/create-lcd-clients.ts +108 -0
  210. package/src/generators/create-mcp-server.ts +1902 -0
  211. package/src/generators/create-mobx-bundle.ts +31 -0
  212. package/src/generators/create-msg-funcs.ts +219 -0
  213. package/src/generators/create-pinia-store-bundle.ts +35 -0
  214. package/src/generators/create-pinia-store.ts +121 -0
  215. package/src/generators/create-query-funcs.ts +224 -0
  216. package/src/generators/create-react-query-bundle.ts +111 -0
  217. package/src/generators/create-registries.ts +70 -0
  218. package/src/generators/create-root-readme.ts +316 -0
  219. package/src/generators/create-rpc-msg-client-all.ts +167 -0
  220. package/src/generators/create-rpc-msg-client-scoped.ts +147 -0
  221. package/src/generators/create-rpc-msg-clients.ts +165 -0
  222. package/src/generators/create-rpc-ops-bundle.ts +155 -0
  223. package/src/generators/create-rpc-query-client-all.ts +173 -0
  224. package/src/generators/create-rpc-query-client-scoped.ts +142 -0
  225. package/src/generators/create-rpc-query-clients.ts +304 -0
  226. package/src/generators/create-sdk-module-stargate-clients.ts +120 -0
  227. package/src/generators/create-stargate-clients.ts +123 -0
  228. package/src/generators/create-types.ts +236 -0
  229. package/src/generators/customize-utils.ts +54 -0
  230. package/src/helpers/__test__/internalTimestamp.test.ts +79 -0
  231. package/src/helpers/__test__/internalTimestamp.ts +58 -0
  232. package/src/helpers/__test__/internalTimestampBigint.test.ts +78 -0
  233. package/src/helpers/__test__/internalTimestampBigint.ts +58 -0
  234. package/src/helpers/binary-coder.ts +533 -0
  235. package/src/helpers/decimals.ts +108 -0
  236. package/src/helpers/external-comet.ts +49 -0
  237. package/src/helpers/external-icjs.ts +33 -0
  238. package/src/helpers/external.ts +28 -0
  239. package/src/helpers/grpc-gateway.ts +345 -0
  240. package/src/helpers/grpc-web.ts +11 -0
  241. package/src/helpers/helper-func-types-interface.ts +104 -0
  242. package/src/helpers/helper-func-types.ts +91 -0
  243. package/src/helpers/index.ts +22 -0
  244. package/src/helpers/internal-for-bigint.ts +257 -0
  245. package/src/helpers/internal.ts +238 -0
  246. package/src/helpers/json-safe.ts +11 -0
  247. package/src/helpers/mobx.ts +77 -0
  248. package/src/helpers/pinia-endpoint.ts +17 -0
  249. package/src/helpers/react-query-hooks-icjs.ts +223 -0
  250. package/src/helpers/react-query-hooks.ts +266 -0
  251. package/src/helpers/react-query.ts +101 -0
  252. package/src/helpers/registry-helper.ts +227 -0
  253. package/src/helpers/types-helper.ts +169 -0
  254. package/src/helpers/utf8-helper.ts +143 -0
  255. package/src/helpers/varint.ts +483 -0
  256. package/src/helpers/vue-query-hooks.ts +224 -0
  257. package/src/imports.ts +499 -0
  258. package/src/index.ts +12 -0
  259. package/src/parse.ts +243 -0
  260. package/src/prompt.js +65 -0
  261. package/src/protod/bufbuild.spec.ts +80 -0
  262. package/src/protod/bufbuild.ts +95 -0
  263. package/src/protod/config.ts +30 -0
  264. package/src/protod/git-repo.ts +74 -0
  265. package/src/protod/index.ts +1 -0
  266. package/src/protod/recursive.spec.ts +164 -0
  267. package/src/protod/recursive.ts +180 -0
  268. package/src/protod/test-data/.protod.config.json +42 -0
  269. package/src/protod/test-data/buf.lock +23 -0
  270. package/src/protod/test-data/buf.yaml +25 -0
  271. package/src/protod/test-data/buf2.yaml +20 -0
  272. package/src/protod/test-data/cosmos/buf.lock +23 -0
  273. package/src/protod/test-data/cosmos/crypto/secp256k1/keys.proto +38 -0
  274. package/src/protod/test-data/model.proto +101 -0
  275. package/src/protod/types.ts +55 -0
  276. package/src/protod/utils.spec.ts +68 -0
  277. package/src/protod/utils.ts +90 -0
  278. package/src/telescope.js +9 -0
  279. package/src/types.ts +46 -0
  280. package/src/utils/common-create-bundle.ts +62 -0
  281. package/src/utils/contracts.ts +37 -0
  282. package/src/utils/files.ts +145 -0
  283. package/src/utils/index.ts +150 -0
  284. package/src/utils/unused.ts +52 -0
  285. package/types/build.d.ts +41 -0
  286. package/types/builder.d.ts +50 -0
  287. package/types/bundle.d.ts +30 -0
  288. package/types/bundler.d.ts +31 -0
  289. package/types/cli.d.ts +1 -0
  290. package/types/cmds.d.ts +11 -0
  291. package/types/commands/download.d.ts +5 -0
  292. package/types/commands/generate.d.ts +2 -0
  293. package/types/commands/install.d.ts +2 -0
  294. package/types/commands/transpile.d.ts +4 -0
  295. package/types/contracts/generate.d.ts +2 -0
  296. package/types/contracts/install.d.ts +2 -0
  297. package/types/contracts/message-composer.d.ts +2 -0
  298. package/types/contracts/react-query.d.ts +2 -0
  299. package/types/contracts/recoil.d.ts +2 -0
  300. package/types/file.d.ts +2 -0
  301. package/types/generators/create-aggregated-lcd-client.d.ts +2 -0
  302. package/types/generators/create-all-stargate-clients.d.ts +3 -0
  303. package/types/generators/create-amino-converters.d.ts +3 -0
  304. package/types/generators/create-bundle.d.ts +3 -0
  305. package/types/generators/create-combined-stargate-clients.d.ts +3 -0
  306. package/types/generators/create-cosmwasm-bundle.d.ts +2 -0
  307. package/types/generators/create-custom-stargate-clients.d.ts +3 -0
  308. package/types/generators/create-helpers.d.ts +2 -0
  309. package/types/generators/create-index.d.ts +2 -0
  310. package/types/generators/create-lcd-client-all.d.ts +3 -0
  311. package/types/generators/create-lcd-client-scoped.d.ts +3 -0
  312. package/types/generators/create-lcd-clients.d.ts +3 -0
  313. package/types/generators/create-mcp-server.d.ts +3 -0
  314. package/types/generators/create-mobx-bundle.d.ts +2 -0
  315. package/types/generators/create-msg-funcs.d.ts +3 -0
  316. package/types/generators/create-pinia-store-bundle.d.ts +2 -0
  317. package/types/generators/create-pinia-store.d.ts +3 -0
  318. package/types/generators/create-query-funcs.d.ts +3 -0
  319. package/types/generators/create-react-query-bundle.d.ts +2 -0
  320. package/types/generators/create-registries.d.ts +3 -0
  321. package/types/generators/create-root-readme.d.ts +2 -0
  322. package/types/generators/create-rpc-msg-client-all.d.ts +3 -0
  323. package/types/generators/create-rpc-msg-client-scoped.d.ts +3 -0
  324. package/types/generators/create-rpc-msg-clients.d.ts +3 -0
  325. package/types/generators/create-rpc-ops-bundle.d.ts +2 -0
  326. package/types/generators/create-rpc-query-client-all.d.ts +3 -0
  327. package/types/generators/create-rpc-query-client-scoped.d.ts +3 -0
  328. package/types/generators/create-rpc-query-clients.d.ts +3 -0
  329. package/types/generators/create-scoped-stargate-clients.d.ts +3 -0
  330. package/types/generators/create-sdk-module-stargate-clients.d.ts +3 -0
  331. package/types/generators/create-stargate-clients.d.ts +3 -0
  332. package/types/generators/create-types.d.ts +3 -0
  333. package/types/generators/create-unified-stargate-clients.d.ts +3 -0
  334. package/types/generators/customize-utils.d.ts +2 -0
  335. package/types/helpers/__test__/internalTimestamp.d.ts +21 -0
  336. package/types/helpers/__test__/internalTimestampBigint.d.ts +20 -0
  337. package/types/helpers/binary-coder.d.ts +2 -0
  338. package/types/helpers/decimals.d.ts +1 -0
  339. package/types/helpers/external-comet.d.ts +1 -0
  340. package/types/helpers/external-icjs.d.ts +1 -0
  341. package/types/helpers/external.d.ts +1 -0
  342. package/types/helpers/generated-type.d.ts +1 -0
  343. package/types/helpers/grpc-gateway.d.ts +1 -0
  344. package/types/helpers/grpc-web.d.ts +1 -0
  345. package/types/helpers/helper-func-types-interface.d.ts +2 -0
  346. package/types/helpers/helper-func-types.d.ts +2 -0
  347. package/types/helpers/index.d.ts +22 -0
  348. package/types/helpers/internal-for-bigint.d.ts +2 -0
  349. package/types/helpers/internal.d.ts +2 -0
  350. package/types/helpers/internalForBigInt.d.ts +1 -0
  351. package/types/helpers/json-safe.d.ts +1 -0
  352. package/types/helpers/mobx.d.ts +1 -0
  353. package/types/helpers/pinia-endpoint.d.ts +1 -0
  354. package/types/helpers/react-query-hooks-icjs.d.ts +2 -0
  355. package/types/helpers/react-query-hooks.d.ts +2 -0
  356. package/types/helpers/react-query.d.ts +2 -0
  357. package/types/helpers/registry-helper.d.ts +2 -0
  358. package/types/helpers/types-helper.d.ts +2 -0
  359. package/types/helpers/types.d.ts +1 -0
  360. package/types/helpers/utf8-helper.d.ts +1 -0
  361. package/types/helpers/varint.d.ts +1 -0
  362. package/types/helpers/vue-query-hooks.d.ts +2 -0
  363. package/types/helpers/vue-query.d.ts +2 -0
  364. package/types/imports.d.ts +17 -0
  365. package/types/index.d.ts +6 -0
  366. package/types/parse.d.ts +15 -0
  367. package/types/prompt.d.ts +3 -0
  368. package/types/protod/bufbuild.d.ts +6 -0
  369. package/types/protod/config.d.ts +7 -0
  370. package/types/protod/git-repo.d.ts +11 -0
  371. package/types/protod/index.d.ts +1 -0
  372. package/types/protod/proto-download.d.ts +2 -0
  373. package/types/protod/recursive.d.ts +4 -0
  374. package/types/protod/types.d.ts +49 -0
  375. package/types/protod/utils.d.ts +11 -0
  376. package/types/telescope.d.ts +2 -0
  377. package/types/types.d.ts +43 -0
  378. package/types/utils/common-create-bundle.d.ts +18 -0
  379. package/types/utils/contracts.d.ts +6 -0
  380. package/types/utils/files.d.ts +5 -0
  381. package/types/utils/index.d.ts +16 -0
  382. package/types/utils/unused.d.ts +5 -0
package/src/builder.ts ADDED
@@ -0,0 +1,302 @@
1
+ import { ProtoStore } from '@cosmology/proto-parser';
2
+ import { TelescopeParseContext } from './build';
3
+ import { TelescopeOptions, defaultTelescopeOptions } from '@cosmology/types';
4
+ import { toPosixPath } from '@cosmology/utils';
5
+ import { bundlePackages } from './bundle';
6
+ import { BundlerFile, TelescopeInput } from './types';
7
+ import { Bundler } from './bundler';
8
+ import deepmerge from 'deepmerge';
9
+ import { resolve } from 'path';
10
+
11
+ import { plugin as createTypes } from './generators/create-types';
12
+ import { plugin as createAminoConverters } from './generators/create-amino-converters';
13
+ import { plugin as createRegistries } from './generators/create-registries';
14
+ import { plugin as createLCDClients } from './generators/create-lcd-clients';
15
+ import { plugin as createAggregatedLCDClient } from './generators/create-aggregated-lcd-client';
16
+ import { plugin as createLCDClientsScoped } from './generators/create-lcd-client-scoped';
17
+ import { plugin as createLCDClientsAll } from './generators/create-lcd-client-all';
18
+ import { plugin as createRPCQueryClientsScoped } from './generators/create-rpc-query-client-scoped';
19
+ import { plugin as createRPCQueryClientsAll } from './generators/create-rpc-query-client-all';
20
+ import { plugin as createRPCMsgClientsScoped } from './generators/create-rpc-msg-client-scoped';
21
+ import { plugin as createRPCMsgClientsAll } from './generators/create-rpc-msg-client-all';
22
+ import { plugin as createRPCQueryClients } from './generators/create-rpc-query-clients';
23
+ import { plugin as createRPCMsgClients } from './generators/create-rpc-msg-clients';
24
+ import { plugin as createQueryFuncs } from './generators/create-query-funcs';
25
+ import { plugin as createMsgFuncs } from './generators/create-msg-funcs';
26
+ import { plugin as createReactQueryBundle } from './generators/create-react-query-bundle';
27
+ import { plugin as createMobxBundle } from './generators/create-mobx-bundle';
28
+ import { plugin as createStargateClients } from './generators/create-stargate-clients';
29
+ import { plugin as createCustomStargateClients } from './generators/create-custom-stargate-clients';
30
+ import { plugin as createAllStargateClients } from './generators/create-all-stargate-clients';
31
+ import { plugin as createSdkModuleStargateClients } from './generators/create-sdk-module-stargate-clients';
32
+ import { plugin as createBundle } from './generators/create-bundle';
33
+ import { plugin as createIndex } from './generators/create-index';
34
+ import { plugin as createHelpers } from './generators/create-helpers';
35
+ import { plugin as createCosmWasmBundle } from './generators/create-cosmwasm-bundle';
36
+ import { plugin as createPiniaStore } from './generators/create-pinia-store';
37
+ import { plugin as createPiniaStoreBundle } from './generators/create-pinia-store-bundle';
38
+ import { plugin as createRpcOpsBundle } from './generators/create-rpc-ops-bundle';
39
+ import { plugin as customizeUtils } from './generators/customize-utils';
40
+ import { plugin as createRootReadme } from './generators/create-root-readme';
41
+ import { plugin as createMcpServer } from './generators/create-mcp-server';
42
+
43
+ const sanitizeOptions = (options: TelescopeOptions): TelescopeOptions => {
44
+ // If an element at the same key is present for both x and y, the value from y will appear in the result.
45
+ options = deepmerge(defaultTelescopeOptions, options ?? {});
46
+ // correct the path for windows
47
+ if (options.cosmwasm) {
48
+ options.cosmwasm.outPath = toPosixPath(options.cosmwasm.outPath);
49
+ options.cosmwasm.contracts = options.cosmwasm.contracts.map(
50
+ (item: { name: string; dir: string }) => {
51
+ item.dir = toPosixPath(item.dir);
52
+ return item;
53
+ }
54
+ );
55
+ }
56
+ // strip off leading slashes
57
+ options.tsDisable.files = options.tsDisable.files.map((file) =>
58
+ file.startsWith('/') ? file : file.replace(/^\//, '')
59
+ );
60
+ options.eslintDisable.files = options.eslintDisable.files.map((file) =>
61
+ file.startsWith('/') ? file : file.replace(/^\//, '')
62
+ );
63
+ // uniq bc of deepmerge
64
+ options.rpcClients.enabledServices = [
65
+ ...new Set([...options.rpcClients.enabledServices]),
66
+ ];
67
+ return options;
68
+ };
69
+
70
+ export class TelescopeBuilder {
71
+ store: ProtoStore;
72
+ protoDirs: string[];
73
+ outPath: string;
74
+ options: TelescopeOptions;
75
+ contexts: TelescopeParseContext[] = [];
76
+ files: string[] = [];
77
+
78
+ readonly converters: BundlerFile[] = [];
79
+ readonly lcdClients: BundlerFile[] = [];
80
+ readonly rpcQueryClients: BundlerFile[] = [];
81
+ readonly rpcMsgClients: BundlerFile[] = [];
82
+ readonly registries: BundlerFile[] = [];
83
+ readonly stateManagers: Record<string, BundlerFile[]> = {};
84
+
85
+ // Function mapping storage: package -> service -> method -> functionName
86
+ readonly functionMappings: Record<string, Record<string, Record<string, {
87
+ functionName: string;
88
+ hookName: string;
89
+ comment?: string;
90
+ requestType: string;
91
+ responseType: string;
92
+ sourceFilename?: string;
93
+ hookSourceFilename?: string;
94
+ typeSourceFilename?: string;
95
+ }>>> = {};
96
+
97
+ constructor({
98
+ protoDirs,
99
+ outPath,
100
+ store,
101
+ options,
102
+ }: TelescopeInput & { store?: ProtoStore }) {
103
+ const fixedDirs = protoDirs.map((directory) => {
104
+ return toPosixPath(directory);
105
+ });
106
+
107
+ this.protoDirs = fixedDirs;
108
+ this.outPath = resolve(toPosixPath(outPath));
109
+ this.options = sanitizeOptions(options);
110
+ this.store = store ?? new ProtoStore(fixedDirs, this.options);
111
+ this.store.traverseAll();
112
+
113
+ }
114
+
115
+ context(ref) {
116
+ const ctx = new TelescopeParseContext(ref, this.store, this.options);
117
+ this.contexts.push(ctx);
118
+ return ctx;
119
+ }
120
+
121
+ addFunctionMapping(
122
+ packageName: string,
123
+ serviceName: string,
124
+ methodName: string,
125
+ functionName: string,
126
+ hookName: string,
127
+ comment?: string,
128
+ requestType?: string,
129
+ responseType?: string,
130
+ sourceFilename?: string,
131
+ hookSourceFilename?: string,
132
+ typeSourceFilename?: string
133
+ ) {
134
+ if (!this.functionMappings[packageName]) {
135
+ this.functionMappings[packageName] = {};
136
+ }
137
+ if (!this.functionMappings[packageName][serviceName]) {
138
+ this.functionMappings[packageName][serviceName] = {};
139
+ }
140
+
141
+ this.functionMappings[packageName][serviceName][methodName] = {
142
+ functionName,
143
+ hookName,
144
+ comment,
145
+ requestType,
146
+ responseType,
147
+ sourceFilename,
148
+ hookSourceFilename,
149
+ typeSourceFilename
150
+ };
151
+ }
152
+
153
+ getFunctionMappings() {
154
+ return this.functionMappings;
155
+ }
156
+
157
+ addStateManagers(type: string, files: BundlerFile[]) {
158
+ const state = this.stateManagers[type];
159
+
160
+ if (!state) {
161
+ this.stateManagers[type] = [];
162
+ }
163
+
164
+ [].push.apply(this.stateManagers[type], files);
165
+ }
166
+
167
+ addRPCQueryClients(files: BundlerFile[]) {
168
+ [].push.apply(this.rpcQueryClients, files);
169
+ }
170
+
171
+ addRPCMsgClients(files: BundlerFile[]) {
172
+ [].push.apply(this.rpcMsgClients, files);
173
+ }
174
+
175
+ addLCDClients(files: BundlerFile[]) {
176
+ [].push.apply(this.lcdClients, files);
177
+ }
178
+
179
+ addRegistries(files: BundlerFile[]) {
180
+ [].push.apply(this.registries, files);
181
+ }
182
+
183
+ addConverters(files: BundlerFile[]) {
184
+ [].push.apply(this.converters, files);
185
+ }
186
+
187
+
188
+
189
+
190
+ async build() {
191
+ // check warnings
192
+ if (
193
+ !this.options.aminoEncoding?.enabled &&
194
+ (this.options.prototypes?.methods?.fromAmino ||
195
+ this.options.prototypes?.methods?.toAmino)
196
+ ) {
197
+ console.warn(
198
+ "There could be compilation errors in generated code, because 'aminoEncoding.enabled: false' means amino types wouldn't be created, but 'toAmino' or 'fromAmino' need amino types."
199
+ );
200
+ }
201
+
202
+ if (!this.options.prototypes.methods.fromPartial) {
203
+ console.warn(
204
+ "The 'fromPartial' option will be deprecated in a future version. Encoder objects need fromPartial to be a creator function to create instance of the type. So it should always be left on, otherwise there could be compilation errors in generated code."
205
+ );
206
+ }
207
+
208
+ customizeUtils(this);
209
+
210
+ const allConverters = [];
211
+ const allRegistries = [];
212
+ // [x] get bundle of all packages
213
+ const bundles = bundlePackages(this.store).map((bundle) => {
214
+ // store bundleFile in filesToInclude
215
+ const bundler = new Bundler(this, bundle);
216
+
217
+
218
+ // [x] write out all TS files for package
219
+ createTypes(this, bundler);
220
+
221
+ // [x] write out one amino helper for all contexts w/mutations
222
+ createAminoConverters(this, bundler);
223
+
224
+ // [x] write out one registry helper for all contexts w/mutations
225
+ createRegistries(this, bundler);
226
+
227
+ // [x] write out one registry helper for all contexts w/mutations
228
+ createLCDClients(this, bundler);
229
+
230
+ createQueryFuncs(this, bundler);
231
+ createRPCQueryClients(this, bundler);
232
+ createMsgFuncs(this, bundler);
233
+ createRPCMsgClients(this, bundler);
234
+ createPiniaStore(this, bundler);
235
+
236
+ if (this.options.rpcClients.clientStyle.useUpdatedClientStyle) {
237
+ // generate sdk-module client file
238
+ if (this.options.rpcClients.clientStyle.type.includes('sdk-module-client') && this.options.rpcClients.clientStyle.sdkModuleClientOption.includes(bundler.bundle.base)) {
239
+ createSdkModuleStargateClients(this, bundler)
240
+ }
241
+
242
+ // store registry and converter for all/custom client generation
243
+ if (bundler.registries) {
244
+ allRegistries.push(...bundler.registries)
245
+ }
246
+ if (bundler.converters) {
247
+ allConverters.push(...bundler.converters)
248
+ }
249
+ } else {
250
+ // [x] write out one client for each base package, referencing the last two steps
251
+ createStargateClients(this, bundler);
252
+ }
253
+ return bundler;
254
+ });
255
+
256
+ if (this.options.rpcClients.clientStyle.useUpdatedClientStyle) {
257
+ // generate cutsom client file
258
+ if (this.options.rpcClients.clientStyle.type.includes('custom-client') && this.options.rpcClients.clientStyle.customClientOption && this.options.rpcClients.clientStyle.customClientOption.length !== 0) {
259
+ createCustomStargateClients(this, allRegistries, allConverters)
260
+ }
261
+ // generate all module client file
262
+ if (this.options.rpcClients.clientStyle.type.includes('all-client')) {
263
+ createAllStargateClients(this, allRegistries, allConverters)
264
+ }
265
+ }
266
+
267
+ // post run plugins
268
+ bundles.forEach((bundler) => {
269
+ createLCDClientsAll(this, bundler);
270
+ createLCDClientsScoped(this, bundler);
271
+ createRPCQueryClientsAll(this, bundler);
272
+ createRPCQueryClientsScoped(this, bundler);
273
+ createRPCMsgClientsAll(this, bundler);
274
+ createRPCMsgClientsScoped(this, bundler);
275
+ createBundle(this, bundler);
276
+ });
277
+
278
+ createRpcOpsBundle(this);
279
+ createReactQueryBundle(this);
280
+ createMobxBundle(this);
281
+ createAggregatedLCDClient(this);
282
+ await createCosmWasmBundle(this);
283
+
284
+ createHelpers(this);
285
+ createPiniaStoreBundle(this);
286
+
287
+ // finally, write one index file with all files, exported
288
+ createIndex(this);
289
+ createRootReadme(this);
290
+
291
+ // Generate MCP server at the very end after all files are written
292
+ if (this.options.mcpServer?.enabled && bundles.length > 0) {
293
+ // Use the first bundle that has contexts (typically the main aggregated bundle)
294
+ const primaryBundle = bundles.find(bundler => bundler.contexts.length > 0);
295
+ if (primaryBundle) {
296
+ createMcpServer(this, primaryBundle);
297
+ }
298
+ }
299
+
300
+ console.log(`✨ files transpiled in '${this.outPath}'`);
301
+ }
302
+ }
package/src/bundle.ts ADDED
@@ -0,0 +1,160 @@
1
+ import { ProtoStore, isRefExcluded, createEmptyProtoRef } from '@cosmology/proto-parser';
2
+ import { importNamespace } from '@cosmology/ast';
3
+ import * as dotty from 'dotty';
4
+ import { TelescopeBuilder } from './index';
5
+ import { join, relative, dirname } from 'path';
6
+ import { TelescopeParseContext } from './build';
7
+ import { TelescopeOptions } from '@cosmology/types';
8
+ import { toPosixPath } from '@cosmology/utils';
9
+
10
+ // TODO move to store
11
+ export const getPackages = (store: ProtoStore) => {
12
+ return store.getProtos().reduce((m, proto) => {
13
+ if (proto.proto.package) {
14
+ m[proto.proto.package] = m[proto.proto.package] || []
15
+ m[proto.proto.package].push(proto);
16
+ }
17
+ return m;
18
+ }, {});
19
+ }
20
+
21
+ export const getPackagesBundled = (store: ProtoStore) => {
22
+ const objectified = {};
23
+ const pkgs = getPackages(store);
24
+ Object.keys(pkgs).forEach(key => {
25
+ if (isRefExcluded(createEmptyProtoRef(key), store.options.prototypes?.excluded)) return;
26
+ const files = pkgs[key];
27
+ dotty.put(objectified, key, {
28
+ pkg: key,
29
+ files: files.filter(file => {
30
+ return !isRefExcluded(createEmptyProtoRef(key, file.filename), store.options.prototypes?.excluded);
31
+ })
32
+ });
33
+ });
34
+ return objectified;
35
+
36
+ }
37
+
38
+ export const bundlePackages = (store: ProtoStore) => {
39
+ const allPackages = getPackagesBundled(store);
40
+ return Object.keys(allPackages).map(base => {
41
+ const pkgs = allPackages[base];
42
+ const bundleVariables = {};
43
+ const bundleFile = toPosixPath(join(base, 'bundle.ts'));
44
+ const importPaths = [];
45
+ parsePackage(store.options, pkgs, bundleFile, importPaths, bundleVariables);
46
+ return {
47
+ bundleVariables,
48
+ bundleFile,
49
+ importPaths,
50
+ base
51
+ };
52
+ });
53
+ };
54
+
55
+ // TODO review bundle registry methods
56
+ export const bundleRegistries = (telescope: TelescopeBuilder) => {
57
+ const withMutations = telescope.contexts.filter(
58
+ ctx => ctx.mutations.length
59
+ );
60
+ const obj = withMutations.reduce((m, ctx) => {
61
+ m[ctx.ref.proto.package] = m[ctx.ref.proto.package] ?? [];
62
+ m[ctx.ref.proto.package].push(ctx);
63
+ return m;
64
+ }, {});
65
+
66
+ return Object.entries(obj)
67
+ .map(([pkg, serviceProtos]) => {
68
+ return {
69
+ package: pkg,
70
+ contexts: serviceProtos
71
+ };
72
+ });
73
+ }
74
+
75
+ export const bundleBaseRegistries = (telescope: TelescopeBuilder) => {
76
+ const withMutations = telescope.contexts.filter(
77
+ ctx => ctx.mutations.length
78
+ );
79
+ const obj = withMutations.reduce((m, ctx) => {
80
+ const base = ctx.ref.proto.package.split('.')[0];
81
+ m[base] = m[base] ?? {};
82
+ m[base][ctx.ref.proto.package] = m[base][ctx.ref.proto.package] ?? [];
83
+ m[base][ctx.ref.proto.package].push(ctx);
84
+ return m;
85
+ }, {});
86
+
87
+ return Object.entries(obj)
88
+ .map(([pkg, withServices]) => {
89
+
90
+ const serviceProtos = Object.entries(withServices)
91
+ .map(([pkg, withServices]) => {
92
+ return {
93
+ package: pkg,
94
+ contexts: withServices
95
+ }
96
+ });
97
+
98
+
99
+ return {
100
+ base: pkg,
101
+ pkgs: serviceProtos
102
+ };
103
+ });
104
+ };
105
+
106
+ export const parseContextsForRegistry = (contexts: TelescopeParseContext[]) => {
107
+ return contexts.map((ctx: TelescopeParseContext) => {
108
+ const responses = ctx.mutations.map(m => m.response)
109
+ const imports = ctx.mutations.reduce((m, msg) => {
110
+ m[msg.messageImport] = m[msg.messageImport] ?? [];
111
+ m[msg.messageImport].push(msg.message);
112
+ return m;
113
+ }, {})
114
+
115
+ return {
116
+ filename: ctx.ref.filename,
117
+ imports,
118
+ objects: ctx.types
119
+ .filter(type => !type.isNested)
120
+ .filter(type => !responses.includes(type.name))
121
+ .map(type => type.name)
122
+ }
123
+ });
124
+ };
125
+
126
+ export const parsePackage = (
127
+ options: TelescopeOptions,
128
+ obj,
129
+ bundleFile,
130
+ importPaths,
131
+ bundleVariables
132
+ ) => {
133
+ if (!obj) return;
134
+ if (obj.pkg && obj.files) {
135
+ obj.files.forEach(file => {
136
+ createFileBundle(options, obj.pkg, file.filename, bundleFile, importPaths, bundleVariables);
137
+ });
138
+ return;
139
+ }
140
+ Object.keys(obj).forEach(mini => {
141
+ parsePackage(options, obj[mini], bundleFile, importPaths, bundleVariables);
142
+ })
143
+ }
144
+
145
+ let counter = 0;
146
+ export const createFileBundle = (
147
+ options: TelescopeOptions,
148
+ pkg,
149
+ filename,
150
+ bundleFile,
151
+ importPaths,
152
+ bundleVariables
153
+ ) => {
154
+ let rel = relative(dirname(bundleFile), filename);
155
+ if (!rel.startsWith('.')) rel = `./${rel}`;
156
+ const variable = `_${counter++}`;
157
+ importPaths.push(importNamespace(variable, toPosixPath(rel)));
158
+ dotty.put(bundleVariables, pkg + '.__export', true);
159
+ dotty.put(bundleVariables, pkg + '.' + variable, true);
160
+ }
package/src/bundler.ts ADDED
@@ -0,0 +1,153 @@
1
+ import * as t from "@babel/types";
2
+ import { resolve, join, dirname, relative, extname } from "path";
3
+ import { TelescopeParseContext } from "./build";
4
+ import { createFileBundle } from "./bundle";
5
+ import { TelescopeBuilder } from "./builder";
6
+ import { ProtoRef } from "@cosmology/types";
7
+ import { Bundle, BundlerFile } from "./types";
8
+ import { writeAstToFile } from "./utils/files";
9
+ import { toPosixPath } from "@cosmology/utils";
10
+
11
+ export class Bundler {
12
+ builder: TelescopeBuilder;
13
+
14
+ contexts: TelescopeParseContext[] = [];
15
+ bundle: Bundle;
16
+ files: string[];
17
+
18
+ readonly converters: BundlerFile[] = [];
19
+ readonly lcdClients: BundlerFile[] = [];
20
+ readonly rpcQueryClients: BundlerFile[] = [];
21
+ readonly rpcMsgClients: BundlerFile[] = [];
22
+ readonly registries: BundlerFile[] = [];
23
+ readonly stateManagers: Record<string, BundlerFile[]> = {};
24
+
25
+ constructor(builder: TelescopeBuilder, bundle: Bundle) {
26
+ this.builder = builder;
27
+ this.bundle = bundle;
28
+ this.files = [bundle.bundleFile];
29
+ }
30
+
31
+ addStateManagers(type: string, files: BundlerFile[]) {
32
+ const state = this.stateManagers[type];
33
+
34
+ if (!state) {
35
+ this.stateManagers[type] = [];
36
+ }
37
+
38
+ [].push.apply(this.stateManagers[type], files);
39
+
40
+ this.builder.addStateManagers(type, files);
41
+ }
42
+
43
+ addLCDClients(files: BundlerFile[]) {
44
+ [].push.apply(this.lcdClients, files);
45
+ this.builder.addLCDClients(files);
46
+ }
47
+
48
+ addRPCQueryClients(files: BundlerFile[]) {
49
+ [].push.apply(this.rpcQueryClients, files);
50
+ this.builder.addRPCQueryClients(files);
51
+ }
52
+
53
+ addRPCMsgClients(files: BundlerFile[]) {
54
+ [].push.apply(this.rpcMsgClients, files);
55
+ this.builder.addRPCMsgClients(files);
56
+ }
57
+
58
+ addRegistries(files: BundlerFile[]) {
59
+ [].push.apply(this.registries, files);
60
+ this.builder.addRegistries(files);
61
+ }
62
+
63
+ addConverters(files: BundlerFile[]) {
64
+ [].push.apply(this.converters, files);
65
+ this.builder.addConverters(files);
66
+ }
67
+
68
+ getFreshContext(context: TelescopeParseContext) {
69
+ return new TelescopeParseContext(
70
+ context.ref,
71
+ context.store,
72
+ this.builder.options
73
+ );
74
+ }
75
+
76
+ getLocalFilename(ref: ProtoRef, suffix?: string) {
77
+ return suffix
78
+ ? ref.filename.replace(/\.proto$/, `.${suffix}.ts`)
79
+ : ref.filename.replace(/\.proto$/, `.ts`);
80
+ }
81
+
82
+ getFilename(localname: string) {
83
+ return resolve(join(this.builder.outPath, localname));
84
+ }
85
+
86
+ writeAst(program: t.Statement[], filename: string) {
87
+ writeAstToFile(
88
+ this.builder.outPath,
89
+ this.builder.options,
90
+ program,
91
+ filename
92
+ );
93
+ }
94
+
95
+ // addToBundle adds the path into the namespaced bundle object
96
+ addToBundle(context: TelescopeParseContext, localname: string) {
97
+ createFileBundle(
98
+ this.builder.options,
99
+ context.ref.proto.package,
100
+ localname,
101
+ this.bundle.bundleFile,
102
+ this.bundle.importPaths,
103
+ this.bundle.bundleVariables
104
+ );
105
+ }
106
+
107
+ addToBundleToPackage(packagename: string, localname: string) {
108
+ createFileBundle(
109
+ this.builder.options,
110
+ packagename,
111
+ localname,
112
+ this.bundle.bundleFile,
113
+ this.bundle.importPaths,
114
+ this.bundle.bundleVariables
115
+ );
116
+ }
117
+
118
+ addExportObjToBundle(
119
+ pkg: string,
120
+ localname: string,
121
+ exportedIdentifiers: string[],
122
+ isHelperFunc?: boolean
123
+ ) {
124
+ if (!this.bundle.exportObjs) {
125
+ this.bundle.exportObjs = [];
126
+ }
127
+
128
+ let rel = relative(dirname(this.bundle.bundleFile), localname);
129
+ if (!rel.startsWith(".")) rel = `./${rel}`;
130
+ rel = toPosixPath(rel);
131
+ rel = rel.replace(extname(rel), "");
132
+
133
+ const existing = this.bundle.exportObjs.find(
134
+ (e) => e.localname === localname
135
+ );
136
+
137
+ if (existing) {
138
+ // use Set to avoid duplicates
139
+ existing.exportedIdentifiers = [
140
+ ...new Set([...existing.exportedIdentifiers, ...exportedIdentifiers]),
141
+ ];
142
+ return;
143
+ }
144
+
145
+ this.bundle.exportObjs.push({
146
+ localname,
147
+ relativePath: rel,
148
+ exportedIdentifiers: [...new Set(exportedIdentifiers)],
149
+ isHelperFunc,
150
+ pkg,
151
+ });
152
+ }
153
+ }
package/src/cli.js ADDED
@@ -0,0 +1,51 @@
1
+ import { prompt } from './prompt';
2
+ import { Commands as commands } from './cmds';
3
+ import { Contracts as contracts } from './cmds';
4
+ import * as pkg from '../package.json';
5
+
6
+ export const cli = async (argv) => {
7
+ if (argv.v || argv.version) {
8
+ console.log(pkg.version);
9
+ return;
10
+ }
11
+
12
+ if (argv.contract) {
13
+ const { cmd } = await prompt(
14
+ [
15
+ {
16
+ _: true,
17
+ type: 'fuzzy',
18
+ name: 'cmd',
19
+ message: 'what do you want to do?',
20
+ choices: Object.keys(contracts)
21
+ }
22
+ ],
23
+ argv
24
+ );
25
+ if (typeof contracts[cmd] === 'function') {
26
+ await contracts[cmd](argv);
27
+ } else {
28
+ console.log('command not found.');
29
+ }
30
+ return;
31
+ }
32
+
33
+ console.log(`Telescope ${pkg.version}`);
34
+ const { cmd } = await prompt(
35
+ [
36
+ {
37
+ _: true,
38
+ type: 'fuzzy',
39
+ name: 'cmd',
40
+ message: 'what do you want to do?',
41
+ choices: Object.keys(commands)
42
+ }
43
+ ],
44
+ argv
45
+ );
46
+ if (typeof commands[cmd] === 'function') {
47
+ await commands[cmd](argv);
48
+ } else {
49
+ console.log('command not found.');
50
+ }
51
+ };
package/src/cmds.js ADDED
@@ -0,0 +1,25 @@
1
+ import _commands_generate from './commands/generate';
2
+ import _commands_install from './commands/install';
3
+ import _commands_download from './commands/download';
4
+ import _commands_transpile from './commands/transpile';
5
+ const Commands = {};
6
+ Commands['generate'] = _commands_generate;
7
+ Commands['install'] = _commands_install;
8
+ Commands['download'] = _commands_download;
9
+ Commands['transpile'] = _commands_transpile;
10
+
11
+ export { Commands };
12
+
13
+ import _contracts_generate from './contracts/generate';
14
+ import _contracts_install from './contracts/install';
15
+ import _contracts_message_composer from './contracts/message-composer';
16
+ import _contracts_react_query from './contracts/react-query';
17
+ import _contracts_recoil from './contracts/recoil';
18
+ const Contracts = {};
19
+ Contracts['generate'] = _contracts_generate;
20
+ Contracts['install'] = _contracts_install;
21
+ Contracts['message-composer'] = _contracts_message_composer;
22
+ Contracts['react-query'] = _contracts_react_query;
23
+ Contracts['recoil'] = _contracts_recoil;
24
+
25
+ export { Contracts };