@graphprotocol/graph-cli 0.37.3 → 0.37.4-alpha-20230117095424-b5750b1

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 (352) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/bin.js +6 -0
  3. package/dist/cli.js +26 -0
  4. package/dist/codegen/schema.js +244 -0
  5. package/dist/codegen/schema.test.js +455 -0
  6. package/dist/codegen/template.js +66 -0
  7. package/dist/codegen/types/conversions.js +335 -0
  8. package/dist/codegen/types/index.js +71 -0
  9. package/dist/codegen/types/index.test.js +563 -0
  10. package/dist/codegen/typescript.js +200 -0
  11. package/dist/codegen/util.js +40 -0
  12. package/dist/codegen/util.test.js +93 -0
  13. package/dist/command-helpers/abi.js +76 -0
  14. package/dist/command-helpers/auth.js +76 -0
  15. package/dist/command-helpers/compiler.js +66 -0
  16. package/dist/command-helpers/data-sources.js +29 -0
  17. package/dist/command-helpers/fs.js +9 -0
  18. package/dist/command-helpers/gluegun.js +48 -0
  19. package/dist/command-helpers/ipfs.js +5 -0
  20. package/dist/command-helpers/jsonrpc.js +27 -0
  21. package/dist/command-helpers/network.js +90 -0
  22. package/dist/command-helpers/network.test.js +86 -0
  23. package/dist/command-helpers/node.js +40 -0
  24. package/dist/command-helpers/scaffold.js +110 -0
  25. package/dist/command-helpers/spinner.js +80 -0
  26. package/dist/command-helpers/studio.js +14 -0
  27. package/dist/command-helpers/studio.test.js +41 -0
  28. package/dist/command-helpers/subgraph.js +22 -0
  29. package/dist/command-helpers/version.js +66 -0
  30. package/dist/command-helpers/version.test.js +186 -0
  31. package/dist/commands/add.js +187 -0
  32. package/dist/commands/auth.js +122 -0
  33. package/dist/commands/build.js +136 -0
  34. package/dist/commands/codegen.js +128 -0
  35. package/dist/commands/create.js +94 -0
  36. package/dist/commands/deploy.js +335 -0
  37. package/dist/commands/init.js +800 -0
  38. package/dist/commands/local.js +380 -0
  39. package/dist/commands/remove.js +95 -0
  40. package/dist/commands/test.js +293 -0
  41. package/dist/compiler/asc.js +83 -0
  42. package/dist/compiler/index.js +466 -0
  43. package/dist/debug.js +16 -0
  44. package/dist/migrations/mapping_api_version_0_0_1.js +83 -0
  45. package/dist/migrations/mapping_api_version_0_0_2.js +83 -0
  46. package/dist/migrations/mapping_api_version_0_0_3.js +83 -0
  47. package/dist/migrations/mapping_api_version_0_0_4.js +85 -0
  48. package/dist/migrations/mapping_api_version_0_0_5.js +85 -0
  49. package/dist/migrations/spec_version_0_0_2.js +45 -0
  50. package/dist/migrations/spec_version_0_0_3.js +50 -0
  51. package/dist/migrations/util/load-manifest.js +16 -0
  52. package/dist/migrations/util/versions.js +28 -0
  53. package/dist/migrations.js +54 -0
  54. package/{src → dist}/protocols/arweave/manifest.graphql +0 -0
  55. package/{src/protocols/arweave/scaffold/manifest.ts → dist/protocols/arweave/scaffold/manifest.js} +7 -3
  56. package/{src/protocols/arweave/scaffold/mapping.ts → dist/protocols/arweave/scaffold/mapping.js} +5 -2
  57. package/dist/protocols/arweave/subgraph.js +23 -0
  58. package/dist/protocols/contract.js +2 -0
  59. package/{src → dist}/protocols/cosmos/manifest.graphql +0 -0
  60. package/dist/protocols/cosmos/scaffold/manifest.js +15 -0
  61. package/{src/protocols/cosmos/scaffold/mapping.ts → dist/protocols/cosmos/scaffold/mapping.js} +5 -2
  62. package/dist/protocols/cosmos/subgraph.js +28 -0
  63. package/dist/protocols/ethereum/abi.js +138 -0
  64. package/dist/protocols/ethereum/codegen/abi.js +474 -0
  65. package/dist/protocols/ethereum/codegen/abi.test.js +325 -0
  66. package/dist/protocols/ethereum/codegen/template.js +52 -0
  67. package/dist/protocols/ethereum/contract.js +22 -0
  68. package/{src → dist}/protocols/ethereum/manifest.graphql +0 -0
  69. package/dist/protocols/ethereum/scaffold/manifest.js +32 -0
  70. package/{src/protocols/ethereum/scaffold/mapping.ts → dist/protocols/ethereum/scaffold/mapping.js} +18 -29
  71. package/dist/protocols/ethereum/subgraph.js +172 -0
  72. package/dist/protocols/ethereum/type-generator.js +123 -0
  73. package/dist/protocols/index.js +266 -0
  74. package/dist/protocols/ipfs/codegen/file_template.js +53 -0
  75. package/dist/protocols/near/contract.js +41 -0
  76. package/{src → dist}/protocols/near/manifest.graphql +0 -0
  77. package/dist/protocols/near/scaffold/manifest.js +16 -0
  78. package/{src/protocols/near/scaffold/mapping.ts → dist/protocols/near/scaffold/mapping.js} +5 -2
  79. package/dist/protocols/near/subgraph.js +23 -0
  80. package/dist/protocols/subgraph.js +2 -0
  81. package/{src → dist}/protocols/substreams/manifest.graphql +0 -0
  82. package/dist/protocols/substreams/scaffold/manifest.js +12 -0
  83. package/dist/protocols/substreams/subgraph.js +23 -0
  84. package/{src/scaffold/cosmos.test.ts → dist/scaffold/cosmos.test.js} +21 -22
  85. package/{src/scaffold/ethereum.test.ts → dist/scaffold/ethereum.test.js} +85 -101
  86. package/dist/scaffold/index.js +133 -0
  87. package/dist/scaffold/mapping.js +57 -0
  88. package/{src/scaffold/near.test.ts → dist/scaffold/near.test.js} +22 -23
  89. package/dist/scaffold/schema.js +86 -0
  90. package/dist/scaffold/tests.js +179 -0
  91. package/dist/schema.js +54 -0
  92. package/dist/subgraph.js +243 -0
  93. package/dist/type-generator.js +225 -0
  94. package/dist/validation/contract.js +44 -0
  95. package/dist/validation/index.js +10 -0
  96. package/dist/validation/manifest.js +266 -0
  97. package/dist/validation/schema.js +768 -0
  98. package/dist/validation/schema.test.js +35 -0
  99. package/dist/watcher.js +79 -0
  100. package/package.json +5 -1
  101. package/babel.config.js +0 -3
  102. package/jest.config.js +0 -175
  103. package/src/bin.ts +0 -6
  104. package/src/cli.ts +0 -30
  105. package/src/codegen/schema.test.ts +0 -460
  106. package/src/codegen/schema.ts +0 -299
  107. package/src/codegen/template.ts +0 -45
  108. package/src/codegen/types/conversions.ts +0 -358
  109. package/src/codegen/types/index.test.ts +0 -715
  110. package/src/codegen/types/index.ts +0 -111
  111. package/src/codegen/typescript.ts +0 -224
  112. package/src/codegen/util.test.ts +0 -112
  113. package/src/codegen/util.ts +0 -54
  114. package/src/command-helpers/abi.ts +0 -99
  115. package/src/command-helpers/auth.ts +0 -46
  116. package/src/command-helpers/compiler.ts +0 -60
  117. package/src/command-helpers/data-sources.ts +0 -36
  118. package/src/command-helpers/fs.ts +0 -5
  119. package/src/command-helpers/gluegun.ts +0 -52
  120. package/src/command-helpers/ipfs-http-client.d.ts +0 -1
  121. package/src/command-helpers/ipfs.ts +0 -3
  122. package/src/command-helpers/jsonrpc.ts +0 -22
  123. package/src/command-helpers/network.test.ts +0 -85
  124. package/src/command-helpers/network.ts +0 -133
  125. package/src/command-helpers/node.ts +0 -46
  126. package/src/command-helpers/scaffold.ts +0 -174
  127. package/src/command-helpers/spinner.ts +0 -60
  128. package/src/command-helpers/studio.test.ts +0 -84
  129. package/src/command-helpers/studio.ts +0 -25
  130. package/src/command-helpers/subgraph.ts +0 -21
  131. package/src/command-helpers/version.test.ts +0 -241
  132. package/src/command-helpers/version.ts +0 -53
  133. package/src/commands/add.ts +0 -220
  134. package/src/commands/auth.ts +0 -138
  135. package/src/commands/binary-install-raw.d.ts +0 -1
  136. package/src/commands/build.ts +0 -147
  137. package/src/commands/codegen.ts +0 -123
  138. package/src/commands/create.ts +0 -109
  139. package/src/commands/deploy.ts +0 -388
  140. package/src/commands/init.ts +0 -1060
  141. package/src/commands/local.ts +0 -539
  142. package/src/commands/remove.ts +0 -110
  143. package/src/commands/test.ts +0 -369
  144. package/src/compiler/asc.ts +0 -77
  145. package/src/compiler/index.ts +0 -677
  146. package/src/debug.ts +0 -15
  147. package/src/migrations/mapping_api_version_0_0_1.ts +0 -75
  148. package/src/migrations/mapping_api_version_0_0_2.ts +0 -75
  149. package/src/migrations/mapping_api_version_0_0_3.ts +0 -75
  150. package/src/migrations/mapping_api_version_0_0_4.ts +0 -77
  151. package/src/migrations/mapping_api_version_0_0_5.ts +0 -77
  152. package/src/migrations/spec_version_0_0_2.ts +0 -24
  153. package/src/migrations/spec_version_0_0_3.ts +0 -29
  154. package/src/migrations/util/load-manifest.ts +0 -10
  155. package/src/migrations/util/versions.ts +0 -27
  156. package/src/migrations.ts +0 -33
  157. package/src/protocols/arweave/subgraph.ts +0 -22
  158. package/src/protocols/contract.ts +0 -9
  159. package/src/protocols/cosmos/scaffold/manifest.ts +0 -11
  160. package/src/protocols/cosmos/subgraph.ts +0 -27
  161. package/src/protocols/ethereum/abi.ts +0 -153
  162. package/src/protocols/ethereum/codegen/abi.test.ts +0 -330
  163. package/src/protocols/ethereum/codegen/abi.ts +0 -719
  164. package/src/protocols/ethereum/codegen/template.ts +0 -41
  165. package/src/protocols/ethereum/contract.ts +0 -24
  166. package/src/protocols/ethereum/scaffold/manifest.ts +0 -28
  167. package/src/protocols/ethereum/subgraph.ts +0 -189
  168. package/src/protocols/ethereum/type-generator.ts +0 -191
  169. package/src/protocols/index.ts +0 -287
  170. package/src/protocols/ipfs/codegen/file_template.ts +0 -43
  171. package/src/protocols/near/contract.ts +0 -47
  172. package/src/protocols/near/scaffold/manifest.ts +0 -13
  173. package/src/protocols/near/subgraph.ts +0 -22
  174. package/src/protocols/subgraph.ts +0 -12
  175. package/src/protocols/substreams/scaffold/manifest.ts +0 -8
  176. package/src/protocols/substreams/subgraph.ts +0 -22
  177. package/src/scaffold/index.ts +0 -172
  178. package/src/scaffold/mapping.ts +0 -44
  179. package/src/scaffold/schema.ts +0 -89
  180. package/src/scaffold/tests.ts +0 -217
  181. package/src/schema.ts +0 -26
  182. package/src/subgraph.ts +0 -302
  183. package/src/type-generator.ts +0 -266
  184. package/src/validation/contract.ts +0 -51
  185. package/src/validation/index.ts +0 -5
  186. package/src/validation/manifest.ts +0 -360
  187. package/src/validation/schema.test.ts +0 -38
  188. package/src/validation/schema.ts +0 -957
  189. package/src/watcher.ts +0 -96
  190. package/tests/cli/globalSetup.ts +0 -8
  191. package/tests/cli/globalTeardown.ts +0 -8
  192. package/tests/cli/init/ethereum/abis/Marketplace.json +0 -408
  193. package/tests/cli/init/ethereum/abis/OverloadedElements.json +0 -91
  194. package/tests/cli/init/ethereum/abis/SoloMargin.json +0 -2729
  195. package/tests/cli/init/ethereum/from-contract-with-abi-and-structs.stderr +0 -14
  196. package/tests/cli/init/ethereum/from-contract-with-abi-and-structs.stdout +0 -12
  197. package/tests/cli/init/ethereum/from-contract-with-abi.stderr +0 -14
  198. package/tests/cli/init/ethereum/from-contract-with-abi.stdout +0 -12
  199. package/tests/cli/init/ethereum/from-contract-with-overloaded-elements.stderr +0 -14
  200. package/tests/cli/init/ethereum/from-contract-with-overloaded-elements.stdout +0 -12
  201. package/tests/cli/init/ethereum/from-contract.stderr +0 -16
  202. package/tests/cli/init/ethereum/from-contract.stdout +0 -12
  203. package/tests/cli/init/ethereum/from-example.stderr +0 -12
  204. package/tests/cli/init/ethereum/from-example.stdout +0 -12
  205. package/tests/cli/init/near/from-contract.stderr +0 -14
  206. package/tests/cli/init/near/from-contract.stdout +0 -12
  207. package/tests/cli/init.test.ts +0 -157
  208. package/tests/cli/spawn-command.d.ts +0 -7
  209. package/tests/cli/util.ts +0 -132
  210. package/tests/cli/validation/abi-not-found/Abi.json +0 -7
  211. package/tests/cli/validation/abi-not-found/mapping.ts +0 -0
  212. package/tests/cli/validation/abi-not-found/schema.graphql +0 -3
  213. package/tests/cli/validation/abi-not-found/subgraph.yaml +0 -42
  214. package/tests/cli/validation/abi-not-found copy.stderr +0 -13
  215. package/tests/cli/validation/big-decimal-is-valid/Abi.json +0 -7
  216. package/tests/cli/validation/big-decimal-is-valid/mapping.ts +0 -0
  217. package/tests/cli/validation/big-decimal-is-valid/schema.graphql +0 -4
  218. package/tests/cli/validation/big-decimal-is-valid/subgraph.yaml +0 -23
  219. package/tests/cli/validation/call-function-not-found/Abi.json +0 -57
  220. package/tests/cli/validation/call-function-not-found/mapping.ts +0 -0
  221. package/tests/cli/validation/call-function-not-found/schema.graphql +0 -3
  222. package/tests/cli/validation/call-function-not-found/subgraph.yaml +0 -22
  223. package/tests/cli/validation/call-function-not-found.stderr +0 -10
  224. package/tests/cli/validation/call-handler-with-tuple/Abi.json +0 -24
  225. package/tests/cli/validation/call-handler-with-tuple/generated/schema.ts +0 -44
  226. package/tests/cli/validation/call-handler-with-tuple/mapping.ts +0 -0
  227. package/tests/cli/validation/call-handler-with-tuple/schema.graphql +0 -3
  228. package/tests/cli/validation/call-handler-with-tuple/subgraph.yaml +0 -22
  229. package/tests/cli/validation/call-handler-with-tuple.stderr +0 -24
  230. package/tests/cli/validation/conflicting-network-names/Abi.json +0 -7
  231. package/tests/cli/validation/conflicting-network-names/mapping.ts +0 -0
  232. package/tests/cli/validation/conflicting-network-names/schema.graphql +0 -3
  233. package/tests/cli/validation/conflicting-network-names/subgraph.yaml +0 -41
  234. package/tests/cli/validation/conflicting-network-names.stderr +0 -10
  235. package/tests/cli/validation/conflicting-protocol-names/Abi.json +0 -7
  236. package/tests/cli/validation/conflicting-protocol-names/mapping.ts +0 -0
  237. package/tests/cli/validation/conflicting-protocol-names/schema.graphql +0 -3
  238. package/tests/cli/validation/conflicting-protocol-names/subgraph.yaml +0 -41
  239. package/tests/cli/validation/conflicting-protocol-names.stderr +0 -10
  240. package/tests/cli/validation/derived-from-target-type-missing/Abi.json +0 -6
  241. package/tests/cli/validation/derived-from-target-type-missing/mapping.ts +0 -0
  242. package/tests/cli/validation/derived-from-target-type-missing/schema.graphql +0 -4
  243. package/tests/cli/validation/derived-from-target-type-missing/subgraph.yaml +0 -22
  244. package/tests/cli/validation/derived-from-target-type-missing.stderr +0 -5
  245. package/tests/cli/validation/derived-from-with-interface/Gravity.json +0 -1
  246. package/tests/cli/validation/derived-from-with-interface/mapping.ts +0 -22
  247. package/tests/cli/validation/derived-from-with-interface/schema.graphql +0 -19
  248. package/tests/cli/validation/derived-from-with-interface/subgraph.yaml +0 -25
  249. package/tests/cli/validation/duplicate-data-source-name/Abi.json +0 -7
  250. package/tests/cli/validation/duplicate-data-source-name/mapping.ts +0 -0
  251. package/tests/cli/validation/duplicate-data-source-name/schema.graphql +0 -4
  252. package/tests/cli/validation/duplicate-data-source-name/subgraph.yaml +0 -40
  253. package/tests/cli/validation/duplicate-data-source-name.stderr +0 -5
  254. package/tests/cli/validation/duplicate-template-name/Abi.json +0 -7
  255. package/tests/cli/validation/duplicate-template-name/mapping.ts +0 -0
  256. package/tests/cli/validation/duplicate-template-name/schema.graphql +0 -4
  257. package/tests/cli/validation/duplicate-template-name/subgraph.yaml +0 -59
  258. package/tests/cli/validation/duplicate-template-name.stderr +0 -5
  259. package/tests/cli/validation/entity-field-args/Abi.json +0 -7
  260. package/tests/cli/validation/entity-field-args/mapping.ts +0 -0
  261. package/tests/cli/validation/entity-field-args/schema.graphql +0 -4
  262. package/tests/cli/validation/entity-field-args/subgraph.yaml +0 -22
  263. package/tests/cli/validation/entity-field-args.stderr +0 -5
  264. package/tests/cli/validation/ethereum-contract-without-handlers/Abi.json +0 -7
  265. package/tests/cli/validation/ethereum-contract-without-handlers/mapping.ts +0 -0
  266. package/tests/cli/validation/ethereum-contract-without-handlers/schema.graphql +0 -3
  267. package/tests/cli/validation/ethereum-contract-without-handlers/subgraph.yaml +0 -19
  268. package/tests/cli/validation/ethereum-contract-without-handlers.stderr +0 -6
  269. package/tests/cli/validation/event-not-found/Abi.json +0 -7
  270. package/tests/cli/validation/event-not-found/mapping.ts +0 -0
  271. package/tests/cli/validation/event-not-found/schema.graphql +0 -3
  272. package/tests/cli/validation/event-not-found/subgraph.yaml +0 -40
  273. package/tests/cli/validation/event-not-found.stderr +0 -12
  274. package/tests/cli/validation/example-values-found/Abi.json +0 -7
  275. package/tests/cli/validation/example-values-found/generated/ExampleSubgraph/ExampleContract.ts +0 -35
  276. package/tests/cli/validation/example-values-found/generated/schema.ts +0 -44
  277. package/tests/cli/validation/example-values-found/mapping.ts +0 -0
  278. package/tests/cli/validation/example-values-found/schema.graphql +0 -3
  279. package/tests/cli/validation/example-values-found/subgraph.yaml +0 -24
  280. package/tests/cli/validation/example-values-found.stderr +0 -34
  281. package/tests/cli/validation/invalid-abis/InvalidAbi.json +0 -1
  282. package/tests/cli/validation/invalid-abis/mapping.ts +0 -0
  283. package/tests/cli/validation/invalid-abis/schema.graphql +0 -3
  284. package/tests/cli/validation/invalid-abis/subgraph.yaml +0 -22
  285. package/tests/cli/validation/invalid-abis.stderr +0 -5
  286. package/tests/cli/validation/invalid-contract-addresses/Abi.json +0 -7
  287. package/tests/cli/validation/invalid-contract-addresses/mapping.ts +0 -0
  288. package/tests/cli/validation/invalid-contract-addresses/schema.graphql +0 -3
  289. package/tests/cli/validation/invalid-contract-addresses/subgraph.yaml +0 -58
  290. package/tests/cli/validation/invalid-contract-addresses.stderr +0 -14
  291. package/tests/cli/validation/invalid-data-source-template/mapping.ts +0 -0
  292. package/tests/cli/validation/invalid-data-source-template/schema.graphql +0 -3
  293. package/tests/cli/validation/invalid-data-source-template/subgraph.yaml +0 -32
  294. package/tests/cli/validation/invalid-data-source-template.stderr +0 -30
  295. package/tests/cli/validation/invalid-entity-field-types/Abi.json +0 -7
  296. package/tests/cli/validation/invalid-entity-field-types/mapping.ts +0 -0
  297. package/tests/cli/validation/invalid-entity-field-types/schema.graphql +0 -157
  298. package/tests/cli/validation/invalid-entity-field-types/subgraph.yaml +0 -22
  299. package/tests/cli/validation/invalid-entity-field-types.stderr +0 -148
  300. package/tests/cli/validation/invalid-fulltext-directive/Abi.json +0 -7
  301. package/tests/cli/validation/invalid-fulltext-directive/mapping.ts +0 -0
  302. package/tests/cli/validation/invalid-fulltext-directive/schema.graphql +0 -140
  303. package/tests/cli/validation/invalid-fulltext-directive/subgraph.yaml +0 -22
  304. package/tests/cli/validation/invalid-fulltext-directive.stderr +0 -32
  305. package/tests/cli/validation/invalid-graphql-schema/Abi.json +0 -7
  306. package/tests/cli/validation/invalid-graphql-schema/mapping.ts +0 -0
  307. package/tests/cli/validation/invalid-graphql-schema/schema.graphql +0 -8
  308. package/tests/cli/validation/invalid-graphql-schema/subgraph.yaml +0 -22
  309. package/tests/cli/validation/invalid-graphql-schema.stderr +0 -25
  310. package/tests/cli/validation/invalid-manifest/subgraph.yaml +0 -13
  311. package/tests/cli/validation/invalid-manifest-cannot-infer-protocol/subgraph.yaml +0 -12
  312. package/tests/cli/validation/invalid-manifest-cannot-infer-protocol.stderr +0 -5
  313. package/tests/cli/validation/invalid-manifest.stderr +0 -28
  314. package/tests/cli/validation/missing-entity-id/Abi.json +0 -7
  315. package/tests/cli/validation/missing-entity-id/mapping.ts +0 -0
  316. package/tests/cli/validation/missing-entity-id/schema.graphql +0 -3
  317. package/tests/cli/validation/missing-entity-id/subgraph.yaml +0 -22
  318. package/tests/cli/validation/missing-entity-id/types/ExampleSubgraph/ExampleContract.ts +0 -35
  319. package/tests/cli/validation/missing-entity-id/types/schema.ts +0 -27
  320. package/tests/cli/validation/missing-entity-id.stderr +0 -5
  321. package/tests/cli/validation/missing-or-invalid-derived-from-fields/Abi.json +0 -7
  322. package/tests/cli/validation/missing-or-invalid-derived-from-fields/mapping.ts +0 -0
  323. package/tests/cli/validation/missing-or-invalid-derived-from-fields/schema.graphql +0 -40
  324. package/tests/cli/validation/missing-or-invalid-derived-from-fields/subgraph.yaml +0 -22
  325. package/tests/cli/validation/missing-or-invalid-derived-from-fields.stderr +0 -10
  326. package/tests/cli/validation/missing-or-invalid-derived-from-fields.stdout +0 -0
  327. package/tests/cli/validation/near-is-valid/mapping.ts +0 -0
  328. package/tests/cli/validation/near-is-valid/schema.graphql +0 -8
  329. package/tests/cli/validation/near-is-valid/subgraph.yaml +0 -30
  330. package/tests/cli/validation/nested-template-nice-error/Abi.json +0 -7
  331. package/tests/cli/validation/nested-template-nice-error/mapping.ts +0 -0
  332. package/tests/cli/validation/nested-template-nice-error/schema.graphql +0 -3
  333. package/tests/cli/validation/nested-template-nice-error/subgraph.yaml +0 -35
  334. package/tests/cli/validation/nested-template-nice-error.stderr +0 -5
  335. package/tests/cli/validation/no-network-names/Abi.json +0 -7
  336. package/tests/cli/validation/no-network-names/mapping.ts +0 -0
  337. package/tests/cli/validation/no-network-names/schema.graphql +0 -3
  338. package/tests/cli/validation/no-network-names/subgraph.yaml +0 -40
  339. package/tests/cli/validation/no-network-names.stderr +0 -34
  340. package/tests/cli/validation/source-without-address-is-valid/Abi.json +0 -7
  341. package/tests/cli/validation/source-without-address-is-valid/generated/ExampleSubgraph/ExampleContract.ts +0 -35
  342. package/tests/cli/validation/source-without-address-is-valid/mapping.ts +0 -0
  343. package/tests/cli/validation/source-without-address-is-valid/schema.graphql +0 -3
  344. package/tests/cli/validation/source-without-address-is-valid/subgraph.yaml +0 -23
  345. package/tests/cli/validation/source-without-address-is-valid.stderr +0 -24
  346. package/tests/cli/validation/topic0-is-valid/Abi.json +0 -7
  347. package/tests/cli/validation/topic0-is-valid/mapping.ts +0 -0
  348. package/tests/cli/validation/topic0-is-valid/schema.graphql +0 -4
  349. package/tests/cli/validation/topic0-is-valid/subgraph.yaml +0 -24
  350. package/tests/cli/validation.test.ts +0 -226
  351. package/tsconfig.build.json +0 -4
  352. package/tsconfig.json +0 -19
