@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,87 @@
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.getAllBufDeps = exports.findAllBufLockFiles = exports.findAllBufYamlFiles = exports.parseBufYamlFile = exports.parseBufLockFile = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const yaml_1 = __importDefault(require("yaml"));
9
+ const utils_1 = require("./utils");
10
+ const utils_2 = require("@cosmology/utils");
11
+ function parseBufLockFile(filePath) {
12
+ if (!(0, utils_1.isPathExist)(filePath)) {
13
+ console.warn(`No such file ${filePath}`);
14
+ return [];
15
+ }
16
+ const bufLock = fs_1.default.readFileSync(filePath, "utf8");
17
+ const deps = bufLock.split(/-\s/);
18
+ const repos = [];
19
+ deps.forEach((dep) => {
20
+ if (!dep.startsWith("remote")) {
21
+ return;
22
+ }
23
+ const bufDep = {
24
+ owner: /owner:\s(.+)/.exec(dep)?.[1],
25
+ repo: /repository:\s(.+)/.exec(dep)?.[1],
26
+ };
27
+ if (!bufDep.owner || !bufDep.repo) {
28
+ throw new Error("owner or repository is missing.");
29
+ }
30
+ repos.push(bufDep);
31
+ });
32
+ return repos;
33
+ }
34
+ exports.parseBufLockFile = parseBufLockFile;
35
+ function parseBufYamlFile(filePath) {
36
+ if (!(0, utils_1.isPathExist)(filePath)) {
37
+ console.warn(`No such file ${filePath}`);
38
+ return [];
39
+ }
40
+ const { deps } = yaml_1.default.parse(fs_1.default.readFileSync(filePath, "utf8"));
41
+ if (deps) {
42
+ return deps.map((dep) => {
43
+ const [_, owner, repo] = dep.split("/");
44
+ return {
45
+ owner,
46
+ repo: repo.split(":")[0],
47
+ };
48
+ });
49
+ }
50
+ return [];
51
+ }
52
+ exports.parseBufYamlFile = parseBufYamlFile;
53
+ function findAllBufYamlFiles(dir) {
54
+ return (0, utils_2.crossGlob)(`${dir}/**/buf.yaml`, {
55
+ ignore: `${dir}/node_modules/**`,
56
+ });
57
+ }
58
+ exports.findAllBufYamlFiles = findAllBufYamlFiles;
59
+ function findAllBufLockFiles(dir) {
60
+ return (0, utils_2.crossGlob)(`${dir}/**/buf.lock`, {
61
+ ignore: `${dir}/node_modules/**`,
62
+ });
63
+ }
64
+ exports.findAllBufLockFiles = findAllBufLockFiles;
65
+ function getAllBufDeps(dir) {
66
+ const bufDeps = [];
67
+ const bufLockFiles = findAllBufLockFiles(dir);
68
+ bufLockFiles.map(async (filePath) => {
69
+ const deps = parseBufLockFile(filePath);
70
+ deps.forEach((dep) => {
71
+ if (bufDeps.findIndex((_dep) => _dep.owner == dep.owner && _dep.repo == dep.repo) == -1) {
72
+ bufDeps.push(dep);
73
+ }
74
+ });
75
+ });
76
+ const bufYamlFiles = findAllBufYamlFiles(dir);
77
+ bufYamlFiles.map(async (filePath) => {
78
+ const deps = await parseBufYamlFile(filePath);
79
+ deps.forEach((dep) => {
80
+ if (bufDeps.findIndex((_dep) => _dep.owner == dep.owner && _dep.repo == dep.repo) == -1) {
81
+ bufDeps.push(dep);
82
+ }
83
+ });
84
+ });
85
+ return bufDeps;
86
+ }
87
+ exports.getAllBufDeps = getAllBufDeps;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.presetProtoDirMapping = exports.bufInfo = void 0;
4
+ exports.bufInfo = [
5
+ {
6
+ owner: "protocolbuffers",
7
+ repo: "wellknowntypes",
8
+ git: [
9
+ {
10
+ owner: "protocolbuffers",
11
+ repo: "protobuf",
12
+ },
13
+ ],
14
+ },
15
+ {
16
+ owner: "cosmos",
17
+ repo: "gogo-proto",
18
+ git: [
19
+ {
20
+ owner: "cosmos",
21
+ repo: "gogoproto",
22
+ },
23
+ ],
24
+ },
25
+ ];
26
+ exports.presetProtoDirMapping = {
27
+ "gogo/protobuf/master": ".",
28
+ "googleapis/googleapis/master": ".",
29
+ "protocolbuffers/protobuf/main": "src",
30
+ };
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GitRepo = void 0;
4
+ const utils_1 = require("./utils");
5
+ const branchCache = {};
6
+ class GitRepo {
7
+ owner;
8
+ repo;
9
+ ssh;
10
+ constructor(owner, repo, ssh = false) {
11
+ this.owner = owner;
12
+ this.repo = repo;
13
+ this.ssh = ssh;
14
+ }
15
+ get fullName() {
16
+ return `${this.owner}/${this.repo}`;
17
+ }
18
+ get httpsUrl() {
19
+ return `https://github.com/${this.fullName}.git`;
20
+ }
21
+ get sshUrl() {
22
+ return `git@github.com:${this.fullName}.git`;
23
+ }
24
+ async getMainBranchName() {
25
+ const url = this.ssh ? this.sshUrl : this.httpsUrl;
26
+ if (branchCache[url]) {
27
+ return branchCache[url];
28
+ }
29
+ branchCache[url] = await (0, utils_1.getMainBranchName)(url);
30
+ return branchCache[url];
31
+ }
32
+ clone(branch, depth = 1, outDir = "./git-modules", isOverride) {
33
+ const dir = `${outDir}/${this.fullName}/${branch}`;
34
+ try {
35
+ if (!isOverride && (0, utils_1.isPathExist)(dir)) {
36
+ console.log(`Folder ${dir} already exists, skip cloning`);
37
+ return dir;
38
+ }
39
+ else {
40
+ console.log(`Cloning to ${dir}`);
41
+ }
42
+ (0, utils_1.removeFolder)(dir);
43
+ (0, utils_1.makeDir)(dir);
44
+ (0, utils_1.exec)(`git clone ${this.ssh ? this.sshUrl : this.httpsUrl} --depth ${depth} --branch ${branch} --single-branch ${dir}`);
45
+ console.log(`Cloned ${this.fullName}/${branch} to ${dir}`);
46
+ return dir;
47
+ }
48
+ catch (error) {
49
+ if (error.message.startsWith("Cloning into")) {
50
+ return dir;
51
+ }
52
+ else {
53
+ throw error;
54
+ }
55
+ }
56
+ }
57
+ }
58
+ exports.GitRepo = GitRepo;
@@ -0,0 +1,17 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./recursive"), exports);
@@ -0,0 +1,134 @@
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.extractProto = exports.clone = exports.cloneAll = void 0;
7
+ const bufbuild_1 = require("./bufbuild");
8
+ const git_repo_1 = require("./git-repo");
9
+ const path_1 = require("path");
10
+ const utils_1 = require("./utils");
11
+ const fs_1 = __importDefault(require("fs"));
12
+ const utils_2 = require("@cosmology/utils");
13
+ async function cloneAll({ repos, gitModulesDir, protoDirMapping, ssh, }) {
14
+ let clonedResult = {};
15
+ for (const { owner, repo, branch } of repos) {
16
+ const cloned = await clone({
17
+ owner,
18
+ repo,
19
+ branch,
20
+ gitModulesDir,
21
+ protoDirMapping,
22
+ ssh,
23
+ cloned: clonedResult,
24
+ });
25
+ for (const [key, value] of Object.entries(cloned)) {
26
+ clonedResult[key] = value;
27
+ }
28
+ }
29
+ return clonedResult;
30
+ }
31
+ exports.cloneAll = cloneAll;
32
+ async function clone({ owner, repo, branch, gitModulesDir: outDir, protoDirMapping, ssh, cloned, }) {
33
+ let clonedResult = cloned ?? {};
34
+ const gitRepo = new git_repo_1.GitRepo(owner, repo, ssh);
35
+ const gitBranch = branch ?? (await gitRepo.getMainBranchName());
36
+ const resultKey = `${owner}/${repo}/${gitBranch}`;
37
+ if (clonedResult[resultKey]) {
38
+ console.log(`Skip cloning ${resultKey}`);
39
+ return clonedResult;
40
+ }
41
+ const gitDir = gitRepo.clone(gitBranch, 1, outDir);
42
+ const protoDir = protoDirMapping?.[`${owner}/${repo}/${gitBranch}`] ?? "proto";
43
+ clonedResult[`${owner}/${repo}/${gitBranch}`] = {
44
+ owner,
45
+ repo,
46
+ branch: gitBranch,
47
+ protoDir,
48
+ protoPath: (0, path_1.resolve)(`${outDir}/${owner}/${repo}/${gitBranch}/${protoDir}`),
49
+ };
50
+ const bufDeps = await (0, bufbuild_1.getAllBufDeps)(gitDir);
51
+ await Promise.all(bufDeps.map(async (bufRepo) => {
52
+ const gitRepos = (0, utils_1.getCorrespondingGit)(bufRepo);
53
+ await Promise.all(gitRepos.map(async (gitRepo) => {
54
+ const gitRepoObj = new git_repo_1.GitRepo(gitRepo.owner, gitRepo.repo, ssh);
55
+ const branch = await gitRepoObj.getMainBranchName();
56
+ const depsClonedResult = await clone({
57
+ ...gitRepo,
58
+ gitModulesDir: outDir,
59
+ branch,
60
+ protoDirMapping,
61
+ ssh,
62
+ cloned: clonedResult,
63
+ });
64
+ for (const [key, value] of Object.entries(depsClonedResult)) {
65
+ clonedResult[key] = value;
66
+ }
67
+ }));
68
+ }));
69
+ return clonedResult;
70
+ }
71
+ exports.clone = clone;
72
+ function extractProto({ sources, targets, outDir }) {
73
+ const extractProtoFiles = extractProtoFromDirs({
74
+ targets,
75
+ sources,
76
+ });
77
+ extractProtoFiles.map(({ sourceFile, target }) => {
78
+ const targetFile = (0, path_1.join)(outDir, target);
79
+ const deepTargetDir = (0, path_1.dirname)(targetFile);
80
+ (0, utils_1.makeDir)(deepTargetDir);
81
+ fs_1.default.copyFileSync(sourceFile, targetFile);
82
+ console.info(`Copied ${target} from ${sourceFile.replace(target, "")}`);
83
+ });
84
+ }
85
+ exports.extractProto = extractProto;
86
+ function extractProtoFromDirs({ targets, sources, }) {
87
+ const extractProtoFiles = [];
88
+ const existingFiles = new Set();
89
+ if (!targets || targets.length === 0) {
90
+ return [];
91
+ }
92
+ if (!sources || Object.keys(sources).length === 0) {
93
+ return [];
94
+ }
95
+ for (const target of targets) {
96
+ for (const source of Object.values(sources)) {
97
+ const sourceProtoPath = (0, path_1.resolve)(source.protoPath);
98
+ const files = (0, utils_2.crossGlob)((0, path_1.join)(sourceProtoPath, target));
99
+ extractProtoFiles.push(...files
100
+ .map((file) => {
101
+ const copyTarget = (0, path_1.relative)(sourceProtoPath, file);
102
+ const duplicate = existingFiles.has(copyTarget);
103
+ existingFiles.add(copyTarget);
104
+ if (!duplicate) {
105
+ const resultFiles = [
106
+ {
107
+ sourceFile: file,
108
+ target: copyTarget,
109
+ },
110
+ ];
111
+ const newTargets = (0, utils_1.parseProtoFile)(file);
112
+ if (newTargets && newTargets.length > 0) {
113
+ const deps = extractProtoFromDirs({
114
+ targets: newTargets,
115
+ sources,
116
+ });
117
+ const filteredDeps = deps?.filter((dep) => {
118
+ const depDuplicate = existingFiles.has(dep.target);
119
+ existingFiles.add(dep.target);
120
+ return !depDuplicate;
121
+ });
122
+ if (filteredDeps && filteredDeps.length > 0) {
123
+ resultFiles.push(...filteredDeps);
124
+ }
125
+ }
126
+ return resultFiles;
127
+ }
128
+ })
129
+ .flat()
130
+ .filter(Boolean));
131
+ }
132
+ }
133
+ return extractProtoFiles;
134
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,91 @@
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.makeDir = exports.removeFolder = exports.findAllProtoFiles = exports.isPathExist = exports.parseProtoFile = exports.getCorrespondingGit = exports.getMainBranchName = exports.exec = void 0;
7
+ const shelljs_1 = require("shelljs");
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const config_1 = require("./config");
10
+ const utils_1 = require("@cosmology/utils");
11
+ function exec(command, verbose = false) {
12
+ const { code, stdout, stderr } = (0, shelljs_1.exec)(command);
13
+ if (code === 0) {
14
+ if (verbose) {
15
+ console.log(stdout);
16
+ }
17
+ }
18
+ else {
19
+ console.error(`Failed: ${command}`);
20
+ throw new Error(stderr);
21
+ }
22
+ return { stdout };
23
+ }
24
+ exports.exec = exec;
25
+ async function getMainBranchName(url) {
26
+ console.log(`Checking main branch for ${url}`);
27
+ const { stdout } = exec(`git ls-remote -h ${url} main`);
28
+ if (stdout) {
29
+ return "main";
30
+ }
31
+ const { stdout: stdout2 } = exec(`git ls-remote -h ${url} master`);
32
+ if (stdout2) {
33
+ return "master";
34
+ }
35
+ throw new Error("Can't find `main` or `master` branch");
36
+ }
37
+ exports.getMainBranchName = getMainBranchName;
38
+ function getCorrespondingGit(bufRepo) {
39
+ const bufItem = config_1.bufInfo.find((repo) => repo.owner === bufRepo.owner && repo.repo === bufRepo.repo);
40
+ if (bufItem) {
41
+ return bufItem.git;
42
+ }
43
+ else {
44
+ return [bufRepo];
45
+ }
46
+ }
47
+ exports.getCorrespondingGit = getCorrespondingGit;
48
+ function parseProtoFile(filePath) {
49
+ if (!isPathExist(filePath)) {
50
+ console.warn(`No such file ${filePath}`);
51
+ return [];
52
+ }
53
+ let proto;
54
+ try {
55
+ proto = fs_1.default.readFileSync(filePath, "utf8");
56
+ }
57
+ catch (error) {
58
+ console.log(filePath);
59
+ throw new Error(error);
60
+ }
61
+ const deps = [];
62
+ proto?.split("\n").forEach((line) => {
63
+ if (line.trim().startsWith("import ")) {
64
+ const dep = /import\s"(.+)";?/.exec(line)?.[1];
65
+ if (!dep) {
66
+ throw Error(`Failed to parse line: ${line}`);
67
+ }
68
+ deps.push(dep);
69
+ }
70
+ });
71
+ return deps;
72
+ }
73
+ exports.parseProtoFile = parseProtoFile;
74
+ function isPathExist(path) {
75
+ return fs_1.default.existsSync(path);
76
+ }
77
+ exports.isPathExist = isPathExist;
78
+ function findAllProtoFiles(dir) {
79
+ return (0, utils_1.crossGlob)(`${dir}/**/*.proto`, {
80
+ ignore: `${dir}/node_modules/**`,
81
+ });
82
+ }
83
+ exports.findAllProtoFiles = findAllProtoFiles;
84
+ function removeFolder(dir) {
85
+ fs_1.default.rmSync(dir, { recursive: true, force: true });
86
+ }
87
+ exports.removeFolder = removeFolder;
88
+ function makeDir(dir) {
89
+ fs_1.default.mkdirSync(dir, { recursive: true });
90
+ }
91
+ exports.makeDir = makeDir;
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const cli_1 = require("./cli");
5
+ var argv = require('minimist')(process.argv.slice(2), {
6
+ boolean: ['ssh']
7
+ });
8
+ (async () => {
9
+ await (0, cli_1.cli)(argv);
10
+ })();
package/main/types.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.commonBundlePlugin = void 0;
4
+ const imports_1 = require("../imports");
5
+ const path_1 = require("path");
6
+ const build_1 = require("../build");
7
+ const files_1 = require("../utils/files");
8
+ const utils_1 = require("../utils");
9
+ const proto_parser_1 = require("@cosmology/proto-parser");
10
+ const commonBundlePlugin = (builder, bundleFilename, packageMappings, astFn) => {
11
+ const localname = bundleFilename;
12
+ // create proto ref for context
13
+ const pkg = '@root';
14
+ const ref = (0, proto_parser_1.createEmptyProtoRef)(pkg, localname);
15
+ // create context
16
+ const pCtx = new build_1.TelescopeParseContext(ref, builder.store, builder.options);
17
+ // generate code for createRpcQueryHooks and imports of related packages.
18
+ const ast = astFn(pCtx.proto, packageMappings);
19
+ // generate imports added by context.addUtil
20
+ const imports = (0, utils_1.fixlocalpaths)((0, imports_1.aggregateImports)(pCtx, {}, localname));
21
+ const importStmts = (0, imports_1.getImportStatements)(localname, imports, builder.options);
22
+ // construct the AST
23
+ const prog = [].concat(importStmts).concat(ast);
24
+ // write the file.
25
+ const filename = (0, path_1.join)(builder.outPath, localname);
26
+ builder.files.push(localname);
27
+ (0, files_1.writeAstToFile)(builder.outPath, builder.options, prog, filename);
28
+ };
29
+ exports.commonBundlePlugin = commonBundlePlugin;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getContractSchemata = exports.getContracts = exports.getDirectories = void 0;
4
+ const ts_codegen_1 = require("@cosmwasm/ts-codegen");
5
+ const case_1 = require("case");
6
+ const path_1 = require("path");
7
+ const fs_1 = require("fs");
8
+ const getDirectories = source => (0, fs_1.readdirSync)(source, { withFileTypes: true })
9
+ .filter(dirent => dirent.isDirectory())
10
+ .map(dirent => dirent.name);
11
+ exports.getDirectories = getDirectories;
12
+ const getContracts = () => {
13
+ const contracts = (0, exports.getDirectories)('./contracts')
14
+ .map(contractDirname => {
15
+ return {
16
+ name: `${contractDirname}`,
17
+ value: `./contracts/${contractDirname}`
18
+ };
19
+ });
20
+ return contracts;
21
+ };
22
+ exports.getContracts = getContracts;
23
+ const getContractSchemata = async (schemata, out, argv) => {
24
+ const s = [];
25
+ for (let i = 0; i < schemata.length; i++) {
26
+ const path = schemata[i];
27
+ const pkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(path, 'package.json'), 'utf-8'));
28
+ const name = (0, path_1.basename)(path);
29
+ const folder = (0, path_1.basename)((0, path_1.dirname)(path));
30
+ const contractName = (0, case_1.pascal)(pkg.contract) || (0, case_1.pascal)(name);
31
+ const schemas = await (0, ts_codegen_1.readSchemas)({ schemaDir: path });
32
+ const outPath = (0, path_1.join)(out, folder);
33
+ s.push({
34
+ contractName, schemas, outPath
35
+ });
36
+ }
37
+ return s;
38
+ };
39
+ exports.getContractSchemata = getContractSchemata;
@@ -0,0 +1,138 @@
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.writeContentToFile = exports.writeAstToFile = exports.getExportedTypeNames = void 0;
30
+ const t = __importStar(require("@babel/types"));
31
+ const parser_1 = require("@babel/parser");
32
+ const mkdirp_1 = require("mkdirp");
33
+ const fs_1 = require("fs");
34
+ const path_1 = require("path");
35
+ const minimatch_1 = __importDefault(require("minimatch"));
36
+ const generator_1 = __importDefault(require("@babel/generator"));
37
+ const unused_1 = require("./unused");
38
+ const traverse_1 = __importDefault(require("@babel/traverse"));
39
+ const utils_1 = require("@cosmology/utils");
40
+ function getExportedTypeNames(program) {
41
+ const exportedNames = [];
42
+ const ast = t.program(program);
43
+ const content = (0, generator_1.default)(ast).code;
44
+ const plugins = ["typescript"];
45
+ const newAst = (0, parser_1.parse)(content, {
46
+ sourceType: "module",
47
+ plugins,
48
+ });
49
+ (0, traverse_1.default)(newAst, {
50
+ ExportNamedDeclaration(path) {
51
+ const node = path.node;
52
+ // Handle direct declarations (type aliases, interfaces, enums)
53
+ if (node.declaration) {
54
+ const decl = node.declaration;
55
+ const isTypeExport = node.exportKind === "type";
56
+ const isTypeDecl = [
57
+ "TSTypeAliasDeclaration",
58
+ "TSInterfaceDeclaration",
59
+ "TSEnumDeclaration",
60
+ ].includes(decl.type);
61
+ if (isTypeExport || isTypeDecl) {
62
+ if ("id" in decl && decl.id?.type === "Identifier") {
63
+ exportedNames.push(decl.id.name);
64
+ }
65
+ }
66
+ // Handle const declarations that might be types (e.g., const schemas)
67
+ if (decl.type === "VariableDeclaration" && decl.kind === "const") {
68
+ decl.declarations.forEach((declarator) => {
69
+ if (declarator.id?.type === "Identifier") {
70
+ exportedNames.push(declarator.id.name);
71
+ }
72
+ });
73
+ }
74
+ }
75
+ // Handle export specifiers (e.g., export { SomeType })
76
+ if (node.specifiers && node.specifiers.length > 0) {
77
+ const isTypeExport = node.exportKind === "type";
78
+ if (isTypeExport) {
79
+ node.specifiers.forEach((spec) => {
80
+ if (spec.type === "ExportSpecifier" && spec.exported.type === "Identifier") {
81
+ exportedNames.push(spec.exported.name);
82
+ }
83
+ });
84
+ }
85
+ }
86
+ },
87
+ });
88
+ return exportedNames;
89
+ }
90
+ exports.getExportedTypeNames = getExportedTypeNames;
91
+ const writeAstToFile = (outPath, options, program, filename) => {
92
+ const ast = t.program(program);
93
+ const content = (0, generator_1.default)(ast).code;
94
+ if (options.removeUnusedImports) {
95
+ const plugins = ["typescript"];
96
+ const newAst = (0, parser_1.parse)(content, {
97
+ sourceType: "module",
98
+ plugins,
99
+ });
100
+ (0, traverse_1.default)(newAst, unused_1.unused);
101
+ const content2 = (0, generator_1.default)(newAst).code;
102
+ (0, exports.writeContentToFile)((0, utils_1.toPosixPath)(outPath), options, content2, (0, utils_1.toPosixPath)(filename));
103
+ }
104
+ else {
105
+ (0, exports.writeContentToFile)((0, utils_1.toPosixPath)(outPath), options, content, (0, utils_1.toPosixPath)(filename));
106
+ }
107
+ };
108
+ exports.writeAstToFile = writeAstToFile;
109
+ const writeContentToFile = (outPath, options, content, filename) => {
110
+ let esLintPrefix = "";
111
+ let tsLintPrefix = "";
112
+ let nameWithoutPath = filename.replace(outPath, "");
113
+ // strip off leading slash
114
+ if (nameWithoutPath.startsWith("/"))
115
+ nameWithoutPath = nameWithoutPath.replace(/^\//, "");
116
+ options.tsDisable.patterns.forEach((pattern) => {
117
+ if ((0, minimatch_1.default)(nameWithoutPath, pattern)) {
118
+ tsLintPrefix = `//@ts-nocheck\n`;
119
+ }
120
+ });
121
+ options.eslintDisable.patterns.forEach((pattern) => {
122
+ if ((0, minimatch_1.default)(nameWithoutPath, pattern)) {
123
+ esLintPrefix = `/* eslint-disable */\n`;
124
+ }
125
+ });
126
+ if (options.tsDisable.files.includes(nameWithoutPath) ||
127
+ options.tsDisable.disableAll) {
128
+ tsLintPrefix = `//@ts-nocheck\n`;
129
+ }
130
+ if (options.eslintDisable.files.includes(nameWithoutPath) ||
131
+ options.eslintDisable.disableAll) {
132
+ esLintPrefix = `/* eslint-disable */\n`;
133
+ }
134
+ const text = tsLintPrefix + esLintPrefix + content;
135
+ mkdirp_1.mkdirp.sync((0, path_1.dirname)(filename));
136
+ (0, fs_1.writeFileSync)(filename, text);
137
+ };
138
+ exports.writeContentToFile = writeContentToFile;