Repository navigation
deps(dev): update dependency @graphql-tools/utils to v12 [security] - #346
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
8.2.3→12.0.1GraphQL Tools has prototype pollution in well-established utility function
mergeDeepCVE-2026-104852 / GHSA-7mx3-vvmw-hjmv
More information
Details
Closed by https://github.com/ardatan/graphql-tools/pull/8423
Mitigated in Hive Gateway by https://github.com/graphql-hive/gateway/pull/2600
A client can alias fields to
constructor,__proto__orprototypeso that the response keys from two subgraphs collide on those names during result merging. BecausemergeDeeprecursed through inherited properties, the merge walked{}.constructortoObject, thenObject.__proto__toFunction.prototype, and wrote a subgraph-supplied value overFunction.prototype.call, breaking every subsequent request in the process until restart. This is remotely triggerable by an unauthenticated client with a single query against any supergraph that merges an object from two subgraphs, which is the ordinary@shareableor entity case, so it is a denial of service rather than a theoretical hardening issue.{ shared { fieldA constructor: fieldB { __proto__: child { call: value } } } }Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
ardatan/graphql-tools (@graphql-tools/utils)
v12.0.1Compare Source
Patch Changes
#8368
60db079Thanks @ardatan! - Omit mutation/subscription fromprintSchemaWithDirectiveswhen those root types are no longer present on the schema (e.g. afterpruneSchema).#8366
57e316dThanks @ardatan! - Allow%in paths checked byisValidPath(e.g. directories from URL-encoded repo names).#8370
1c1c5a0Thanks @ardatan! - Clean upobservableToAsyncIterablequeues and unsubscribe when the observable completes, so iterators do not retain references afterdone. Fixes leak detection flakes related to #8057.#8370
1c1c5a0Thanks @ardatan! - Prefer runtimedescriptionvalues over staleastNodedescriptions inprintSchemaWithDirectives/getDescriptionNode. Fixes #5508.#8423
0b9529fThanks @enisdenjo! - Fix prototype pollution inmergeDeepSource keys named
__proto__,constructororprototypeare now skipped at every recursion level, and the check for an existing key useshasOwnPropertyinstead ofin, so inherited properties are never used as merge targets.Previously, merging untrusted data such as
JSON.parse('{"constructor":{"__proto__":{"call":"x"}}}')could reach and overwrite properties onObject.prototypeorFunction.prototype.v12.0.0Compare Source
Major Changes
#8346
2273c21Thanks @ardatan! - This release adds GraphQL v17 support and aligns
the existing executor implementation with the latest GraphQL v17 API changes. The following
changes are included:
getAsyncHelpersis now available onGraphQLResolveInfo. Itstrackmethod is used wheneverwaitUntilis available, as in Yoga'sExplicit Resource Management
getAbortSignalis now available onGraphQLResolveInfo, matching behavior that was alreadyavailable in this executor implementation, as in Yoga's
Execution Cancellation
GraphQLResolveInfoautomatically alignsvariableValuesaccording to the GraphQL version forbetter compatibility. In GraphQL v17 and above,
variableValuesfollows the wrapped shape(
{ coerced, sources }) expected by GraphQL APIs. In GraphQL v16 and below,variableValuesremains a flat map as in previous versions.
__serializeand__parseValue, they are automaticallymapped to
coerceOutputValueandcoerceInputValuein GraphQL v17.@graphql-tools/executor'sgetVariableValuesnow returns{ variableValues }on success, where
variableValuesis aVariableValuesobject ({ coerced, sources }). Onfailure, it returns
{ errors }.collectFields,shouldIncludeNode,getDeferValues, andcollectSubFieldsnowneed a
VariableValuesobject instead ofRecord<string, any>for thevariableValuesargument.
visitResultnow internally normalizesExecutionRequest.variablesinto aVariableValues-compatible shape ({ coerced, sources }) before traversing selections.v11.2.2Compare Source
Patch Changes
e90719bThanks @pbomb! - fix mergeDeep to treat explicit undefined property
values as overrides rather than skipping them, distinct from an absent property
v11.2.1Compare Source
Patch Changes
615c1a2Thanks @pbomb! - fix mergeDeep to treat null property values as
explicit overrides rather than skipping them
v11.2.0Compare Source
Minor Changes
2609c94Thanks @eddeee888! - getDocumentNodeFromSchema: Add arg
defaultValue support for graphql@17
v11.1.1Compare Source
Patch Changes
#8256
981d461Thanks @twavv! - Fix
mergeDeepreturningundefinedinstead of{}when merging two or more empty objects.
Previously the output accumulator was only initialized inside the per-key loop, so merging sources
with no own keys (e.g.
mergeDeep([{}, {}])) left itundefined. This silently droppedempty-object values during nested merges (
{ data: {} }became{ data: undefined }), whichcould surface as "Cannot return null for non-nullable field" errors when stitching schemas. The
accumulator is now initialized as soon as an object source is encountered.
v11.1.0Compare Source
Minor Changes
a4b7dceThanks @enisdenjo! - Deep merge and preserve non-enumerable
symbols
v11.0.1Compare Source
Patch Changes
ae36a0eThanks @mattkrick! - Handle enum values correctly if they are
arguments of directives defined in the extensions
v11.0.0Compare Source
Major Changes
#7685
6f3776cThanks @ardatan! - Support "federation/subgraph style" schemas in
astFromSchemaandprintSchemaWithDirectivesIf a
GraphQLSchemadoesn't have any defined operation types, we should print the schemadefinition as an extension rather than omitting it entirely. They are not a valid schema on their
own, but they are valid subgraph schemas in a federation setup, and it is possible to build such
schemas with
assumeValidoptions.POTENTIAL BREAKING CHANGE: This can be a breaking change because now the schema above will be
printed as the input, previously
extend schemawas converted toschema {}.v10.11.0Compare Source
Minor Changes
#7588
2118a80Thanks @EmrysMyrddin! - Add optional schema coordinate in error
extensions. This extension allows to precisely identify the source of the error by automated tools
like tracing or monitoring.
This new feature is opt-in, you have to enable it using
schemaCoordinateInErrorsexecutoroption.
Caution: This feature, when enabled, will expose information about your schema. If you need to
keep your schema private and secret, you should strip this attribute at serialization time before
sending errors to the client.
v10.10.3Compare Source
Patch Changes
2fe123aThanks @ardatan! - Revert
#7683 which can cause unexpected breaking changes so
as before the schema extension node will always be converted to a schema definition node
v10.10.2Compare Source
Patch Changes
#7679
dddc5f6Thanks @ardatan! - Support "federation/subgraph style" schemas in
astFromSchemaandprintSchemaWithDirectivesIf a
GraphQLSchemadoesn't have any defined operation types, we should print the schemadefinition as an extension rather than omitting it entirely. They are not a valid schema on their
own, but they are valid subgraph schemas in a federation setup, and it is possible to build such
schemas with
assumeValidoptions.v10.10.1Compare Source
Patch Changes
fbb58b5Thanks @ardatan! - Remove `dset` dependency
v10.10.0Compare Source
Minor Changes
#5269
fded91eThanks @uroslates! - Add default values to the arguments
When the schema is like following;
The generated operation will be like following;
Patch Changes
#7012
fd105f4Thanks @ardatan! - Fix the bug in
mergeDeep;The following inputs and outputs are corrected;
mergeDeep([{a:2}, undefined])- Any nullish values should be ignored so it should return{a:2}mergeDeep([])- no sources should returnundefinedmergeDeep([undefined])- no sources should returnundefined#5294
3b99a9bThanks @n1ru4l! - Do not map builtin scalars
v10.9.1Compare Source
Patch Changes
32d0457Thanks @ardatan! - Fix oneOf handling
v10.9.0Compare Source
Minor Changes
53db005Thanks @EmrysMyrddin! - Add optional
subgraphNamepreopertyto the
ExecutionRequestinterface for usage in Gateways like Hive Gateway.Patch Changes
22af985Thanks @renovate! - Support
@oneOfdirectivev10.8.6Compare Source
Patch Changes
d123e26Thanks @ardatan! - Fix incomplete string escaping/encoding
v10.8.5Compare Source
Patch Changes
#6977
90a717eThanks @ardatan! - In executor, do not use leaking
registerAbortSignalListener, and handle listeners inside the execution context#7025
26518deThanks @ardatan! - Better handling for field name handling in
buildOperationForFieldv10.8.4Compare Source
Patch Changes
155944bThanks @ardatan! - Fix breaking change by adding
PromiseWithResolversbackv10.8.3Compare Source
Patch Changes
4a2eb14Thanks @ardatan! - dependencies updates:
@whatwg-node/promise-helpers@^1.0.0↗︎(to
dependencies)v10.8.2Compare Source
Patch Changes
3547bbaThanks @ardatan! - Relax
extensionstypev10.8.1Compare Source
Patch Changes
651a5dcThanks @ardatan! - Fix the regression on var counting
v10.8.0Compare Source
Minor Changes
357b2eeThanks @renovate! - New
isUrlhelper, and it usesURL.canParseif availablePatch Changes
0a3e193Thanks @ardatan! - Do not add
_vprefix if there is only oneargument/variable
v10.7.2Compare Source
Patch Changes
#6822
53bb601Thanks @enisdenjo! - dependencies updates:
dset@^3.1.4↗︎ (from^3.1.2,in
dependencies)#6822
53bb601Thanks @enisdenjo! - Bump dset dependency handling the
CVE-2024-21529
https://security.snyk.io/vuln/SNYK-JS-DSET-7116691
v10.7.1Compare Source
Patch Changes
4912f19Thanks @AaronMoat! - Remove use of
VoidFunctiontype, whichrequires DOM types
v10.7.0Compare Source
Minor Changes
#6789
2c70d27Thanks @n1ru4l! - - New helper function
getAbortPromiseto get apromise rejected when
AbortSignalis abortedregisterAbortSignalListenerto register a listener to abort a promise whenAbortSignalis abortedInstead of using
.addEventListener('abort', () => {/* ... */}), we register a single listener toavoid warnings on Node.js like
MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 abort listeners added. Use emitter.setMaxListeners() to increase limit.v10.6.4Compare Source
Patch Changes
6a8123bThanks @ardatan! - Improvements for
fakePromiseso it can be usedwithout params to create a
voidPromisev10.6.3Compare Source
Patch Changes
020b9e4Thanks @ardatan! - `AbortSignal` in `GraphQLResolveInfo`, and
`AbortSignal` in `ExecutionRequest`
v10.6.2Compare Source
Patch Changes
#6737
1b24656Thanks @ardatan! - Handle array of primitives correctly
The bug was following;
v10.6.1Compare Source
Patch Changes
1e02935Thanks @ardatan! - Handle parse errors correctly when loader gets a
string directly
v10.6.0Compare Source
Minor Changes
414e404Thanks @ardatan! - new
fakePromise,mapMaybePromiseandfakeRejectPromisehelper functionsv10.5.6Compare Source
Patch Changes
dc5043bThanks @enisdenjo! -
onErrorandonEndcallbacks frommapAsyncIteratorare invoked only once regardless of how many timesthrow/returnwas calledon the iterator
v10.5.5Compare Source
Patch Changes
cf2ce5eThanks @kachkaev! - Make two types compatible with strict tsc
config
v10.5.4Compare Source
Patch Changes
0286437Thanks @ardatan! - Improve directive extraction
v10.5.3Compare Source
Patch Changes
2124d7dThanks @ardatan! - Allow invalid path in `getDirectiveExtensions`
v10.5.2Compare Source
Patch Changes
07b87edThanks @ardatan! - Respect
extensionASTNodesin directableGraphQLSchema object
v10.5.1Compare Source
Patch Changes
6291e14Thanks @ardatan! - Add all args from extensions to the AST even if
they don't exist in the directive def
v10.5.0Compare Source
Minor Changes
8fd7703Thanks @ardatan! - Export
getDirectiveExtensionsv10.4.0Compare Source
Minor Changes
b8bf584Thanks @ardatan! - Introduce `getDirectiveExtensions` and refactor
directive handling in the extensions
v10.3.4Compare Source
Patch Changes
a867bbcThanks @ardatan! -
mapAsyncIteratornow acceptsAsyncIterablev10.3.3Compare Source
Patch Changes
#6385
d0f7d75Thanks @tobiasdiez! - remove generic package export
Updated dependencies
[
d0f7d75]:v10.3.2Compare Source
Patch Changes
a276ba8Thanks @ardatan! - Respect directive extensions on `pruneSchema`
v10.3.1Compare Source
Patch Changes
9792e80Thanks @ardatan! - Make the executor disposable optional
v10.3.0Compare Source
Minor Changes
cacf20fThanks @ardatan! - Implement Symbol.dispose or Symbol.asyncDispose
to make `Executor`s `Disposable`
v10.2.3Compare Source
Patch Changes
66c99d9Thanks @ardatan! - Handle
@deferv10.2.2Compare Source
Patch Changes
#6238
0f7059bThanks @ardatan! - If the given objects are arrays with the same
length, merge the elements.
v10.2.1Compare Source
Patch Changes
#6194
7368829Thanks @ardatan! - Handle interface objects in a different way
#6188
e10c13aThanks @ardatan! - Add
respectArrayLengthflag tomergeDeepsoinstead of concatenating the arrays, elements of them will be merged if they have the same length
v10.2.0Compare Source
Minor Changes
5567347Thanks @ardatan! - Add
enumValueFilteranddirectiveFiltertofilterSchemaPatch Changes
5567347Thanks @ardatan! - Handle fields in unmerged types as both isolated
and non-isolated fields
v10.1.3Compare Source
Patch Changes
#6055
4093f70Thanks @enisdenjo! - Disallow new lines in paths when checking
with
isValidPathA string may sometimes look like a path but is not (like an SDL of a simple GraphQL schema). To
make sure we don't yield false-positives in such cases, we disallow new lines in paths (even
though most Unix systems support new lines in file names).
v10.1.2Compare Source
Patch Changes
fff2399Thanks @ardatan! - Respect
toJSONinastFromValueUntypedv10.1.1Compare Source
Patch Changes
baf3c28Thanks @henryqdineen! - fix filterSchema argument filter for
schema with non-default root types
v10.1.0Compare Source
Minor Changes
f3ea7a5Thanks @EmrysMyrddin! - Add
onEndonmapAsyncIterator.v10.0.13Compare Source
Patch Changes
f85c093Thanks @shYkiSto! - prevent race conditions when validating
documents
v10.0.12Compare Source
Patch Changes
5ae0394Thanks @ardatan! - Print comments as blocks
v10.0.11Compare Source
Patch Changes
d3fe8d8cThanks @ldiqual! - Print debug timer logs by respecting the filters
in DEBUG env var
v10.0.10Compare Source
Patch Changes
a570a601Thanks @ardatan! - Add respectArrays flag to extensions merging
v10.0.9Compare Source
Patch Changes
e1fb8bb8Thanks @ardatan! - Merge directives in the extensions
v10.0.8Compare Source
Patch Changes
accd58fdThanks @ardatan! - Extract
inspectinto the newcross-inspectpackage
Updated dependencies
[
accd58fd]:v10.0.7Compare Source
Patch Changes
b4c17591Thanks @ardatan! - Convert GraphQLError like originalError property
to a GraphQLError
v10.0.6Compare Source
Patch Changes
c52de863Thanks @ardatan! - fix isValid path regex for paths including =
#5551
v10.0.5Compare Source
Patch Changes
a59fb765Thanks @ardatan! - Optimizations to get better performance in query
planning
v10.0.4Compare Source
Patch Changes
c1afb545Thanks @kennyjwilli! - Exports the
DirectableGraphQLObjecttype.
v10.0.3Compare Source
Patch Changes
be3411c7Thanks @EmrysMyrddin! - incremental merge also merges
extensions
v10.0.2Compare Source
Patch Changes
#5396
bb8f169eThanks @ardatan! - dependencies updates:
dset@^3.1.2↗︎ (todependencies)#5396
bb8f169eThanks @ardatan! - Move the merging logic of incremental results to
the utils package
v10.0.1Compare Source
Patch Changes
f85c093Thanks @shYkiSto! - prevent race conditions when validating
documents
v10.0.0Compare Source
Major Changes
#5274
944a68e8Thanks @ardatan! - Drop Node 14 support. Require Node.js
>= 16#5274
944a68e8Thanks @ardatan! -
AggregateErroris no longer exported from@graphql-tools/utils. You can use the nativeAggregateErrorinstead.v9.2.1Compare Source
Patch Changes
b5c8f640Thanks @ardatan! - Do not use a global
WeakMapformemoize2of4,and introduce
memoize2of5v9.2.0Compare Source
Minor Changes
a94217e9Thanks @ardatan! - Support TypedDocumentNode in ExecutionRequest
Patch Changes
62d074beThanks @mayrn-techdivision! - Fixes introspection query
issues when visiting field '__type'
v9.1.4Compare Source
Patch Changes
e3ec35edThanks @gilgardosh! - Bug fix: better handle array field types
used for alias field names
v9.1.3Compare Source
Patch Changes
904fe770Thanks @ardatan! - Fix leak on Node 14 and add cancellation to async
iterables correctly
v9.1.2Compare Source
Patch Changes
13c24883Thanks @ardatan! - Fix handling argument values in gateway request
v9.1.1Compare Source
Patch Changes
[
7411a5e7](Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.