@@ -1,138 +0,0 @@
1
- import chalk from 'chalk';
2
- import { GluegunToolbox } from 'gluegun';
3
- import { saveDeployKey } from '../command-helpers/auth';
4
- import { fixParameters } from '../command-helpers/gluegun';
5
- import { chooseNodeUrl } from '../command-helpers/node';
6
-
7
- const HELP = `
8
- ${chalk.bold('graph auth')} [options] ${chalk.bold('<node>')} ${chalk.bold('<deploy-key>')}
9
-
10
- ${chalk.dim('Options:')}
11
-
12
- --product <subgraph-studio|hosted-service>
13
- Selects the product for which to authenticate
14
- --studio Shortcut for --product subgraph-studio
15
- -h, --help Show usage information
16
- `;
17
-
18
- export interface AuthOptions {
19
- product?: 'subgraph-studio' | 'hosted-service';
20
- studio?: boolean;
21
- help?: boolean;
22
- // not a cli arg
23
- node?: string;
24
- deployKey?: string;
25
- }
26
-
27
- const processForm = async (
28
- toolbox: GluegunToolbox,
29
- { product, studio, node, deployKey }: AuthOptions,
30
- ) => {
31
- const questions = [
32
- {
33
- type: 'select',
34
- name: 'product',
35
- message: 'Product for which to initialize',
36
- choices: ['subgraph-studio', 'hosted-service'],
37
- skip:
38
- product === 'subgraph-studio' ||
39
- product === 'hosted-service' ||
40
- studio !== undefined ||
41
- node !== undefined,
42
- },
43
- {
44
- type: 'password',
45
- name: 'deployKey',
46
- message: 'Deploy key',
47
- skip: deployKey !== undefined,
48
- },
49
- ];
50
-
51
- try {
52
- const answers = await toolbox.prompt.ask(questions);
53
- return answers;
54
- } catch (e) {
55
- return undefined;
56
- }
57
- };
58
-
59
- export default {
60
- description: 'Sets the deploy key to use when deploying to a Graph node',
61
- run: async (toolbox: GluegunToolbox) => {
62
- // Obtain tools
63
- const { print } = toolbox;
64
-
65
- // Read CLI parameters
66
- const { product, studio, h, help } = toolbox.parameters.options;
67
-
68
- // Show help text if requested
69
- if (help || h) {
70
- print.info(HELP);
71
- return;
72
- }
73
-
74
- let firstParam: string, secondParam: string;
75
- try {
76
- [firstParam, secondParam] = fixParameters(toolbox.parameters, {
77
- h,
78
- help,
79
- studio,
80
- });
81
- } catch (e) {
82
- print.error(e.message);
83
- process.exitCode = 1;
84
- return;
85
- }
86
-
87
- // if user specifies --product or --studio then deployKey is the first parameter
88
- let node: string | undefined;
89
- let deployKey;
90
- if (product || studio) {
91
- ({ node } = chooseNodeUrl({ product, studio, node }));
92
- deployKey = firstParam;
93
- } else {
94
- node = firstParam;
95
- deployKey = secondParam;
96
- }
97
-
98
- if (!node || !deployKey) {
99
- const inputs = await processForm(toolbox, {
100
- product,
101
- studio,
102
- node,
103
- deployKey,
104
- });
105
- if (inputs === undefined) {
106
- process.exit(1);
107
- }
108
- if (!node) {
109
- ({ node } = chooseNodeUrl({
110
- product: inputs.product,
111
- studio,
112
- node,
113
- }));
114
- }
115
- deployKey ||= inputs.deployKey;
116
- }
117
-
118
- if (!deployKey) {
119
- print.error(`No deploy key provided`);
120
- print.info(HELP);
121
- process.exitCode = 1;
122
- return;
123
- }
124
- if (deployKey.length > 200) {
125
- print.error(`Deploy key must not exceed 200 characters`);
126
- process.exitCode = 1;
127
- return;
128
- }
129
-
130
- try {
131
- await saveDeployKey(node!, deployKey);
132
- print.success(`Deploy key set for ${node}`);
133
- } catch (e) {
134
- print.error(e);
135
- process.exitCode = 1;
136
- }
137
- },
138
- };
@@ -1 +0,0 @@
1
- declare module 'binary-install-raw';
@@ -1,147 +0,0 @@
1
- import chalk from 'chalk';
2
- import { GluegunToolbox } from 'gluegun';
3
- import { createCompiler } from '../command-helpers/compiler';
4
- import * as DataSourcesExtractor from '../command-helpers/data-sources';
5
- import { fixParameters } from '../command-helpers/gluegun';
6
- import { updateSubgraphNetwork } from '../command-helpers/network';
7
- import debug from '../debug';
8
- import Protocol from '../protocols';
9
-
10
- const buildDebug = debug('graph-cli:build');
11
-
12
- const HELP = `
13
- ${chalk.bold('graph build')} [options] ${chalk.bold('[<subgraph-manifest>]')}
14
-
15
- Options:
16
-
17
- -h, --help Show usage information
18
- -i, --ipfs <node> Upload build results to an IPFS node
19
- -o, --output-dir <path> Output directory for build results (default: build/)
20
- -t, --output-format <format> Output format for mappings (wasm, wast) (default: wasm)
21
- --skip-migrations Skip subgraph migrations (default: false)
22
- -w, --watch Regenerate types when subgraph files change (default: false)
23
- --network <name> Network configuration to use from the networks config file
24
- --network-file <path> Networks config file path (default: "./networks.json")
25
- `;
26
-
27
- export interface BuildOptions {
28
- help?: boolean;
29
- ipfs?: string;
30
- outputDir?: string;
31
- outputFormat?: string;
32
- skipMigrations?: boolean;
33
- watch?: boolean;
34
- network?: string;
35
- networkFile?: string;
36
- }
37
-
38
- export default {
39
- description: 'Builds a subgraph and (optionally) uploads it to IPFS',
40
- run: async (toolbox: GluegunToolbox) => {
41
- // Obtain tools
42
- const { filesystem, print } = toolbox;
43
-
44
- // Parse CLI parameters
45
- let {
46
- i,
47
- h,
48
- help,
49
- ipfs,
50
- o,
51
- outputDir,
52
- outputFormat,
53
- skipMigrations,
54
- t,
55
- w,
56
- watch,
57
- network,
58
- networkFile,
59
- } = toolbox.parameters.options;
60
-
61
- // Support both short and long option variants
62
- help ||= h;
63
- ipfs ||= i;
64
- outputDir ||= o;
65
- outputFormat ||= t;
66
- watch ||= w;
67
-
68
- let manifest;
69
- try {
70
- [manifest] = fixParameters(toolbox.parameters, {
71
- h,
72
- help,
73
- w,
74
- watch,
75
- });
76
- } catch (e) {
77
- print.error(e.message);
78
- process.exitCode = 1;
79
- return;
80
- }
81
-
82
- // Fall back to default values for options / parameters
83
- outputFormat = outputFormat && ['wasm', 'wast'].includes(outputFormat) ? outputFormat : 'wasm';
84
- outputDir = outputDir && outputDir !== '' ? outputDir : filesystem.path('build');
85
- manifest =
86
- manifest !== undefined && manifest !== '' ? manifest : filesystem.resolve('subgraph.yaml');
87
- networkFile =
88
- networkFile !== undefined && networkFile !== ''
89
- ? networkFile
90
- : filesystem.resolve('networks.json');
91
-
92
- // Show help text if requested
93
- if (help) {
94
- print.info(HELP);
95
- return;
96
- }
97
-
98
- let protocol;
99
- try {
100
- const dataSourcesAndTemplates = await DataSourcesExtractor.fromFilePath(manifest);
101
-
102
- protocol = Protocol.fromDataSources(dataSourcesAndTemplates);
103
- } catch (e) {
104
- print.error(e.message);
105
- process.exitCode = 1;
106
- return;
107
- }
108
-
109
- buildDebug('Detected protocol "%s" (%o)', protocol.name, protocol);
110
-
111
- if (network && filesystem.exists(networkFile) !== 'file') {
112
- print.error(`Network file '${networkFile}' does not exists or is not a file!`);
113
- process.exitCode = 1;
114
- return;
115
- }
116
-
117
- if (network) {
118
- const identifierName = protocol.getContract()!.identifierName();
119
- await updateSubgraphNetwork(toolbox, manifest, network, networkFile, identifierName);
120
- }
121
-
122
- const compiler = createCompiler(manifest, {
123
- ipfs,
124
- outputDir,
125
- outputFormat,
126
- skipMigrations,
127
- protocol,
128
- });
129
-
130
- // Exit with an error code if the compiler couldn't be created
131
- if (!compiler) {
132
- process.exitCode = 1;
133
- return;
134
- }
135
-
136
- // Watch subgraph files for changes or additions, trigger
137
- // compile (if watch argument specified)
138
- if (watch) {
139
- await compiler.watchAndCompile();
140
- } else {
141
- const result = await compiler.compile();
142
- if (result === false) {
143
- process.exitCode = 1;
144
- }
145
- }
146
- },
147
- };
@@ -1,123 +0,0 @@
1
- import path from 'path';
2
- import chalk from 'chalk';
3
- import { GluegunToolbox } from 'gluegun';
4
- import * as DataSourcesExtractor from '../command-helpers/data-sources';
5
- import { fixParameters } from '../command-helpers/gluegun';
6
- import { assertGraphTsVersion, assertManifestApiVersion } from '../command-helpers/version';
7
- import debug from '../debug';
8
- import Protocol from '../protocols';
9
- import TypeGenerator from '../type-generator';
10
-
11
- const HELP = `
12
- ${chalk.bold('graph codegen')} [options] ${chalk.bold('[<subgraph-manifest>]')}
13
- Options:
14
- -h, --help Show usage information
15
- -o, --output-dir <path> Output directory for generated types (default: generated/)
16
- --skip-migrations Skip subgraph migrations (default: false)
17
- -w, --watch Regenerate types when subgraph files change (default: false)
18
- -u, --uncrashable Generate Float Subgraph Uncrashable helper file
19
- -uc, --uncrashable-config <path> Directory for uncrashable config (default: ./uncrashable-config.yaml)
20
- `;
21
-
22
- export interface CodeGenOptions {
23
- help?: boolean;
24
- outputDir?: string;
25
- skipMigrations?: boolean;
26
- watch?: boolean;
27
- uncrashable?: boolean;
28
- uncrashableConfig?: string;
29
- }
30
-
31
- const codegenDebug = debug('graph-cli:codegen');
32
-
33
- export default {
34
- description: 'Generates AssemblyScript types for a subgraph',
35
- run: async (toolbox: GluegunToolbox) => {
36
- // Obtain tools
37
- const { filesystem, print } = toolbox;
38
-
39
- // Read CLI parameters
40
- let { h, help, o, outputDir, skipMigrations, w, watch, u, uncrashable, uc, uncrashableConfig } =
41
- toolbox.parameters.options;
42
-
43
- // Support both long and short option variants
44
- help ||= h;
45
- outputDir ||= o;
46
- watch ||= w;
47
- uncrashable ||= u;
48
- let uncrashable_config = uncrashableConfig || uc;
49
-
50
- let manifest;
51
- try {
52
- [manifest] = fixParameters(toolbox.parameters, {
53
- h,
54
- help,
55
- skipMigrations,
56
- w,
57
- watch,
58
- u,
59
- uncrashable,
60
- });
61
- } catch (e) {
62
- print.error(e.message);
63
- process.exitCode = 1;
64
- return;
65
- }
66
-
67
- codegenDebug('Initialized codegen manifest: %o', manifest);
68
-
69
- // Fall back to default values for options / parameters
70
- outputDir =
71
- outputDir !== undefined && outputDir !== '' ? outputDir : filesystem.path('generated');
72
- manifest =
73
- manifest !== undefined && manifest !== '' ? manifest : filesystem.resolve('subgraph.yaml');
74
-
75
- uncrashable_config =
76
- uncrashable_config !== undefined && uncrashable_config !== ''
77
- ? uncrashable_config
78
- : filesystem.resolve('uncrashable-config.yaml');
79
-
80
- // Show help text if requested
81
- if (help) {
82
- print.info(HELP);
83
- return;
84
- }
85
-
86
- let protocol;
87
- try {
88
- // Checks to make sure codegen doesn't run against
89
- // older subgraphs (both apiVersion and graph-ts version).
90
- //
91
- // We don't want codegen to run without these conditions
92
- // because that would mean the CLI would generate code to
93
- // the wrong AssemblyScript version.
94
- await assertManifestApiVersion(manifest, '0.0.5');
95
- await assertGraphTsVersion(path.dirname(manifest), '0.25.0');
96
-
97
- const dataSourcesAndTemplates = await DataSourcesExtractor.fromFilePath(manifest);
98
-
99
- protocol = Protocol.fromDataSources(dataSourcesAndTemplates);
100
- } catch (e) {
101
- print.error(e.message);
102
- process.exitCode = 1;
103
- return;
104
- }
105
-
106
- const generator = new TypeGenerator({
107
- subgraphManifest: manifest,
108
- outputDir,
109
- skipMigrations,
110
- protocol,
111
- uncrashable,
112
- uncrashableConfig: uncrashable_config,
113
- });
114
-
115
- // Watch working directory for file updates or additions, trigger
116
- // type generation (if watch argument specified)
117
- if (watch) {
118
- await generator.watchAndGenerateTypes();
119
- } else if (!(await generator.generateTypes())) {
120
- process.exitCode = 1;
121
- }
122
- },
123
- };
@@ -1,109 +0,0 @@
1
- import { URL } from 'url';
2
- import chalk from 'chalk';
3
- import { GluegunToolbox } from 'gluegun';
4
- import { identifyDeployKey as identifyAccessToken } from '../command-helpers/auth';
5
- import { createJsonRpcClient } from '../command-helpers/jsonrpc';
6
- import { validateNodeUrl } from '../command-helpers/node';
7
-
8
- const HELP = `
9
- ${chalk.bold('graph create')} ${chalk.dim('[options]')} ${chalk.bold('<subgraph-name>')}
10
-
11
- ${chalk.dim('Options:')}
12
-
13
- --access-token <token> Graph access token
14
- -h, --help Show usage information
15
- -g, --node <url> Graph node to create the subgraph in
16
- `;
17
-
18
- export interface CreateOptions {
19
- accessToken?: string;
20
- help?: boolean;
21
- node?: string;
22
- }
23
-
24
- export default {
25
- description: 'Registers a subgraph name',
26
- run: async (toolbox: GluegunToolbox) => {
27
- // Obtain tools
28
- const { print } = toolbox;
29
-
30
- // Read CLI parameters
31
- let { accessToken, g, h, help, node } = toolbox.parameters.options;
32
- const subgraphName = toolbox.parameters.first;
33
-
34
- // Support both long and short option variants
35
- node ||= g;
36
- help ||= h;
37
-
38
- // Show help text if requested
39
- if (help) {
40
- print.info(HELP);
41
- return;
42
- }
43
-
44
- // Validate the subgraph name
45
- if (!subgraphName) {
46
- print.error('No subgraph name provided');
47
- print.info(HELP);
48
- process.exitCode = 1;
49
- return;
50
- }
51
-
52
- // Validate node
53
- if (!node) {
54
- print.error(`No Graph node provided`);
55
- print.info(HELP);
56
- process.exitCode = 1;
57
- return;
58
- }
59
- try {
60
- validateNodeUrl(node);
61
- } catch (e) {
62
- print.error(`Graph node "${node}" is invalid: ${e.message}`);
63
- process.exitCode = 1;
64
- return;
65
- }
66
-
67
- const requestUrl = new URL(node);
68
- const client = createJsonRpcClient(requestUrl);
69
-
70
- // Exit with an error code if the client couldn't be created
71
- if (!client) {
72
- process.exitCode = 1;
73
- return;
74
- }
75
-
76
- // Use the access token, if one is set
77
- accessToken = await identifyAccessToken(node, accessToken);
78
- if (accessToken !== undefined && accessToken !== null) {
79
- // @ts-expect-error options property seems to exist
80
- client.options.headers = { Authorization: `Bearer ${accessToken}` };
81
- }
82
-
83
- const spinner = print.spin(`Creating subgraph in Graph node: ${requestUrl}`);
84
- client.request(
85
- 'subgraph_create',
86
- { name: subgraphName },
87
- (
88
- // @ts-expect-error TODO: why are the arguments not typed?
89
- requestError,
90
- // @ts-expect-error TODO: why are the arguments not typed?
91
- jsonRpcError,
92
- // TODO: this argument is unused, but removing it fails the basic-event-handlers tests
93
- // @ts-expect-error TODO: why are the arguments not typed?
94
- _res,
95
- ) => {
96
- if (jsonRpcError) {
97
- spinner.fail(`Error creating the subgraph: ${jsonRpcError.message}`);
98
- process.exitCode = 1;
99
- } else if (requestError) {
100
- spinner.fail(`HTTP error creating the subgraph: ${requestError.code}`);
101
- process.exitCode = 1;
102
- } else {
103
- spinner.stop();
104
- print.success(`Created subgraph: ${subgraphName}`);
105
- }
106
- },
107
- );
108
- },
109
- };