@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,388 +0,0 @@
1
- import path from 'path';
2
- import { URL } from 'url';
3
- import chalk from 'chalk';
4
- import { GluegunToolbox } from 'gluegun';
5
- import { identifyDeployKey } from '../command-helpers/auth';
6
- import { createCompiler } from '../command-helpers/compiler';
7
- import * as DataSourcesExtractor from '../command-helpers/data-sources';
8
- import { fixParameters } from '../command-helpers/gluegun';
9
- import { DEFAULT_IPFS_URL } from '../command-helpers/ipfs';
10
- import { createJsonRpcClient } from '../command-helpers/jsonrpc';
11
- import { updateSubgraphNetwork } from '../command-helpers/network';
12
- import { chooseNodeUrl } from '../command-helpers/node';
13
- import { validateStudioNetwork } from '../command-helpers/studio';
14
- import { assertGraphTsVersion, assertManifestApiVersion } from '../command-helpers/version';
15
- import Protocol from '../protocols';
16
-
17
- const HELP = `
18
- ${chalk.bold('graph deploy')} [options] ${chalk.bold('<subgraph-name>')} ${chalk.bold(
19
- '[<subgraph-manifest>]',
20
- )}
21
-
22
- Options:
23
-
24
- --product <subgraph-studio|hosted-service>
25
- Selects the product to which to deploy
26
- --studio Shortcut for --product subgraph-studio
27
- -g, --node <node> Graph node to which to deploy
28
- --deploy-key <key> User deploy key
29
- -l --version-label <label> Version label used for the deployment
30
- -h, --help Show usage information
31
- -i, --ipfs <node> Upload build results to an IPFS node (default: ${DEFAULT_IPFS_URL})
32
- -hdr, --headers <map> Add custom headers that will be used by the IPFS HTTP client (default: {})
33
- --debug-fork ID of a remote subgraph whose store will be GraphQL queried
34
- -o, --output-dir <path> Output directory for build results (default: build/)
35
- --skip-migrations Skip subgraph migrations (default: false)
36
- -w, --watch Regenerate types when subgraph files change (default: false)
37
- --network <name> Network configuration to use from the networks config file
38
- --network-file <path> Networks config file path (default: "./networks.json")
39
- `;
40
-
41
- export interface DeployOptions {
42
- product?: 'subgraph-studio' | 'hosted-service';
43
- studio?: boolean;
44
- node?: string;
45
- deployKey?: string;
46
- versionLabel?: string;
47
- help?: boolean;
48
- ipfs?: string;
49
- headers?: Record<string, string>;
50
- debugFork?: boolean;
51
- outputDir?: string;
52
- skipMigrations?: boolean;
53
- watch?: boolean;
54
- network?: string;
55
- networkFile?: string;
56
- }
57
-
58
- const processForm = async (
59
- toolbox: GluegunToolbox,
60
- { product, studio, node, versionLabel }: DeployOptions,
61
- ) => {
62
- const questions = [
63
- {
64
- type: 'select',
65
- name: 'product',
66
- message: 'Product for which to deploy',
67
- choices: ['subgraph-studio', 'hosted-service'],
68
- skip:
69
- product === 'subgraph-studio' ||
70
- product === 'hosted-service' ||
71
- studio !== undefined ||
72
- node !== undefined,
73
- },
74
- {
75
- type: 'input',
76
- name: 'versionLabel',
77
- message: 'Version Label (e.g. v0.0.1)',
78
- skip: versionLabel !== undefined,
79
- },
80
- ];
81
-
82
- try {
83
- const answers = await toolbox.prompt.ask(questions);
84
- return answers;
85
- } catch (e) {
86
- return undefined;
87
- }
88
- };
89
-
90
- export default {
91
- description: 'Deploys the subgraph to a Graph node',
92
- run: async (toolbox: GluegunToolbox) => {
93
- // Obtain tools
94
- const { filesystem, print } = toolbox;
95
-
96
- // Parse CLI parameters
97
- let {
98
- product,
99
- studio,
100
- deployKey,
101
- accessToken,
102
- versionLabel,
103
- l,
104
- g,
105
- h,
106
- i,
107
- help,
108
- ipfs,
109
- headers,
110
- hdr,
111
- node,
112
- o,
113
- outputDir,
114
- skipMigrations,
115
- w,
116
- watch,
117
- debugFork,
118
- network,
119
- networkFile,
120
- } = toolbox.parameters.options;
121
-
122
- // Support both long and short option variants
123
- help ||= h;
124
- ipfs = ipfs || i || DEFAULT_IPFS_URL;
125
- headers = headers || hdr || '{}';
126
- node ||= g;
127
- outputDir ||= o;
128
- watch ||= w;
129
- versionLabel ||= l;
130
-
131
- try {
132
- headers = JSON.parse(headers);
133
- } catch (e) {
134
- print.error('Please make sure headers is a valid JSON value');
135
- process.exitCode = 1;
136
- return;
137
- }
138
-
139
- let subgraphName: string, manifest: string;
140
- try {
141
- [subgraphName, manifest] = fixParameters(toolbox.parameters, {
142
- h,
143
- help,
144
- w,
145
- watch,
146
- studio,
147
- });
148
- } catch (e) {
149
- print.error(e.message);
150
- process.exitCode = 1;
151
- return;
152
- }
153
-
154
- // Fall back to default values for options / parameters
155
- outputDir = outputDir && outputDir !== '' ? outputDir : filesystem.path('build');
156
- manifest =
157
- manifest !== undefined && manifest !== '' ? manifest : filesystem.resolve('subgraph.yaml');
158
- networkFile =
159
- networkFile !== undefined && networkFile !== ''
160
- ? networkFile
161
- : filesystem.resolve('networks.json');
162
-
163
- try {
164
- const dataSourcesAndTemplates = await DataSourcesExtractor.fromFilePath(manifest);
165
-
166
- for (const { network } of dataSourcesAndTemplates) {
167
- validateStudioNetwork({ studio, product, network });
168
- }
169
- } catch (e) {
170
- print.error(e.message);
171
- process.exitCode = 1;
172
- return;
173
- }
174
-
175
- // Show help text if requested
176
- if (help) {
177
- print.info(HELP);
178
- return;
179
- }
180
-
181
- ({ node } = chooseNodeUrl({ product, studio, node }));
182
- if (!node) {
183
- const inputs = await processForm(toolbox, {
184
- product,
185
- studio,
186
- node,
187
- versionLabel: 'skip', // determine label requirement later
188
- });
189
- if (inputs === undefined) {
190
- process.exit(1);
191
- }
192
- product = inputs.product;
193
- ({ node } = chooseNodeUrl({
194
- product,
195
- studio,
196
- node,
197
- }));
198
- }
199
-
200
- // Validate the subgraph name
201
- if (!subgraphName) {
202
- print.error(
203
- `No subgraph ${product == 'subgraph-studio' || studio ? 'slug' : 'name'} provided`,
204
- );
205
- print.info(HELP);
206
- process.exitCode = 1;
207
- return;
208
- }
209
-
210
- // Validate node
211
- if (!node) {
212
- print.error(`No Graph node provided`);
213
- print.info(HELP);
214
- process.exitCode = 1;
215
- return;
216
- }
217
-
218
- // Validate IPFS
219
- if (!ipfs) {
220
- print.error(`No IPFS node provided`);
221
- print.info(HELP);
222
- process.exitCode = 1;
223
- return;
224
- }
225
-
226
- let protocol;
227
- try {
228
- // Checks to make sure deploy doesn't run against
229
- // older subgraphs (both apiVersion and graph-ts version).
230
- //
231
- // We don't want the deploy to run without these conditions
232
- // because that would mean the CLI would try to compile code
233
- // using the wrong AssemblyScript compiler.
234
- await assertManifestApiVersion(manifest, '0.0.5');
235
- await assertGraphTsVersion(path.dirname(manifest), '0.25.0');
236
-
237
- const dataSourcesAndTemplates = await DataSourcesExtractor.fromFilePath(manifest);
238
-
239
- protocol = Protocol.fromDataSources(dataSourcesAndTemplates);
240
- } catch (e) {
241
- print.error(e.message);
242
- process.exitCode = 1;
243
- return;
244
- }
245
-
246
- if (network) {
247
- const identifierName = protocol.getContract()!.identifierName();
248
- await updateSubgraphNetwork(toolbox, manifest, network, networkFile, identifierName);
249
- }
250
-
251
- const isStudio = node.match(/studio/);
252
- const isHostedService = node.match(/thegraph.com/) && !isStudio;
253
-
254
- const compiler = createCompiler(manifest, {
255
- ipfs,
256
- headers,
257
- outputDir,
258
- outputFormat: 'wasm',
259
- skipMigrations,
260
- blockIpfsMethods: isStudio, // Network does not support publishing subgraphs with IPFS methods
261
- protocol,
262
- });
263
-
264
- // Exit with an error code if the compiler couldn't be created
265
- if (!compiler) {
266
- process.exitCode = 1;
267
- return;
268
- }
269
-
270
- // Ask for label if not on hosted service
271
- if (!versionLabel && !isHostedService) {
272
- const inputs = await processForm(toolbox, {
273
- product,
274
- studio,
275
- node,
276
- versionLabel,
277
- });
278
- if (inputs === undefined) {
279
- process.exit(1);
280
- }
281
- versionLabel = inputs.versionLabel;
282
- }
283
-
284
- const requestUrl = new URL(node);
285
- const client = createJsonRpcClient(requestUrl);
286
-
287
- // Exit with an error code if the client couldn't be created
288
- if (!client) {
289
- process.exitCode = 1;
290
- return;
291
- }
292
-
293
- // Use the deploy key, if one is set
294
- if (!deployKey && accessToken) {
295
- deployKey = accessToken; // backwards compatibility
296
- }
297
- deployKey = await identifyDeployKey(node, deployKey);
298
- if (deployKey !== undefined && deployKey !== null) {
299
- // @ts-expect-error options property seems to exist
300
- client.options.headers = { Authorization: 'Bearer ' + deployKey };
301
- }
302
-
303
- const deploySubgraph = async (ipfsHash: string) => {
304
- const spinner = print.spin(`Deploying to Graph node ${requestUrl}`);
305
- // `Failed to deploy to Graph node ${requestUrl}`,
306
- client.request(
307
- 'subgraph_deploy',
308
- {
309
- name: subgraphName,
310
- ipfs_hash: ipfsHash,
311
- version_label: versionLabel,
312
- debug_fork: debugFork,
313
- },
314
- async (
315
- // @ts-expect-error TODO: why are the arguments not typed?
316
- requestError,
317
- // @ts-expect-error TODO: why are the arguments not typed?
318
- jsonRpcError,
319
- // @ts-expect-error TODO: why are the arguments not typed?
320
- res,
321
- ) => {
322
- if (jsonRpcError) {
323
- spinner.fail(`Failed to deploy to Graph node ${requestUrl}: ${jsonRpcError.message}`);
324
-
325
- // Provide helpful advice when the subgraph has not been created yet
326
- if (jsonRpcError.message.match(/subgraph name not found/)) {
327
- if (isHostedService) {
328
- print.info(`
329
- You may need to create it at https://thegraph.com/explorer/dashboard.`);
330
- } else {
331
- print.info(`
332
- Make sure to create the subgraph first by running the following command:
333
- $ graph create --node ${node} ${subgraphName}`);
334
- }
335
- }
336
- process.exitCode = 1;
337
- } else if (requestError) {
338
- spinner.fail(`HTTP error deploying the subgraph ${requestError.code}`);
339
- process.exitCode = 1;
340
- } else {
341
- spinner.stop();
342
-
343
- const base = requestUrl.protocol + '//' + requestUrl.hostname;
344
- let playground = res.playground;
345
- let queries = res.queries;
346
-
347
- // Add a base URL if graph-node did not return the full URL
348
- if (playground.charAt(0) === ':') {
349
- playground = base + playground;
350
- }
351
- if (queries.charAt(0) === ':') {
352
- queries = base + queries;
353
- }
354
-
355
- if (isHostedService) {
356
- print.success(
357
- `Deployed to ${chalk.blue(
358
- `https://thegraph.com/explorer/subgraph/${subgraphName}`,
359
- )}`,
360
- );
361
- } else {
362
- print.success(`Deployed to ${chalk.blue(String(playground))}`);
363
- }
364
- print.info('\nSubgraph endpoints:');
365
- print.info(`Queries (HTTP): ${queries}`);
366
- print.info(``);
367
- }
368
- },
369
- );
370
- };
371
-
372
- if (watch) {
373
- await compiler.watchAndCompile(async ipfsHash => {
374
- if (ipfsHash !== undefined) {
375
- await deploySubgraph(ipfsHash);
376
- }
377
- });
378
- } else {
379
- const result = await compiler.compile();
380
- if (result === undefined || result === false) {
381
- // Compilation failed, not deploying.
382
- process.exitCode = 1;
383
- return;
384
- }
385
- await deploySubgraph(result);
386
- }
387
- },
388
- };