@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
@@ -0,0 +1,143 @@
1
+ import { relative, dirname, extname } from 'path';
2
+ import { restoreExtension, toPosixPath } from '@cosmology/utils';
3
+ export const getRoot = (ref) => {
4
+ if (ref.traversed)
5
+ return ref.traversed;
6
+ return ref.proto;
7
+ };
8
+ // default example:
9
+ // Long: { type: 'default', path: 'long', name: 'Long ' },
10
+ // namespaced:
11
+ // _m0: { type: 'namespace', path: 'protobufjs/minimal', name: '_m0' },
12
+ export const UTILS = {
13
+ _m0: { type: 'namespace', path: 'protobufjs/minimal', name: '_m0' },
14
+ AminoHeight: '__helpers__',
15
+ AminoMsg: '@cosmjs/amino',
16
+ AminoTypes: '@cosmjs/stargate',
17
+ base64FromBytes: '__helpers__',
18
+ bytesFromBase64: '__helpers__',
19
+ BrowserHeaders: 'browser-headers',
20
+ connectComet: '@cosmjs/tendermint-rpc',
21
+ Decimal: '@cosmjs/math',
22
+ padDecimal: '__helpers__',
23
+ createProtobufRpcClient: '@cosmjs/stargate',
24
+ Pubkey: '@cosmjs/amino',
25
+ decodeBech32Pubkey: '@cosmjs/amino',
26
+ DeepPartial: '__helpers__',
27
+ defaultRegistryTypes: '@cosmjs/stargate',
28
+ encodeBech32Pubkey: '@cosmjs/amino',
29
+ Exact: '__helpers__',
30
+ fm: { type: 'namespace', path: '__grpc-gateway__', name: 'fm' },
31
+ encodePubkey: '@cosmjs/proto-signing',
32
+ decodePubkey: '@cosmjs/proto-signing',
33
+ fromBase64: '@cosmjs/encoding',
34
+ fromBech32: '@cosmjs/encoding',
35
+ fromDuration: '__helpers__',
36
+ fromHex: '@cosmjs/encoding',
37
+ fromJsonTimestamp: '__helpers__',
38
+ fromTimestamp: '__helpers__',
39
+ fromUtf8: '@cosmjs/encoding',
40
+ GeneratedType: '@cosmjs/proto-signing',
41
+ createTm34QueryClient: '__extern__',
42
+ createConnectCometQueryClient: '__extern__',
43
+ getRpcClient: '__extern__',
44
+ createRpcClient: '__extern__',
45
+ getRpcEndpointKey: '__extern__',
46
+ HttpEndpoint: '@cosmjs/tendermint-rpc',
47
+ isObject: '__helpers__',
48
+ isSet: '__helpers__',
49
+ LCDClient: '@cosmology/lcd',
50
+ Long: '__helpers__',
51
+ OfflineSigner: '@cosmjs/proto-signing',
52
+ omitDefault: '__helpers__',
53
+ ProtobufRpcClient: '@cosmjs/stargate',
54
+ QueryClient: '@cosmjs/stargate',
55
+ Registry: '@cosmjs/proto-signing',
56
+ Rpc: '__helpers__',
57
+ StdFee: '__types__',
58
+ TxRpc: '__types__',
59
+ BroadcastTxReq: '__types__',
60
+ BroadcastTxRes: '__types__',
61
+ DeliverTxResponse: '__types__',
62
+ EncodeObject: '__types__',
63
+ SigningClientParams: '__types__',
64
+ grpc: '@improbable-eng/grpc-web',
65
+ setPaginationParams: '__helpers__',
66
+ SigningStargateClient: '@cosmjs/stargate',
67
+ Tendermint34Client: '@cosmjs/tendermint-rpc',
68
+ toBase64: '@cosmjs/encoding',
69
+ toDuration: '__helpers__',
70
+ toTimestamp: '__helpers__',
71
+ toUtf8: '@cosmjs/encoding',
72
+ useQuery: '@tanstack/react-query',
73
+ ComputedRef: 'vue',
74
+ computed: 'vue',
75
+ Ref: 'vue',
76
+ useRpcEndpoint: '__react-query__',
77
+ useRpcClient: '__react-query__',
78
+ useTendermintClient: '__react-query__',
79
+ ReactQueryParams: '__react-query__',
80
+ buildUseMutation: '__react-query__',
81
+ UseQueryParams: '__react-query__',
82
+ buildUseQuery: '__react-query__',
83
+ UseQueryOptions: '@tanstack/react-query',
84
+ buildUseVueMutation: '__vue-query__',
85
+ buildUseVueQuery: '__vue-query__',
86
+ QueryStore: '__mobx__',
87
+ MobxResponse: '__mobx__',
88
+ useEndpoint: '__pinia-endpoint__',
89
+ JsonSafe: '__json-safe__',
90
+ override: 'mobx',
91
+ makeObservable: 'mobx',
92
+ NodeHttpTransport: '@improbable-eng/grpc-web-node-http-transport',
93
+ UnaryMethodDefinitionishR: '__grpc-web__',
94
+ UnaryMethodDefinitionish: '__grpc-web__',
95
+ BinaryReader: '__binary__',
96
+ BinaryWriter: '__binary__',
97
+ TelescopeGeneratedType: '__types__',
98
+ GlobalDecoderRegistry: '__registry__',
99
+ buildTx: '__helper-func-types__',
100
+ ISigningClient: '__helper-func-types__',
101
+ buildQuery: '__helper-func-types__',
102
+ EndpointOrRpc: '__helper-func-types__',
103
+ toConverters: '@interchainjs/cosmos/utils',
104
+ toEncoders: '@interchainjs/cosmos/utils'
105
+ };
106
+ export const UTIL_HELPERS = [
107
+ '__helpers__',
108
+ '__extern__',
109
+ '__react-query__',
110
+ '__vue-query__',
111
+ '__mobx__',
112
+ '__binary__',
113
+ '__pinia-endpoint__',
114
+ '__json-safe__',
115
+ '__grpc-gateway__',
116
+ '__grpc-web__',
117
+ '__types__',
118
+ '__registry__',
119
+ '__decimals__',
120
+ '__helper-func-types__'
121
+ ];
122
+ export const fixlocalpaths = (imports) => {
123
+ return imports.map((imp) => {
124
+ const fixedPath = toPosixPath(imp.path);
125
+ return {
126
+ ...imp,
127
+ path: UTIL_HELPERS.includes(imp.path) ||
128
+ imp.path.startsWith('.') ||
129
+ imp.path.startsWith('@')
130
+ ? fixedPath
131
+ : `./${fixedPath}`,
132
+ };
133
+ });
134
+ };
135
+ export const getRelativePath = (f1, f2, ext) => {
136
+ const rel = relative(dirname(f1), f2);
137
+ let importPath = rel.replace(extname(rel), '');
138
+ if (!/^\./.test(importPath))
139
+ importPath = `./${importPath}`;
140
+ importPath = toPosixPath(importPath);
141
+ return restoreExtension(importPath, ext);
142
+ };
143
+ export * from './common-create-bundle';
@@ -0,0 +1,47 @@
1
+ //@ts-nocheck
2
+ import * as t from '@babel/types';
3
+ // https://github.com/chuyik/babel-plugin-danger-remove-unused-import
4
+ // https://github.com/chuyik/babel-plugin-danger-remove-unused-import/blob/c5454c21e94698a2464a12baa5590761932a71a8/License#L1
5
+ export const unused = {
6
+ Program: {
7
+ exit: (path) => {
8
+ const UnRefBindings = new Map();
9
+ for (const [name, binding] of Object.entries(path.scope.bindings)) {
10
+ if (!binding.path.parentPath || binding.kind !== 'module')
11
+ continue;
12
+ const source = binding.path.parentPath.get('source');
13
+ const importName = source.node.value;
14
+ if (!t.isStringLiteral(source))
15
+ continue;
16
+ const key = `${importName}(${source.node.loc &&
17
+ source.node.loc.start.line})`;
18
+ if (!UnRefBindings.has(key)) {
19
+ UnRefBindings.set(key, binding);
20
+ }
21
+ if (binding.referenced) {
22
+ UnRefBindings.set(key, null);
23
+ }
24
+ else {
25
+ const nodeType = binding.path.node.type;
26
+ if (nodeType === 'ImportSpecifier') {
27
+ binding.path.remove();
28
+ }
29
+ else if (nodeType === 'ImportDefaultSpecifier') {
30
+ binding.path.remove();
31
+ }
32
+ else if (nodeType === 'ImportNamespaceSpecifier') {
33
+ binding.path.remove();
34
+ }
35
+ else if (binding.path.parentPath) {
36
+ binding.path.parentPath.remove();
37
+ }
38
+ }
39
+ }
40
+ UnRefBindings.forEach((binding, key) => {
41
+ if (binding && binding.path.parentPath) {
42
+ binding.path.parentPath.remove();
43
+ }
44
+ });
45
+ }
46
+ }
47
+ };
package/package.json ADDED
@@ -0,0 +1,115 @@
1
+ {
2
+ "name": "@hyperweb/telescope",
3
+ "version": "1.15.0",
4
+ "description": "A TypeScript Transpiler for Cosmos Protobufs",
5
+ "author": "Dan Lynch <pyramation@gmail.com>",
6
+ "homepage": "https://github.com/hyperweb-io/telescope/tree/master/packages/telescope#readme",
7
+ "license": "SEE LICENSE IN LICENSE",
8
+ "main": "main/index.js",
9
+ "module": "module/index.js",
10
+ "typings": "types/index.d.ts",
11
+ "bin": {
12
+ "telescope": "main/telescope.js"
13
+ },
14
+ "directories": {
15
+ "lib": "src",
16
+ "test": "__tests__"
17
+ },
18
+ "files": [
19
+ "types",
20
+ "module",
21
+ "src",
22
+ "main"
23
+ ],
24
+ "scripts": {
25
+ "build:main": "yarn tsc -p tsconfig.json --outDir main --module commonjs",
26
+ "build:module": "yarn tsc -p tsconfig.json --outDir module --module es2022",
27
+ "build": "npm run build:module && npm run build:main",
28
+ "buidl": "npm run build",
29
+ "buidl:clean": "npm run clean && npm run buidl",
30
+ "clean": "rimraf ./types",
31
+ "prepare": "npm run build",
32
+ "dev": "cross-env NODE_ENV=development ts-node src/telescope",
33
+ "watch": "cross-env NODE_ENV=development ts-node-dev src/telescope",
34
+ "file": "cross-env NODE_ENV=development ts-node-dev src/file",
35
+ "lint": "eslint .",
36
+ "format": "eslint . --fix",
37
+ "test": "jest",
38
+ "test:funcs": "jest __tests__/telescope-helper-func.test.ts",
39
+ "test:min": "jest __tests__/telescope-v4.test.ts",
40
+ "test:misc": "jest __tests__/misc.test.ts",
41
+ "test:watch": "jest --watch",
42
+ "test:debug": "node --inspect node_modules/.bin/jest --runInBand"
43
+ },
44
+ "jest": {
45
+ "preset": "ts-jest",
46
+ "testEnvironment": "node",
47
+ "transform": {
48
+ "^.+\\.ts?$": "ts-jest"
49
+ },
50
+ "transformIgnorePatterns": [
51
+ "<rootDir>/node_modules/"
52
+ ],
53
+ "testPathIgnorePatterns": [
54
+ "main/",
55
+ "module/",
56
+ "types/",
57
+ "git-modules"
58
+ ]
59
+ },
60
+ "publishConfig": {
61
+ "access": "public"
62
+ },
63
+ "repository": {
64
+ "type": "git",
65
+ "url": "https://github.com/hyperweb-io/telescope"
66
+ },
67
+ "keywords": [],
68
+ "bugs": {
69
+ "url": "https://github.com/hyperweb-io/telescope/issues"
70
+ },
71
+ "devDependencies": {
72
+ "@keplr-wallet/unit": "^0.12.53",
73
+ "@types/jest": "^29.5.0",
74
+ "ast-stringify": "0.1.0",
75
+ "cross-env": "^7.0.2",
76
+ "eslint": "8.38.0",
77
+ "eslint-config-prettier": "^8.8.0",
78
+ "eslint-plugin-prettier": "^4.0.0",
79
+ "jest": "^29.5.0",
80
+ "jest-in-case": "^1.0.2",
81
+ "prettier": "^2.8.7",
82
+ "regenerator-runtime": "^0.13.11",
83
+ "ts-jest": "^29.1.0",
84
+ "ts-node": "10.9.1",
85
+ "ts-node-dev": "2.0.0",
86
+ "typescript": "^5.0.4"
87
+ },
88
+ "dependencies": {
89
+ "@babel/generator": "^7.23.6",
90
+ "@babel/parser": "^7.23.6",
91
+ "@babel/traverse": "7.23.6",
92
+ "@babel/types": "7.23.6",
93
+ "@cosmology/ast": "^1.11.0",
94
+ "@cosmology/proto-parser": "^1.10.9",
95
+ "@cosmology/types": "^1.12.5",
96
+ "@cosmology/utils": "^1.10.7",
97
+ "@cosmwasm/ts-codegen": "0.35.7",
98
+ "@types/parse-package-name": "0.1.0",
99
+ "case": "1.6.3",
100
+ "dargs": "7.0.0",
101
+ "deepmerge": "4.3.1",
102
+ "dotty": "0.1.2",
103
+ "fuzzy": "0.1.3",
104
+ "glob": "8.0.3",
105
+ "inquirerer": "0.1.3",
106
+ "long": "^5.2.1",
107
+ "minimatch": "5.1.0",
108
+ "minimist": "1.2.8",
109
+ "mkdirp": "3.0.0",
110
+ "parse-package-name": "1.0.0",
111
+ "rimraf": "5.0.0",
112
+ "yaml": "^2.3.4"
113
+ },
114
+ "gitHead": "b83c69187e1ac8a6aa7284512f630a2a9aae054e"
115
+ }
package/src/build.ts ADDED
@@ -0,0 +1,255 @@
1
+ import { ProtoRef, TelescopeOptions } from '@cosmology/types';
2
+ import { ProtoStore } from '@cosmology/proto-parser';
3
+ import {
4
+ AminoParseContext,
5
+ createAminoConverter,
6
+ createCreateProtoType,
7
+ createObjectWithMethods,
8
+ createRegisterObject,
9
+ createProtoEnum,
10
+ createProtoEnumToJSON,
11
+ createProtoEnumFromJSON,
12
+ createProtoType,
13
+ createProtoInterfaceEncodedType,
14
+ createProtoTypeType,
15
+ createSDKType,
16
+ createAminoType,
17
+ createAminoTypeType,
18
+ createEnumSDKType,
19
+ createEnumAminoType,
20
+ makeAminoTypeInterface,
21
+ GenericParseContext,
22
+ ProtoParseContext,
23
+ createTypeRegistry,
24
+ createRegistryLoader,
25
+
26
+ // helper
27
+ createHelperObject,
28
+ createInterfaceDecoder,
29
+ createInterfaceFromAmino,
30
+ createInterfaceToAmino,
31
+ createRegisterAminoProtoMapping,
32
+ } from '@cosmology/ast';
33
+ import { ServiceMutation, ServiceQuery } from '@cosmology/types';
34
+
35
+ export const getMutations = (mutations: ServiceMutation[]) => {
36
+ return mutations.map((mutation: ServiceMutation) => {
37
+ return {
38
+ typeUrl: `/${mutation.package}.${mutation.message}`,
39
+ TypeName: mutation.message,
40
+ methodName: mutation.methodName
41
+ }
42
+ });
43
+ };
44
+
45
+ export const getAminoProtos = (mutations: ServiceMutation[], store: ProtoStore) => {
46
+ return mutations.map(mutation => {
47
+ const ref = store.findProto(mutation.messageImport);
48
+ return store.get(ref, mutation.message).obj;
49
+ });
50
+ };
51
+
52
+ export const buildBaseTypeScriptClass = (
53
+ context: TelescopeParseContext,
54
+ name: string,
55
+ obj: any
56
+ ) => {
57
+ if (context.options.prototypes.enabled) {
58
+ context.body.push(createCreateProtoType(context.proto, name, obj));
59
+ context.body.push(createObjectWithMethods(context.proto, name, obj));
60
+
61
+ if(context.options.interfaces?.enabled && context.options.interfaces?.useGlobalDecoderRegistry && context.options.interfaces?.registerAllDecodersToGlobal){
62
+ const registerObj = createRegisterObject(context.proto, name, obj);
63
+ if(registerObj){
64
+ context.body.push(registerObj);
65
+
66
+ //createRegisterAminoProtoMapping
67
+ const registerAminoObj = createRegisterAminoProtoMapping(context.proto, name, obj);
68
+ if(registerAminoObj){
69
+ context.body.push(registerAminoObj);
70
+ }
71
+ }
72
+ }
73
+ }
74
+ };
75
+
76
+ export const buildBaseTypeScriptInterface = (
77
+ context: TelescopeParseContext,
78
+ name: string,
79
+ obj: any
80
+ ) => {
81
+
82
+ context.body.push(createProtoType(context.proto, name, obj));
83
+
84
+ if (context.options.aminoEncoding?.enabled && !context.options.aminoEncoding?.useLegacyInlineEncoding || context.options.prototypes?.methods?.fromProto || context.options.prototypes?.methods?.toProto) {
85
+ context.body.push(createProtoTypeType(context.proto, name, obj));
86
+ }
87
+
88
+ if (context.options.aminoEncoding?.enabled && !context.options.aminoEncoding?.useLegacyInlineEncoding) {
89
+ // conditional type
90
+ const interfaceType = createProtoInterfaceEncodedType(context.proto, name, obj);
91
+ if (interfaceType) {
92
+ context.body.push(interfaceType);
93
+ }
94
+ context.body.push(createAminoType(context.proto, name, obj));
95
+
96
+ if(!context.options.aminoEncoding?.disableMsgTypes){
97
+ context.body.push(createAminoTypeType(context.proto, name, obj));
98
+ }
99
+ }
100
+ if (context.options.useSDKTypes) {
101
+ context.body.push(createSDKType(context.proto, name, obj));
102
+ }
103
+ };
104
+
105
+ export const buildEnums = (
106
+ context: TelescopeParseContext,
107
+ name: string,
108
+ obj: any
109
+ ) => {
110
+ context.body.push(createProtoEnum(context.proto, name, obj));
111
+ if (context.options.useSDKTypes) {
112
+ context.body.push(createEnumSDKType(context.proto, name, obj));
113
+ }
114
+ if (context.options.aminoEncoding?.enabled && !context.options.aminoEncoding?.useLegacyInlineEncoding) {
115
+ context.body.push(createEnumAminoType(context.proto, name, obj));
116
+ }
117
+ context.body.push(createProtoEnumFromJSON(context.proto, name, obj));
118
+ context.body.push(createProtoEnumToJSON(context.proto, name, obj));
119
+ };
120
+ export interface TelescopeParseContext {
121
+ options: TelescopeOptions;
122
+ generic: GenericParseContext;
123
+ proto: ProtoParseContext;
124
+ amino: AminoParseContext;
125
+ store: ProtoStore;
126
+ ref: ProtoRef;
127
+ parsedImports: Record<string, any>;
128
+ body: any[];
129
+ mutations: ServiceMutation[];
130
+ queries: any[];
131
+ services: any[];
132
+ types: any[];
133
+ }
134
+ export class TelescopeParseContext implements TelescopeParseContext {
135
+ constructor(ref: ProtoRef, store: ProtoStore, options: TelescopeOptions) {
136
+ this.generic = new GenericParseContext(
137
+ ref, store, options
138
+ );
139
+ this.proto = new ProtoParseContext(
140
+ ref, store, options
141
+ );
142
+ this.amino = new AminoParseContext(
143
+ ref, store, options
144
+ );
145
+ this.options = options;
146
+ this.ref = ref;
147
+ this.store = store;
148
+ this.parsedImports = {};
149
+ this.body = [];
150
+ this.queries = [];
151
+ this.services = [];
152
+ this.mutations = [];
153
+ this.types = [];
154
+ }
155
+
156
+ hasMutations() {
157
+ return this.mutations.length > 0;
158
+ }
159
+
160
+ addType(name: string, obj: any, isNested: boolean) {
161
+ this.types.push({
162
+ name,
163
+ obj,
164
+ isNested
165
+ });
166
+ }
167
+ addMutation(mutation: ServiceMutation) {
168
+ this.mutations.push(mutation);
169
+ }
170
+ addQuery(query: ServiceQuery) {
171
+ this.queries.push(query);
172
+ }
173
+ addService(query: any) {
174
+ this.services.push(query);
175
+ }
176
+ // build main Class with methods
177
+ buildBase() {
178
+ this.types.forEach(typeReg => {
179
+ const { name, obj } = typeReg;
180
+ if (obj.type === 'Enum') {
181
+ buildEnums(this, name, obj);
182
+ }
183
+ });
184
+ this.types.forEach(typeReg => {
185
+ const { name, obj } = typeReg;
186
+ if (obj.type === 'Type') {
187
+ buildBaseTypeScriptInterface(this, name, obj);
188
+ }
189
+ });
190
+ this.types.forEach(typeReg => {
191
+ const { name, obj } = typeReg;
192
+ if (obj.type === 'Type') {
193
+ buildBaseTypeScriptClass(this, name, obj);
194
+ }
195
+ });
196
+
197
+ // interfaces
198
+ if (this.options.interfaces.enabled && !this.options.interfaces.useGlobalDecoderRegistry) {
199
+ const interfaces = Object.keys(this.ref.traversed.acceptsInterface ?? {});
200
+ if (interfaces.length) {
201
+ interfaces.forEach(interfaceName => {
202
+ this.body.push(createInterfaceDecoder(this.proto, this.ref, interfaceName));
203
+ if (
204
+ this.options.aminoEncoding?.enabled &&
205
+ !this.options.aminoEncoding?.useLegacyInlineEncoding
206
+ ) {
207
+ this.body.push(createInterfaceFromAmino(this.proto, this.ref, interfaceName));
208
+ this.body.push(createInterfaceToAmino(this.proto, this.ref, interfaceName));
209
+ }
210
+ })
211
+ }
212
+ }
213
+ }
214
+
215
+ buildRegistry() {
216
+ this.body.push(createTypeRegistry(this.amino, getMutations(this.mutations)));
217
+ }
218
+ buildRegistryLoader() {
219
+ if (!this.options?.prototypes?.enableRegistryLoader) {
220
+ return
221
+ }
222
+
223
+ this.body.push(createRegistryLoader(this.amino));
224
+ }
225
+ buildAminoInterfaces() {
226
+ if (!this.options?.aminoEncoding?.enabled || !this.options?.aminoEncoding?.useLegacyInlineEncoding) return;
227
+ //
228
+ const protos = getAminoProtos(this.mutations, this.store);
229
+ protos.forEach(proto => {
230
+ this.body.push(makeAminoTypeInterface({
231
+ context: this.amino,
232
+ proto
233
+ }));
234
+ });
235
+ }
236
+ buildAminoConverter() {
237
+ this.body.push(createAminoConverter({
238
+ name: 'AminoConverter',
239
+ context: this.amino,
240
+ root: this.ref.traversed,
241
+ protos: getAminoProtos(this.mutations, this.store)
242
+ }));
243
+ }
244
+ buildHelperObject() {
245
+ if (!this.options?.prototypes?.enableMessageComposer) {
246
+ return
247
+ }
248
+ // add methods
249
+ this.body.push(createHelperObject({
250
+ context: this.amino,
251
+ name: 'MessageComposer',
252
+ mutations: getMutations(this.mutations)
253
+ }));
254
+ }
255
+ }