@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,119 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.plugin = void 0;
27
+ const imports_1 = require("../imports");
28
+ const path_1 = require("path");
29
+ const ast_1 = require("@cosmology/ast");
30
+ const build_1 = require("../build");
31
+ const files_1 = require("../utils/files");
32
+ const utils_1 = require("../utils");
33
+ const dotty = __importStar(require("dotty"));
34
+ const proto_parser_1 = require("@cosmology/proto-parser");
35
+ const utils_2 = require("@cosmology/utils");
36
+ const utils_3 = require("@cosmology/utils");
37
+ const utils_4 = require("@cosmology/utils");
38
+ const utils_5 = require("@cosmology/utils");
39
+ const plugin = (builder) => {
40
+ if (!builder.options.rpcClients?.enabled ||
41
+ !builder.options.rpcClients?.instantOps?.length) {
42
+ return;
43
+ }
44
+ const localname = "service-ops.ts";
45
+ // get mapping of packages and rpc query filenames.
46
+ // create proto ref for context
47
+ const pkg = "@root";
48
+ const ref = (0, proto_parser_1.createEmptyProtoRef)(pkg, localname);
49
+ // create context
50
+ const context = new build_1.TelescopeParseContext(ref, builder.store, builder.options);
51
+ const pkgImports = [];
52
+ const ast = builder.options.rpcClients.instantOps.reduce((ast, instantOpsConfig) => {
53
+ const bundlerFiles = builder.stateManagers[`instantRpc_${instantOpsConfig.className}`];
54
+ if (!bundlerFiles || !bundlerFiles.length) {
55
+ return ast;
56
+ }
57
+ let nameMapping = instantOpsConfig.nameMapping;
58
+ return ast.concat(createRpcOpsAst(context, instantOpsConfig.className, pkgImports, nameMapping, bundlerFiles));
59
+ }, []);
60
+ // generate imports added by context.addUtil
61
+ const imports = (0, utils_1.fixlocalpaths)((0, imports_1.aggregateImports)(context, {}, localname));
62
+ const importStmts = (0, imports_1.getImportStatements)(localname, imports, builder.options);
63
+ // construct the AST
64
+ const prog = [].concat(importStmts).concat((0, utils_5.buildImports)(pkgImports)).concat(ast);
65
+ // write the file.
66
+ const filename = (0, path_1.join)(builder.outPath, localname);
67
+ builder.files.push(localname);
68
+ (0, files_1.writeAstToFile)(builder.outPath, builder.options, prog, filename);
69
+ };
70
+ exports.plugin = plugin;
71
+ // bundlerFiles.filter(file => file.localname.indexOf("rpc.msg") !== -1)
72
+ function createRpcOpsAst(context, className, pkgImports, nameMapping, bundlerFiles) {
73
+ const extendInterfaces = [];
74
+ const instantMapping = {};
75
+ const camelRpcMethods = context.generic.pluginValue("rpcClients.camelCase");
76
+ let txNameMapping = {
77
+ ...(0, utils_4.swapKeyValue)(nameMapping?.All ?? {}),
78
+ ...(0, utils_4.swapKeyValue)(nameMapping?.Msg ?? {})
79
+ };
80
+ let queryNameMapping = {
81
+ ...(0, utils_4.swapKeyValue)(nameMapping?.All ?? {}),
82
+ ...(0, utils_4.swapKeyValue)(nameMapping?.Query ?? {})
83
+ };
84
+ bundlerFiles.forEach((bundlerFile) => {
85
+ const isMsg = bundlerFile.isMsg;
86
+ const currentNameMapping = isMsg ? txNameMapping : queryNameMapping;
87
+ const path = `./${bundlerFile.localname.replace(/\.ts$/, "")}`;
88
+ const importedVarName = (0, utils_3.variableSlug)(path);
89
+ if (pkgImports &&
90
+ !pkgImports.some((item) => item.importedAs === importedVarName)) {
91
+ pkgImports.push({
92
+ type: "typeImport",
93
+ name: importedVarName,
94
+ import: path,
95
+ importedAs: importedVarName,
96
+ });
97
+ }
98
+ extendInterfaces.push({
99
+ importedVarName: importedVarName,
100
+ interfaceName: className,
101
+ });
102
+ bundlerFile.instantExportedMethods?.forEach((method) => {
103
+ const methodName = camelRpcMethods ? (0, utils_2.camel)(method.name) : method.name;
104
+ const nameWithPkg = `${bundlerFile.package}.${methodName}`;
105
+ const methodAlias = currentNameMapping && currentNameMapping[nameWithPkg]
106
+ ? currentNameMapping[nameWithPkg]
107
+ : methodName;
108
+ dotty.put(instantMapping, methodAlias, {
109
+ methodName,
110
+ importedVarName,
111
+ isMsg
112
+ });
113
+ });
114
+ });
115
+ return [
116
+ (0, ast_1.createInstantRpcInterface)(className, extendInterfaces),
117
+ (0, ast_1.createInstantRpcClass)(context.generic, className, instantMapping),
118
+ ];
119
+ }
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.plugin = void 0;
27
+ const dotty = __importStar(require("dotty"));
28
+ const proto_parser_1 = require("@cosmology/proto-parser");
29
+ const path_1 = require("path");
30
+ const ast_1 = require("@cosmology/ast");
31
+ const utils_1 = require("../utils");
32
+ const build_1 = require("../build");
33
+ const imports_1 = require("../imports");
34
+ const plugin = (builder, bundler) => {
35
+ // if not enabled, exit
36
+ if (!builder.options?.rpcClients?.enabled) {
37
+ return;
38
+ }
39
+ if (builder.options?.rpcClients?.inline) {
40
+ return;
41
+ }
42
+ // if no scopes, do them all!
43
+ if (!builder.options.rpcClients.scoped ||
44
+ !builder.options.rpcClients.scoped.length ||
45
+ !builder.options.rpcClients.scopedIsExclusive) {
46
+ return makeAllRPCBundles(builder, bundler);
47
+ }
48
+ };
49
+ exports.plugin = plugin;
50
+ const getFileName = (dir, filename) => {
51
+ filename = filename.replace(/\.ts$/, '');
52
+ const localname = (0, path_1.join)(dir, filename + '.query');
53
+ return localname + '.ts';
54
+ };
55
+ const makeAllRPCBundles = (builder, bundler) => {
56
+ if (!builder.options.rpcClients.bundle)
57
+ return;
58
+ const dir = bundler.bundle.base;
59
+ const filename = 'rpc';
60
+ // refs with services
61
+ const refs = builder.store.getProtos().filter((ref) => {
62
+ const proto = (0, proto_parser_1.getNestedProto)(ref.traversed);
63
+ //// Anything except Msg Service OK...
64
+ const allowedRpcServices = builder.options.rpcClients.enabledServices.filter(a => a !== 'Msg');
65
+ const found = allowedRpcServices.some(svc => {
66
+ return proto?.[svc] &&
67
+ proto[svc]?.type === 'Service';
68
+ });
69
+ if (!found) {
70
+ return;
71
+ }
72
+ return true;
73
+ });
74
+ const check = refs.filter((ref) => {
75
+ const [base] = ref.proto.package.split('.');
76
+ return base === bundler.bundle.base;
77
+ });
78
+ if (!check.length) {
79
+ // if there are no services
80
+ // exit the plugin
81
+ return;
82
+ }
83
+ const packages = refs.reduce((m, ref) => {
84
+ const [base] = ref.proto.package.split('.');
85
+ if (base === 'cosmos' || base === bundler.bundle.base)
86
+ return [...new Set([...m, ref.proto.package])];
87
+ return m;
88
+ }, []);
89
+ const methodName = 'createRPCQueryClient';
90
+ const localname = getFileName(dir, filename ?? 'rpc');
91
+ const obj = {};
92
+ builder.rpcQueryClients.forEach(file => {
93
+ // ADD all option
94
+ // which defaults to including cosmos
95
+ // and defaults to base for each
96
+ if (!(0, proto_parser_1.isRefIncluded)((0, proto_parser_1.createEmptyProtoRef)(file.package, file.proto), {
97
+ packages,
98
+ })) {
99
+ return;
100
+ }
101
+ const f = localname;
102
+ const f2 = file.localname;
103
+ const importPath = (0, utils_1.getRelativePath)(f, f2);
104
+ dotty.put(obj, file.package, importPath);
105
+ });
106
+ const ctx = new build_1.TelescopeParseContext((0, proto_parser_1.createEmptyProtoRef)(dir, localname), builder.store, builder.options);
107
+ //based on rpc type to generate client from client factory
108
+ let rpcast;
109
+ switch (builder.options?.rpcClients?.type) {
110
+ case "grpc-gateway":
111
+ rpcast = (0, ast_1.createScopedGrpcGatewayFactory)(ctx.proto, obj, "createGrpcGateWayClient"
112
+ // 'QueryClientImpl' // make option later
113
+ );
114
+ break;
115
+ case "tendermint":
116
+ // TODO add addUtil to generic context
117
+ ctx.proto.addUtil('Rpc');
118
+ rpcast = (0, ast_1.createScopedRpcTmFactory)(ctx.proto, obj, methodName
119
+ // 'QueryClientImpl' // make option later
120
+ );
121
+ break;
122
+ case "grpc-web":
123
+ rpcast = (0, ast_1.createScopedGrpcWebFactory)(ctx.proto, obj, "createGrpcWebClient");
124
+ break;
125
+ default:
126
+ break;
127
+ }
128
+ const serviceImports = (0, imports_1.getDepsFromQueries)(ctx.queries, localname);
129
+ const imports = (0, imports_1.aggregateImports)(ctx, serviceImports, localname);
130
+ const importStmts = (0, imports_1.getImportStatements)(localname, [...(0, utils_1.fixlocalpaths)(imports)], builder.options);
131
+ const prog = []
132
+ .concat(importStmts)
133
+ .concat(rpcast);
134
+ const writeFilename = bundler.getFilename(localname);
135
+ bundler.writeAst(prog, writeFilename);
136
+ bundler.addToBundleToPackage(`${dir}.ClientFactory`, localname);
137
+ };
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.plugin = void 0;
27
+ const dotty = __importStar(require("dotty"));
28
+ const proto_parser_1 = require("@cosmology/proto-parser");
29
+ const path_1 = require("path");
30
+ const ast_1 = require("@cosmology/ast");
31
+ const utils_1 = require("../utils");
32
+ const build_1 = require("../build");
33
+ const imports_1 = require("../imports");
34
+ const plugin = (builder, bundler) => {
35
+ // if not enabled, exit
36
+ if (!builder.options?.rpcClients?.enabled) {
37
+ return;
38
+ }
39
+ if (builder.options?.rpcClients?.inline) {
40
+ return;
41
+ }
42
+ // we have scopes!
43
+ builder.options.rpcClients.scoped?.forEach(rpc => {
44
+ if (rpc.dir !== bundler.bundle.base)
45
+ return;
46
+ makeRPC(builder, bundler, rpc);
47
+ });
48
+ };
49
+ exports.plugin = plugin;
50
+ const getFileName = (dir, filename) => {
51
+ filename = filename.replace(/\.ts$/, '');
52
+ const localname = (0, path_1.join)(dir, filename + '.query');
53
+ return localname + '.ts';
54
+ };
55
+ const makeRPC = (builder, bundler, rpc) => {
56
+ const dir = rpc.dir;
57
+ const packages = rpc.packages;
58
+ const protos = rpc.protos;
59
+ const methodName = rpc.methodNameQuery ?? 'createRPCQueryClient';
60
+ const localname = getFileName(dir, rpc.filename ?? 'rpc');
61
+ const obj = {};
62
+ builder.rpcQueryClients.forEach(file => {
63
+ // ADD all option
64
+ // which defaults to including cosmos
65
+ // and defaults to base for each
66
+ if (!(0, proto_parser_1.isRefIncluded)((0, proto_parser_1.createEmptyProtoRef)(file.package, file.proto), {
67
+ packages,
68
+ protos
69
+ })) {
70
+ return;
71
+ }
72
+ const f = localname;
73
+ const f2 = file.localname;
74
+ const importPath = (0, utils_1.getRelativePath)(f, f2);
75
+ dotty.put(obj, file.package, importPath);
76
+ });
77
+ const ctx = new build_1.TelescopeParseContext((0, proto_parser_1.createEmptyProtoRef)(dir, localname), builder.store, builder.options);
78
+ //based on rpc type to generate client from client factory
79
+ let rpcast;
80
+ switch (builder.options?.rpcClients?.type) {
81
+ case "grpc-gateway":
82
+ rpcast = (0, ast_1.createScopedGrpcGatewayFactory)(ctx.proto, obj, "createGrpcGateWayClient"
83
+ // 'QueryClientImpl' // make option later
84
+ );
85
+ break;
86
+ case "tendermint":
87
+ // TODO add addUtil to generic context
88
+ ctx.proto.addUtil('Rpc');
89
+ rpcast = (0, ast_1.createScopedRpcTmFactory)(ctx.proto, obj, methodName
90
+ // 'QueryClientImpl' // make option later
91
+ );
92
+ break;
93
+ case "grpc-web":
94
+ rpcast = (0, ast_1.createScopedGrpcWebFactory)(ctx.proto, obj, "createGrpcWebClient");
95
+ break;
96
+ default:
97
+ break;
98
+ }
99
+ const serviceImports = (0, imports_1.getDepsFromQueries)(ctx.queries, localname);
100
+ const imports = (0, imports_1.aggregateImports)(ctx, serviceImports, localname);
101
+ const importStmts = (0, imports_1.getImportStatements)(localname, [...(0, utils_1.fixlocalpaths)(imports)], builder.options);
102
+ const prog = []
103
+ .concat(importStmts)
104
+ .concat(rpcast);
105
+ const filename = bundler.getFilename(localname);
106
+ bundler.writeAst(prog, filename);
107
+ if (rpc.addToBundle) {
108
+ bundler.addToBundleToPackage(`${dir}.ClientFactory`, localname);
109
+ }
110
+ };
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.plugin = void 0;
4
+ const imports_1 = require("../imports");
5
+ const ast_1 = require("@cosmology/ast");
6
+ const proto_parser_1 = require("@cosmology/proto-parser");
7
+ const parse_1 = require("../parse");
8
+ const utils_1 = require("@cosmology/utils");
9
+ const plugin = (builder, bundler) => {
10
+ const instantRpcBundlerFiles = {};
11
+ const reactQueryBundlerFiles = [];
12
+ const mobxBundlerFiles = [];
13
+ const clients = bundler.contexts.map(c => {
14
+ const enabled = c.proto.pluginValue('rpcClients.enabled');
15
+ if (!enabled)
16
+ return;
17
+ const inline = c.proto.pluginValue('rpcClients.inline');
18
+ if (inline)
19
+ return;
20
+ if (c.proto.isExcluded())
21
+ return;
22
+ const ctx = bundler.getFreshContext(c);
23
+ // get mutations, services
24
+ (0, parse_1.parse)(ctx);
25
+ const proto = (0, proto_parser_1.getNestedProto)(c.ref.traversed);
26
+ //// Anything except Msg Service OK...
27
+ const allowedRpcServices = builder.options.rpcClients?.enabledServices?.filter(a => a !== 'Msg') ?? [];
28
+ const found = allowedRpcServices.some(svc => {
29
+ return proto?.[svc] &&
30
+ proto[svc]?.type === 'Service';
31
+ });
32
+ if (!found) {
33
+ return;
34
+ }
35
+ ///
36
+ let name, getImportsFrom;
37
+ allowedRpcServices.forEach(svcKey => {
38
+ if (proto[svcKey]) {
39
+ if (svcKey === 'Query') {
40
+ getImportsFrom = ctx.queries;
41
+ }
42
+ else {
43
+ getImportsFrom = ctx.services;
44
+ }
45
+ name = svcKey;
46
+ }
47
+ });
48
+ const localname = bundler.getLocalFilename(c.ref, `rpc.${name}`);
49
+ const filename = bundler.getFilename(localname);
50
+ const bundlerFile = {
51
+ proto: c.ref.filename,
52
+ package: c.ref.proto.package,
53
+ localname,
54
+ filename
55
+ };
56
+ const asts = [];
57
+ switch (c.proto.pluginValue('rpcClients.type')) {
58
+ case 'grpc-gateway':
59
+ allowedRpcServices.forEach(svcKey => {
60
+ if (proto[svcKey]) {
61
+ const svc = proto[svcKey];
62
+ asts.push((0, ast_1.createGRPCGatewayQueryClass)(ctx.generic, svc));
63
+ asts.push((0, ast_1.createGRPCGatewayWrapperClass)(ctx.generic, svc));
64
+ }
65
+ });
66
+ break;
67
+ case 'grpc-web':
68
+ allowedRpcServices.forEach(svcKey => {
69
+ if (proto[svcKey]) {
70
+ const svc = proto[svcKey];
71
+ asts.push((0, ast_1.createGrpcWebQueryInterface)(ctx.generic, svc));
72
+ asts.push((0, ast_1.createGrpcWebQueryClass)(ctx.generic, svc));
73
+ // add descriptor for grpc-web
74
+ asts.push((0, ast_1.GetDesc)(ctx.generic, proto[svcKey]));
75
+ const Desces = (0, ast_1.getMethodDesc)(ctx.generic, proto[svcKey]);
76
+ for (let i = 0; i < Desces.length; i++) {
77
+ const element = Desces[i];
78
+ asts.push(element);
79
+ }
80
+ asts.push((0, ast_1.grpcWebRpcInterface)());
81
+ asts.push((0, ast_1.getGrpcWebImpl)(ctx.generic));
82
+ /* Added the sameway as Tendermint implement, if modify below then modify this one too */
83
+ // see if current file has been reactQuery enabled and included
84
+ const includeReactQueryHooks = c.proto.pluginValue('reactQuery.enabled') && (0, proto_parser_1.isRefIncluded)(c.ref, c.proto.pluginValue('reactQuery.include'));
85
+ if (includeReactQueryHooks) {
86
+ [].push.apply(asts, (0, ast_1.createRpcQueryHookInterfaces)(ctx.generic, svc));
87
+ [].push.apply(asts, (0, ast_1.createRpcQueryHookClientMap)(ctx.generic, svc));
88
+ asts.push((0, ast_1.createRpcQueryHooks)(ctx.generic, proto[svcKey]));
89
+ // get all query methods
90
+ const patterns = c.proto.pluginValue('reactQuery.instantExport.include.patterns');
91
+ bundlerFile.instantExportedMethods = (0, utils_1.getQueryMethodNames)(bundlerFile.package, Object.keys(proto[svcKey].methods ?? {}), patterns).map((key) => proto[svcKey].methods[key]);
92
+ reactQueryBundlerFiles.push(bundlerFile);
93
+ }
94
+ // whether mobx plugin is enabled has been dealt with inside createMobxQueryStores
95
+ const mobxQueryStoreAst = (0, ast_1.createMobxQueryStores)(ctx.generic, proto[svcKey]);
96
+ if (mobxQueryStoreAst) {
97
+ asts.push(mobxQueryStoreAst);
98
+ mobxBundlerFiles.push(bundlerFile);
99
+ }
100
+ }
101
+ });
102
+ break;
103
+ case 'tendermint':
104
+ default:
105
+ allowedRpcServices.forEach(svcKey => {
106
+ if (proto[svcKey]) {
107
+ const svc = proto[svcKey];
108
+ asts.push((0, ast_1.createRpcClientInterface)(ctx.generic, svc));
109
+ const instantOps = c.options.rpcClients?.instantOps ?? [];
110
+ const useCamelCase = c.options.rpcClients?.camelCase;
111
+ instantOps.forEach((item) => {
112
+ let nameMapping = {
113
+ ...(0, utils_1.swapKeyValue)(item.nameMapping?.All ?? {}),
114
+ ...(0, utils_1.swapKeyValue)(item.nameMapping?.Query ?? {})
115
+ };
116
+ // get all query methods
117
+ const patterns = item.include?.patterns;
118
+ const serviceTypes = item.include?.serviceTypes;
119
+ if (serviceTypes && !serviceTypes.includes("Query")) {
120
+ return;
121
+ }
122
+ const methodKeys = (0, utils_1.getQueryMethodNames)(bundlerFile.package, Object.keys(proto[svcKey].methods ?? {}), patterns, useCamelCase ? utils_1.camel : String);
123
+ if (!methodKeys || !methodKeys.length) {
124
+ return;
125
+ }
126
+ asts.push((0, ast_1.createRpcClientInterface)(ctx.generic, svc, item.className, methodKeys, nameMapping));
127
+ bundlerFile.instantExportedMethods = methodKeys.map((key) => proto[svcKey].methods[key]);
128
+ if (!instantRpcBundlerFiles[item.className]) {
129
+ instantRpcBundlerFiles[item.className] = [];
130
+ }
131
+ instantRpcBundlerFiles[item.className].push({ ...bundlerFile });
132
+ });
133
+ asts.push((0, ast_1.createRpcClientClass)(ctx.generic, svc));
134
+ if (c.proto.pluginValue('rpcClients.extensions')) {
135
+ asts.push((0, ast_1.createRpcQueryExtension)(ctx.generic, svc));
136
+ }
137
+ else {
138
+ const env = c.proto.pluginValue('env');
139
+ if (env === 'v-next') {
140
+ asts.push((0, ast_1.createRpcClientImpl)(ctx.generic, svc));
141
+ }
142
+ }
143
+ // see if current file has been reactQuery enabled and included
144
+ const includeReactQueryHooks = c.proto.pluginValue('reactQuery.enabled') && (0, proto_parser_1.isRefIncluded)(c.ref, c.proto.pluginValue('reactQuery.include'));
145
+ const includeMobxHooks = c.proto.pluginValue('mobx.enabled') && (0, proto_parser_1.isRefIncluded)(c.ref, c.proto.pluginValue('mobx.include'));
146
+ if (includeReactQueryHooks) {
147
+ [].push.apply(asts, (0, ast_1.createRpcQueryHookInterfaces)(ctx.generic, svc));
148
+ }
149
+ // enable getQueryService for plugins using it.
150
+ if (includeReactQueryHooks || includeMobxHooks) {
151
+ [].push.apply(asts, (0, ast_1.createRpcQueryHookClientMap)(ctx.generic, svc));
152
+ }
153
+ // react query
154
+ // generate react query parts if included.
155
+ // eg: __fixtures__/output1/akash/audit/v1beta2/query.rpc.Query.ts
156
+ // export interface UseAuditorAttributesQuery<TData> ...
157
+ // const _queryClients: WeakMap ...
158
+ // const getQueryService = ...
159
+ // export const createRpcQueryHooks = ...
160
+ // TODO use the imports and make separate files
161
+ if (includeReactQueryHooks) {
162
+ asts.push((0, ast_1.createRpcQueryHooks)(ctx.generic, proto[svcKey]));
163
+ // get all query methods
164
+ const patterns = c.proto.pluginValue('reactQuery.instantExport.include.patterns');
165
+ bundlerFile.instantExportedMethods = (0, utils_1.getQueryMethodNames)(bundlerFile.package, Object.keys(proto[svcKey].methods ?? {}), patterns).map((key) => proto[svcKey].methods[key]);
166
+ reactQueryBundlerFiles.push(bundlerFile);
167
+ }
168
+ // whether mobx plugin is enabled has been dealt with inside createMobxQueryStores
169
+ const mobxQueryStoreAst = (0, ast_1.createMobxQueryStores)(ctx.generic, proto[svcKey]);
170
+ if (mobxQueryStoreAst) {
171
+ asts.push(mobxQueryStoreAst);
172
+ mobxBundlerFiles.push(bundlerFile);
173
+ }
174
+ }
175
+ });
176
+ }
177
+ if (!asts.length) {
178
+ return;
179
+ }
180
+ const serviceImports = (0, imports_1.getDepsFromQueries)(getImportsFrom, localname);
181
+ // TODO we do NOT need all imports...
182
+ const imports = (0, imports_1.buildAllImports)(ctx, serviceImports, localname);
183
+ const prog = []
184
+ .concat(imports)
185
+ .concat(ctx.body)
186
+ .concat(asts);
187
+ bundler.writeAst(prog, filename);
188
+ bundler.addToBundle(c, localname);
189
+ return bundlerFile;
190
+ }).filter(Boolean);
191
+ bundler.addRPCQueryClients(clients);
192
+ Object.keys(instantRpcBundlerFiles).forEach((className) => {
193
+ bundler.addStateManagers(`instantRpc_${className}`, instantRpcBundlerFiles[className]);
194
+ });
195
+ bundler.addStateManagers("reactQuery", reactQueryBundlerFiles);
196
+ bundler.addStateManagers("mobx", mobxBundlerFiles);
197
+ };
198
+ exports.plugin = plugin;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.plugin = void 0;
4
+ const path_1 = require("path");
5
+ const ast_1 = require("@cosmology/ast");
6
+ const case_1 = require("case");
7
+ const utils_1 = require("@cosmology/utils");
8
+ const imports_1 = require("../imports");
9
+ const plugin = (builder, bundler) => {
10
+ if (!bundler.registries || !bundler.registries.length) {
11
+ return;
12
+ }
13
+ const registryImports = [];
14
+ const converterImports = [];
15
+ const clientFile = bundler.bundle.base.concat('-sdk-module-client.ts');
16
+ bundler.files.push(clientFile);
17
+ const ctxRef = {
18
+ absolute: '/',
19
+ filename: '/',
20
+ proto: {
21
+ imports: [],
22
+ package: bundler.bundle.base,
23
+ root: {},
24
+ }
25
+ };
26
+ const ctx = new ast_1.GenericParseContext(ctxRef, null, builder.options);
27
+ const registryVariables = [];
28
+ const converterVariables = [];
29
+ bundler.registries.forEach(registry => {
30
+ let rel = (0, path_1.relative)((0, path_1.dirname)(clientFile), registry.localname);
31
+ if (!rel.startsWith('.'))
32
+ rel = `./${rel}`;
33
+ rel = (0, utils_1.toPosixPath)(rel);
34
+ const variable = (0, utils_1.variableSlug)(registry.localname);
35
+ registryVariables.push(variable);
36
+ registryImports.push((0, ast_1.importNamespace)(variable, rel));
37
+ });
38
+ bundler.converters.forEach(converter => {
39
+ let rel = (0, path_1.relative)((0, path_1.dirname)(clientFile), converter.localname);
40
+ if (!rel.startsWith('.'))
41
+ rel = `./${rel}`;
42
+ rel = (0, utils_1.toPosixPath)(rel);
43
+ const variable = (0, utils_1.variableSlug)(converter.localname);
44
+ converterVariables.push(variable);
45
+ converterImports.push((0, ast_1.importNamespace)(variable, rel));
46
+ });
47
+ const name = 'getSigning' + (0, case_1.pascal)(bundler.bundle.base + 'Client');
48
+ const txRpcName = 'getSigning' + (0, case_1.pascal)(bundler.bundle.base + 'TxRpc');
49
+ const prefix = (0, case_1.camel)(bundler.bundle.base);
50
+ const aminos = (0, ast_1.createStargateClientAminoRegistry)({
51
+ context: ctx,
52
+ aminos: converterVariables,
53
+ aminoConverters: prefix + 'AminoConverters'
54
+ });
55
+ const protos = (0, ast_1.createStargateClientProtoRegistry)({
56
+ context: ctx,
57
+ registries: registryVariables,
58
+ protoTypeRegistry: prefix + 'ProtoRegistry'
59
+ });
60
+ const clientOptions = (0, ast_1.createStargateClientOptions)({
61
+ context: ctx,
62
+ name: name + 'Options',
63
+ protoTypeRegistry: prefix + 'ProtoRegistry',
64
+ aminoConverters: prefix + 'AminoConverters'
65
+ });
66
+ const clientBody = (0, ast_1.createStargateClient)({
67
+ context: ctx,
68
+ name,
69
+ options: name + 'Options',
70
+ });
71
+ let getTxRpc;
72
+ if (ctx.pluginValue("stargateClients.addGetTxRpc")) {
73
+ getTxRpc = (0, ast_1.createGetTxRpc)(ctx, txRpcName, name);
74
+ }
75
+ const imports = (0, imports_1.buildAllImportsFromGenericContext)(ctx, clientFile);
76
+ let importDecls = [...imports, ...registryImports, ...converterImports];
77
+ importDecls = (0, utils_1.duplicateImportPathsWithExt)(importDecls, builder.options.restoreImportExtension);
78
+ let cProg = importDecls
79
+ .concat(aminos)
80
+ .concat(protos)
81
+ .concat(clientOptions)
82
+ .concat(clientBody);
83
+ // replace all backslash path for windows
84
+ for (let i = 0; i < cProg.length; i++) {
85
+ if (cProg[i].source?.value) {
86
+ cProg[i].source.value = (0, utils_1.toPosixPath)(cProg[i].source?.value);
87
+ }
88
+ }
89
+ if (getTxRpc) {
90
+ cProg = cProg.concat(getTxRpc);
91
+ }
92
+ const clientOutFile = (0, path_1.join)(builder.outPath, clientFile);
93
+ bundler.writeAst(cProg, clientOutFile);
94
+ };
95
+ exports.plugin = plugin;