github ardatan/graphql-tools release-1788796992000
September 07, 2026

@graphql-tools/import@7.2.0

Minor Changes

  • #8383 04e8159 Thanks @ardatan! - # import paths may use a require: prefix, resolved with Node's require.resolve from the importing file. Example: # import Post from "require:blog-graphql-types/schema.graphql" or # import A from "require:./a.graphql".

Patch Changes

  • #8383 04e8159 Thanks @ardatan! - # import "./file.graphql" (space after #) is a valid default import, and #import is processed even when it is not the first non-blank line of the file.

  • #8383 04e8159 Thanks @ardatan! - Keep leading GraphQL comments (for example # eslint-disable-next-line above a query) when #import merges documents. Previously processImport reprinted definitions and dropped those comments from the merged source.

  • #8383 04e8159 Thanks @ardatan! - # import * keeps unreferenced types that carry a federation @key (subgraph entities). Other unused types are still tree-shaken, matching existing import * tests.

  • #8383 04e8159 Thanks @ardatan! - Named # import of a type no longer drops interfaces implemented by union members.

    Before this, a file like:

    # import Foo from "./types.graphql"
    
    type Query {
      foo: Foo
    }

    with types.graphql containing type Foo { pet: Pet }, union Pet = Cat | Dog, and type Cat implements Animal built an invalid schema (Unknown type "Animal"). Cat and Dog were pulled in through the union, but Animal was not.

    Forward dependencies (fields, implements, union members) are now closed transitively. Reverse implementers are still attached only when the interface itself is the import, so # import Query.posts does not pull every other Query field.

  • Updated dependencies [60db079, 57e316d, 1c1c5a0, 1c1c5a0, 0b9529f]:

    • @graphql-tools/utils@12.0.1

@graphql-tools/documents@1.0.2

Patch Changes

  • #8364 7315425 Thanks @copilot-swe-agent! - Drop lodash.sortby from @graphql-tools/documents by replacing internal sorting usage with native Array.prototype.sort.

@graphql-tools/executor@2.0.1

Patch Changes

@graphql-tools/executor-apollo-link@2.0.14

Patch Changes

@graphql-tools/executor-envelop@4.0.14

Patch Changes

@graphql-tools/executor-legacy-ws@1.1.34

Patch Changes

@graphql-tools/executor-urql-exchange@1.0.36

Patch Changes

@graphql-tools/executor-yoga@3.0.44

Patch Changes

@graphql-tools/graphql-tag-pluck@8.3.37

Patch Changes

graphql-tools@9.0.35

Patch Changes

  • Updated dependencies []:
    • @graphql-tools/schema@10.1.1

@graphql-tools/jest-transform@2.0.2

Patch Changes

  • Updated dependencies [04e8159]:
    • @graphql-tools/webpack-loader@7.0.1

@graphql-tools/links@10.0.14

Patch Changes

@graphql-tools/load@8.1.17

Patch Changes

  • #6660 12df2f5 Thanks @eirikur-nc! - Load custom schema/document loaders with import() after createRequire, so ESM loader files and packages work with async load (including graphql-codegen). Closes #6656.

  • #8370 1c1c5a0 Thanks @ardatan! - Always include "Failed to find any GraphQL type definitions" context when loaders error, even if there is only one error. Fixes #7406.

  • Updated dependencies [60db079, 57e316d, 1c1c5a0, 1c1c5a0, 0b9529f]:

    • @graphql-tools/utils@12.0.1
    • @graphql-tools/schema@10.1.1

@graphql-tools/apollo-engine-loader@8.0.36

Patch Changes

@graphql-tools/code-file-loader@8.1.38

Patch Changes

@graphql-tools/git-loader@8.0.42

Patch Changes

@graphql-tools/github-loader@9.1.8

Patch Changes

@graphql-tools/graphql-file-loader@8.1.20

Patch Changes

@graphql-tools/json-file-loader@8.0.34

Patch Changes

@graphql-tools/module-loader@8.0.34

Patch Changes

@graphql-tools/url-loader@9.1.8

Patch Changes

@graphql-tools/merge@9.2.4

Patch Changes

  • #8367 2262087 Thanks @ardatan! - Preserve multiple applications of the same directive when extending a type even if the repeatable directive definition is not present in the merge inputs.

  • #8394 5523c4b Thanks @bengry! - Write the synthesized default operation types back onto the schema definition node, so merging a schema extension that has no operation block (federation SDL, for example) still produces a query root on graphql@17.

  • Updated dependencies [60db079, 57e316d, 1c1c5a0, 1c1c5a0, 0b9529f]:

    • @graphql-tools/utils@12.0.1

@graphql-tools/mock@9.1.14

Patch Changes

@graphql-tools/node-require@7.0.46

Patch Changes

@graphql-tools/optimize@2.0.1

Patch Changes

  • #8366 57e316d Thanks @ardatan! - Remove descriptions from operation, variable, fragment, schema definition, and schema extension nodes in removeDescriptions.

@graphql-tools/relay-operation-optimizer@7.1.10

Patch Changes

@graphql-tools/resolvers-composition@7.0.37

Patch Changes

@graphql-tools/schema@10.1.1

Patch Changes

@graphql-tools/utils@12.0.1

Patch Changes

  • #8368 60db079 Thanks @ardatan! - Omit mutation/subscription from printSchemaWithDirectives when those root types are no longer present on the schema (e.g. after pruneSchema).

  • #8366 57e316d Thanks @ardatan! - Allow % in paths checked by isValidPath (e.g. directories from URL-encoded repo names).

  • #8370 1c1c5a0 Thanks @ardatan! - Clean up observableToAsyncIterable queues and unsubscribe when the observable completes, so iterators do not retain references after done. Fixes leak detection flakes related to #8057.

  • #8370 1c1c5a0 Thanks @ardatan! - Prefer runtime description values over stale astNode descriptions in printSchemaWithDirectives / getDescriptionNode. Fixes #5508.

  • #8423 0b9529f Thanks @enisdenjo! - Fix prototype pollution in mergeDeep

    Source keys named __proto__, constructor or prototype are now skipped at every recursion level, and the check for an existing key uses hasOwnProperty instead of in, 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 on Object.prototype or Function.prototype.

@graphql-tools/webpack-loader@7.0.1

Patch Changes

  • #8383 04e8159 Thanks @ardatan! - With esModule: true, #import of another .graphql file now uses require(...).default, matching the loader's export default. unique() also treats a missing definitions array as empty so unused imports do not throw.
  • Updated dependencies [57e316d, 04e8159]:
    • @graphql-tools/optimize@2.0.1
    • @graphql-tools/webpack-loader-runtime@7.0.1

@graphql-tools/webpack-loader-runtime@7.0.1

Patch Changes

  • #8383 04e8159 Thanks @ardatan! - With esModule: true, #import of another .graphql file now uses require(...).default, matching the loader's export default. unique() also treats a missing definitions array as empty so unused imports do not throw.

Don't miss a new graphql-tools release

NewReleases is sending notifications on new releases.