@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,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.plugin = void 0;
4
+ const ast_1 = require("@cosmology/ast");
5
+ const utils_1 = require("@cosmology/utils");
6
+ const plugin = (builder, bundler) => {
7
+ if (!builder.options.bundle.enabled) {
8
+ return;
9
+ }
10
+ let prog = [];
11
+ if (builder.options.bundle.type === "namespace") {
12
+ const importPaths = (0, utils_1.duplicateImportPathsWithExt)(bundler.bundle.importPaths, builder.options.restoreImportExtension);
13
+ // [x] bundle
14
+ const body = (0, ast_1.recursiveModuleBundle)(builder.options, bundler.bundle.bundleVariables);
15
+ prog = prog.concat(importPaths).concat(body);
16
+ }
17
+ else if (builder.options.bundle.type === "module") {
18
+ // get export objs
19
+ const exportObjs = bundler.bundle.exportObjs;
20
+ if (!exportObjs) {
21
+ return;
22
+ }
23
+ // check each of exported identifiers is duplicated
24
+ exportObjs.forEach((exportObj) => {
25
+ const duplicatedTypeNames = exportObj.exportedIdentifiers.filter((identifier) => {
26
+ let isDuplicated = false;
27
+ if (exportObj.isHelperFunc) {
28
+ const duplicatedHelperFuncs = builder.store.getHelperFuncsInMultipleFiles();
29
+ isDuplicated = duplicatedHelperFuncs.some((helperFunc) => {
30
+ return helperFunc === identifier;
31
+ });
32
+ }
33
+ else {
34
+ const duplicatedTypes = builder.store.getTypesInMultipleFiles();
35
+ isDuplicated = duplicatedTypes.some((type) => {
36
+ return type === identifier;
37
+ });
38
+ }
39
+ return isDuplicated;
40
+ });
41
+ if (duplicatedTypeNames.length > 0) {
42
+ // export each, some duplicated with alias
43
+ const typesWithAlias = exportObj.exportedIdentifiers.map((identifier) => {
44
+ const duplicatedType = duplicatedTypeNames.find((type) => type === identifier);
45
+ if (duplicatedType) {
46
+ let alias;
47
+ if (exportObj.isHelperFunc) {
48
+ const serialNumber = builder.store.getAndIncTypeSerialNumber(identifier);
49
+ if (serialNumber > 0) {
50
+ alias = (0, utils_1.makeAliasNameWithPackageAtEnd)({ package: exportObj.pkg, name: identifier });
51
+ }
52
+ else {
53
+ alias = identifier;
54
+ }
55
+ }
56
+ else {
57
+ const serialNumber = builder.store.getAndIncTypeSerialNumber(identifier);
58
+ if (serialNumber > 0) {
59
+ alias = (0, utils_1.makeAliasName)({ package: exportObj.pkg, name: identifier });
60
+ }
61
+ else {
62
+ alias = identifier;
63
+ }
64
+ }
65
+ return { name: identifier, alias: alias };
66
+ }
67
+ return { name: identifier, alias: identifier };
68
+ });
69
+ prog.push((0, ast_1.exportTypesWithAlias)(typesWithAlias, exportObj.relativePath));
70
+ }
71
+ else {
72
+ // export *
73
+ prog.push((0, ast_1.exportAllFromRelPath)(exportObj.relativePath));
74
+ }
75
+ });
76
+ }
77
+ const localname = bundler.bundle.bundleFile;
78
+ const filename = bundler.getFilename(localname);
79
+ bundler.writeAst(prog, filename);
80
+ // [x] write an index file for each base
81
+ bundler.files.forEach((file) => builder.files.push(file));
82
+ };
83
+ exports.plugin = plugin;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.plugin = void 0;
4
+ const ts_codegen_1 = require("@cosmwasm/ts-codegen");
5
+ const plugin = async (builder) => {
6
+ if (!builder.options.cosmwasm) {
7
+ return;
8
+ }
9
+ const input = builder.options.cosmwasm;
10
+ const cosmWasmBuilder = new ts_codegen_1.TSBuilder(input);
11
+ await cosmWasmBuilder.build();
12
+ const file = input.options.bundle.bundleFile;
13
+ builder.files.push(file);
14
+ };
15
+ exports.plugin = plugin;
@@ -0,0 +1,100 @@
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 files_1 = require("../utils/files");
10
+ const plugin = (builder, allRegistries, allConverters) => {
11
+ builder.options.rpcClients.clientStyle.customClientOption.map((currentClient) => {
12
+ if (!allRegistries || !allRegistries.length) {
13
+ return;
14
+ }
15
+ const registryImports = [];
16
+ const converterImports = [];
17
+ const clientFile = currentClient.fileName;
18
+ builder.files.push(clientFile);
19
+ const ctxRef = {
20
+ absolute: '/',
21
+ filename: '/',
22
+ proto: {
23
+ imports: [],
24
+ package: currentClient.name,
25
+ root: {},
26
+ }
27
+ };
28
+ const ctx = new ast_1.GenericParseContext(ctxRef, null, builder.options);
29
+ const registryVariables = [];
30
+ const converterVariables = [];
31
+ const filteredRegistries = allRegistries.filter(item => (0, utils_1.isPackageIncluded)(item.package, currentClient.include.patterns));
32
+ filteredRegistries.forEach(registry => {
33
+ let rel = (0, path_1.relative)((0, path_1.dirname)(clientFile), registry.localname);
34
+ if (!rel.startsWith('.'))
35
+ rel = `./${rel}`;
36
+ rel = (0, utils_1.toPosixPath)(rel);
37
+ const variable = (0, utils_1.variableSlug)(registry.localname);
38
+ registryVariables.push(variable);
39
+ registryImports.push((0, ast_1.importNamespace)(variable, rel));
40
+ });
41
+ const filteredConverters = allConverters.filter(item => (0, utils_1.isPackageIncluded)(item.package, currentClient.include.patterns));
42
+ filteredConverters.forEach(converter => {
43
+ let rel = (0, path_1.relative)((0, path_1.dirname)(clientFile), converter.localname);
44
+ if (!rel.startsWith('.'))
45
+ rel = `./${rel}`;
46
+ rel = (0, utils_1.toPosixPath)(rel);
47
+ const variable = (0, utils_1.variableSlug)(converter.localname);
48
+ converterVariables.push(variable);
49
+ converterImports.push((0, ast_1.importNamespace)(variable, rel));
50
+ });
51
+ const name = 'get' + (0, case_1.pascal)(currentClient.name + 'SigningClient');
52
+ const txRpcName = 'get' + (0, case_1.pascal)(currentClient.name + 'SigningTxRpc');
53
+ const prefix = (0, case_1.camel)(currentClient.name);
54
+ const aminos = (0, ast_1.createStargateClientAminoRegistry)({
55
+ context: ctx,
56
+ aminos: converterVariables,
57
+ aminoConverters: prefix + 'AminoConverters'
58
+ });
59
+ const protos = (0, ast_1.createStargateClientProtoRegistry)({
60
+ context: ctx,
61
+ registries: registryVariables,
62
+ protoTypeRegistry: prefix + 'ProtoRegistry'
63
+ });
64
+ const clientOptions = (0, ast_1.createStargateClientOptions)({
65
+ context: ctx,
66
+ name: name + 'Options',
67
+ protoTypeRegistry: prefix + 'ProtoRegistry',
68
+ aminoConverters: prefix + 'AminoConverters'
69
+ });
70
+ const clientBody = (0, ast_1.createStargateClient)({
71
+ context: ctx,
72
+ name,
73
+ options: name + 'Options',
74
+ });
75
+ let getTxRpc;
76
+ if (ctx.pluginValue("stargateClients.addGetTxRpc")) {
77
+ getTxRpc = (0, ast_1.createGetTxRpc)(ctx, txRpcName, name);
78
+ }
79
+ const imports = (0, imports_1.buildAllImportsFromGenericContext)(ctx, clientFile);
80
+ let importDecls = [...imports, ...registryImports, ...converterImports];
81
+ importDecls = (0, utils_1.duplicateImportPathsWithExt)(importDecls, builder.options.restoreImportExtension);
82
+ let cProg = importDecls
83
+ .concat(aminos)
84
+ .concat(protos)
85
+ .concat(clientOptions)
86
+ .concat(clientBody);
87
+ // replace all backslash path for windows
88
+ for (let i = 0; i < cProg.length; i++) {
89
+ if (cProg[i].source?.value) {
90
+ cProg[i].source.value = (0, utils_1.toPosixPath)(cProg[i].source?.value);
91
+ }
92
+ }
93
+ if (getTxRpc) {
94
+ cProg = cProg.concat(getTxRpc);
95
+ }
96
+ const clientOutFile = (0, path_1.join)(builder.outPath, clientFile);
97
+ (0, files_1.writeAstToFile)(builder.outPath, builder.options, cProg, clientOutFile);
98
+ });
99
+ };
100
+ exports.plugin = plugin;
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.plugin = void 0;
7
+ const path_1 = require("path");
8
+ const mkdirp_1 = require("mkdirp");
9
+ const package_json_1 = __importDefault(require("../../package.json"));
10
+ const files_1 = require("../utils/files");
11
+ const helpers_1 = require("../helpers");
12
+ const version = process.env.NODE_ENV === "test" ? "latest" : package_json_1.default.version;
13
+ const header = `/**
14
+ * This file and any referenced files were automatically generated by ${package_json_1.default.name}@${version}
15
+ * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain
16
+ * and run the transpile command or npm scripts command that is used to regenerate this bundle.
17
+ */
18
+ \n`;
19
+ const write = (builder, indexFile, content) => {
20
+ const indexOutFile = (0, path_1.join)(builder.outPath, indexFile);
21
+ mkdirp_1.mkdirp.sync((0, path_1.dirname)(indexOutFile));
22
+ (0, files_1.writeContentToFile)(builder.outPath, builder.options, header + content, indexOutFile);
23
+ };
24
+ const plugin = (builder) => {
25
+ write(builder, "helpers.ts", builder.options.prototypes.typingsFormat.num64 === "bigint"
26
+ ? (0, helpers_1.getHelperForBigint)(builder.options)
27
+ : (0, helpers_1.getHelper)(builder.options));
28
+ // should be exported
29
+ if (builder.options.stargateClients.addGetTxRpc ||
30
+ builder.options.includeExternalHelpers ||
31
+ builder.options.reactQuery?.enabled ||
32
+ builder.options?.helperFunctions?.enabled) {
33
+ // also react-query needs these...
34
+ builder.files.push("extern.ts");
35
+ if (builder.options?.helperFunctions?.enabled) {
36
+ write(builder, "extern.ts", helpers_1.externalIcJs);
37
+ }
38
+ else {
39
+ write(builder, "extern.ts", builder.options.rpcClients?.useConnectComet || builder.options.rpcClients?.useMakeClient ? helpers_1.externalComet : helpers_1.external);
40
+ }
41
+ }
42
+ if (builder.options.helperFunctions?.enabled) {
43
+ builder.files.push("helper-func-types.ts");
44
+ if (builder.options.interfaces?.enabled && builder.options.helperFunctions?.useGlobalDecoderRegistry) {
45
+ write(builder, "helper-func-types.ts", (0, helpers_1.getHelperFuncTypesForInterface)(builder.options));
46
+ }
47
+ else {
48
+ write(builder, "helper-func-types.ts", (0, helpers_1.getHelperFuncTypes)(builder.options));
49
+ }
50
+ }
51
+ if (builder.options.reactQuery?.enabled ||
52
+ (builder.options?.helperFunctions?.enabled &&
53
+ builder.options?.helperFunctions?.hooks?.react)) {
54
+ builder.files.push("react-query.ts");
55
+ if (builder.options?.helperFunctions?.enabled &&
56
+ builder.options?.helperFunctions?.hooks?.react) {
57
+ if (builder.options?.useInterchainJs) {
58
+ write(builder, "react-query.ts", (0, helpers_1.getReactQueryHelperHooksIcJs)(builder.options));
59
+ }
60
+ else {
61
+ write(builder, "react-query.ts", (0, helpers_1.getReactQueryHelperHooks)(builder.options));
62
+ }
63
+ }
64
+ else {
65
+ write(builder, "react-query.ts", (0, helpers_1.getReactQueryHelper)(builder.options));
66
+ }
67
+ }
68
+ if (builder.options?.helperFunctions?.enabled &&
69
+ builder.options?.helperFunctions?.hooks?.vue) {
70
+ builder.files.push("vue-query.ts");
71
+ write(builder, "vue-query.ts", (0, helpers_1.getVueQueryHelperHooks)(builder.options));
72
+ }
73
+ if (builder.options.mobx?.enabled) {
74
+ builder.files.push("mobx.ts");
75
+ write(builder, "mobx.ts", helpers_1.mobx);
76
+ }
77
+ if (builder.options.pinia?.enabled) {
78
+ builder.files.push("pinia-endpoint.ts");
79
+ write(builder, "pinia-endpoint.ts", helpers_1.pinia);
80
+ }
81
+ if (builder.options.rpcClients?.type === "grpc-gateway") {
82
+ builder.files.push("grpc-gateway.ts");
83
+ write(builder, "grpc-gateway.ts", helpers_1.grpcGateway);
84
+ }
85
+ if (builder.options.rpcClients?.type === "grpc-web") {
86
+ builder.files.push("grpc-web.ts");
87
+ write(builder, "grpc-web.ts", helpers_1.grpcWeb);
88
+ }
89
+ if (builder.options.prototypes.typingsFormat.customTypes.useEnhancedDecimal) {
90
+ builder.files.push("decimals.ts");
91
+ write(builder, "decimals.ts", helpers_1.decimal);
92
+ }
93
+ if (!builder.options.prototypes.typingsFormat.toJsonUnknown &&
94
+ builder.options.prototypes.methods.toJSON) {
95
+ builder.files.push("json-safe.ts");
96
+ write(builder, "json-safe.ts", helpers_1.jsonSafe);
97
+ }
98
+ if (builder.options.prototypes.typingsFormat.num64 === "bigint") {
99
+ builder.files.push("varint.ts");
100
+ write(builder, "varint.ts", helpers_1.varint);
101
+ builder.files.push("utf8.ts");
102
+ write(builder, "utf8.ts", helpers_1.utf8);
103
+ builder.files.push("binary.ts");
104
+ write(builder, "binary.ts", (0, helpers_1.getHelperForBinary)(builder.options));
105
+ }
106
+ if (builder.options.prototypes?.typingsFormat?.useTelescopeGeneratedType ||
107
+ (builder.options.interfaces?.enabled &&
108
+ (builder.options.interfaces?.useGlobalDecoderRegistry || builder.options.helperFunctions?.useGlobalDecoderRegistry)) ||
109
+ builder.options.helperFunctions?.enabled) {
110
+ builder.files.push("types.ts");
111
+ write(builder, "types.ts", (0, helpers_1.getTypesHelper)(builder.options));
112
+ }
113
+ if (builder.options.interfaces?.enabled &&
114
+ (builder.options.interfaces?.useGlobalDecoderRegistry || builder.options.helperFunctions?.useGlobalDecoderRegistry)) {
115
+ builder.files.push("registry.ts");
116
+ write(builder, "registry.ts", (0, helpers_1.getRegistryHelper)(builder.options));
117
+ }
118
+ };
119
+ exports.plugin = plugin;
@@ -0,0 +1,75 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.plugin = void 0;
30
+ const utils_1 = require("../utils");
31
+ const path_1 = require("path");
32
+ const mkdirp_1 = require("mkdirp");
33
+ const t = __importStar(require("@babel/types"));
34
+ const generator_1 = __importDefault(require("@babel/generator"));
35
+ //@ts-ignore
36
+ const package_json_1 = __importDefault(require("../../package.json"));
37
+ const files_1 = require("../utils/files");
38
+ const version = process.env.NODE_ENV === "test" ? "latest" : package_json_1.default.version;
39
+ const plugin = (builder) => {
40
+ if (!builder.options.bundle.enabled) {
41
+ return;
42
+ }
43
+ // finally, write one index file with all files, exported
44
+ const indexFile = "index.ts";
45
+ const indexOutFile = (0, path_1.join)(builder.outPath, indexFile);
46
+ const stmts = builder.files.map((file) => t.exportAllDeclaration(t.stringLiteral((0, utils_1.getRelativePath)(indexFile, file, builder.options.restoreImportExtension))));
47
+ const finalAst = t.program(stmts);
48
+ const indexContent = (0, generator_1.default)(finalAst).code;
49
+ mkdirp_1.mkdirp.sync((0, path_1.dirname)(indexOutFile));
50
+ const header = `/**
51
+ * This file and any referenced files were automatically generated by ${package_json_1.default.name}@${version}
52
+ * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain
53
+ * and run the transpile command or npm scripts command that is used to regenerate this bundle.
54
+ */
55
+ \n`;
56
+ (0, files_1.writeContentToFile)(builder.outPath, builder.options, header + indexContent, indexOutFile);
57
+ if (builder.options.bundle.enabled &&
58
+ builder.options.bundle.type === "module") {
59
+ const typePackageMapping = builder.store.getTypesInMultipleFiles();
60
+ const servicePackageMapping = builder.store.getHelperFuncsInMultipleFiles();
61
+ const typePackageMappingMap = typePackageMapping.reduce((obj, type) => {
62
+ const pkg = builder.store.getTypeFilesMapping(type);
63
+ obj[type] = pkg.join(", ");
64
+ return obj;
65
+ }, {});
66
+ // console.log("types in multiple files:", JSON.stringify(typePackageMappingMap, null, 2));
67
+ const servicePackageMappingMap = servicePackageMapping.reduce((obj, service) => {
68
+ const pkg = builder.store.getHelperFuncFilesMapping(service);
69
+ obj[service] = pkg.join(", ");
70
+ return obj;
71
+ }, {});
72
+ // console.log("services in multiple files:", JSON.stringify(servicePackageMappingMap, null, 2));
73
+ }
74
+ };
75
+ exports.plugin = plugin;
@@ -0,0 +1,116 @@
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?.lcdClients?.enabled) {
37
+ return;
38
+ }
39
+ // if no scopes, do them all!
40
+ if (!builder.options.lcdClients.scoped ||
41
+ !builder.options.lcdClients.scoped.length ||
42
+ !builder.options.lcdClients.scopedIsExclusive) {
43
+ return createAllLCDBundles(builder, bundler);
44
+ }
45
+ };
46
+ exports.plugin = plugin;
47
+ const getFileName = (dir, filename) => {
48
+ const localname = (0, path_1.join)(dir, filename ?? 'lcd.ts');
49
+ if (localname.endsWith('.ts'))
50
+ return localname;
51
+ return localname + '.ts';
52
+ };
53
+ const createAllLCDBundles = (builder, bundler) => {
54
+ if (!builder.options.lcdClients.bundle)
55
+ return;
56
+ const dir = bundler.bundle.base;
57
+ const filename = 'lcd.ts';
58
+ // refs with services
59
+ const refs = builder.store.getProtos().filter((ref) => {
60
+ const proto = (0, proto_parser_1.getNestedProto)(ref.traversed);
61
+ //// Anything except Msg Service OK...
62
+ const allowedRpcServices = builder.options.rpcClients.enabledServices.filter(a => a !== 'Msg');
63
+ const found = allowedRpcServices.some(svc => {
64
+ return proto?.[svc] &&
65
+ proto[svc]?.type === 'Service';
66
+ });
67
+ if (!found) {
68
+ return;
69
+ }
70
+ return true;
71
+ });
72
+ const check = refs.filter((ref) => {
73
+ const [base] = ref.proto.package.split('.');
74
+ return base === bundler.bundle.base;
75
+ });
76
+ if (!check.length) {
77
+ // if there are no services
78
+ // exit the plugin
79
+ return;
80
+ }
81
+ const packages = refs.reduce((m, ref) => {
82
+ const [base] = ref.proto.package.split('.');
83
+ if (base === 'cosmos' || base === bundler.bundle.base)
84
+ return [...new Set([...m, ref.proto.package])];
85
+ return m;
86
+ }, []);
87
+ const methodName = 'createLCDClient';
88
+ const localname = getFileName(dir, filename);
89
+ const obj = {};
90
+ builder.lcdClients.forEach(file => {
91
+ // ADD all option
92
+ // which defaults to including cosmos
93
+ // and defaults to base for each
94
+ // if (!packages.includes(file.package)) {
95
+ if (!(0, proto_parser_1.isRefIncluded)((0, proto_parser_1.createEmptyProtoRef)(file.package, file.proto), {
96
+ packages,
97
+ })) {
98
+ return;
99
+ }
100
+ const f = localname;
101
+ const f2 = file.localname;
102
+ const importPath = (0, utils_1.getRelativePath)(f, f2);
103
+ dotty.put(obj, file.package, importPath);
104
+ });
105
+ const ctx = new build_1.TelescopeParseContext((0, proto_parser_1.createEmptyProtoRef)(dir, localname), builder.store, builder.options);
106
+ const lcdast = (0, ast_1.createScopedLCDFactory)(ctx.proto, obj, methodName, 'LCDQueryClient' // make option later
107
+ );
108
+ const imports = (0, imports_1.aggregateImports)(ctx, {}, localname);
109
+ const importStmts = (0, imports_1.getImportStatements)(localname, [...(0, utils_1.fixlocalpaths)(imports)], builder.options);
110
+ const prog = []
111
+ .concat(importStmts)
112
+ .concat(lcdast);
113
+ const writeFilename = bundler.getFilename(localname);
114
+ bundler.writeAst(prog, writeFilename);
115
+ bundler.addToBundleToPackage(`${dir}.ClientFactory`, localname);
116
+ };
@@ -0,0 +1,89 @@
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?.lcdClients?.enabled) {
37
+ return;
38
+ }
39
+ // we have scopes!
40
+ builder.options.lcdClients.scoped?.forEach(lcd => {
41
+ if (lcd.dir !== bundler.bundle.base)
42
+ return;
43
+ makeLCD(builder, bundler, lcd);
44
+ });
45
+ };
46
+ exports.plugin = plugin;
47
+ const getFileName = (dir, filename) => {
48
+ const localname = (0, path_1.join)(dir, filename ?? 'lcd.ts');
49
+ if (localname.endsWith('.ts'))
50
+ return localname;
51
+ return localname + '.ts';
52
+ };
53
+ const makeLCD = (builder, bundler, lcd) => {
54
+ const dir = lcd.dir;
55
+ const packages = lcd.packages;
56
+ const protos = lcd.protos;
57
+ const methodName = lcd.methodName ?? 'createLCDClient';
58
+ const localname = getFileName(dir, lcd.filename);
59
+ const obj = {};
60
+ builder.lcdClients.forEach(file => {
61
+ // ADD all option
62
+ // which defaults to including cosmos
63
+ // and defaults to base for each
64
+ // if (!packages.includes(file.package)) {
65
+ if (!(0, proto_parser_1.isRefIncluded)((0, proto_parser_1.createEmptyProtoRef)(file.package, file.proto), {
66
+ packages,
67
+ protos
68
+ })) {
69
+ return;
70
+ }
71
+ const f = localname;
72
+ const f2 = file.localname;
73
+ const importPath = (0, utils_1.getRelativePath)(f, f2);
74
+ dotty.put(obj, file.package, importPath);
75
+ });
76
+ const ctx = new build_1.TelescopeParseContext((0, proto_parser_1.createEmptyProtoRef)(dir, localname), builder.store, builder.options);
77
+ const lcdast = (0, ast_1.createScopedLCDFactory)(ctx.proto, obj, methodName, 'LCDQueryClient' // make option later
78
+ );
79
+ const imports = (0, imports_1.aggregateImports)(ctx, {}, localname);
80
+ const importStmts = (0, imports_1.getImportStatements)(localname, [...(0, utils_1.fixlocalpaths)(imports)], builder.options);
81
+ const prog = []
82
+ .concat(importStmts)
83
+ .concat(lcdast);
84
+ const filename = bundler.getFilename(localname);
85
+ bundler.writeAst(prog, filename);
86
+ if (lcd.addToBundle) {
87
+ bundler.addToBundleToPackage(`${dir}.ClientFactory`, localname);
88
+ }
89
+ };
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.plugin = void 0;
4
+ const imports_1 = require("../imports");
5
+ const proto_parser_1 = require("@cosmology/proto-parser");
6
+ const parse_1 = require("../parse");
7
+ const ast_1 = require("@cosmology/ast");
8
+ const plugin = (builder, bundler) => {
9
+ if (!builder.options.lcdClients.enabled) {
10
+ return;
11
+ }
12
+ const queryContexts = bundler
13
+ .contexts
14
+ .filter(context => context.queries.length > 0 ||
15
+ context.services.length > 0);
16
+ // [x] write out one registry helper for all contexts w/mutations
17
+ const lcdClients = queryContexts.map(c => {
18
+ const enabled = c.proto.pluginValue('lcdClients.enabled');
19
+ if (!enabled)
20
+ return;
21
+ if (c.proto.isExcluded())
22
+ return;
23
+ const ctx = bundler.getFreshContext(c);
24
+ // get mutations, services
25
+ (0, parse_1.parse)(ctx);
26
+ const proto = (0, proto_parser_1.getNestedProto)(c.ref.traversed);
27
+ //// Anything except Msg Service OK...
28
+ const allowedRpcServices = builder.options.rpcClients.enabledServices.filter(a => a !== 'Msg');
29
+ const found = allowedRpcServices.some(svc => {
30
+ return proto?.[svc] &&
31
+ proto[svc]?.type === 'Service';
32
+ });
33
+ if (!found) {
34
+ return;
35
+ }
36
+ ///
37
+ let getImportsFrom;
38
+ // get imports
39
+ allowedRpcServices.forEach(svcKey => {
40
+ if (proto[svcKey]) {
41
+ if (svcKey === 'Query') {
42
+ getImportsFrom = ctx.queries;
43
+ }
44
+ else {
45
+ getImportsFrom = ctx.services;
46
+ }
47
+ }
48
+ });
49
+ const localname = bundler.getLocalFilename(c.ref, 'lcd');
50
+ const filename = bundler.getFilename(localname);
51
+ let ast = null;
52
+ allowedRpcServices.forEach(svcKey => {
53
+ if (proto[svcKey]) {
54
+ ast = (0, ast_1.createLCDClient)(ctx.generic, proto[svcKey]);
55
+ }
56
+ });
57
+ if (!ast) {
58
+ return;
59
+ }
60
+ const serviceImports = (0, imports_1.getDepsFromQueries)(getImportsFrom, localname);
61
+ const imports = (0, imports_1.buildAllImports)(ctx, serviceImports, localname);
62
+ const prog = []
63
+ .concat(imports)
64
+ .concat(ctx.body)
65
+ .concat(ast);
66
+ bundler.writeAst(prog, filename);
67
+ bundler.addToBundle(c, localname);
68
+ return {
69
+ proto: c.ref.filename,
70
+ // TODO use this to build LCD aggregators with scopes
71
+ package: c.ref.proto.package,
72
+ localname,
73
+ filename
74
+ };
75
+ }).filter(Boolean);
76
+ bundler.addLCDClients(lcdClients);
77
+ };
78
+ exports.plugin = plugin;