Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: graphprotocol/graph-tooling
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: @graphprotocol/graph-ts@0.37.0
Choose a base ref
...
head repository: graphprotocol/graph-tooling
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: @graphprotocol/graph-ts@0.38.0
Choose a head ref
Loading
Showing with 6,884 additions and 5,545 deletions.
  1. +85 −0 .github/actions/setup-node/action.yml
  2. +9 −9 .github/workflows/ci.yml
  3. +5 −5 .github/workflows/pr.yml
  4. +3 −3 .github/workflows/release.yml
  5. +54 −0 .github/workflows/shared-changesets-dependencies.yml
  6. +88 −0 .github/workflows/shared-release-snapshot.yml
  7. +16 −0 .prettierrc.js
  8. +0 −1 .prettierrc.json
  9. +19 −0 .vscode/launch.json
  10. +20 −0 .vscode/tasks.json
  11. +44 −2 examples/README.md
  12. +1 −1 examples/arweave-blocks-transactions/src/blocks.ts
  13. +1 −1 examples/ethereum-basic-event-handlers/hardhat/Dockerfile
  14. +2 −5 package.json
  15. +197 −0 packages/cli/CHANGELOG.md
  16. +10 −0 packages/cli/bin/run.js
  17. +21 −15 packages/cli/package.json
  18. +31 −8 packages/cli/src/codegen/schema.test.ts
  19. +10 −4 packages/cli/src/codegen/schema.ts
  20. +1 −1 packages/cli/src/codegen/types/index.test.ts
  21. +1 −1 packages/cli/src/codegen/util.test.ts
  22. +50 −2 packages/cli/src/codegen/util.ts
  23. +1 −1 packages/cli/src/command-helpers/compiler.test.ts
  24. +1 −1 packages/cli/src/command-helpers/compiler.ts
  25. +117 −23 packages/cli/src/command-helpers/contracts.test.ts
  26. +176 −75 packages/cli/src/command-helpers/contracts.ts
  27. +125 −0 packages/cli/src/command-helpers/file-resolver.test.ts
  28. +7 −5 packages/cli/src/command-helpers/file-resolver.ts
  29. +3 −1 packages/cli/src/command-helpers/network.test.ts
  30. +7 −0 packages/cli/src/command-helpers/subgraph.ts
  31. +1 −1 packages/cli/src/command-helpers/version.test.ts
  32. +56 −38 packages/cli/src/commands/add.ts
  33. +21 −15 packages/cli/src/commands/auth.ts
  34. +0 −1 packages/cli/src/commands/binary-install.d.ts
  35. +1 −1 packages/cli/src/commands/build.ts
  36. +0 −1 packages/cli/src/commands/codegen.ts
  37. +25 −21 packages/cli/src/commands/deploy.ts
  38. +214 −88 packages/cli/src/commands/init.ts
  39. +3 −3 packages/cli/src/commands/local.ts
  40. +12 −10 packages/cli/src/commands/publish.ts
  41. +41 −23 packages/cli/src/commands/test.ts
  42. +20 −5 packages/cli/src/compiler/asc.ts
  43. +66 −55 packages/cli/src/compiler/index.ts
  44. +0 −480 packages/cli/src/protocols/ethereum/codegen/__snapshots__/abi.test.ts.snap
  45. +1 −1 packages/cli/src/protocols/ethereum/codegen/abi.test.ts
  46. +2 −1 packages/cli/src/protocols/ethereum/codegen/abi.ts
  47. +1 −1 packages/cli/src/protocols/ethereum/scaffold/manifest.ts
  48. +1 −1 packages/cli/src/protocols/ethereum/scaffold/mapping.ts
  49. +1 −0 packages/cli/src/protocols/subgraph/manifest.graphql
  50. +4 −2 packages/cli/src/protocols/subgraph/scaffold/manifest.ts
  51. +5 −0 packages/cli/src/protocols/substreams/manifest.graphql
  52. +1 −1 packages/cli/src/scaffold/__snapshots__/cosmos.test.ts.snap
  53. +164 −11 packages/cli/src/scaffold/__snapshots__/ethereum.test.ts.snap
  54. +1 −1 packages/cli/src/scaffold/__snapshots__/near.test.ts.snap
  55. +27 −1 packages/cli/src/scaffold/ethereum.test.ts
  56. +51 −16 packages/cli/src/scaffold/index.ts
  57. +96 −31 packages/cli/src/scaffold/mapping.ts
  58. +7 −1 packages/cli/src/scaffold/tests.ts
  59. +3 −1 packages/cli/src/subgraph.ts
  60. +67 −0 packages/cli/src/utils.ts
  61. +1 −1 packages/cli/src/validation/schema.test.ts
  62. +3 −5 packages/cli/src/version.ts
  63. +90 −24 packages/cli/tests/cli/__snapshots__/init.test.ts.snap
  64. +1 −1 packages/cli/tests/cli/add/expected/subgraph.yaml
  65. +60 −5 packages/cli/tests/cli/init.test.ts
  66. 0 packages/cli/tests/cli/init/subgraph/.gitkeep
  67. +1 −0 packages/cli/tests/cli/init/substreams/substreams.spkg
  68. +237 −253 packages/cli/tests/cli/validation.test.ts
  69. +8 −0 packages/cli/tsconfig.dev.json
  70. +6 −0 packages/ts/CHANGELOG.md
  71. +299 −0 packages/ts/common/yaml.ts
  72. +31 −1 packages/ts/global/global.ts
  73. +1 −0 packages/ts/index.ts
  74. +10 −1 packages/ts/package.json
  75. +7 −3 packages/ts/test/test.mjs
  76. +207 −0 packages/ts/test/yaml.ts
  77. +3,780 −4,153 pnpm-lock.yaml
  78. +9 −1 renovate.json
  79. +1 −0 website/.env.example
  80. +10 −10 website/package.json
  81. +1 −2 website/postcss.config.js
  82. +5 −5 website/src/components/ui/button.tsx
  83. +1 −1 website/src/components/ui/input.tsx
  84. +2 −2 website/src/components/ui/select.tsx
  85. +1 −1 website/src/components/ui/textarea.tsx
  86. +4 −4 website/src/components/ui/toast.tsx
  87. +1 −1 website/src/components/wallet-provider.tsx
  88. +87 −3 website/src/global.css
  89. +13 −3 website/src/lib/graphql.ts
  90. +10 −10 website/src/routes/publish.lazy.tsx
  91. +0 −80 website/tailwind.config.js
