Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
213 commits
Select commit Hold shift + click to select a range
58de626
Enable alpha releases on `graphiql-6` (#4227)
trevor-scheer May 7, 2026
50e263e
Merge branch 'main' into graphiql-6
trevor-scheer May 8, 2026
3b919d5
Merge branch 'main' into graphiql-6
trevor-scheer May 8, 2026
e21fc3f
fix formatting after merge conflict resolution
trevor-scheer May 8, 2026
8eebea7
trigger ci
trevor-scheer May 8, 2026
e0faa4e
Merge branch 'main' into graphiql-6
trevor-scheer May 9, 2026
72e8970
v6: Add OKLCH design tokens (dark + light) (#4242)
trevor-scheer May 9, 2026
95e43c0
Merge branch 'main' into graphiql-6
trevor-scheer May 11, 2026
d9873c3
v6: Set up Storybook in `@graphiql/react` (#4254)
trevor-scheer May 13, 2026
befd259
Merge remote-tracking branch 'origin/main' into graphiql-6
trevor-scheer May 14, 2026
53054cd
v6: Add `cypress-axe` for full-app a11y coverage (#4258)
trevor-scheer May 14, 2026
bd13b32
Merge branch 'main' into graphiql-6
trevor-scheer May 14, 2026
e0ebc5b
v6: Wire axe into Storybook stories via `@storybook/addon-vitest` (#4…
trevor-scheer May 14, 2026
bd773d3
v6: Restyle `Button` and `ToolbarButton` (#4276)
trevor-scheer May 15, 2026
d4f0268
v6: Add `KeycapHint` primitive (#4277)
trevor-scheer May 15, 2026
34695e8
v6: Restyle `Tooltip` (#4278)
trevor-scheer May 15, 2026
1bcf3be
v6: Restyle `Dialog` (#4279)
trevor-scheer May 15, 2026
7dd2111
v6: Restyle `DropdownMenu` (#4280)
trevor-scheer May 15, 2026
5fb2d64
v6: Restyle `Tabs` (#4281)
trevor-scheer May 15, 2026
a0fe11a
v6: Add `SegmentedControl` primitive (#4282)
trevor-scheer May 15, 2026
05ecaf0
v6: Restyle `Spinner` (#4283)
trevor-scheer May 15, 2026
1ce71e4
v6: Add `PanelHeader` primitive (#4284)
trevor-scheer May 16, 2026
c25bfd5
v6: Add `MethodPill` primitive (#4285)
trevor-scheer May 16, 2026
e54b9c9
v6: Rewrite `SegmentedControl` on native radio inputs (#4287)
trevor-scheer May 16, 2026
6627635
v6: Mirror the active theme to `data-theme` on `<html>` (#4293)
trevor-scheer May 17, 2026
82e5460
v6: Add `TopBar` layout component (#4288)
trevor-scheer May 17, 2026
3f79ce9
v6: Add `StatusBar` layout component (#4289)
trevor-scheer May 17, 2026
bbe02de
v6: Add `ActivityRail` and replace the previous sidebar (#4290)
trevor-scheer May 17, 2026
4fa53a8
v6: Add `SidePanel` component (#4291)
trevor-scheer May 17, 2026
f5968fe
v6: Restyle editor tabs with dirty state and close affordance (#4292)
trevor-scheer May 17, 2026
ba1a8a8
Merge branch 'main' into graphiql-6
trevor-scheer May 17, 2026
7c9adc5
yarn dedupe
trevor-scheer May 17, 2026
92567d5
v6: Restyle doc-explorer to v6 design tokens (#4294)
trevor-scheer May 17, 2026
76a5169
v6: Replace Monaco editor themes with v6 token palette (#4297)
trevor-scheer May 18, 2026
ce7a88f
Speed up monaco-graphql bundle assertion test (#4298)
trevor-scheer May 18, 2026
dabeb6d
v6: Add OS-aware `MODIFIER` constants to `KeycapHint` (#4302)
trevor-scheer May 19, 2026
b73d951
v6: Redesign Schema Explorer panel structure (#4299)
trevor-scheer May 20, 2026
a3db26e
v6: Restyle @graphiql/plugin-history (#4295)
trevor-scheer May 20, 2026
eb46e2f
v6: Show operation pill on History rows (#4316)
trevor-scheer May 20, 2026
03535ab
v6: Add response pane header with view toggle (#4321)
trevor-scheer May 27, 2026
fdbd07d
v6: Add useGraphiQLSettings hook (#4322)
trevor-scheer May 28, 2026
093cb10
v6: Add Transport API and `<GraphiQL transport>` prop (#4333)
trevor-scheer Jun 5, 2026
7b95cec
Merge branch 'main' into graphiql-6
trevor-scheer Jun 5, 2026
75f8104
format release.yml
trevor-scheer Jun 6, 2026
8b70057
v6: polyfill `localStorage` in test setup for Node 24 + jsdom (#4334)
trevor-scheer Jun 6, 2026
0bd32a1
v6: Add `ResponseTreeView` (#4335)
trevor-scheer Jun 6, 2026
c7d4b1f
Merge remote-tracking branch 'origin/main' into graphiql-6
trevor-scheer Jun 7, 2026
739097b
Fix flaky deprecated-arguments docs cypress test (#4348)
trevor-scheer Jun 13, 2026
a565cac
v6: Add `ResponseTableView` (#4336)
trevor-scheer Jun 13, 2026
b77270a
v6: Promote variables/headers footer into a tab strip (#4337)
trevor-scheer Jun 13, 2026
480afc1
v6: Add theme / density / font-size controls to settings dialog (#4338)
trevor-scheer Jun 14, 2026
3b18277
v6: Expose transport request/response hooks to plugins (#4351)
trevor-scheer Jun 14, 2026
2138336
v6: Add spec-compliant GET support to `createTransport` (#4349)
trevor-scheer Jun 14, 2026
a540401
v6: Show real status, time, and size in the response header (#4350)
trevor-scheer Jun 14, 2026
a5fbe57
v6: Make transport hooks satisfy the stricter `Transport` type (#4353)
trevor-scheer Jun 15, 2026
87580dc
v6: Use the GraphQL logo in the top bar (#4357)
trevor-scheer Jun 17, 2026
94b4f97
v6: Fix flaky Monaco hover assertion in lint cypress tests (#4358)
trevor-scheer Jun 17, 2026
a9f9e4c
v6: Cap tooltip height and raise its stacking so it stays on-screen (…
trevor-scheer Jun 20, 2026
f8a9445
v6: Add a visual query builder (`@graphiql/plugin-query-builder`) (#4…
trevor-scheer Jun 22, 2026
d79f78f
Merge branch 'main' into graphiql-6
trevor-scheer Jun 23, 2026
8055809
Merge remote-tracking branch 'origin/main' into graphiql-6
trevor-scheer Jun 27, 2026
e82c6cd
yarn dedupe
trevor-scheer Jun 27, 2026
1466974
v6: Portal Radix content into the container + consistent `Dialog` sty…
trevor-scheer Jun 28, 2026
cfca05c
v6: Top bar method/URL display and method switcher (#4360)
trevor-scheer Jul 7, 2026
ac56840
v6: Add the operation collections plugin (#4359)
trevor-scheer Jul 7, 2026
fb403d5
Add a strict `SubscriptionClient` interface for `createTransport` (#4…
trevor-scheer Jul 9, 2026
bc5fd15
v6: Deprecate `@graphiql/plugin-explorer` and expand the 6.0 migratio…
trevor-scheer Jul 9, 2026
520e2ff
Merge main into graphiql-6
trevor-scheer Jul 9, 2026
c632185
Dedupe yarn.lock after merging main
trevor-scheer Jul 9, 2026
827da62
v6: Remove the v5-deprecated hooks (#4393)
trevor-scheer Jul 10, 2026
26ae143
v6: Drop the deprecated `legacyClient` fetcher alias (#4392)
trevor-scheer Jul 10, 2026
bfed213
v6: Simplify `.browserslistrc` to the `defaults` preset (#4395)
trevor-scheer Jul 10, 2026
df29e76
v6: Tune light-theme tokens for WCAG AA contrast (#4394)
trevor-scheer Jul 10, 2026
0df39f9
v6: Make the Monaco editors follow the theme toggle (#4396)
trevor-scheer Jul 10, 2026
170d409
v6: Flatten the editor workspace frame (#4397)
trevor-scheer Jul 10, 2026
80bf12d
v6: Remove editor tab/editor inset padding (#4405)
trevor-scheer Jul 11, 2026
77a6a78
v6: Simplify the status bar and make the connection indicator functio…
trevor-scheer Jul 11, 2026
c1c33d0
v6: Vertically center the KeycapHint glyph (#4400)
trevor-scheer Jul 11, 2026
a8254bc
v6: Add a check-mark confirmation to the Settings Clear Data button (…
trevor-scheer Jul 11, 2026
83b79e3
v6: Restyle the top bar Run button (play icon, divider, chip shortcut…
trevor-scheer Jul 11, 2026
0557a68
v6: Open schema search with Cmd+K and remove the dead top-bar button …
trevor-scheer Jul 11, 2026
cf0ebba
v6: Remove the legacy editor toolbar and corner logo (#4398)
trevor-scheer Jul 11, 2026
b5eb598
v6: Align GraphQL syntax colors and color type names by category (#4403)
trevor-scheer Jul 11, 2026
0f96193
v6: Tighten keyboard navigation and focus traps (#4409)
trevor-scheer Jul 12, 2026
b6f8dc6
Consolidate v6 changesets to reflect the final changelog (#4411)
trevor-scheer Jul 12, 2026
1919f6a
v6: Add screen-reader labels and a visible focus ring (#4413)
trevor-scheer Jul 12, 2026
df03c92
v6: Response pane polish (spinner overlay, consistent inset, table di…
trevor-scheer Jul 12, 2026
9c153e2
Deprecate v5 `--color-*` tokens (migrate to OKLCH) and remove `@graph…
trevor-scheer Jul 12, 2026
5890bf3
v6: Document the OKLCH token system in the `@graphiql/react` README (…
trevor-scheer Jul 12, 2026
7123fd6
v6: Give the tab close button hover and focus states (#4420)
trevor-scheer Jul 12, 2026
4fc0682
v6: Add an empty state to the History panel (#4418)
trevor-scheer Jul 12, 2026
9341d55
v6: Add an operation picker to the Run button (#4419)
trevor-scheer Jul 12, 2026
340d33d
v6: Query builder inline fragment extraction and editing (#4412)
trevor-scheer Jul 12, 2026
54d37eb
v6: Fix doc explorer search popover shadow in light theme (#4417)
trevor-scheer Jul 13, 2026
d45401e
v6: Tidy up token/consistency nits (method pills, status bar, icon si…
trevor-scheer Jul 13, 2026
8a2577f
v6: Make the font-size setting reach the doc explorer, headers, and p…
trevor-scheer Jul 13, 2026
f45e26b
v6: Remove the `cn` re-export from `@graphiql/react` (#4423)
trevor-scheer Jul 13, 2026
c870ea3
v6: Unify list-row hover across the Doc Explorer and History panels (…
trevor-scheer Jul 13, 2026
ff2e4ca
v6: Retire the composable `GraphiQL.Toolbar` and `GraphiQL.Logo` slot…
trevor-scheer Jul 13, 2026
4f96f6d
v6: Make the font-size setting reach body text (#4427)
trevor-scheer Jul 15, 2026
7f63c9d
v6: align font tokens with the Roboto/Fira Code that actually ship (#…
trevor-scheer Jul 15, 2026
3ccddba
v6: lock down the `@graphiql/react` public surface before 6.0.0 (#4431)
trevor-scheer Jul 29, 2026
1ba0bde
v6: Move the response sub-components into `response-editor` and out o…
trevor-scheer Jul 29, 2026
25d812e
Merge branch 'main' into graphiql-6
trevor-scheer Aug 7, 2026
c5a4ec5
v6: adjust `MessageProcessor` schema line assertions (#4459)
trevor-scheer Aug 7, 2026
db8d13a
v6: re-export `ExecuteButton` and make it the one run button (#4458)
trevor-scheer Aug 7, 2026
5ede365
Merge branch 'main' into graphiql-6
trevor-scheer Aug 25, 2026
813c552
v6: fix transport error metadata, subscription teardown, and the spec…
trevor-scheer Aug 26, 2026
84453b3
bump `@graphiql/plugin-query-builder` react dep to `^0.38.0` so it re…
trevor-scheer Aug 26, 2026
fe892a2
v6: fix broken migration guide examples and transport docs (#4432)
trevor-scheer Aug 26, 2026
a2f2df2
v6: cmd-click replaces the doc explorer path instead of appending to …
trevor-scheer Aug 26, 2026
4949504
v6: fix changeset accuracy (#4469)
trevor-scheer Aug 29, 2026
630e198
v6: move the prerelease tag from alpha to beta (#4470)
trevor-scheer Aug 29, 2026
df74ee5
point the consolidated changesets at their real PRs
trevor-scheer Aug 29, 2026
9570fe4
seed the new plugins at 0.0.0 with major changesets
trevor-scheer Aug 29, 2026
97ade1b
Version Packages (beta) (#4251)
github-actions[bot] Aug 29, 2026
cb2ac2a
v6: pin internal `@graphiql/react` and `@graphiql/toolkit` ranges to …
trevor-scheer Aug 29, 2026
9d389b8
Version Packages (beta) (#4475)
github-actions[bot] Aug 29, 2026
23e201f
Disable GPU for Cypress's Electron browser in CI (#4484)
trevor-scheer Sep 3, 2026
066528a
v6: Require GraphQL.js 16.11 or 17 (#4478)
trevor-scheer Sep 4, 2026
e821307
v6: Clear the light-theme accessibility baseline (#4487)
trevor-scheer Sep 7, 2026
50f8f22
v6: Finish removing the UMD build (#4486)
trevor-scheer Sep 9, 2026
5dc814d
v6: Move GraphiQL E2E into a private workspace (#4488)
trevor-scheer Sep 9, 2026
918a597
Merge `main` into `graphiql-6`
trevor-scheer Sep 12, 2026
1d72803
Merge `main` into `graphiql-6`
trevor-scheer Sep 12, 2026
00f3666
Merge `main` into `graphiql-6`
trevor-scheer Sep 12, 2026
66fe6be
Declare `@testing-library/user-event` in `@graphiql/react`
trevor-scheer Sep 12, 2026
19876cb
Declare v6 build and test dependencies
trevor-scheer Sep 12, 2026
ead4d2d
Merge latest `main` into the v6 sync branch
trevor-scheer Sep 12, 2026
4a71e71
Normalize nullable Svelte source contents
trevor-scheer Sep 12, 2026
79a6872
Declare `vite` in `monaco-graphql`
trevor-scheer Sep 12, 2026
b1a0bce
Reproduce Cypress package ownership failure
trevor-scheer Sep 12, 2026
bb2d45f
Install Cypress from `graphiql-e2e`
trevor-scheer Sep 12, 2026
b6ab17e
Merge pnpm updates into `graphiql-6`
trevor-scheer Sep 12, 2026
9997737
Merge `main` into `graphiql-6`
trevor-scheer Sep 13, 2026
295ac79
reproduce prerelease workspace resolution
trevor-scheer Sep 13, 2026
86bcbf6
fix CI after dependency updates
trevor-scheer Sep 13, 2026
1bd2495
Ignore `graphiql-e2e` in Changesets (#4560)
trevor-scheer Sep 15, 2026
a275e8a
Cancel pending doc explorer searches on unmount (#4561)
trevor-scheer Sep 17, 2026
84c9a94
Externalize optional React renderers from VS Code bundles (#4565)
trevor-scheer Sep 26, 2026
f916fd6
Support `monaco-editor@0.56` and `monaco-editor@0.57` (#4566)
trevor-scheer Sep 26, 2026
81b3344
Merge main into graphiql-6
trevor-scheer Sep 26, 2026
99acea8
Version Packages (beta) (#4485)
github-actions[bot] Sep 26, 2026
c01e8f7
Deduplicate Monaco initialization across GraphiQL providers (#4567)
trevor-scheer Sep 26, 2026
cc05044
Merge branch 'main' into graphiql-6
trevor-scheer Sep 26, 2026
c7d5295
Revise the GraphiQL 6 migration guide (#4570)
trevor-scheer Sep 27, 2026
6a3cd78
v6: Use operation-neutral toolbar labels (#4577)
trevor-scheer Sep 27, 2026
2fa3b14
v6: Run the current document with the correct operation (#4573)
trevor-scheer Sep 27, 2026
770339d
v6: Make keyboard operation selection tests deterministic (#4574)
trevor-scheer Sep 27, 2026
4ffe17b
v6: Pin compatible beta dependencies and include Monaco sources (#4571)
trevor-scheer Sep 27, 2026
7e3c4ac
v6: Preserve registered custom Monaco themes (#4576)
trevor-scheer Sep 27, 2026
9fa830c
v6: Require `iterate()` for subscription clients (#4578)
trevor-scheer Sep 27, 2026
3d7b234
v6: Make saved Collections tab state durable before Save completes (#…
trevor-scheer Sep 27, 2026
e478096
Use Monaco models for Cypress setup (#4580)
trevor-scheer Sep 28, 2026
bad532b
Wait for Cypress state instead of time (#4581)
trevor-scheer Sep 28, 2026
7c8fe1e
Select Cypress UI by semantic identity (#4582)
trevor-scheer Sep 28, 2026
5affc68
Remove CommonJS dependencies from GraphQL workers (#4590)
trevor-scheer Sep 28, 2026
7f9e0cc
v6: Correct migration examples and Vite setup (#4589)
trevor-scheer Sep 28, 2026
8e6a0f2
Version Packages (beta) (#4568)
github-actions[bot] Sep 28, 2026
4773f62
Requeue the transport API changeset for beta (#4592)
trevor-scheer Sep 28, 2026
d452d6d
Version Packages (beta) (#4593)
github-actions[bot] Sep 28, 2026
5661247
Move GraphiQL 6 prereleases to RC (#4579)
trevor-scheer Sep 28, 2026
bcd13dc
Move GraphiQL 6 packages to RC (#4595)
trevor-scheer Sep 28, 2026
5081f23
Use the RC GraphQL worker in esm.sh setup (#4594)
trevor-scheer Sep 28, 2026
141e5d6
Version Packages (rc) (#4596)
github-actions[bot] Sep 28, 2026
a539b83
v6: Restore internal package ranges (#4474)
trevor-scheer Sep 29, 2026
abf1c84
Share `useGraphiQLSettings` preferences across consumers (#4601)
trevor-scheer Sep 30, 2026
b39eee0
Handle non-JSON responses in the custom `Transport` guide example (#4…
trevor-scheer Sep 30, 2026
541682b
Load ESM Prettier plugins for Prettify in Vite (#4606)
trevor-scheer Sep 30, 2026
cc8d9d5
List optional GraphiQL 6 features in migration guide (#4607)
trevor-scheer Sep 30, 2026
d1c38b8
Document plugin transport hooks for GraphiQL 6 (#4605)
trevor-scheer Sep 30, 2026
3c30b43
Clarify settings storage and CSS ordering in the migration guide (#4609)
trevor-scheer Sep 30, 2026
17b7e11
Document `GraphiQLProps` wrapper migration (#4602)
trevor-scheer Sep 30, 2026
b40d7fe
Remove `operationName` prop from GraphiQL 6 (#4610)
trevor-scheer Sep 30, 2026
867a0d5
Give Save one plugin owner and await persistence (#4608)
trevor-scheer Sep 30, 2026
d3f2e0f
Version Packages (rc) (#4597)
github-actions[bot] Sep 30, 2026
50841a3
Fix custom saving link in the v6 migration guide (#4611)
trevor-scheer Oct 1, 2026
771c4fb
Move CSpell to development dependencies (#4627)
trevor-scheer Oct 11, 2026
ecedd76
Use stable React Compiler for v6 (#4623)
trevor-scheer Oct 11, 2026
15a45f4
Use stable TypeScript 7 for v6 builds (#4624)
trevor-scheer Oct 11, 2026
c1fe2ca
Develop v6 against GraphQL 17 (#4625)
trevor-scheer Oct 11, 2026
4225e29
Update `@astrojs/compiler` for v6 (#4632)
trevor-scheer Oct 11, 2026
cc33695
Update `framer-motion` to 14 (v6) (#4633)
trevor-scheer Oct 11, 2026
45a81d7
Use `clsx` 2 in v6 packages (#4636)
trevor-scheer Oct 11, 2026
8343d86
Update pnpm setup action to v6 (#4629)
trevor-scheer Oct 11, 2026
ad49598
Add accessible descriptions to dialogs (#4630)
trevor-scheer Oct 11, 2026
a1fc8cf
Reduce routine test and build output (#4631)
trevor-scheer Oct 11, 2026
3d368ba
Remove deprecated `graphql` executable shim (#4635)
trevor-scheer Oct 11, 2026
8bf10ec
Reduce repeated CI build work (#4639)
trevor-scheer Oct 11, 2026
a5cf895
Upgrade Vitest to 5 (#4637)
trevor-scheer Oct 11, 2026
76df082
Run Cypress 16 tests in Chrome (#4634)
trevor-scheer Oct 11, 2026
327d364
Remove Vite 8 forward-compatibility warnings (#4638)
trevor-scheer Oct 11, 2026
b74eab4
Remove unused deprecated development dependencies (#4640)
trevor-scheer Oct 11, 2026
f148937
Remove unused Webpack example dependencies (#4641)
trevor-scheer Oct 11, 2026
009944b
Replace deprecated Babel dependencies (#4642)
trevor-scheer Oct 11, 2026
164b8ab
Remove `subscriptions-transport-ws` test dependency (#4643)
trevor-scheer Oct 11, 2026
82b068a
Resolve React Hooks peer with ESLint 10 (#4644)
trevor-scheer Oct 11, 2026
e0b6441
Version Packages (rc) (#4628)
github-actions[bot] Oct 12, 2026
7e31f1e
Return query builder to operation after fragment deletion (#4650)
trevor-scheer Oct 13, 2026
7f19588
Follow typed operations in the query builder (#4651)
trevor-scheer Oct 13, 2026
e0f3cc2
Expose reactive `resolvedTheme` to GraphiQL plugins (#4649)
trevor-scheer Oct 13, 2026
bc9c2df
Queue query builder fixes for the next v6 RC (#4656)
trevor-scheer Oct 13, 2026
6a280d9
Version Packages (rc) (#4654)
github-actions[bot] Oct 13, 2026
c4a62af
Discover and automatically select transport methods (#4665)
trevor-scheer Oct 23, 2026
5dbc3c5
Version Packages (rc) (#4666)
github-actions[bot] Oct 23, 2026
93c9f9c
merge main into graphiql-6
trevor-scheer Oct 23, 2026
6bd9e28
Update TypeScript to 7.1 beta (#4667)
trevor-scheer Oct 27, 2026
b90c4ea
Join Run, operation selection, and request method controls (#4673)
trevor-scheer Nov 1, 2026
c5f129b
Unify selection styling with GraphQL pink (#4674)
trevor-scheer Nov 1, 2026
04f50b4
merge main into graphiql-6
trevor-scheer Nov 1, 2026
c2e792b
Prepare the stable GraphiQL 6 release (#4598)
trevor-scheer Nov 1, 2026
a9f2e37
Clarify v6 migration and package release notes (#4677)
trevor-scheer Nov 1, 2026
784c898
Version Packages (#4676)
github-actions[bot] Nov 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 1 addition & 5 deletions .browserslistrc
Original file line number Diff line number Diff line change
@@ -1,5 +1 @@
last 2 versions
Firefox ESR
not dead
not IE 11
not ios 10
defaults
3 changes: 2 additions & 1 deletion .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
"example-graphiql-webpack",
"example-monaco-graphql-nextjs",
"example-monaco-graphql-react-vite",
"example-monaco-graphql-webpack"
"example-monaco-graphql-webpack",
"graphiql-e2e"
],
"updateInternalDependencies": "patch",
"privatePackages": {
Expand Down
5 changes: 0 additions & 5 deletions .github/ISSUE_TEMPLATE/graphiql-feature.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,6 @@ labels: [graphiql, enhancement]
api:
https://graphiql-test.netlify.app/typedoc/modules/graphiql_react.html#graphiqlplugin-2

examples:

https://github.com/graphql/graphiql/tree/main/packages/graphiql-plugin-explorer


In the event that the plugin API doesn't allow you to build a feature, it
may be that expanding the plugin API *itself* is the best place for the
feature to be introduced!
Expand Down
31 changes: 18 additions & 13 deletions .github/scripts/update-cdn-versions.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -7,27 +7,37 @@
import fs from 'node:fs';
import path from 'node:path';
import crypto from 'node:crypto';
import { parseArgs } from 'node:util';

const { values } = parseArgs({
options: {
'graphiql-tag': { type: 'string', default: 'latest' },
},
});

const PACKAGES = [
'react',
'react-dom',
'graphiql',
'@graphiql/plugin-explorer',
'@graphiql/react',
'@graphiql/toolkit',
'graphql',
];

/**
* Given the name of an npm package, return a tuple of: [name, latest version]
* Given the name of an npm package, return a tuple of: [name, version at the selected tag]
*
* @example
*
* fetchLatestVersion('left-pad')
* => ['left-pad', '1.0.1']
*/
async function fetchLatestVersion(packageName) {
const url = `https://registry.npmjs.org/${packageName}/latest`;
const tag =
packageName === 'graphiql' || packageName.startsWith('@graphiql/')
? values['graphiql-tag']
: 'latest';
const url = `https://registry.npmjs.org/${packageName}/${encodeURIComponent(tag)}`;
const response = await fetch(url);
if (!response.ok) {
throw new Error(`Failed to fetch ${packageName}: ${response.statusText}`);
Expand Down Expand Up @@ -60,6 +70,7 @@ async function main() {
);
const cdnUrl = packageName =>
`https://esm.sh/${packageName}@${versions[packageName]}`;
const setupWorkers = `${cdnUrl('graphiql')}/setup-workers/esm.sh?deps=@graphiql/react@${versions['@graphiql/react']}`;

// JS
const imports = {
Expand All @@ -69,7 +80,7 @@ async function main() {
'react-dom/': `${cdnUrl('react-dom')}/`,
graphiql: `${cdnUrl('graphiql')}?standalone&external=react,react-dom,@graphiql/react,graphql`,
'graphiql/': `${cdnUrl('graphiql')}/`,
'@graphiql/plugin-explorer': `${cdnUrl('@graphiql/plugin-explorer')}?standalone&external=react,@graphiql/react,graphql`,
'graphiql/setup-workers/esm.sh': setupWorkers,
'@graphiql/react': `${cdnUrl('@graphiql/react')}?standalone&external=react,react-dom,graphql,@graphiql/toolkit,@emotion/is-prop-valid`,
'@graphiql/toolkit': `${cdnUrl('@graphiql/toolkit')}?standalone&external=graphql`,
graphql: cdnUrl('graphql'),
Expand All @@ -82,8 +93,8 @@ async function main() {
cdnUrl('react'),
cdnUrl('react-dom'),
cdnUrl('graphiql'),
setupWorkers,
`${cdnUrl('graphiql')}?standalone&external=react,react-dom,@graphiql/react,graphql`,
cdnUrl('@graphiql/plugin-explorer'),
`${cdnUrl('@graphiql/react')}?standalone&external=react,react-dom,graphql,@graphiql/toolkit,@emotion/is-prop-valid`,
`${cdnUrl('@graphiql/toolkit')}?standalone&external=graphql`,
cdnUrl('graphql'),
Expand All @@ -96,10 +107,6 @@ async function main() {
// CSS
const graphiqlCss = `${cdnUrl('graphiql')}/dist/style.css`;
const graphiqlCssHash = (await fetchIntegrityHash(graphiqlCss))[1];
const graphiqlPluginExplorer = `${cdnUrl('@graphiql/plugin-explorer')}/dist/style.css`;
const graphiqlPluginExplorerHash = (
await fetchIntegrityHash(graphiqlPluginExplorer)
)[1];

// Generate index.html
const templatePath = path.join(
Expand All @@ -119,11 +126,9 @@ async function main() {
const output = template
.replace('{{IMPORTMAP}}', importMap)
.replace('{{GRAPHIQL_CSS_URL}}', graphiqlCss)
.replace('{{GRAPHIQL_CSS_INTEGRITY}}', graphiqlCssHash)
.replace('{{PLUGIN_EXPLORER_CSS_URL}}', graphiqlPluginExplorer)
.replace('{{PLUGIN_EXPLORER_CSS_INTEGRITY}}', graphiqlPluginExplorerHash);
.replace('{{GRAPHIQL_CSS_INTEGRITY}}', graphiqlCssHash);

console.log(output);
process.stdout.write(output);
}

main();
30 changes: 22 additions & 8 deletions .github/workflows/pr-graphql-compat-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,14 @@ jobs:
# test against the latest 16.x version, which might be newer than what we have
- '^16'
# test against the oldest version we support
- '^16.0.0'
# test against the latest alpha
- '^17.0.0-alpha'
- '16.11.0'
# test against the latest 17.x version
- '^17'
steps:
- name: Checkout Code
uses: actions/checkout@v6

- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
Expand All @@ -44,6 +44,9 @@ jobs:
path: node_modules
key: node_modules-${{hashFiles('pnpm-lock.yaml')}}
restore-keys: node_modules-
- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Force GraphQL ${{ matrix.release }} solution
run: pnpm repo:resolve graphql@${{ matrix.release }}

Expand All @@ -52,10 +55,21 @@ jobs:
- name: Turbo cache
uses: ./.github/actions/turbo-cache

- name: Build
run: pnpm build

- name: Unit Tests
run: pnpm test

- name: Cypress
run: |
pnpm --filter graphiql exec cypress install
pnpm e2e
- name: Install Cypress
run: pnpm --filter graphiql-e2e exec cypress install

- name: Cypress (GraphQL 16)
if: matrix.release != '^17'
env:
CYPRESS_excludeSpecPattern: cypress/e2e/incremental-delivery.cy.ts
run: pnpm e2e

- name: Cypress (GraphQL 17)
if: matrix.release == '^17'
run: pnpm e2e
66 changes: 32 additions & 34 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,22 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
cache: pnpm
- run: pnpm install --frozen-lockfile
- name: Turbo cache
uses: ./.github/actions/turbo-cache
- run: pnpm build
- run: pnpm build --output-logs=new-only

cspell:
name: CSpell
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
Expand All @@ -41,7 +41,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
Expand All @@ -56,7 +56,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
Expand All @@ -70,7 +70,7 @@ jobs:
needs: [build]
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
Expand All @@ -80,43 +80,39 @@ jobs:
uses: ./.github/actions/turbo-cache
with:
restore-build: true
- run: pnpm test
- run: pnpm --filter @graphiql/react exec playwright install --with-deps chromium
- run: pnpm test --output-logs=new-only

graphql-17-fragment-arguments:
name: GraphQL 17 Fragment Arguments
graphql-16-compatibility:
name: GraphQL 16 Compatibility
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm --filter graphql-language-service add --save-dev graphql@17.0.2
- name: Build and typecheck graphql-language-service
run: pnpm --filter graphql-language-service exec tsc
- name: Test fragment argument integration
run: >-
pnpm exec vitest run packages/graphql-language-service/src/parser/__tests__/OnlineParser.test.ts packages/graphql-language-service/src/interface/__tests__/getAutocompleteSuggestions.test.ts packages/graphql-language-service/src/interface/__tests__/getDiagnostics.test.ts packages/graphql-language-service/src/interface/__tests__/getHoverInformation.test.ts
- run: pnpm repo:resolve graphql@16.14.2
- run: pnpm install --no-frozen-lockfile
- name: Turbo cache
uses: ./.github/actions/turbo-cache
- run: pnpm build --output-logs=new-only
- run: pnpm --filter @graphiql/react exec playwright install --with-deps chromium
- run: pnpm test --output-logs=new-only

lint:
name: Lint
runs-on: ubuntu-latest
needs: [build]
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
cache: pnpm
- run: pnpm install --frozen-lockfile
- name: Turbo cache
uses: ./.github/actions/turbo-cache
with:
restore-build: true
- run: pnpm build
- run: pnpm oxlint

types-check:
Expand All @@ -125,7 +121,7 @@ jobs:
needs: [build]
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
Expand All @@ -135,15 +131,17 @@ jobs:
uses: ./.github/actions/turbo-cache
with:
restore-build: true
- run: pnpm types:check
- run: |
pnpm exec turbo run types:check --output-logs=new-only
pnpm exec tsc --noEmit -p scripts/tsconfig.json

e2e:
name: Cypress
runs-on: ubuntu-latest
needs: [build]
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
Expand All @@ -153,29 +151,29 @@ jobs:
uses: ./.github/actions/turbo-cache
with:
restore-build: true
- run: pnpm build
- run: pnpm build:graphiql --output-logs=new-only
- uses: actions/cache@v5
with:
path: |
~/.cache/Cypress
key: cypress-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
- run: pnpm --filter graphiql exec cypress install
- run: pnpm --filter graphiql-e2e exec cypress install
- name: Cypress run
uses: cypress-io/github-action@v7
with:
install: false
command: pnpm e2e
command: pnpm --filter graphiql-e2e e2e:built
- uses: actions/upload-artifact@v7
if: failure()
with:
name: cypress-screenshots
path: packages/graphiql/cypress/screenshots
path: packages/graphiql-e2e/cypress/screenshots
if-no-files-found: ignore
- uses: actions/upload-artifact@v7
if: failure()
with:
name: cypress-videos
path: packages/graphiql/cypress/videos
path: packages/graphiql-e2e/cypress/videos
if-no-files-found: ignore

pkg-pr-new:
Expand All @@ -184,7 +182,7 @@ jobs:
needs: [build, lint, vitest, e2e]
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
Expand All @@ -194,15 +192,15 @@ jobs:
uses: ./.github/actions/turbo-cache
with:
restore-build: true
- run: pnpm build
- run: pnpm build --output-logs=new-only
- run: pnpm dlx pkg-pr-new publish --comment=off './packages/*'

license-check:
name: Check Licenses
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
Expand Down
Loading
Loading