@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,25 @@
1
+ import { createMobxQueryFactory } from '@cosmology/ast';
2
+ import * as dotty from 'dotty';
3
+ import { commonBundlePlugin } from '../utils';
4
+ export const plugin = (builder) => {
5
+ // if mobx is enabled
6
+ // generate stores.ts based on query hooks generated in each package.
7
+ // eg: __fixtures__/output1/stores.ts
8
+ if (!builder.options.mobx?.enabled) {
9
+ return;
10
+ }
11
+ // get mapping of packages and rpc query filenames.
12
+ const obj = {};
13
+ const bundlerFiles = builder.stateManagers["mobx"];
14
+ if (!bundlerFiles || !bundlerFiles.length) {
15
+ return;
16
+ }
17
+ bundlerFiles.map((queryClient) => {
18
+ const path = `./${queryClient.localname.replace(/\.ts$/, '')}`;
19
+ dotty.put(obj, queryClient.package, path);
20
+ });
21
+ commonBundlePlugin(builder, 'mobx.stores.ts', obj, (context, obj) => {
22
+ // generate code for createRpcQueryHooks and imports of related packages.
23
+ return createMobxQueryFactory(context, obj);
24
+ });
25
+ };
@@ -0,0 +1,128 @@
1
+ import { buildAllImports, getDepsFromQueries } from "../imports";
2
+ import { createMsgHelperCreator, createMsgHooks, createVueMsgHooks } from "@cosmology/ast";
3
+ import { getNestedProto } from "@cosmology/proto-parser";
4
+ import { parse } from "../parse";
5
+ import { getHelperFuncName, getQueryMethodNames, } from "@cosmology/utils";
6
+ import { TX_SVC_TYPES } from "@cosmology/types";
7
+ import { getExportedTypeNames } from "../utils/files";
8
+ export const plugin = (builder, bundler) => {
9
+ const mutationContexts = bundler.contexts.filter((context) => context.mutations.length > 0);
10
+ const clients = mutationContexts
11
+ .map((c) => {
12
+ const enabled = c.proto.pluginValue("helperFunctions.enabled");
13
+ if (!enabled)
14
+ return;
15
+ const serviceTypes = c.proto.pluginValue("helperFunctions.include.serviceTypes");
16
+ if (serviceTypes && !serviceTypes.includes("Tx")) {
17
+ return;
18
+ }
19
+ if (c.proto.isExcluded())
20
+ return;
21
+ const localname = bundler.getLocalFilename(c.ref, "rpc.func");
22
+ const localnameReact = bundler.getLocalFilename(c.ref, `rpc.react`);
23
+ const localnameVue = bundler.getLocalFilename(c.ref, `rpc.vue`);
24
+ const filename = bundler.getFilename(localname);
25
+ const filenameReact = bundler.getFilename(localnameReact);
26
+ const filenameVue = bundler.getFilename(localnameVue);
27
+ const ctx = bundler.getFreshContext(c);
28
+ // get mutations, services
29
+ parse(ctx);
30
+ const proto = getNestedProto(c.ref.traversed);
31
+ // hard-coding, for now, only Msg service
32
+ if (!proto?.Msg || proto.Msg?.type !== "Service") {
33
+ return;
34
+ }
35
+ const asts = [];
36
+ const reactAsts = [];
37
+ const vueAsts = [];
38
+ const helperCreatorNameList = [];
39
+ const bundlerFile = {
40
+ proto: c.ref.filename,
41
+ package: c.ref.proto.package,
42
+ localname,
43
+ filename,
44
+ isMsg: true,
45
+ };
46
+ TX_SVC_TYPES.forEach((svcKey) => {
47
+ if (proto[svcKey]) {
48
+ const svc = proto[svcKey];
49
+ const patterns = c.proto.pluginValue("helperFunctions.include.patterns");
50
+ const nameMappers = c.proto.pluginValue("helperFunctions.nameMappers");
51
+ const methodKeys = getQueryMethodNames(bundlerFile.package, Object.keys(proto[svcKey].methods ?? {}), patterns || ["**"], String);
52
+ // see if the function is excluded.
53
+ if (!methodKeys || !methodKeys.length) {
54
+ return;
55
+ }
56
+ // for each method key, create creators, hooks.
57
+ methodKeys.forEach((methodKey) => {
58
+ // get helperCreatorName
59
+ // get hookName
60
+ const { creator: helperCreatorName, hook: hookName } = getHelperFuncName(bundlerFile.package, methodKey, [nameMappers?.Msg, nameMappers?.All], "unchanged");
61
+ helperCreatorNameList.push(helperCreatorName);
62
+ const genCustomHooks = c.proto.pluginValue("helperFunctions.hooks.react");
63
+ const genCustomHooksVue = c.proto.pluginValue("helperFunctions.hooks.vue");
64
+ // Store the mapping in builder
65
+ builder.addFunctionMapping(bundlerFile.package, svcKey, methodKey, helperCreatorName, hookName, svc.methods[methodKey].comment, svc.methods[methodKey].requestType, svc.methods[methodKey].responseType, localname, // function source file
66
+ genCustomHooks ? localnameReact : undefined, // hook source file (React)
67
+ bundler.getLocalFilename(c.ref) // type source file (main types file)
68
+ );
69
+ // gen helper funcs
70
+ asts.push(createMsgHelperCreator(ctx.generic, svc.methods[methodKey], helperCreatorName));
71
+ if (genCustomHooks) {
72
+ // gen custom react hooks
73
+ reactAsts.push(createMsgHooks(ctx.generic, svc.methods[methodKey], helperCreatorName, hookName));
74
+ }
75
+ if (genCustomHooksVue) {
76
+ // gen custom vue hooks
77
+ vueAsts.push(createVueMsgHooks(ctx.generic, svc.methods[methodKey], helperCreatorName, hookName));
78
+ }
79
+ });
80
+ }
81
+ });
82
+ if (!asts.length) {
83
+ return;
84
+ }
85
+ const serviceImports = getDepsFromQueries(ctx.mutations, localname);
86
+ const serviceImportsReact = getDepsFromQueries(ctx.mutations, localnameReact);
87
+ const serviceImportsVue = getDepsFromQueries(ctx.mutations, localnameVue);
88
+ // add imports from func file like query.rpc.func.ts without the .ts extension
89
+ const funcFileName = "./".concat(localname.substring(localname.lastIndexOf("/") + 1).replace(/\.ts$/, ""));
90
+ serviceImportsReact[funcFileName] = helperCreatorNameList;
91
+ serviceImportsVue[funcFileName] = helperCreatorNameList;
92
+ const imports = buildAllImports(ctx, serviceImports, localname);
93
+ const importsReact = buildAllImports(ctx, serviceImportsReact, localnameReact);
94
+ const importsVue = buildAllImports(ctx, serviceImportsVue, localnameReact);
95
+ const prog = [].concat(imports).concat(ctx.body).concat(asts);
96
+ const progReact = [].concat(importsReact).concat(reactAsts);
97
+ const progVue = [].concat(importsVue).concat(vueAsts);
98
+ const exportedTypeNames = getExportedTypeNames(prog);
99
+ const exportedTypeNamesReact = getExportedTypeNames(progReact);
100
+ const exportedTypeNamesVue = getExportedTypeNames(progVue);
101
+ exportedTypeNames.forEach((name) => {
102
+ builder.store.setHelperFuncFilesMapping(name, localname);
103
+ });
104
+ exportedTypeNamesReact.forEach((name) => {
105
+ builder.store.setHelperFuncFilesMapping(name, localnameReact);
106
+ });
107
+ exportedTypeNamesVue.forEach((name) => {
108
+ builder.store.setHelperFuncFilesMapping(name, localnameVue);
109
+ });
110
+ bundler.writeAst(prog, filename);
111
+ bundler.addExportObjToBundle(c.ref.proto.package, localname, exportedTypeNames, true);
112
+ if (reactAsts.length) {
113
+ bundler.writeAst(progReact, filenameReact);
114
+ bundler.addExportObjToBundle(c.ref.proto.package, localnameReact, exportedTypeNamesReact, true);
115
+ }
116
+ if (vueAsts.length) {
117
+ bundler.writeAst(progVue, filenameVue);
118
+ bundler.addExportObjToBundle(c.ref.proto.package, localnameVue, exportedTypeNamesVue, true);
119
+ }
120
+ bundler.addToBundle(c, localname);
121
+ return {
122
+ package: c.ref.proto.package,
123
+ localname,
124
+ filename,
125
+ };
126
+ })
127
+ .filter(Boolean);
128
+ };
@@ -0,0 +1,23 @@
1
+ import { commonBundlePlugin } from '../utils';
2
+ import * as dotty from 'dotty';
3
+ import { createPiniaStoreFactory } from '@cosmology/ast';
4
+ export const plugin = (builder) => {
5
+ // if not enabled, exit
6
+ if (!builder.options?.pinia?.enabled) {
7
+ return;
8
+ }
9
+ // get mapping of packages and rpc query filenames.
10
+ const obj = {};
11
+ const bundlerFiles = builder.stateManagers['pinia'];
12
+ if (!bundlerFiles || !bundlerFiles.length) {
13
+ return;
14
+ }
15
+ bundlerFiles.map((queryClient) => {
16
+ const path = `./${queryClient.localname.replace(/\.ts$/, '')}`;
17
+ dotty.put(obj, queryClient.package, path);
18
+ });
19
+ commonBundlePlugin(builder, 'pinia.store.ts', obj, (context, obj) => {
20
+ // generate code for createRpcQueryHooks and imports of related packages.
21
+ return createPiniaStoreFactory(context, obj);
22
+ });
23
+ };
@@ -0,0 +1,86 @@
1
+ import { buildAllImports, getDepsFromQueries, getImportStatements } from '../imports';
2
+ import { parse } from '../parse';
3
+ import { getNestedProto, isRefIncluded } from '@cosmology/proto-parser';
4
+ import { createPiniaStore } from '@cosmology/ast';
5
+ export const plugin = (builder, bundler) => {
6
+ if (!builder.options.pinia?.enabled) {
7
+ return;
8
+ }
9
+ // get mapping of packages and rpc query filenames.
10
+ if (!builder.options.lcdClients?.enabled) {
11
+ return;
12
+ }
13
+ const queryContexts = bundler.contexts.filter((context) => context.queries.length > 0 || context.services.length > 0);
14
+ if (queryContexts.length > 0) {
15
+ const piniaBundlerFiles = [];
16
+ // [x] write out one registry helper for all contexts w/mutations
17
+ queryContexts.forEach((c) => {
18
+ const enabled = c.proto.pluginValue('lcdClients.enabled');
19
+ if (!enabled)
20
+ return;
21
+ const includePinia = c.proto.pluginValue('pinia.enabled') &&
22
+ isRefIncluded(c.ref, c.proto.pluginValue('pinia.include'));
23
+ if (!includePinia)
24
+ return;
25
+ if (c.proto.isExcluded())
26
+ return;
27
+ const ctx = bundler.getFreshContext(c);
28
+ // get mutations, services
29
+ parse(ctx);
30
+ const proto = getNestedProto(c.ref.traversed);
31
+ //// Anything except Msg Service OK...
32
+ const allowedRpcServices = builder.options.rpcClients.enabledServices.filter((a) => a !== 'Msg');
33
+ let name, getImportsFrom;
34
+ // get imports
35
+ allowedRpcServices.forEach((svcKey) => {
36
+ if (proto[svcKey]) {
37
+ if (svcKey === 'Query') {
38
+ getImportsFrom = ctx.queries;
39
+ }
40
+ else {
41
+ getImportsFrom = ctx.services;
42
+ }
43
+ name = svcKey;
44
+ }
45
+ });
46
+ const localname = bundler.getLocalFilename(c.ref, 'pinia.store');
47
+ const filename = bundler.getFilename(localname);
48
+ const bundlerFile = {
49
+ package: c.ref.proto.package,
50
+ localname,
51
+ filename
52
+ };
53
+ let ast = null;
54
+ allowedRpcServices.forEach((svcKey) => {
55
+ if (proto[svcKey]) {
56
+ ast = createPiniaStore(ctx.generic, proto[svcKey]);
57
+ }
58
+ });
59
+ if (!ast) {
60
+ return;
61
+ }
62
+ piniaBundlerFiles.push(bundlerFile);
63
+ const serviceImports = getDepsFromQueries(getImportsFrom, localname);
64
+ const imports = buildAllImports(ctx, serviceImports, localname);
65
+ const piniaImport = getImportStatements('pinia', [
66
+ {
67
+ type: 'import',
68
+ name: 'defineStore',
69
+ path: 'pinia'
70
+ },
71
+ {
72
+ type: 'import',
73
+ name: 'LCDQueryClient',
74
+ path: './query.lcd'
75
+ }
76
+ ], builder.options);
77
+ const prog = []
78
+ .concat([...imports, ...piniaImport])
79
+ .concat(ctx.body)
80
+ .concat(ast);
81
+ bundler.writeAst(prog, filename);
82
+ bundler.addToBundle(c, localname);
83
+ });
84
+ bundler.addStateManagers('pinia', piniaBundlerFiles);
85
+ }
86
+ };
@@ -0,0 +1,129 @@
1
+ import { buildAllImports, getDepsFromQueries } from "../imports";
2
+ import { createQueryHelperCreator, createQueryHooks, createVueQueryHooks } from "@cosmology/ast";
3
+ import { getNestedProto } from "@cosmology/proto-parser";
4
+ import { parse } from "../parse";
5
+ import { QUERY_SVC_TYPES } from "@cosmology/types";
6
+ import { getHelperFuncName, getQueryMethodNames, } from "@cosmology/utils";
7
+ import { getExportedTypeNames } from "../utils/files";
8
+ export const plugin = (builder, bundler) => {
9
+ const clients = bundler.contexts
10
+ .map((c) => {
11
+ const enabled = c.proto.pluginValue("helperFunctions.enabled");
12
+ if (!enabled)
13
+ return;
14
+ const serviceTypes = c.proto.pluginValue("helperFunctions.include.serviceTypes");
15
+ if (serviceTypes &&
16
+ !serviceTypes.includes("Query") &&
17
+ !serviceTypes.includes("All")) {
18
+ return;
19
+ }
20
+ if (c.proto.isExcluded())
21
+ return;
22
+ const ctx = bundler.getFreshContext(c);
23
+ // get mutations, services
24
+ parse(ctx);
25
+ const proto = getNestedProto(c.ref.traversed);
26
+ //// Anything except Msg Service OK...
27
+ if (proto?.Msg) {
28
+ return;
29
+ }
30
+ let getImportsFrom;
31
+ if (proto.Query) {
32
+ getImportsFrom = ctx.queries;
33
+ }
34
+ else {
35
+ getImportsFrom = ctx.services;
36
+ }
37
+ const localname = bundler.getLocalFilename(c.ref, `rpc.func`);
38
+ const localnameReact = bundler.getLocalFilename(c.ref, `rpc.react`);
39
+ const localnameVue = bundler.getLocalFilename(c.ref, `rpc.vue`);
40
+ const filename = bundler.getFilename(localname);
41
+ const filenameReact = bundler.getFilename(localnameReact);
42
+ const filenameVue = bundler.getFilename(localnameVue);
43
+ const bundlerFile = {
44
+ proto: c.ref.filename,
45
+ package: c.ref.proto.package,
46
+ localname,
47
+ filename,
48
+ };
49
+ const asts = [];
50
+ const reactAsts = [];
51
+ const vueAsts = [];
52
+ const helperCreatorNameList = [];
53
+ QUERY_SVC_TYPES.forEach((svcKey) => {
54
+ if (proto[svcKey]) {
55
+ const svc = proto[svcKey];
56
+ const patterns = c.proto.pluginValue("helperFunctions.include.patterns");
57
+ const nameMappers = c.proto.pluginValue("helperFunctions.nameMappers");
58
+ const methodKeys = getQueryMethodNames(bundlerFile.package, Object.keys(proto[svcKey].methods ?? {}), patterns || ["**"], String);
59
+ // see if the function is excluded.
60
+ if (!methodKeys || !methodKeys.length) {
61
+ return;
62
+ }
63
+ // for each method key, create creators, hooks.
64
+ methodKeys.forEach((methodKey) => {
65
+ // get helperCreatorName
66
+ // get hookName
67
+ const { creator: helperCreatorName, hook: hookName } = getHelperFuncName(bundlerFile.package, methodKey, [nameMappers?.Query, nameMappers?.All], "get");
68
+ helperCreatorNameList.push(helperCreatorName);
69
+ const genCustomHooksReact = c.proto.pluginValue("helperFunctions.hooks.react");
70
+ const genCustomHooksVue = c.proto.pluginValue("helperFunctions.hooks.vue");
71
+ // Store the mapping in builder
72
+ builder.addFunctionMapping(bundlerFile.package, svcKey, methodKey, helperCreatorName, hookName, svc.methods[methodKey].comment, svc.methods[methodKey].requestType, svc.methods[methodKey].responseType, localname, genCustomHooksReact ? localnameReact : undefined, bundler.getLocalFilename(c.ref));
73
+ // gen helper funcs
74
+ asts.push(createQueryHelperCreator(ctx.generic, svc.methods[methodKey], svc.name, methodKey, helperCreatorName));
75
+ if (genCustomHooksReact) {
76
+ // gen custom react hooks
77
+ reactAsts.push(createQueryHooks(ctx.generic, svc.methods[methodKey], methodKey, helperCreatorName, hookName));
78
+ }
79
+ if (genCustomHooksVue) {
80
+ // gen custom vue hooks
81
+ vueAsts.push(createVueQueryHooks(ctx.generic, svc.methods[methodKey], methodKey, helperCreatorName, hookName));
82
+ }
83
+ });
84
+ }
85
+ });
86
+ if (!asts.length) {
87
+ return;
88
+ }
89
+ const serviceImports = getDepsFromQueries(getImportsFrom, localname);
90
+ const serviceImportsReact = getDepsFromQueries(getImportsFrom, localnameReact);
91
+ const serviceImportsVue = getDepsFromQueries(getImportsFrom, localnameVue);
92
+ // add imports from func file like query.rpc.func.ts without the .ts extension
93
+ const funcFileName = "./".concat(localname.substring(localname.lastIndexOf("/") + 1).replace(/\.ts$/, ""));
94
+ serviceImportsReact[funcFileName] = helperCreatorNameList;
95
+ serviceImportsVue[funcFileName] = helperCreatorNameList;
96
+ // TODO we do NOT need all imports...
97
+ const imports = buildAllImports(ctx, serviceImports, localname);
98
+ const importsReact = buildAllImports(ctx, serviceImportsReact, localnameReact);
99
+ const importsVue = buildAllImports(ctx, serviceImportsVue, localnameReact);
100
+ const prog = [].concat(imports).concat(ctx.body).concat(asts);
101
+ const progReact = [].concat(importsReact).concat(reactAsts);
102
+ const progVue = [].concat(importsVue).concat(vueAsts);
103
+ const exportedTypeNames = getExportedTypeNames(prog);
104
+ const exportedTypeNamesReact = getExportedTypeNames(progReact);
105
+ const exportedTypeNamesVue = getExportedTypeNames(progVue);
106
+ exportedTypeNames.forEach((name) => {
107
+ builder.store.setHelperFuncFilesMapping(name, localname);
108
+ });
109
+ exportedTypeNamesReact.forEach((name) => {
110
+ builder.store.setHelperFuncFilesMapping(name, localnameReact);
111
+ });
112
+ exportedTypeNamesVue.forEach((name) => {
113
+ builder.store.setHelperFuncFilesMapping(name, localnameVue);
114
+ });
115
+ bundler.writeAst(prog, filename);
116
+ bundler.addExportObjToBundle(c.ref.proto.package, localname, exportedTypeNames, true);
117
+ if (reactAsts.length) {
118
+ bundler.writeAst(progReact, filenameReact);
119
+ bundler.addExportObjToBundle(c.ref.proto.package, localnameReact, exportedTypeNamesReact, true);
120
+ }
121
+ if (vueAsts.length) {
122
+ bundler.writeAst(progVue, filenameVue);
123
+ bundler.addExportObjToBundle(c.ref.proto.package, localnameVue, exportedTypeNamesVue, true);
124
+ }
125
+ bundler.addToBundle(c, localname);
126
+ return bundlerFile;
127
+ })
128
+ .filter(Boolean);
129
+ };
@@ -0,0 +1,76 @@
1
+ import { aggregateImports, getImportStatements } from '../imports';
2
+ import { join } from 'path';
3
+ import { createScopedRpcHookFactory } from '@cosmology/ast';
4
+ import { TelescopeParseContext } from '../build';
5
+ import { writeAstToFile } from '../utils/files';
6
+ import { fixlocalpaths } from '../utils';
7
+ import * as dotty from 'dotty';
8
+ import { createEmptyProtoRef } from '@cosmology/proto-parser';
9
+ import { camel, makeUseHookName, makeUsePkgHookName } from '@cosmology/utils';
10
+ import { variableSlug } from '@cosmology/utils';
11
+ import { swapKeyValue } from '@cosmology/utils';
12
+ export const plugin = (builder) => {
13
+ // if react query is enabled
14
+ // generate hooks.ts based on query hooks generated in each package.
15
+ // eg: __fixtures__/output1/hooks.ts
16
+ if (!builder.options.reactQuery.enabled) {
17
+ return;
18
+ }
19
+ const localname = 'hooks.ts';
20
+ // get mapping of packages and rpc query filenames.
21
+ const obj = {};
22
+ const instantHooksMapping = {};
23
+ const methodSet = new Set();
24
+ const bundlerFiles = builder.stateManagers["reactQuery"];
25
+ if (!bundlerFiles || !bundlerFiles.length) {
26
+ return;
27
+ }
28
+ let nameMapping = builder.options.reactQuery?.instantExport?.nameMapping;
29
+ nameMapping = swapKeyValue(nameMapping ?? {});
30
+ bundlerFiles.map(bundlerFile => {
31
+ const path = `./${bundlerFile.localname.replace(/\.ts$/, '')}`;
32
+ dotty.put(obj, bundlerFile.package, path);
33
+ // build instantHooksMapping
34
+ bundlerFile.instantExportedMethods?.forEach((method) => {
35
+ const methodName = method.name;
36
+ const useHookName = makeUseHookName(camel(methodName));
37
+ const hookNameWithPkg = `${bundlerFile.package}.${useHookName}`;
38
+ let instantHookName = null;
39
+ if (nameMapping[hookNameWithPkg]) {
40
+ instantHookName = nameMapping[hookNameWithPkg];
41
+ }
42
+ else {
43
+ if (methodSet.has(useHookName)) {
44
+ instantHookName = makeUsePkgHookName(bundlerFile.package, methodName);
45
+ }
46
+ else {
47
+ instantHookName = useHookName;
48
+ }
49
+ }
50
+ dotty.put(instantHooksMapping, instantHookName, {
51
+ useHookName,
52
+ importedVarName: variableSlug(path),
53
+ comment: `${bundlerFile.package}.${useHookName}\n${method.comment ?? methodName}`
54
+ });
55
+ methodSet.add(instantHookName);
56
+ });
57
+ });
58
+ // create proto ref for context
59
+ const pkg = '@root';
60
+ const ref = createEmptyProtoRef(pkg, localname);
61
+ // create context
62
+ const pCtx = new TelescopeParseContext(ref, builder.store, builder.options);
63
+ // generate code for createRpcQueryHooks and imports of related packages.
64
+ const ast = createScopedRpcHookFactory(pCtx.proto, obj, 'createRpcQueryHooks', instantHooksMapping);
65
+ // generate imports added by context.addUtil
66
+ const imports = fixlocalpaths(aggregateImports(pCtx, {}, localname));
67
+ const importStmts = getImportStatements(localname, imports, builder.options);
68
+ // construct the AST
69
+ const prog = []
70
+ .concat(importStmts)
71
+ .concat(ast);
72
+ // write the file.
73
+ const filename = join(builder.outPath, localname);
74
+ builder.files.push(localname);
75
+ writeAstToFile(builder.outPath, builder.options, prog, filename);
76
+ };
@@ -0,0 +1,45 @@
1
+ import { buildAllImports, getDepsFromMutations } from '../imports';
2
+ import { parse } from '../parse';
3
+ import { getExportedTypeNames } from '../utils/files';
4
+ export const plugin = (builder, bundler) => {
5
+ if (!builder.options.aminoEncoding?.enabled) {
6
+ return;
7
+ }
8
+ const mutationContexts = bundler
9
+ .contexts
10
+ .filter(context => context.mutations.length > 0);
11
+ // [x] write out one registry helper for all contexts w/mutations
12
+ const registries = mutationContexts.map(c => {
13
+ const enabled = c.amino.pluginValue('aminoEncoding.enabled');
14
+ if (!enabled)
15
+ return;
16
+ if (c.proto.isExcluded())
17
+ return;
18
+ const localname = bundler.getLocalFilename(c.ref, 'registry');
19
+ const filename = bundler.getFilename(localname);
20
+ const ctx = bundler.getFreshContext(c);
21
+ // get mutations, services
22
+ parse(ctx);
23
+ ctx.buildRegistry();
24
+ ctx.buildRegistryLoader();
25
+ ctx.buildHelperObject();
26
+ const serviceImports = getDepsFromMutations(ctx.mutations, localname);
27
+ const imports = buildAllImports(ctx, serviceImports, localname);
28
+ const prog = []
29
+ .concat(imports)
30
+ .concat(ctx.body);
31
+ const exportedTypeNames = getExportedTypeNames(prog);
32
+ exportedTypeNames.forEach((name) => {
33
+ builder.store.setTypeFilesMapping(name, localname);
34
+ });
35
+ bundler.addExportObjToBundle(c.ref.proto.package, localname, exportedTypeNames);
36
+ bundler.writeAst(prog, filename);
37
+ bundler.addToBundle(c, localname);
38
+ return {
39
+ package: c.ref.proto.package,
40
+ localname,
41
+ filename
42
+ };
43
+ }).filter(Boolean);
44
+ bundler.addRegistries(registries);
45
+ };