85 changes: 85 additions & 0 deletions .github/actions/setup-node/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# Note: This is a composite GitHub Actions, it should do all env setup, caching an so on, so other pipelines can just compose their own stuff on top of that.
# Docs: https://docs.github.com/en/actions/creating-actions/creating-a-composite-action

name: Configure Environment
description: Shared configuration for checkout, Node.js and package manager
inputs:
nodeVersion:
description: Node.js version to use
required: true
default: '20'
workingDirectory:
description: Working directory
required: false
default: ./
packageManager:
description: Package manager
required: false
default: yarn
packageManagerVersion:
description: Package manager version
required: false
default: ''

runs:
using: composite
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.12.1
continue-on-error: true
with:
access_token: ${{ github.token }}

- name: check pnpm version
shell: bash
id: pnpm
if: inputs.packageManager == 'pnpm'
working-directory: ${{ inputs.workingDirectory }}
run: |
PNPM_VERSION=${PNPM_VERSION:-9.0.6}
PKG_JSON=$(cat package.json | jq -r '.packageManager' | awk -F@ '{print $2}')
if [ ! -z $PKG_JSON ]; then
PNPM_VERSION=$PKG_JSON
fi
if [ ! -z {{inputs.packageManager}} ]; then
PNPM_VERSION=${{ inputs.packageManagerVersion }}
fi
echo "Using PNPM version $PNPM_VERSION"
echo "version=$PNPM_VERSION" >> $GITHUB_OUTPUT
- name: Setup ${{ inputs.packageManager }}
id: pnpm_setup
if: inputs.packageManager == 'pnpm'
uses: pnpm/action-setup@v4.1.0
with:
version: ${{ steps.pnpm.outputs.version }}
run_install: false
package_json_file: ${{ inputs.workingDirectory }}/package.json

- name: setup node
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.nodeVersion }}
cache: ${{ inputs.packageManager }}
cache-dependency-path: |
**/pnpm-lock.yaml
**/yarn.lock
patches/**
- name: yarn install
shell: bash
if: inputs.packageManager == 'yarn' && inputs.packageManagerVersion == ''
run: yarn install --ignore-engines --frozen-lockfile --immutable
working-directory: ${{ inputs.workingDirectory }}

- name: modern yarn install
shell: bash
if: inputs.packageManager == 'yarn' && inputs.packageManagerVersion == 'modern'
run: corepack enable && yarn
working-directory: ${{ inputs.workingDirectory }}

- name: pnpm install
shell: bash
if: inputs.packageManager == 'pnpm'
run: pnpm install --frozen-lockfile
working-directory: ${{ inputs.workingDirectory }}
18 changes: 9 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -15,12 +15,12 @@ jobs:
- name: Checkout Repository
uses: actions/checkout@v4

- uses: the-guild-org/shared-config/setup@main
- uses: ./.github/actions/setup-node
name: Setup Env
with:
nodeVersion: 20
packageManager: pnpm
packageManagerVersion: 9.1.0
packageManagerVersion: 9

- name: Lint
run: pnpm lint
@@ -32,17 +32,17 @@ jobs:
strategy:
fail-fast: false
matrix:
node-version: [18, 20, 22]
node-version: [20, 22]
steps:
- name: Checkout Repository
uses: actions/checkout@v4

- uses: the-guild-org/shared-config/setup@main
- uses: ./.github/actions/setup-node
name: Setup Env
with:
nodeVersion: ${{ matrix.node-version }}
packageManager: pnpm
packageManagerVersion: 9.1.0
packageManagerVersion: 9

- name: Setup git user information
run: |
@@ -67,12 +67,12 @@ jobs:
- name: Checkout Repository
uses: actions/checkout@v4

- uses: the-guild-org/shared-config/setup@main
- uses: ./.github/actions/setup-node
name: Setup Env
with:
nodeVersion: 20
packageManager: pnpm
packageManagerVersion: 9.1.0
packageManagerVersion: 9

- name: Build Packages
run: pnpm build
@@ -95,12 +95,12 @@ jobs:
- name: Checkout Repository
uses: actions/checkout@v4

- uses: the-guild-org/shared-config/setup@main
- uses: ./.github/actions/setup-node
name: Setup Env
with:
nodeVersion: 20
packageManager: pnpm
packageManagerVersion: 9.1.0
packageManagerVersion: 9

- name: Build Packages
run: pnpm build # will also check types
10 changes: 5 additions & 5 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
@@ -8,33 +8,33 @@ permissions: write-all

jobs:
dependencies:
uses: the-guild-org/shared-config/.github/workflows/changesets-dependencies.yaml@main
uses: ./.github/workflows/shared-changesets-dependencies.yml
if: ${{ github.event.pull_request.title != 'Upcoming Release Changes' }}
secrets:
githubToken: ${{ secrets.GITHUB_TOKEN }}

alpha:
uses: the-guild-org/shared-config/.github/workflows/release-snapshot.yml@main
uses: ./.github/workflows/shared-release-snapshot.yml
if: ${{ github.event.pull_request.title != 'Upcoming Release Changes' }}
with:
npmTag: alpha
buildScript: build
nodeVersion: 20
packageManager: pnpm
packageManagerVersion: 9.1.0
packageManagerVersion: 9
secrets:
githubToken: ${{ secrets.GITHUB_TOKEN }}
npmToken: ${{ secrets.NPM_TOKEN }}

release-candidate:
uses: the-guild-org/shared-config/.github/workflows/release-snapshot.yml@main
uses: ./.github/workflows/shared-release-snapshot.yml
if: ${{ github.event.pull_request.title == 'Upcoming Release Changes' }}
with:
npmTag: rc
buildScript: build
nodeVersion: 20
packageManager: pnpm
packageManagerVersion: 9.1.0
packageManagerVersion: 9
restoreDeletedChangesets: true
secrets:
githubToken: ${{ secrets.GITHUB_TOKEN }}
6 changes: 3 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -20,11 +20,11 @@ jobs:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup environment
uses: the-guild-org/shared-config/setup@main
uses: ./.github/actions/setup-node
with:
nodeVersion: 20
packageManager: pnpm
packageManagerVersion: 9.1.0
packageManagerVersion: 9

- name: Set variables
id: vars
@@ -38,7 +38,7 @@ jobs:
if: ${{ startsWith(github.event.head_commit.message, env.RELEASE_COMMIT_MSG) }}
run: pnpm --filter=@graphprotocol/graph-cli oclif:pack
- name: Release / pull_request
uses: dotansimha/changesets-action@v1.5.0
uses: pinax-network/changesets-release-action@v1.5.2
with:
publish: pnpm release
version: pnpm changeset version
54 changes: 54 additions & 0 deletions .github/workflows/shared-changesets-dependencies.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Note: this is a shared pipeline used by other repositories.
# Docs: https://docs.github.com/en/actions/using-workflows/reusing-workflows

on:
workflow_call:
inputs:
installDependencies:
type: boolean
default: false
preCommit:
type: string
required: false
packageManager:
type: string
required: false
default: yarn
packageManagerVersion:
type: string
description: Package manager version
required: false
default: ''
nodeVersion:
required: false
type: string
default: '20'
secrets:
githubToken:
required: true

jobs:
changeset:
runs-on: ubuntu-24.04
if: github.event.pull_request.head.repo.full_name == github.repository
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.githubToken }}

- uses: ./.github/actions/setup-node
name: setup env and install dependencies
if: ${{ inputs.installDependencies }}
with:
nodeVersion: ${{ inputs.nodeVersion }}
packageManager: ${{ inputs.packageManager }}
packageManagerVersion: ${{ inputs.packageManagerVersion }}

- name: Create/Update Changesets
uses: pinax-network/changesets-dependencies-action@v1.2.2
with:
preCommit: ${{ inputs.preCommit }}
env:
GITHUB_TOKEN: ${{ secrets.githubToken }}
88 changes: 88 additions & 0 deletions .github/workflows/shared-release-snapshot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Note: this is a shared pipeline used by other repositories.
# Docs: https://docs.github.com/en/actions/using-workflows/reusing-workflows

on:
workflow_call:
inputs:
packageManager:
type: string
required: false
default: yarn
packageManagerVersion:
description: Package manager version
type: string
required: false
default: ''
nodeVersion:
required: false
type: string
default: '20'
buildScript:
required: false
type: string
default: build
npmTag:
required: false
type: string
default: npmTag
exitPre:
required: false
type: boolean
default: false
restoreDeletedChangesets:
required: false
type: boolean
default: false
secrets:
githubToken:
required: true
npmToken:
required: true
outputs:
published:
description: A boolean value to indicate whether a publishing is happened or not
value: ${{ jobs.snapshot.outputs.published }}
publishedPackages:
description:
'A JSON array to present the published packages. The format is [{"name": "@xx/xx",
"version": "1.2.0"}, {"name": "@xx/xy", "version": "0.8.9"}]'
value: ${{ jobs.snapshot.outputs.publishedPackages }}

jobs:
snapshot:
runs-on: ubuntu-24.04
if: github.event.pull_request.head.repo.full_name == github.repository
outputs:
published: ${{ steps.changesets.outputs.published }}
publishedPackages: ${{ steps.changesets.outputs.publishedPackages }}
steps:
- name: checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}

- uses: ./.github/actions/setup-node
name: setup env
with:
nodeVersion: ${{inputs.nodeVersion}}
packageManager: ${{inputs.packageManager}}
packageManagerVersion: ${{inputs.packageManagerVersion}}

- if: inputs.exitPre
name: Exit Prerelease Mode
run: ${{inputs.packageManager}} run changeset pre exit

- if: inputs.restoreDeletedChangesets
name: restore deleted changesets
run: git checkout HEAD~1 -- .

- name: ${{ inputs.npmTag }} release
id: changesets
uses: pinax-network/changesets-snapshot-action@v0.0.3
with:
tag: ${{ inputs.npmTag }}
prepareScript: '${{inputs.packageManager}} run ${{ inputs.buildScript }}'
env:
NPM_TOKEN: ${{ secrets.npmToken }}
GITHUB_TOKEN: ${{ secrets.githubToken }}
16 changes: 16 additions & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import prettierConfig from '@theguild/prettier-config';

export default {
...prettierConfig,
overrides: [
...(prettierConfig.overrides || []),
{
files: '*.md{,x}',
options: {
semi: false,
trailingComma: 'none',
proseWrap: 'preserve',
},
},
],
};
1 change: 0 additions & 1 deletion .prettierrc.json

This file was deleted.

19 changes: 19 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug graph init",
"skipFiles": ["<node_internals>/**"],
"program": "${workspaceFolder}/packages/cli/bin/run",
"args": ["init", "--skip-git"],
"preLaunchTask": "build:dev",
"outFiles": ["${workspaceFolder}/packages/cli/dist/**/*.js"],
"sourceMaps": true,
"resolveSourceMapLocations": ["${workspaceFolder}/**", "!**/node_modules/**"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
]
}
Loading