graphql 17.0.0-beta.1 → 17.0.0-beta.2
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.
- package/__dev__/devMode.d.ts +1 -1
- package/__dev__/error/GraphQLError.d.ts +1 -1
- package/__dev__/error/ensureGraphQLError.d.ts +1 -1
- package/__dev__/error/index.d.ts +1 -1
- package/__dev__/error/locatedError.d.ts +1 -1
- package/__dev__/error/syntaxError.d.ts +1 -1
- package/__dev__/execution/AbortedGraphQLExecutionError.d.ts +1 -1
- package/__dev__/execution/AsyncWorkTracker.d.ts +1 -1
- package/__dev__/execution/ExecutionArgs.d.mts +1 -0
- package/__dev__/execution/ExecutionArgs.d.ts +1 -0
- package/__dev__/execution/ExecutionArgs.js +3 -0
- package/__dev__/execution/ExecutionArgs.mjs +3 -0
- package/__dev__/execution/Executor.d.ts +1 -1
- package/__dev__/execution/ExecutorThrowingOnIncremental.d.ts +1 -1
- package/__dev__/execution/buildResolveInfo.d.ts +1 -1
- package/__dev__/execution/cancellablePromise.d.ts +1 -1
- package/__dev__/execution/collectFields.d.ts +1 -1
- package/__dev__/execution/collectIteratorPromises.d.ts +1 -1
- package/__dev__/execution/createSharedExecutionContext.d.ts +1 -1
- package/__dev__/execution/execute.d.ts +1 -1
- package/__dev__/execution/getStreamUsage.d.ts +1 -1
- package/__dev__/execution/getVariableSignature.d.ts +1 -1
- package/__dev__/execution/hooks.d.ts +1 -1
- package/__dev__/execution/incremental/Computation.d.ts +1 -1
- package/__dev__/execution/incremental/IncrementalExecutor.d.ts +1 -1
- package/__dev__/execution/incremental/IncrementalPublisher.d.ts +1 -1
- package/__dev__/execution/incremental/Queue.d.ts +1 -1
- package/__dev__/execution/incremental/WorkQueue.d.ts +1 -1
- package/__dev__/execution/incremental/buildExecutionPlan.d.ts +1 -1
- package/__dev__/execution/index.d.ts +1 -1
- package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.d.mts +1 -0
- package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.d.ts +1 -0
- package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.js +3 -0
- package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.mjs +3 -0
- package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.d.mts +1 -0
- package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.d.ts +1 -0
- package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.js +3 -0
- package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.mjs +3 -0
- package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.d.mts +1 -0
- package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.d.ts +1 -0
- package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.js +3 -0
- package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.mjs +3 -0
- package/__dev__/execution/mapAsyncIterable.d.ts +1 -1
- package/__dev__/execution/returnIteratorCatchingErrors.d.ts +1 -1
- package/__dev__/execution/values.d.ts +1 -1
- package/__dev__/execution/withConcurrentAbruptClose.d.ts +1 -1
- package/__dev__/graphql.d.ts +1 -1
- package/__dev__/harness.d.ts +1 -1
- package/__dev__/index.d.ts +1 -1
- package/__dev__/jsutils/AccumulatorMap.d.ts +1 -1
- package/__dev__/jsutils/Maybe.d.ts +1 -1
- package/__dev__/jsutils/ObjMap.d.ts +1 -1
- package/__dev__/jsutils/Path.d.ts +1 -1
- package/__dev__/jsutils/PromiseOrValue.d.ts +1 -1
- package/__dev__/jsutils/capitalize.d.ts +1 -1
- package/__dev__/jsutils/devAssert.d.ts +1 -1
- package/__dev__/jsutils/didYouMean.d.ts +1 -1
- package/__dev__/jsutils/formatList.d.ts +1 -1
- package/__dev__/jsutils/getBySet.d.ts +1 -1
- package/__dev__/jsutils/groupBy.d.ts +1 -1
- package/__dev__/jsutils/identityFunc.d.ts +1 -1
- package/__dev__/jsutils/inspect.d.ts +1 -1
- package/__dev__/jsutils/instanceOf.d.ts +1 -1
- package/__dev__/jsutils/invariant.d.ts +1 -1
- package/__dev__/jsutils/isAsyncIterable.d.ts +1 -1
- package/__dev__/jsutils/isIterableObject.d.ts +1 -1
- package/__dev__/jsutils/isObjectLike.d.ts +1 -1
- package/__dev__/jsutils/isPromise.d.ts +1 -1
- package/__dev__/jsutils/isSameSet.d.ts +1 -1
- package/__dev__/jsutils/keyMap.d.ts +1 -1
- package/__dev__/jsutils/keyValMap.d.ts +1 -1
- package/__dev__/jsutils/mapValue.d.ts +1 -1
- package/__dev__/jsutils/memoize1.d.ts +1 -1
- package/__dev__/jsutils/memoize2.d.ts +1 -1
- package/__dev__/jsutils/memoize3.d.ts +1 -1
- package/__dev__/jsutils/naturalCompare.d.ts +1 -1
- package/__dev__/jsutils/printPathArray.d.ts +1 -1
- package/__dev__/jsutils/promiseForObject.d.ts +1 -1
- package/__dev__/jsutils/promiseReduce.d.ts +1 -1
- package/__dev__/jsutils/promiseWithResolvers.d.ts +1 -1
- package/__dev__/jsutils/suggestionList.d.ts +1 -1
- package/__dev__/jsutils/toError.d.ts +1 -1
- package/__dev__/jsutils/toObjMap.d.ts +1 -1
- package/__dev__/language/KindTypeMap.d.ts +1 -1
- package/__dev__/language/ast.d.ts +1 -1
- package/__dev__/language/blockString.d.ts +1 -1
- package/__dev__/language/characterClasses.d.ts +1 -1
- package/__dev__/language/directiveLocation.d.ts +1 -1
- package/__dev__/language/index.d.ts +1 -1
- package/__dev__/language/kinds.d.ts +1 -1
- package/__dev__/language/kinds_.d.ts +1 -1
- package/__dev__/language/lexer.d.ts +1 -1
- package/__dev__/language/location.d.ts +1 -1
- package/__dev__/language/parser.d.ts +1 -1
- package/__dev__/language/predicates.d.ts +1 -1
- package/__dev__/language/printLocation.d.ts +1 -1
- package/__dev__/language/printString.d.ts +1 -1
- package/__dev__/language/printer.d.ts +1 -1
- package/__dev__/language/schemaCoordinateLexer.d.ts +1 -1
- package/__dev__/language/source.d.ts +1 -1
- package/__dev__/language/tokenKind.d.ts +1 -1
- package/__dev__/language/visitor.d.ts +1 -1
- package/__dev__/type/assertName.d.ts +1 -1
- package/__dev__/type/definition.d.ts +1 -1
- package/__dev__/type/directives.d.ts +1 -1
- package/__dev__/type/index.d.ts +1 -1
- package/__dev__/type/introspection.d.ts +1 -1
- package/__dev__/type/scalars.d.ts +1 -1
- package/__dev__/type/schema.d.ts +1 -1
- package/__dev__/type/validate.d.ts +1 -1
- package/__dev__/utilities/TypeInfo.d.ts +1 -1
- package/__dev__/utilities/astFromValue.d.ts +1 -1
- package/__dev__/utilities/buildASTSchema.d.ts +1 -1
- package/__dev__/utilities/buildClientSchema.d.ts +1 -1
- package/__dev__/utilities/coerceInputValue.d.ts +1 -1
- package/__dev__/utilities/concatAST.d.ts +1 -1
- package/__dev__/utilities/extendSchema.d.ts +1 -1
- package/__dev__/utilities/findSchemaChanges.d.ts +1 -1
- package/__dev__/utilities/getDefaultValueAST.d.ts +1 -1
- package/__dev__/utilities/getIntrospectionQuery.d.ts +1 -1
- package/__dev__/utilities/getOperationAST.d.ts +1 -1
- package/__dev__/utilities/index.d.ts +1 -1
- package/__dev__/utilities/introspectionFromSchema.d.ts +1 -1
- package/__dev__/utilities/lexicographicSortSchema.d.ts +1 -1
- package/__dev__/utilities/mapSchemaConfig.d.ts +1 -1
- package/__dev__/utilities/printSchema.d.ts +1 -1
- package/__dev__/utilities/replaceVariables.d.ts +1 -1
- package/__dev__/utilities/resolveSchemaCoordinate.d.ts +1 -1
- package/__dev__/utilities/separateOperations.d.ts +1 -1
- package/__dev__/utilities/sortValueNode.d.ts +1 -1
- package/__dev__/utilities/stripIgnoredCharacters.d.ts +1 -1
- package/__dev__/utilities/typeComparators.d.ts +1 -1
- package/__dev__/utilities/typeFromAST.d.ts +1 -1
- package/__dev__/utilities/typedQueryDocumentNode.d.ts +1 -1
- package/__dev__/utilities/validateInputValue.d.ts +1 -1
- package/__dev__/utilities/valueFromAST.d.ts +1 -1
- package/__dev__/utilities/valueFromASTUntyped.d.ts +1 -1
- package/__dev__/utilities/valueToLiteral.d.ts +1 -1
- package/__dev__/validation/ValidationContext.d.ts +1 -1
- package/__dev__/validation/index.d.ts +1 -1
- package/__dev__/validation/rules/DeferStreamDirectiveLabelRule.d.ts +1 -1
- package/__dev__/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +1 -1
- package/__dev__/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +1 -1
- package/__dev__/validation/rules/ExecutableDefinitionsRule.d.ts +1 -1
- package/__dev__/validation/rules/FieldsOnCorrectTypeRule.d.ts +1 -1
- package/__dev__/validation/rules/FragmentsOnCompositeTypesRule.d.ts +1 -1
- package/__dev__/validation/rules/KnownArgumentNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/KnownDirectivesRule.d.ts +1 -1
- package/__dev__/validation/rules/KnownFragmentNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/KnownOperationTypesRule.d.ts +1 -1
- package/__dev__/validation/rules/KnownTypeNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/LoneAnonymousOperationRule.d.ts +1 -1
- package/__dev__/validation/rules/LoneSchemaDefinitionRule.d.ts +1 -1
- package/__dev__/validation/rules/MaxIntrospectionDepthRule.d.ts +1 -1
- package/__dev__/validation/rules/NoFragmentCyclesRule.d.ts +1 -1
- package/__dev__/validation/rules/NoUndefinedVariablesRule.d.ts +1 -1
- package/__dev__/validation/rules/NoUnusedFragmentsRule.d.ts +1 -1
- package/__dev__/validation/rules/NoUnusedVariablesRule.d.ts +1 -1
- package/__dev__/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +1 -1
- package/__dev__/validation/rules/PossibleFragmentSpreadsRule.d.ts +1 -1
- package/__dev__/validation/rules/PossibleTypeExtensionsRule.d.ts +1 -1
- package/__dev__/validation/rules/ProvidedRequiredArgumentsRule.d.ts +1 -1
- package/__dev__/validation/rules/ScalarLeafsRule.d.ts +1 -1
- package/__dev__/validation/rules/SingleFieldSubscriptionsRule.d.ts +1 -1
- package/__dev__/validation/rules/StreamDirectiveOnListFieldRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueArgumentNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueDirectiveNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueDirectivesPerLocationRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueEnumValueNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueFragmentNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueInputFieldNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueOperationNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueOperationTypesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueTypeNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueVariableNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/ValuesOfCorrectTypeRule.d.ts +1 -1
- package/__dev__/validation/rules/VariablesAreInputTypesRule.d.ts +1 -1
- package/__dev__/validation/rules/VariablesInAllowedPositionRule.d.ts +1 -1
- package/__dev__/validation/rules/custom/NoDeprecatedCustomRule.d.ts +1 -1
- package/__dev__/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +1 -1
- package/__dev__/validation/specifiedRules.d.ts +1 -1
- package/__dev__/validation/validate.d.ts +1 -1
- package/__dev__/version.d.ts +1 -1
- package/devMode.d.mts +29 -0
- package/devMode.d.ts +29 -0
- package/devMode.js.map +1 -1
- package/devMode.mjs.map +1 -1
- package/error/GraphQLError.d.mts +94 -10
- package/error/GraphQLError.d.ts +94 -10
- package/error/GraphQLError.js +11 -20
- package/error/GraphQLError.js.map +1 -1
- package/error/GraphQLError.mjs +11 -20
- package/error/GraphQLError.mjs.map +1 -1
- package/error/ensureGraphQLError.d.mts +2 -0
- package/error/ensureGraphQLError.d.ts +2 -0
- package/error/ensureGraphQLError.js +0 -3
- package/error/ensureGraphQLError.js.map +1 -1
- package/error/ensureGraphQLError.mjs +0 -3
- package/error/ensureGraphQLError.mjs.map +1 -1
- package/error/index.d.mts +6 -0
- package/error/index.d.ts +6 -0
- package/error/index.js.map +1 -1
- package/error/index.mjs.map +1 -1
- package/error/locatedError.d.mts +20 -0
- package/error/locatedError.d.ts +20 -0
- package/error/locatedError.js +0 -6
- package/error/locatedError.js.map +1 -1
- package/error/locatedError.mjs +0 -6
- package/error/locatedError.mjs.map +1 -1
- package/error/syntaxError.d.mts +15 -0
- package/error/syntaxError.d.ts +15 -0
- package/error/syntaxError.js +0 -4
- package/error/syntaxError.js.map +1 -1
- package/error/syntaxError.mjs +0 -4
- package/error/syntaxError.mjs.map +1 -1
- package/execution/AbortedGraphQLExecutionError.d.mts +27 -0
- package/execution/AbortedGraphQLExecutionError.d.ts +27 -0
- package/execution/AbortedGraphQLExecutionError.js.map +1 -1
- package/execution/AbortedGraphQLExecutionError.mjs.map +1 -1
- package/execution/AsyncWorkTracker.d.mts +1 -1
- package/execution/AsyncWorkTracker.d.ts +1 -1
- package/execution/AsyncWorkTracker.js +1 -5
- package/execution/AsyncWorkTracker.js.map +1 -1
- package/execution/AsyncWorkTracker.mjs +1 -5
- package/execution/AsyncWorkTracker.mjs.map +1 -1
- package/execution/ExecutionArgs.d.mts +101 -0
- package/execution/ExecutionArgs.d.ts +101 -0
- package/execution/ExecutionArgs.js +3 -0
- package/execution/ExecutionArgs.js.map +1 -0
- package/execution/ExecutionArgs.mjs +2 -0
- package/execution/ExecutionArgs.mjs.map +1 -0
- package/execution/Executor.d.mts +44 -40
- package/execution/Executor.d.ts +44 -40
- package/execution/Executor.js +2 -122
- package/execution/Executor.js.map +1 -1
- package/execution/Executor.mjs +2 -122
- package/execution/Executor.mjs.map +1 -1
- package/execution/ExecutorThrowingOnIncremental.js +0 -2
- package/execution/ExecutorThrowingOnIncremental.js.map +1 -1
- package/execution/ExecutorThrowingOnIncremental.mjs +0 -2
- package/execution/ExecutorThrowingOnIncremental.mjs.map +1 -1
- package/execution/buildResolveInfo.d.mts +2 -0
- package/execution/buildResolveInfo.d.ts +2 -0
- package/execution/buildResolveInfo.js +0 -3
- package/execution/buildResolveInfo.js.map +1 -1
- package/execution/buildResolveInfo.mjs +0 -3
- package/execution/buildResolveInfo.mjs.map +1 -1
- package/execution/cancellablePromise.d.mts +3 -0
- package/execution/cancellablePromise.d.ts +3 -0
- package/execution/cancellablePromise.js.map +1 -1
- package/execution/cancellablePromise.mjs.map +1 -1
- package/execution/collectFields.d.mts +10 -4
- package/execution/collectFields.d.ts +10 -4
- package/execution/collectFields.js +0 -41
- package/execution/collectFields.js.map +1 -1
- package/execution/collectFields.mjs +0 -41
- package/execution/collectFields.mjs.map +1 -1
- package/execution/collectIteratorPromises.d.mts +2 -0
- package/execution/collectIteratorPromises.d.ts +2 -0
- package/execution/collectIteratorPromises.js +0 -5
- package/execution/collectIteratorPromises.js.map +1 -1
- package/execution/collectIteratorPromises.mjs +0 -5
- package/execution/collectIteratorPromises.mjs.map +1 -1
- package/execution/createSharedExecutionContext.d.mts +1 -0
- package/execution/createSharedExecutionContext.d.ts +1 -0
- package/execution/createSharedExecutionContext.js.map +1 -1
- package/execution/createSharedExecutionContext.mjs.map +1 -1
- package/execution/execute.d.mts +403 -38
- package/execution/execute.d.ts +403 -38
- package/execution/execute.js +0 -161
- package/execution/execute.js.map +1 -1
- package/execution/execute.mjs +0 -161
- package/execution/execute.mjs.map +1 -1
- package/execution/getStreamUsage.d.mts +4 -1
- package/execution/getStreamUsage.d.ts +4 -1
- package/execution/getStreamUsage.js +0 -7
- package/execution/getStreamUsage.js.map +1 -1
- package/execution/getStreamUsage.mjs +0 -7
- package/execution/getStreamUsage.mjs.map +1 -1
- package/execution/getVariableSignature.d.mts +4 -1
- package/execution/getVariableSignature.d.ts +4 -1
- package/execution/getVariableSignature.js +0 -2
- package/execution/getVariableSignature.js.map +1 -1
- package/execution/getVariableSignature.mjs +0 -2
- package/execution/getVariableSignature.mjs.map +1 -1
- package/execution/hooks.d.mts +3 -7
- package/execution/hooks.d.ts +3 -7
- package/execution/hooks.js +0 -1
- package/execution/hooks.js.map +1 -1
- package/execution/hooks.mjs +0 -1
- package/execution/hooks.mjs.map +1 -1
- package/execution/incremental/Computation.d.mts +1 -1
- package/execution/incremental/Computation.d.ts +1 -1
- package/execution/incremental/Computation.js +0 -1
- package/execution/incremental/Computation.js.map +1 -1
- package/execution/incremental/Computation.mjs +0 -1
- package/execution/incremental/Computation.mjs.map +1 -1
- package/execution/incremental/IncrementalExecutor.d.mts +124 -9
- package/execution/incremental/IncrementalExecutor.d.ts +124 -9
- package/execution/incremental/IncrementalExecutor.js +1 -31
- package/execution/incremental/IncrementalExecutor.js.map +1 -1
- package/execution/incremental/IncrementalExecutor.mjs +1 -31
- package/execution/incremental/IncrementalExecutor.mjs.map +1 -1
- package/execution/incremental/IncrementalPublisher.d.mts +1 -3
- package/execution/incremental/IncrementalPublisher.d.ts +1 -3
- package/execution/incremental/IncrementalPublisher.js +0 -5
- package/execution/incremental/IncrementalPublisher.js.map +1 -1
- package/execution/incremental/IncrementalPublisher.mjs +0 -5
- package/execution/incremental/IncrementalPublisher.mjs.map +1 -1
- package/execution/incremental/Queue.js +3 -64
- package/execution/incremental/Queue.js.map +1 -1
- package/execution/incremental/Queue.mjs +2 -62
- package/execution/incremental/Queue.mjs.map +1 -1
- package/execution/incremental/WorkQueue.d.mts +8 -0
- package/execution/incremental/WorkQueue.d.ts +8 -0
- package/execution/incremental/WorkQueue.js +0 -15
- package/execution/incremental/WorkQueue.js.map +1 -1
- package/execution/incremental/WorkQueue.mjs +0 -15
- package/execution/incremental/WorkQueue.mjs.map +1 -1
- package/execution/incremental/buildExecutionPlan.d.mts +3 -0
- package/execution/incremental/buildExecutionPlan.d.ts +3 -0
- package/execution/incremental/buildExecutionPlan.js.map +1 -1
- package/execution/incremental/buildExecutionPlan.mjs.map +1 -1
- package/execution/index.d.mts +12 -3
- package/execution/index.d.ts +12 -3
- package/execution/index.js +4 -1
- package/execution/index.js.map +1 -1
- package/execution/index.mjs +1 -0
- package/execution/index.mjs.map +1 -1
- package/execution/legacyIncremental/BranchingIncrementalExecutor.d.mts +175 -0
- package/execution/legacyIncremental/BranchingIncrementalExecutor.d.ts +175 -0
- package/execution/legacyIncremental/BranchingIncrementalExecutor.js +69 -0
- package/execution/legacyIncremental/BranchingIncrementalExecutor.js.map +1 -0
- package/execution/legacyIncremental/BranchingIncrementalExecutor.mjs +65 -0
- package/execution/legacyIncremental/BranchingIncrementalExecutor.mjs.map +1 -0
- package/execution/legacyIncremental/BranchingIncrementalPublisher.d.mts +12 -0
- package/execution/legacyIncremental/BranchingIncrementalPublisher.d.ts +12 -0
- package/execution/legacyIncremental/BranchingIncrementalPublisher.js +131 -0
- package/execution/legacyIncremental/BranchingIncrementalPublisher.js.map +1 -0
- package/execution/legacyIncremental/BranchingIncrementalPublisher.mjs +127 -0
- package/execution/legacyIncremental/BranchingIncrementalPublisher.mjs.map +1 -0
- package/execution/legacyIncremental/legacyExecuteIncrementally.d.mts +165 -0
- package/execution/legacyIncremental/legacyExecuteIncrementally.d.ts +165 -0
- package/execution/legacyIncremental/legacyExecuteIncrementally.js +17 -0
- package/execution/legacyIncremental/legacyExecuteIncrementally.js.map +1 -0
- package/execution/legacyIncremental/legacyExecuteIncrementally.mjs +13 -0
- package/execution/legacyIncremental/legacyExecuteIncrementally.mjs.map +1 -0
- package/execution/mapAsyncIterable.d.mts +2 -0
- package/execution/mapAsyncIterable.d.ts +2 -0
- package/execution/mapAsyncIterable.js +0 -5
- package/execution/mapAsyncIterable.js.map +1 -1
- package/execution/mapAsyncIterable.mjs +0 -5
- package/execution/mapAsyncIterable.mjs.map +1 -1
- package/execution/returnIteratorCatchingErrors.d.mts +1 -0
- package/execution/returnIteratorCatchingErrors.d.ts +1 -0
- package/execution/returnIteratorCatchingErrors.js +0 -1
- package/execution/returnIteratorCatchingErrors.js.map +1 -1
- package/execution/returnIteratorCatchingErrors.mjs +0 -1
- package/execution/returnIteratorCatchingErrors.mjs.map +1 -1
- package/execution/values.d.mts +187 -5
- package/execution/values.d.ts +187 -5
- package/execution/values.js +14 -55
- package/execution/values.js.map +1 -1
- package/execution/values.mjs +14 -55
- package/execution/values.mjs.map +1 -1
- package/execution/withConcurrentAbruptClose.d.mts +2 -0
- package/execution/withConcurrentAbruptClose.d.ts +2 -0
- package/execution/withConcurrentAbruptClose.js +0 -14
- package/execution/withConcurrentAbruptClose.js.map +1 -1
- package/execution/withConcurrentAbruptClose.mjs +0 -14
- package/execution/withConcurrentAbruptClose.mjs.map +1 -1
- package/graphql.d.mts +192 -44
- package/graphql.d.ts +192 -44
- package/graphql.js +0 -12
- package/graphql.js.map +1 -1
- package/graphql.mjs +0 -12
- package/graphql.mjs.map +1 -1
- package/harness.d.mts +17 -0
- package/harness.d.ts +17 -0
- package/harness.js.map +1 -1
- package/harness.mjs.map +1 -1
- package/index.d.mts +26 -24
- package/index.d.ts +26 -24
- package/index.js +9 -96
- package/index.js.map +1 -1
- package/index.mjs +5 -149
- package/index.mjs.map +1 -1
- package/jsutils/AccumulatorMap.d.mts +2 -0
- package/jsutils/AccumulatorMap.d.ts +2 -0
- package/jsutils/AccumulatorMap.js +0 -4
- package/jsutils/AccumulatorMap.js.map +1 -1
- package/jsutils/AccumulatorMap.mjs +0 -4
- package/jsutils/AccumulatorMap.mjs.map +1 -1
- package/jsutils/Maybe.d.mts +5 -1
- package/jsutils/Maybe.d.ts +5 -1
- package/jsutils/Maybe.js.map +1 -1
- package/jsutils/Maybe.mjs.map +1 -1
- package/jsutils/ObjMap.d.mts +6 -0
- package/jsutils/ObjMap.d.ts +6 -0
- package/jsutils/ObjMap.js.map +1 -1
- package/jsutils/ObjMap.mjs.map +1 -1
- package/jsutils/Path.d.mts +30 -0
- package/jsutils/Path.d.ts +30 -0
- package/jsutils/Path.js +0 -6
- package/jsutils/Path.js.map +1 -1
- package/jsutils/Path.mjs +0 -6
- package/jsutils/Path.mjs.map +1 -1
- package/jsutils/PromiseOrValue.d.mts +1 -0
- package/jsutils/PromiseOrValue.d.ts +1 -0
- package/jsutils/PromiseOrValue.js.map +1 -1
- package/jsutils/PromiseOrValue.mjs.map +1 -1
- package/jsutils/capitalize.d.mts +2 -0
- package/jsutils/capitalize.d.ts +2 -0
- package/jsutils/capitalize.js +0 -3
- package/jsutils/capitalize.js.map +1 -1
- package/jsutils/capitalize.mjs +0 -3
- package/jsutils/capitalize.mjs.map +1 -1
- package/jsutils/devAssert.d.mts +1 -0
- package/jsutils/devAssert.d.ts +1 -0
- package/jsutils/devAssert.js.map +1 -1
- package/jsutils/devAssert.mjs.map +1 -1
- package/jsutils/didYouMean.d.mts +4 -1
- package/jsutils/didYouMean.d.ts +4 -1
- package/jsutils/didYouMean.js.map +1 -1
- package/jsutils/didYouMean.mjs.map +1 -1
- package/jsutils/formatList.d.mts +6 -2
- package/jsutils/formatList.d.ts +6 -2
- package/jsutils/formatList.js +0 -6
- package/jsutils/formatList.js.map +1 -1
- package/jsutils/formatList.mjs +0 -6
- package/jsutils/formatList.mjs.map +1 -1
- package/jsutils/getBySet.d.mts +1 -0
- package/jsutils/getBySet.d.ts +1 -0
- package/jsutils/getBySet.js.map +1 -1
- package/jsutils/getBySet.mjs.map +1 -1
- package/jsutils/groupBy.d.mts +2 -0
- package/jsutils/groupBy.d.ts +2 -0
- package/jsutils/groupBy.js +0 -3
- package/jsutils/groupBy.js.map +1 -1
- package/jsutils/groupBy.mjs +0 -3
- package/jsutils/groupBy.mjs.map +1 -1
- package/jsutils/identityFunc.d.mts +2 -0
- package/jsutils/identityFunc.d.ts +2 -0
- package/jsutils/identityFunc.js +0 -3
- package/jsutils/identityFunc.js.map +1 -1
- package/jsutils/identityFunc.mjs +0 -3
- package/jsutils/identityFunc.mjs.map +1 -1
- package/jsutils/inspect.d.mts +2 -0
- package/jsutils/inspect.d.ts +2 -0
- package/jsutils/inspect.js +0 -4
- package/jsutils/inspect.js.map +1 -1
- package/jsutils/inspect.mjs +0 -4
- package/jsutils/inspect.mjs.map +1 -1
- package/jsutils/instanceOf.d.mts +2 -0
- package/jsutils/instanceOf.d.ts +2 -0
- package/jsutils/instanceOf.js +1 -12
- package/jsutils/instanceOf.js.map +1 -1
- package/jsutils/instanceOf.mjs +1 -12
- package/jsutils/instanceOf.mjs.map +1 -1
- package/jsutils/invariant.d.mts +1 -0
- package/jsutils/invariant.d.ts +1 -0
- package/jsutils/invariant.js.map +1 -1
- package/jsutils/invariant.mjs.map +1 -1
- package/jsutils/isAsyncIterable.d.mts +2 -0
- package/jsutils/isAsyncIterable.d.ts +2 -0
- package/jsutils/isAsyncIterable.js +0 -4
- package/jsutils/isAsyncIterable.js.map +1 -1
- package/jsutils/isAsyncIterable.mjs +0 -4
- package/jsutils/isAsyncIterable.mjs.map +1 -1
- package/jsutils/isIterableObject.d.mts +6 -5
- package/jsutils/isIterableObject.d.ts +6 -5
- package/jsutils/isIterableObject.js +0 -17
- package/jsutils/isIterableObject.js.map +1 -1
- package/jsutils/isIterableObject.mjs +0 -17
- package/jsutils/isIterableObject.mjs.map +1 -1
- package/jsutils/isObjectLike.d.mts +2 -0
- package/jsutils/isObjectLike.d.ts +2 -0
- package/jsutils/isObjectLike.js +0 -4
- package/jsutils/isObjectLike.js.map +1 -1
- package/jsutils/isObjectLike.mjs +0 -4
- package/jsutils/isObjectLike.mjs.map +1 -1
- package/jsutils/isPromise.d.mts +3 -0
- package/jsutils/isPromise.d.ts +3 -0
- package/jsutils/isPromise.js +0 -4
- package/jsutils/isPromise.js.map +1 -1
- package/jsutils/isPromise.mjs +0 -4
- package/jsutils/isPromise.mjs.map +1 -1
- package/jsutils/isSameSet.d.mts +1 -0
- package/jsutils/isSameSet.d.ts +1 -0
- package/jsutils/isSameSet.js.map +1 -1
- package/jsutils/isSameSet.mjs.map +1 -1
- package/jsutils/keyMap.d.mts +7 -14
- package/jsutils/keyMap.d.ts +7 -14
- package/jsutils/keyMap.js +0 -27
- package/jsutils/keyMap.js.map +1 -1
- package/jsutils/keyMap.mjs +0 -27
- package/jsutils/keyMap.mjs.map +1 -1
- package/jsutils/keyValMap.d.mts +9 -6
- package/jsutils/keyValMap.d.ts +9 -6
- package/jsutils/keyValMap.js +0 -17
- package/jsutils/keyValMap.js.map +1 -1
- package/jsutils/keyValMap.mjs +0 -17
- package/jsutils/keyValMap.mjs.map +1 -1
- package/jsutils/mapValue.d.mts +2 -0
- package/jsutils/mapValue.d.ts +2 -0
- package/jsutils/mapValue.js +0 -4
- package/jsutils/mapValue.js.map +1 -1
- package/jsutils/mapValue.mjs +0 -4
- package/jsutils/mapValue.mjs.map +1 -1
- package/jsutils/memoize1.d.mts +2 -0
- package/jsutils/memoize1.d.ts +2 -0
- package/jsutils/memoize1.js +0 -3
- package/jsutils/memoize1.js.map +1 -1
- package/jsutils/memoize1.mjs +0 -3
- package/jsutils/memoize1.mjs.map +1 -1
- package/jsutils/memoize2.d.mts +2 -0
- package/jsutils/memoize2.d.ts +2 -0
- package/jsutils/memoize2.js +0 -3
- package/jsutils/memoize2.js.map +1 -1
- package/jsutils/memoize2.mjs +0 -3
- package/jsutils/memoize2.mjs.map +1 -1
- package/jsutils/memoize3.d.mts +2 -0
- package/jsutils/memoize3.d.ts +2 -0
- package/jsutils/memoize3.js +0 -3
- package/jsutils/memoize3.js.map +1 -1
- package/jsutils/memoize3.mjs +0 -3
- package/jsutils/memoize3.mjs.map +1 -1
- package/jsutils/naturalCompare.d.mts +1 -0
- package/jsutils/naturalCompare.d.ts +1 -0
- package/jsutils/naturalCompare.js +0 -7
- package/jsutils/naturalCompare.js.map +1 -1
- package/jsutils/naturalCompare.mjs +0 -7
- package/jsutils/naturalCompare.mjs.map +1 -1
- package/jsutils/printPathArray.d.mts +2 -0
- package/jsutils/printPathArray.d.ts +2 -0
- package/jsutils/printPathArray.js +0 -3
- package/jsutils/printPathArray.js.map +1 -1
- package/jsutils/printPathArray.mjs +0 -3
- package/jsutils/printPathArray.mjs.map +1 -1
- package/jsutils/promiseForObject.d.mts +2 -0
- package/jsutils/promiseForObject.d.ts +2 -0
- package/jsutils/promiseForObject.js +0 -7
- package/jsutils/promiseForObject.js.map +1 -1
- package/jsutils/promiseForObject.mjs +0 -7
- package/jsutils/promiseForObject.mjs.map +1 -1
- package/jsutils/promiseReduce.d.mts +2 -0
- package/jsutils/promiseReduce.d.ts +2 -0
- package/jsutils/promiseReduce.js +0 -7
- package/jsutils/promiseReduce.js.map +1 -1
- package/jsutils/promiseReduce.mjs +0 -7
- package/jsutils/promiseReduce.mjs.map +1 -1
- package/jsutils/promiseWithResolvers.d.mts +2 -0
- package/jsutils/promiseWithResolvers.d.ts +2 -0
- package/jsutils/promiseWithResolvers.js +0 -5
- package/jsutils/promiseWithResolvers.js.map +1 -1
- package/jsutils/promiseWithResolvers.mjs +0 -5
- package/jsutils/promiseWithResolvers.mjs.map +1 -1
- package/jsutils/suggestionList.d.mts +2 -0
- package/jsutils/suggestionList.d.ts +2 -0
- package/jsutils/suggestionList.js +1 -24
- package/jsutils/suggestionList.js.map +1 -1
- package/jsutils/suggestionList.mjs +1 -24
- package/jsutils/suggestionList.mjs.map +1 -1
- package/jsutils/toError.d.mts +2 -0
- package/jsutils/toError.d.ts +2 -0
- package/jsutils/toError.js +0 -3
- package/jsutils/toError.js.map +1 -1
- package/jsutils/toError.mjs +0 -3
- package/jsutils/toError.mjs.map +1 -1
- package/jsutils/toObjMap.d.mts +2 -0
- package/jsutils/toObjMap.d.ts +2 -0
- package/jsutils/toObjMap.js.map +1 -1
- package/jsutils/toObjMap.mjs.map +1 -1
- package/language/KindTypeMap.d.mts +1 -0
- package/language/KindTypeMap.d.ts +1 -0
- package/language/KindTypeMap.js.map +1 -1
- package/language/KindTypeMap.mjs.map +1 -1
- package/language/ast.d.mts +413 -53
- package/language/ast.d.ts +413 -53
- package/language/ast.js +0 -20
- package/language/ast.js.map +1 -1
- package/language/ast.mjs +0 -20
- package/language/ast.mjs.map +1 -1
- package/language/blockString.d.mts +1 -3
- package/language/blockString.d.ts +1 -3
- package/language/blockString.js +11 -37
- package/language/blockString.js.map +1 -1
- package/language/blockString.mjs +11 -37
- package/language/blockString.mjs.map +1 -1
- package/language/characterClasses.js +2 -45
- package/language/characterClasses.js.map +1 -1
- package/language/characterClasses.mjs +2 -45
- package/language/characterClasses.mjs.map +1 -1
- package/language/directiveLocation.d.mts +24 -5
- package/language/directiveLocation.d.ts +24 -5
- package/language/directiveLocation.js +0 -5
- package/language/directiveLocation.js.map +1 -1
- package/language/directiveLocation.mjs +0 -5
- package/language/directiveLocation.mjs.map +1 -1
- package/language/index.d.mts +6 -0
- package/language/index.d.ts +6 -0
- package/language/index.js +0 -4
- package/language/index.js.map +1 -1
- package/language/index.mjs +0 -4
- package/language/index.mjs.map +1 -1
- package/language/kinds.d.mts +3 -0
- package/language/kinds.d.ts +3 -0
- package/language/kinds.js.map +1 -1
- package/language/kinds.mjs.map +1 -1
- package/language/kinds_.d.mts +100 -12
- package/language/kinds_.d.ts +100 -12
- package/language/kinds_.js +0 -13
- package/language/kinds_.js.map +1 -1
- package/language/kinds_.mjs +0 -13
- package/language/kinds_.mjs.map +1 -1
- package/language/lexer.d.mts +48 -15
- package/language/lexer.d.ts +48 -15
- package/language/lexer.js +37 -278
- package/language/lexer.js.map +1 -1
- package/language/lexer.mjs +37 -278
- package/language/lexer.mjs.map +1 -1
- package/language/location.d.mts +16 -3
- package/language/location.d.ts +16 -3
- package/language/location.js +0 -4
- package/language/location.js.map +1 -1
- package/language/location.mjs +0 -4
- package/language/location.mjs.map +1 -1
- package/language/parser.d.mts +224 -9
- package/language/parser.d.ts +224 -9
- package/language/parser.js +0 -375
- package/language/parser.js.map +1 -1
- package/language/parser.mjs +0 -375
- package/language/parser.mjs.map +1 -1
- package/language/predicates.d.mts +181 -0
- package/language/predicates.d.ts +181 -0
- package/language/predicates.js +0 -6
- package/language/predicates.js.map +1 -1
- package/language/predicates.mjs +0 -6
- package/language/predicates.mjs.map +1 -1
- package/language/printLocation.d.mts +28 -0
- package/language/printLocation.d.ts +28 -0
- package/language/printLocation.js +0 -8
- package/language/printLocation.js.map +1 -1
- package/language/printLocation.mjs +0 -8
- package/language/printLocation.mjs.map +1 -1
- package/language/printString.d.mts +2 -0
- package/language/printString.d.ts +2 -0
- package/language/printString.js +5 -11
- package/language/printString.js.map +1 -1
- package/language/printString.mjs +5 -11
- package/language/printString.mjs.map +1 -1
- package/language/printer.d.mts +12 -0
- package/language/printer.d.ts +12 -0
- package/language/printer.js +0 -25
- package/language/printer.js.map +1 -1
- package/language/printer.mjs +0 -25
- package/language/printer.mjs.map +1 -1
- package/language/schemaCoordinateLexer.d.mts +14 -0
- package/language/schemaCoordinateLexer.d.ts +14 -0
- package/language/schemaCoordinateLexer.js +5 -35
- package/language/schemaCoordinateLexer.js.map +1 -1
- package/language/schemaCoordinateLexer.mjs +5 -35
- package/language/schemaCoordinateLexer.mjs.map +1 -1
- package/language/source.d.mts +28 -1
- package/language/source.d.ts +28 -1
- package/language/source.js +0 -12
- package/language/source.js.map +1 -1
- package/language/source.mjs +0 -12
- package/language/source.mjs.map +1 -1
- package/language/tokenKind.d.mts +5 -0
- package/language/tokenKind.d.ts +5 -0
- package/language/tokenKind.js +0 -4
- package/language/tokenKind.js.map +1 -1
- package/language/tokenKind.mjs +0 -4
- package/language/tokenKind.mjs.map +1 -1
- package/language/visitor.d.mts +182 -72
- package/language/visitor.d.ts +182 -72
- package/language/visitor.js +0 -15
- package/language/visitor.js.map +1 -1
- package/language/visitor.mjs +0 -15
- package/language/visitor.mjs.map +1 -1
- package/package.json +1 -1
- package/type/assertName.d.mts +18 -1
- package/type/assertName.d.ts +18 -1
- package/type/assertName.js +0 -8
- package/type/assertName.js.map +1 -1
- package/type/assertName.mjs +0 -8
- package/type/assertName.mjs.map +1 -1
- package/type/definition.d.mts +3258 -128
- package/type/definition.d.ts +3258 -128
- package/type/definition.js +5 -252
- package/type/definition.js.map +1 -1
- package/type/definition.mjs +5 -252
- package/type/definition.mjs.map +1 -1
- package/type/directives.d.mts +209 -20
- package/type/directives.d.ts +209 -20
- package/type/directives.js +0 -37
- package/type/directives.js.map +1 -1
- package/type/directives.mjs +0 -37
- package/type/directives.mjs.map +1 -1
- package/type/index.d.mts +6 -0
- package/type/index.d.ts +6 -0
- package/type/index.js +0 -23
- package/type/index.js.map +1 -1
- package/type/index.mjs +5 -48
- package/type/index.mjs.map +1 -1
- package/type/introspection.d.mts +36 -0
- package/type/introspection.d.ts +36 -0
- package/type/introspection.js +1 -6
- package/type/introspection.js.map +1 -1
- package/type/introspection.mjs +1 -6
- package/type/introspection.mjs.map +1 -1
- package/type/scalars.d.mts +29 -2
- package/type/scalars.d.ts +29 -2
- package/type/scalars.js +0 -15
- package/type/scalars.js.map +1 -1
- package/type/scalars.mjs +0 -15
- package/type/scalars.mjs.map +1 -1
- package/type/schema.d.mts +507 -31
- package/type/schema.d.ts +507 -31
- package/type/schema.js +0 -97
- package/type/schema.js.map +1 -1
- package/type/schema.mjs +0 -97
- package/type/schema.mjs.map +1 -1
- package/type/validate.d.mts +32 -3
- package/type/validate.d.ts +32 -3
- package/type/validate.js +0 -112
- package/type/validate.js.map +1 -1
- package/type/validate.mjs +0 -112
- package/type/validate.mjs.map +1 -1
- package/utilities/TypeInfo.d.mts +564 -1
- package/utilities/TypeInfo.d.ts +564 -1
- package/utilities/TypeInfo.js +1 -24
- package/utilities/TypeInfo.js.map +1 -1
- package/utilities/TypeInfo.mjs +1 -24
- package/utilities/TypeInfo.mjs.map +1 -1
- package/utilities/astFromValue.d.mts +36 -3
- package/utilities/astFromValue.d.ts +36 -3
- package/utilities/astFromValue.js +0 -42
- package/utilities/astFromValue.js.map +1 -1
- package/utilities/astFromValue.mjs +0 -42
- package/utilities/astFromValue.mjs.map +1 -1
- package/utilities/buildASTSchema.d.mts +66 -6
- package/utilities/buildASTSchema.d.ts +66 -6
- package/utilities/buildASTSchema.js +0 -21
- package/utilities/buildASTSchema.js.map +1 -1
- package/utilities/buildASTSchema.mjs +0 -21
- package/utilities/buildASTSchema.mjs.map +1 -1
- package/utilities/buildClientSchema.d.mts +17 -2
- package/utilities/buildClientSchema.d.ts +17 -2
- package/utilities/buildClientSchema.js +1 -32
- package/utilities/buildClientSchema.js.map +1 -1
- package/utilities/buildClientSchema.mjs +0 -30
- package/utilities/buildClientSchema.mjs.map +1 -1
- package/utilities/coerceInputValue.d.mts +83 -1
- package/utilities/coerceInputValue.d.ts +83 -1
- package/utilities/coerceInputValue.js +21 -50
- package/utilities/coerceInputValue.js.map +1 -1
- package/utilities/coerceInputValue.mjs +21 -50
- package/utilities/coerceInputValue.mjs.map +1 -1
- package/utilities/concatAST.d.mts +12 -0
- package/utilities/concatAST.d.ts +12 -0
- package/utilities/concatAST.js +0 -5
- package/utilities/concatAST.js.map +1 -1
- package/utilities/concatAST.mjs +0 -5
- package/utilities/concatAST.mjs.map +1 -1
- package/utilities/extendSchema.d.mts +58 -3
- package/utilities/extendSchema.d.ts +58 -3
- package/utilities/extendSchema.js +0 -60
- package/utilities/extendSchema.js.map +1 -1
- package/utilities/extendSchema.mjs +0 -60
- package/utilities/extendSchema.mjs.map +1 -1
- package/utilities/findSchemaChanges.d.mts +99 -1
- package/utilities/findSchemaChanges.d.ts +99 -1
- package/utilities/findSchemaChanges.js +3 -35
- package/utilities/findSchemaChanges.js.map +1 -1
- package/utilities/findSchemaChanges.mjs +3 -35
- package/utilities/findSchemaChanges.mjs.map +1 -1
- package/utilities/getDefaultValueAST.d.mts +1 -0
- package/utilities/getDefaultValueAST.d.ts +1 -0
- package/utilities/getDefaultValueAST.js +0 -2
- package/utilities/getDefaultValueAST.js.map +1 -1
- package/utilities/getDefaultValueAST.mjs +0 -2
- package/utilities/getDefaultValueAST.mjs.map +1 -1
- package/utilities/getIntrospectionQuery.d.mts +132 -0
- package/utilities/getIntrospectionQuery.d.ts +132 -0
- package/utilities/getIntrospectionQuery.js +0 -4
- package/utilities/getIntrospectionQuery.js.map +1 -1
- package/utilities/getIntrospectionQuery.mjs +0 -4
- package/utilities/getIntrospectionQuery.mjs.map +1 -1
- package/utilities/getOperationAST.d.mts +15 -0
- package/utilities/getOperationAST.d.ts +15 -0
- package/utilities/getOperationAST.js +0 -8
- package/utilities/getOperationAST.js.map +1 -1
- package/utilities/getOperationAST.mjs +0 -8
- package/utilities/getOperationAST.mjs.map +1 -1
- package/utilities/index.d.mts +18 -3
- package/utilities/index.d.ts +18 -3
- package/utilities/index.js +0 -27
- package/utilities/index.js.map +1 -1
- package/utilities/index.mjs +4 -37
- package/utilities/index.mjs.map +1 -1
- package/utilities/introspectionFromSchema.d.mts +54 -0
- package/utilities/introspectionFromSchema.d.ts +54 -0
- package/utilities/introspectionFromSchema.js +0 -9
- package/utilities/introspectionFromSchema.js.map +1 -1
- package/utilities/introspectionFromSchema.mjs +0 -9
- package/utilities/introspectionFromSchema.mjs.map +1 -1
- package/utilities/lexicographicSortSchema.d.mts +35 -0
- package/utilities/lexicographicSortSchema.d.ts +35 -0
- package/utilities/lexicographicSortSchema.js +0 -5
- package/utilities/lexicographicSortSchema.js.map +1 -1
- package/utilities/lexicographicSortSchema.mjs +0 -5
- package/utilities/lexicographicSortSchema.mjs.map +1 -1
- package/utilities/mapSchemaConfig.d.mts +6 -3
- package/utilities/mapSchemaConfig.d.ts +6 -3
- package/utilities/mapSchemaConfig.js +0 -10
- package/utilities/mapSchemaConfig.js.map +1 -1
- package/utilities/mapSchemaConfig.mjs +0 -10
- package/utilities/mapSchemaConfig.mjs.map +1 -1
- package/utilities/printSchema.d.mts +84 -0
- package/utilities/printSchema.d.ts +84 -0
- package/utilities/printSchema.js +0 -28
- package/utilities/printSchema.js.map +1 -1
- package/utilities/printSchema.mjs +0 -28
- package/utilities/printSchema.mjs.map +1 -1
- package/utilities/replaceVariables.d.mts +36 -0
- package/utilities/replaceVariables.d.ts +36 -0
- package/utilities/replaceVariables.js +0 -8
- package/utilities/replaceVariables.js.map +1 -1
- package/utilities/replaceVariables.mjs +0 -8
- package/utilities/replaceVariables.mjs.map +1 -1
- package/utilities/resolveSchemaCoordinate.d.mts +62 -0
- package/utilities/resolveSchemaCoordinate.d.ts +62 -0
- package/utilities/resolveSchemaCoordinate.js +0 -56
- package/utilities/resolveSchemaCoordinate.js.map +1 -1
- package/utilities/resolveSchemaCoordinate.mjs +0 -56
- package/utilities/resolveSchemaCoordinate.mjs.map +1 -1
- package/utilities/separateOperations.d.mts +30 -0
- package/utilities/separateOperations.d.ts +30 -0
- package/utilities/separateOperations.js +0 -15
- package/utilities/separateOperations.js.map +1 -1
- package/utilities/separateOperations.mjs +0 -15
- package/utilities/separateOperations.mjs.map +1 -1
- package/utilities/sortValueNode.js +0 -7
- package/utilities/sortValueNode.js.map +1 -1
- package/utilities/sortValueNode.mjs +0 -7
- package/utilities/sortValueNode.mjs.map +1 -1
- package/utilities/stripIgnoredCharacters.d.mts +13 -6
- package/utilities/stripIgnoredCharacters.d.ts +13 -6
- package/utilities/stripIgnoredCharacters.js +0 -65
- package/utilities/stripIgnoredCharacters.js.map +1 -1
- package/utilities/stripIgnoredCharacters.mjs +0 -65
- package/utilities/stripIgnoredCharacters.mjs.map +1 -1
- package/utilities/typeComparators.d.mts +84 -0
- package/utilities/typeComparators.d.ts +84 -0
- package/utilities/typeComparators.js +0 -33
- package/utilities/typeComparators.js.map +1 -1
- package/utilities/typeComparators.mjs +0 -33
- package/utilities/typeComparators.mjs.map +1 -1
- package/utilities/typeFromAST.d.mts +86 -0
- package/utilities/typeFromAST.d.ts +86 -0
- package/utilities/typeFromAST.js.map +1 -1
- package/utilities/typeFromAST.mjs.map +1 -1
- package/utilities/typedQueryDocumentNode.d.mts +4 -0
- package/utilities/typedQueryDocumentNode.d.ts +4 -0
- package/utilities/typedQueryDocumentNode.js.map +1 -1
- package/utilities/typedQueryDocumentNode.mjs.map +1 -1
- package/utilities/validateInputValue.d.mts +123 -0
- package/utilities/validateInputValue.d.ts +123 -0
- package/utilities/validateInputValue.js +0 -20
- package/utilities/validateInputValue.js.map +1 -1
- package/utilities/validateInputValue.mjs +0 -20
- package/utilities/validateInputValue.mjs.map +1 -1
- package/utilities/valueFromAST.d.mts +41 -0
- package/utilities/valueFromAST.d.ts +41 -0
- package/utilities/valueFromAST.js +13 -51
- package/utilities/valueFromAST.js.map +1 -1
- package/utilities/valueFromAST.mjs +13 -51
- package/utilities/valueFromAST.mjs.map +1 -1
- package/utilities/valueFromASTUntyped.d.mts +15 -2
- package/utilities/valueFromASTUntyped.d.ts +15 -2
- package/utilities/valueFromASTUntyped.js +0 -16
- package/utilities/valueFromASTUntyped.js.map +1 -1
- package/utilities/valueFromASTUntyped.mjs +0 -16
- package/utilities/valueFromASTUntyped.mjs.map +1 -1
- package/utilities/valueToLiteral.d.mts +30 -1
- package/utilities/valueToLiteral.d.ts +30 -1
- package/utilities/valueToLiteral.js +7 -40
- package/utilities/valueToLiteral.js.map +1 -1
- package/utilities/valueToLiteral.mjs +7 -40
- package/utilities/valueToLiteral.mjs.map +1 -1
- package/validation/ValidationContext.d.mts +490 -0
- package/validation/ValidationContext.d.ts +490 -0
- package/validation/ValidationContext.js +1 -8
- package/validation/ValidationContext.js.map +1 -1
- package/validation/ValidationContext.mjs +1 -8
- package/validation/ValidationContext.mjs.map +1 -1
- package/validation/index.d.mts +7 -0
- package/validation/index.d.ts +7 -0
- package/validation/index.js +0 -34
- package/validation/index.js.map +1 -1
- package/validation/index.mjs +0 -34
- package/validation/index.mjs.map +1 -1
- package/validation/rules/DeferStreamDirectiveLabelRule.d.mts +30 -0
- package/validation/rules/DeferStreamDirectiveLabelRule.d.ts +30 -0
- package/validation/rules/DeferStreamDirectiveLabelRule.js +0 -5
- package/validation/rules/DeferStreamDirectiveLabelRule.js.map +1 -1
- package/validation/rules/DeferStreamDirectiveLabelRule.mjs +0 -5
- package/validation/rules/DeferStreamDirectiveLabelRule.mjs.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.mts +28 -0
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +28 -0
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js +0 -5
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs +0 -5
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.mts +52 -0
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +52 -0
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js +0 -5
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs +0 -5
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs.map +1 -1
- package/validation/rules/ExecutableDefinitionsRule.d.mts +28 -0
- package/validation/rules/ExecutableDefinitionsRule.d.ts +28 -0
- package/validation/rules/ExecutableDefinitionsRule.js +0 -8
- package/validation/rules/ExecutableDefinitionsRule.js.map +1 -1
- package/validation/rules/ExecutableDefinitionsRule.mjs +0 -8
- package/validation/rules/ExecutableDefinitionsRule.mjs.map +1 -1
- package/validation/rules/FieldsOnCorrectTypeRule.d.mts +28 -0
- package/validation/rules/FieldsOnCorrectTypeRule.d.ts +28 -0
- package/validation/rules/FieldsOnCorrectTypeRule.js +0 -27
- package/validation/rules/FieldsOnCorrectTypeRule.js.map +1 -1
- package/validation/rules/FieldsOnCorrectTypeRule.mjs +0 -27
- package/validation/rules/FieldsOnCorrectTypeRule.mjs.map +1 -1
- package/validation/rules/FragmentsOnCompositeTypesRule.d.mts +28 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +28 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.js +0 -9
- package/validation/rules/FragmentsOnCompositeTypesRule.js.map +1 -1
- package/validation/rules/FragmentsOnCompositeTypesRule.mjs +0 -9
- package/validation/rules/FragmentsOnCompositeTypesRule.mjs.map +1 -1
- package/validation/rules/KnownArgumentNamesRule.d.mts +29 -3
- package/validation/rules/KnownArgumentNamesRule.d.ts +29 -3
- package/validation/rules/KnownArgumentNamesRule.js +0 -13
- package/validation/rules/KnownArgumentNamesRule.js.map +1 -1
- package/validation/rules/KnownArgumentNamesRule.mjs +0 -13
- package/validation/rules/KnownArgumentNamesRule.mjs.map +1 -1
- package/validation/rules/KnownDirectivesRule.d.mts +28 -0
- package/validation/rules/KnownDirectivesRule.d.ts +28 -0
- package/validation/rules/KnownDirectivesRule.js +0 -10
- package/validation/rules/KnownDirectivesRule.js.map +1 -1
- package/validation/rules/KnownDirectivesRule.mjs +0 -10
- package/validation/rules/KnownDirectivesRule.mjs.map +1 -1
- package/validation/rules/KnownFragmentNamesRule.d.mts +28 -0
- package/validation/rules/KnownFragmentNamesRule.d.ts +28 -0
- package/validation/rules/KnownFragmentNamesRule.js +0 -8
- package/validation/rules/KnownFragmentNamesRule.js.map +1 -1
- package/validation/rules/KnownFragmentNamesRule.mjs +0 -8
- package/validation/rules/KnownFragmentNamesRule.mjs.map +1 -1
- package/validation/rules/KnownOperationTypesRule.d.mts +20 -0
- package/validation/rules/KnownOperationTypesRule.d.ts +20 -0
- package/validation/rules/KnownOperationTypesRule.js +0 -8
- package/validation/rules/KnownOperationTypesRule.js.map +1 -1
- package/validation/rules/KnownOperationTypesRule.mjs +0 -8
- package/validation/rules/KnownOperationTypesRule.mjs.map +1 -1
- package/validation/rules/KnownTypeNamesRule.d.mts +28 -0
- package/validation/rules/KnownTypeNamesRule.d.ts +28 -0
- package/validation/rules/KnownTypeNamesRule.js +0 -8
- package/validation/rules/KnownTypeNamesRule.js.map +1 -1
- package/validation/rules/KnownTypeNamesRule.mjs +0 -8
- package/validation/rules/KnownTypeNamesRule.mjs.map +1 -1
- package/validation/rules/LoneAnonymousOperationRule.d.mts +28 -0
- package/validation/rules/LoneAnonymousOperationRule.d.ts +28 -0
- package/validation/rules/LoneAnonymousOperationRule.js +0 -8
- package/validation/rules/LoneAnonymousOperationRule.js.map +1 -1
- package/validation/rules/LoneAnonymousOperationRule.mjs +0 -8
- package/validation/rules/LoneAnonymousOperationRule.mjs.map +1 -1
- package/validation/rules/LoneSchemaDefinitionRule.d.mts +21 -0
- package/validation/rules/LoneSchemaDefinitionRule.d.ts +21 -0
- package/validation/rules/LoneSchemaDefinitionRule.js +0 -5
- package/validation/rules/LoneSchemaDefinitionRule.js.map +1 -1
- package/validation/rules/LoneSchemaDefinitionRule.mjs +0 -5
- package/validation/rules/LoneSchemaDefinitionRule.mjs.map +1 -1
- package/validation/rules/MaxIntrospectionDepthRule.d.mts +31 -0
- package/validation/rules/MaxIntrospectionDepthRule.d.ts +31 -0
- package/validation/rules/MaxIntrospectionDepthRule.js +0 -14
- package/validation/rules/MaxIntrospectionDepthRule.js.map +1 -1
- package/validation/rules/MaxIntrospectionDepthRule.mjs +0 -14
- package/validation/rules/MaxIntrospectionDepthRule.mjs.map +1 -1
- package/validation/rules/NoFragmentCyclesRule.d.mts +28 -0
- package/validation/rules/NoFragmentCyclesRule.d.ts +28 -0
- package/validation/rules/NoFragmentCyclesRule.js +0 -15
- package/validation/rules/NoFragmentCyclesRule.js.map +1 -1
- package/validation/rules/NoFragmentCyclesRule.mjs +0 -15
- package/validation/rules/NoFragmentCyclesRule.mjs.map +1 -1
- package/validation/rules/NoUndefinedVariablesRule.d.mts +28 -0
- package/validation/rules/NoUndefinedVariablesRule.d.ts +28 -0
- package/validation/rules/NoUndefinedVariablesRule.js +0 -8
- package/validation/rules/NoUndefinedVariablesRule.js.map +1 -1
- package/validation/rules/NoUndefinedVariablesRule.mjs +0 -8
- package/validation/rules/NoUndefinedVariablesRule.mjs.map +1 -1
- package/validation/rules/NoUnusedFragmentsRule.d.mts +28 -0
- package/validation/rules/NoUnusedFragmentsRule.d.ts +28 -0
- package/validation/rules/NoUnusedFragmentsRule.js +0 -8
- package/validation/rules/NoUnusedFragmentsRule.js.map +1 -1
- package/validation/rules/NoUnusedFragmentsRule.mjs +0 -8
- package/validation/rules/NoUnusedFragmentsRule.mjs.map +1 -1
- package/validation/rules/NoUnusedVariablesRule.d.mts +29 -0
- package/validation/rules/NoUnusedVariablesRule.d.ts +29 -0
- package/validation/rules/NoUnusedVariablesRule.js +0 -8
- package/validation/rules/NoUnusedVariablesRule.js.map +1 -1
- package/validation/rules/NoUnusedVariablesRule.mjs +0 -8
- package/validation/rules/NoUnusedVariablesRule.mjs.map +1 -1
- package/validation/rules/OverlappingFieldsCanBeMergedRule.d.mts +33 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +33 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +1 -175
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js.map +1 -1
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +1 -175
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs.map +1 -1
- package/validation/rules/PossibleFragmentSpreadsRule.d.mts +36 -0
- package/validation/rules/PossibleFragmentSpreadsRule.d.ts +36 -0
- package/validation/rules/PossibleFragmentSpreadsRule.js +0 -7
- package/validation/rules/PossibleFragmentSpreadsRule.js.map +1 -1
- package/validation/rules/PossibleFragmentSpreadsRule.mjs +0 -7
- package/validation/rules/PossibleFragmentSpreadsRule.mjs.map +1 -1
- package/validation/rules/PossibleTypeExtensionsRule.d.mts +21 -0
- package/validation/rules/PossibleTypeExtensionsRule.d.ts +21 -0
- package/validation/rules/PossibleTypeExtensionsRule.js +0 -9
- package/validation/rules/PossibleTypeExtensionsRule.js.map +1 -1
- package/validation/rules/PossibleTypeExtensionsRule.mjs +0 -9
- package/validation/rules/PossibleTypeExtensionsRule.mjs.map +1 -1
- package/validation/rules/ProvidedRequiredArgumentsRule.d.mts +29 -3
- package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +29 -3
- package/validation/rules/ProvidedRequiredArgumentsRule.js +0 -13
- package/validation/rules/ProvidedRequiredArgumentsRule.js.map +1 -1
- package/validation/rules/ProvidedRequiredArgumentsRule.mjs +0 -13
- package/validation/rules/ProvidedRequiredArgumentsRule.mjs.map +1 -1
- package/validation/rules/ScalarLeafsRule.d.mts +28 -0
- package/validation/rules/ScalarLeafsRule.d.ts +28 -0
- package/validation/rules/ScalarLeafsRule.js +0 -6
- package/validation/rules/ScalarLeafsRule.js.map +1 -1
- package/validation/rules/ScalarLeafsRule.mjs +0 -6
- package/validation/rules/ScalarLeafsRule.mjs.map +1 -1
- package/validation/rules/SingleFieldSubscriptionsRule.d.mts +34 -2
- package/validation/rules/SingleFieldSubscriptionsRule.d.ts +34 -2
- package/validation/rules/SingleFieldSubscriptionsRule.js +0 -9
- package/validation/rules/SingleFieldSubscriptionsRule.js.map +1 -1
- package/validation/rules/SingleFieldSubscriptionsRule.mjs +0 -9
- package/validation/rules/SingleFieldSubscriptionsRule.mjs.map +1 -1
- package/validation/rules/StreamDirectiveOnListFieldRule.d.mts +21 -0
- package/validation/rules/StreamDirectiveOnListFieldRule.d.ts +21 -0
- package/validation/rules/StreamDirectiveOnListFieldRule.js +0 -5
- package/validation/rules/StreamDirectiveOnListFieldRule.js.map +1 -1
- package/validation/rules/StreamDirectiveOnListFieldRule.mjs +0 -5
- package/validation/rules/StreamDirectiveOnListFieldRule.mjs.map +1 -1
- package/validation/rules/UniqueArgumentDefinitionNamesRule.d.mts +21 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +21 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.js +0 -6
- package/validation/rules/UniqueArgumentDefinitionNamesRule.js.map +1 -1
- package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +0 -6
- package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueArgumentNamesRule.d.mts +28 -0
- package/validation/rules/UniqueArgumentNamesRule.d.ts +28 -0
- package/validation/rules/UniqueArgumentNamesRule.js +0 -8
- package/validation/rules/UniqueArgumentNamesRule.js.map +1 -1
- package/validation/rules/UniqueArgumentNamesRule.mjs +0 -8
- package/validation/rules/UniqueArgumentNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueDirectiveNamesRule.d.mts +21 -0
- package/validation/rules/UniqueDirectiveNamesRule.d.ts +21 -0
- package/validation/rules/UniqueDirectiveNamesRule.js +0 -5
- package/validation/rules/UniqueDirectiveNamesRule.js.map +1 -1
- package/validation/rules/UniqueDirectiveNamesRule.mjs +0 -5
- package/validation/rules/UniqueDirectiveNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueDirectivesPerLocationRule.d.mts +28 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +28 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.js +0 -11
- package/validation/rules/UniqueDirectivesPerLocationRule.js.map +1 -1
- package/validation/rules/UniqueDirectivesPerLocationRule.mjs +0 -11
- package/validation/rules/UniqueDirectivesPerLocationRule.mjs.map +1 -1
- package/validation/rules/UniqueEnumValueNamesRule.d.mts +21 -0
- package/validation/rules/UniqueEnumValueNamesRule.d.ts +21 -0
- package/validation/rules/UniqueEnumValueNamesRule.js +0 -5
- package/validation/rules/UniqueEnumValueNamesRule.js.map +1 -1
- package/validation/rules/UniqueEnumValueNamesRule.mjs +0 -5
- package/validation/rules/UniqueEnumValueNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueFieldDefinitionNamesRule.d.mts +21 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +21 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.js +0 -5
- package/validation/rules/UniqueFieldDefinitionNamesRule.js.map +1 -1
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +0 -5
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueFragmentNamesRule.d.mts +28 -0
- package/validation/rules/UniqueFragmentNamesRule.d.ts +28 -0
- package/validation/rules/UniqueFragmentNamesRule.js +0 -7
- package/validation/rules/UniqueFragmentNamesRule.js.map +1 -1
- package/validation/rules/UniqueFragmentNamesRule.mjs +0 -7
- package/validation/rules/UniqueFragmentNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueInputFieldNamesRule.d.mts +32 -0
- package/validation/rules/UniqueInputFieldNamesRule.d.ts +32 -0
- package/validation/rules/UniqueInputFieldNamesRule.js +0 -8
- package/validation/rules/UniqueInputFieldNamesRule.js.map +1 -1
- package/validation/rules/UniqueInputFieldNamesRule.mjs +0 -8
- package/validation/rules/UniqueInputFieldNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueOperationNamesRule.d.mts +28 -0
- package/validation/rules/UniqueOperationNamesRule.d.ts +28 -0
- package/validation/rules/UniqueOperationNamesRule.js +0 -7
- package/validation/rules/UniqueOperationNamesRule.js.map +1 -1
- package/validation/rules/UniqueOperationNamesRule.mjs +0 -7
- package/validation/rules/UniqueOperationNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueOperationTypesRule.d.mts +21 -0
- package/validation/rules/UniqueOperationTypesRule.d.ts +21 -0
- package/validation/rules/UniqueOperationTypesRule.js +0 -5
- package/validation/rules/UniqueOperationTypesRule.js.map +1 -1
- package/validation/rules/UniqueOperationTypesRule.mjs +0 -5
- package/validation/rules/UniqueOperationTypesRule.mjs.map +1 -1
- package/validation/rules/UniqueTypeNamesRule.d.mts +21 -0
- package/validation/rules/UniqueTypeNamesRule.d.ts +21 -0
- package/validation/rules/UniqueTypeNamesRule.js +0 -5
- package/validation/rules/UniqueTypeNamesRule.js.map +1 -1
- package/validation/rules/UniqueTypeNamesRule.mjs +0 -5
- package/validation/rules/UniqueTypeNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueVariableNamesRule.d.mts +28 -0
- package/validation/rules/UniqueVariableNamesRule.d.ts +28 -0
- package/validation/rules/UniqueVariableNamesRule.js +0 -5
- package/validation/rules/UniqueVariableNamesRule.js.map +1 -1
- package/validation/rules/UniqueVariableNamesRule.mjs +0 -5
- package/validation/rules/UniqueVariableNamesRule.mjs.map +1 -1
- package/validation/rules/ValuesOfCorrectTypeRule.d.mts +28 -0
- package/validation/rules/ValuesOfCorrectTypeRule.d.ts +28 -0
- package/validation/rules/ValuesOfCorrectTypeRule.js +1 -21
- package/validation/rules/ValuesOfCorrectTypeRule.js.map +1 -1
- package/validation/rules/ValuesOfCorrectTypeRule.mjs +1 -21
- package/validation/rules/ValuesOfCorrectTypeRule.mjs.map +1 -1
- package/validation/rules/VariablesAreInputTypesRule.d.mts +32 -0
- package/validation/rules/VariablesAreInputTypesRule.d.ts +32 -0
- package/validation/rules/VariablesAreInputTypesRule.js +0 -8
- package/validation/rules/VariablesAreInputTypesRule.js.map +1 -1
- package/validation/rules/VariablesAreInputTypesRule.mjs +0 -8
- package/validation/rules/VariablesAreInputTypesRule.mjs.map +1 -1
- package/validation/rules/VariablesInAllowedPositionRule.d.mts +28 -0
- package/validation/rules/VariablesInAllowedPositionRule.d.ts +28 -0
- package/validation/rules/VariablesInAllowedPositionRule.js +0 -20
- package/validation/rules/VariablesInAllowedPositionRule.js.map +1 -1
- package/validation/rules/VariablesInAllowedPositionRule.mjs +0 -20
- package/validation/rules/VariablesInAllowedPositionRule.mjs.map +1 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.d.mts +41 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +41 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.js +0 -10
- package/validation/rules/custom/NoDeprecatedCustomRule.js.map +1 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs +0 -10
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs.map +1 -1
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.mts +28 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +28 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +0 -10
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.map +1 -1
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +0 -10
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs.map +1 -1
- package/validation/specifiedRules.d.mts +2 -3
- package/validation/specifiedRules.d.ts +2 -3
- package/validation/specifiedRules.js +0 -46
- package/validation/specifiedRules.js.map +1 -1
- package/validation/specifiedRules.mjs +0 -46
- package/validation/specifiedRules.mjs.map +1 -1
- package/validation/validate.d.mts +65 -7
- package/validation/validate.d.ts +65 -7
- package/validation/validate.js +0 -41
- package/validation/validate.js.map +1 -1
- package/validation/validate.mjs +0 -41
- package/validation/validate.mjs.map +1 -1
- package/version.d.mts +3 -6
- package/version.d.ts +3 -6
- package/version.js +2 -10
- package/version.js.map +1 -1
- package/version.mjs +2 -10
- package/version.mjs.map +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Incremental Execution */
|
|
1
2
|
import type { ObjMap } from "../../jsutils/ObjMap.js";
|
|
2
3
|
import type { Path } from "../../jsutils/Path.js";
|
|
3
4
|
import type { PromiseOrValue } from "../../jsutils/PromiseOrValue.js";
|
|
@@ -5,7 +6,8 @@ import type { GraphQLError, GraphQLFormattedError } from "../../error/GraphQLErr
|
|
|
5
6
|
import type { GraphQLObjectType, GraphQLOutputType, GraphQLResolveInfo } from "../../type/definition.js";
|
|
6
7
|
import type { DeferUsage, FieldDetailsList, GroupedFieldSet } from "../collectFields.js";
|
|
7
8
|
import type { SharedExecutionContext } from "../createSharedExecutionContext.js";
|
|
8
|
-
import type {
|
|
9
|
+
import type { ValidatedExecutionArgs } from "../ExecutionArgs.js";
|
|
10
|
+
import type { ExecutionResult, FormattedExecutionResult } from "../Executor.js";
|
|
9
11
|
import { Executor } from "../Executor.js";
|
|
10
12
|
import type { StreamUsage } from "../getStreamUsage.js";
|
|
11
13
|
import type { DeferUsageSet, ExecutionPlan } from "./buildExecutionPlan.js";
|
|
@@ -13,92 +15,195 @@ import { Computation } from "./Computation.js";
|
|
|
13
15
|
import { Queue } from "./Queue.js";
|
|
14
16
|
import type { Group, Stream, Task, Work } from "./WorkQueue.js";
|
|
15
17
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* - `extensions` is reserved for adding non-standard properties.
|
|
22
|
-
* - `incremental` is a list of the results from defer/stream directives.
|
|
18
|
+
* Results for an operation that produced incremental payloads.
|
|
19
|
+
* @typeParam TInitialData - Shape of the initial result data payload.
|
|
20
|
+
* @typeParam TDeferredData - Shape of deferred fragment data payloads.
|
|
21
|
+
* @typeParam TStreamItem - Shape of streamed list items.
|
|
22
|
+
* @typeParam TExtensions - Shape of extensions payloads.
|
|
23
23
|
*/
|
|
24
24
|
export interface ExperimentalIncrementalExecutionResults<TInitialData = ObjMap<unknown>, TDeferredData = ObjMap<unknown>, TStreamItem = unknown, TExtensions = ObjMap<unknown>> {
|
|
25
|
+
/** Initial execution result delivered before subsequent incremental payloads. */
|
|
25
26
|
initialResult: InitialIncrementalExecutionResult<TInitialData, TExtensions>;
|
|
27
|
+
/** Async stream of incremental payloads delivered after the initial result. */
|
|
26
28
|
subsequentResults: AsyncGenerator<SubsequentIncrementalExecutionResult<TDeferredData, TStreamItem, TExtensions>, void, void>;
|
|
27
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* JSON-serializable form of incremental execution results.
|
|
32
|
+
* @typeParam TInitial - Shape of the formatted initial result data payload.
|
|
33
|
+
* @typeParam TDeferredData - Shape of formatted deferred fragment data payloads.
|
|
34
|
+
* @typeParam TStreamItem - Shape of formatted streamed list items.
|
|
35
|
+
* @typeParam TExtensions - Shape of formatted extensions payloads.
|
|
36
|
+
*/
|
|
28
37
|
export interface FormattedExperimentalIncrementalExecutionResults<TInitial = ObjMap<unknown>, TDeferredData = ObjMap<unknown>, TStreamItem = unknown, TExtensions = ObjMap<unknown>> {
|
|
38
|
+
/** Formatted initial execution result. */
|
|
29
39
|
initialResult: FormattedInitialIncrementalExecutionResult<TInitial, TExtensions>;
|
|
40
|
+
/** Async stream of formatted incremental payloads. */
|
|
30
41
|
subsequentResults: AsyncGenerator<FormattedSubsequentIncrementalExecutionResult<TDeferredData, TStreamItem, TExtensions>, void, void>;
|
|
31
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Initial execution result for an operation that produced incremental payloads.
|
|
45
|
+
* @typeParam TData - Shape of the initial data payload.
|
|
46
|
+
* @typeParam TExtensions - Shape of the extensions payload.
|
|
47
|
+
*/
|
|
32
48
|
export interface InitialIncrementalExecutionResult<TData = ObjMap<unknown>, TExtensions = ObjMap<unknown>> extends ExecutionResult<TData, TExtensions> {
|
|
49
|
+
/** Data produced by the initial execution payload. */
|
|
33
50
|
data: TData;
|
|
51
|
+
/** Incremental payloads that are still pending after the initial result. */
|
|
34
52
|
pending: ReadonlyArray<PendingResult>;
|
|
53
|
+
/** Indicates that subsequent incremental payloads will follow. */
|
|
35
54
|
hasNext: true;
|
|
55
|
+
/** Additional non-standard metadata included in the initial result. */
|
|
36
56
|
extensions?: TExtensions;
|
|
37
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* JSON-serializable form of an initial incremental execution result.
|
|
60
|
+
* @typeParam TInitialData - Shape of the formatted initial data payload.
|
|
61
|
+
* @typeParam TExtensions - Shape of the formatted extensions payload.
|
|
62
|
+
*/
|
|
38
63
|
export interface FormattedInitialIncrementalExecutionResult<TInitialData = ObjMap<unknown>, TExtensions = ObjMap<unknown>> extends FormattedExecutionResult<TInitialData, TExtensions> {
|
|
64
|
+
/** Formatted data produced by the initial execution payload. */
|
|
39
65
|
data: TInitialData;
|
|
66
|
+
/** Formatted list of incremental payloads still pending after the initial result. */
|
|
40
67
|
pending: ReadonlyArray<PendingResult>;
|
|
68
|
+
/** Indicates whether subsequent incremental payloads will follow. */
|
|
41
69
|
hasNext: boolean;
|
|
70
|
+
/** Additional non-standard metadata included in the formatted initial result. */
|
|
42
71
|
extensions?: TExtensions;
|
|
43
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Subsequent payload produced by incremental execution.
|
|
75
|
+
* @typeParam TDeferredData - Shape of deferred fragment data payloads.
|
|
76
|
+
* @typeParam TStreamItem - Shape of streamed list items.
|
|
77
|
+
* @typeParam TExtensions - Shape of the extensions payload.
|
|
78
|
+
*/
|
|
44
79
|
export interface SubsequentIncrementalExecutionResult<TDeferredData = ObjMap<unknown>, TStreamItem = unknown, TExtensions = ObjMap<unknown>> {
|
|
80
|
+
/** Incremental payloads that became pending with this response. */
|
|
45
81
|
pending?: ReadonlyArray<PendingResult>;
|
|
82
|
+
/** Deferred or streamed payloads delivered by this response. */
|
|
46
83
|
incremental?: ReadonlyArray<IncrementalResult<TDeferredData, TStreamItem, TExtensions>>;
|
|
84
|
+
/** Incremental payloads that completed with this response. */
|
|
47
85
|
completed?: ReadonlyArray<CompletedResult>;
|
|
86
|
+
/** Indicates whether more incremental payloads will follow. */
|
|
48
87
|
hasNext: boolean;
|
|
88
|
+
/** Additional non-standard metadata included in this payload. */
|
|
49
89
|
extensions?: TExtensions;
|
|
50
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* JSON-serializable form of a subsequent incremental execution payload.
|
|
93
|
+
* @typeParam TDeferredData - Shape of formatted deferred fragment data payloads.
|
|
94
|
+
* @typeParam TStreamItem - Shape of formatted streamed list items.
|
|
95
|
+
* @typeParam TExtensions - Shape of formatted extensions payloads.
|
|
96
|
+
*/
|
|
51
97
|
export interface FormattedSubsequentIncrementalExecutionResult<TDeferredData = ObjMap<unknown>, TStreamItem = unknown, TExtensions = ObjMap<unknown>> {
|
|
98
|
+
/** Indicates whether more incremental payloads will follow. */
|
|
52
99
|
hasNext: boolean;
|
|
100
|
+
/** Formatted incremental payloads that became pending with this response. */
|
|
53
101
|
pending?: ReadonlyArray<PendingResult>;
|
|
102
|
+
/** Formatted deferred or streamed payloads delivered by this response. */
|
|
54
103
|
incremental?: ReadonlyArray<FormattedIncrementalResult<TDeferredData, TStreamItem, TExtensions>>;
|
|
104
|
+
/** Formatted incremental payloads that completed with this response. */
|
|
55
105
|
completed?: ReadonlyArray<FormattedCompletedResult>;
|
|
106
|
+
/** Additional non-standard metadata included in this formatted payload. */
|
|
56
107
|
extensions?: TExtensions;
|
|
57
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Incremental payload produced by a deferred fragment.
|
|
111
|
+
* @typeParam TDeferredData - Shape of deferred fragment data.
|
|
112
|
+
* @typeParam TExtensions - Shape of extensions payloads.
|
|
113
|
+
*/
|
|
58
114
|
export interface IncrementalDeferResult<TDeferredData = ObjMap<unknown>, TExtensions = ObjMap<unknown>> {
|
|
115
|
+
/** Identifier matching this payload to a pending deferred fragment. */
|
|
59
116
|
id: string;
|
|
117
|
+
/** Path from the deferred fragment location to this payload. */
|
|
60
118
|
subPath?: ReadonlyArray<string | number>;
|
|
119
|
+
/** Errors raised while executing the deferred fragment. */
|
|
61
120
|
errors?: ReadonlyArray<GraphQLError>;
|
|
121
|
+
/** Data produced by the deferred fragment. */
|
|
62
122
|
data: TDeferredData;
|
|
123
|
+
/** Additional non-standard metadata included in this payload. */
|
|
63
124
|
extensions?: TExtensions;
|
|
64
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* JSON-serializable form of a deferred fragment payload.
|
|
128
|
+
* @typeParam TDeferredData - Shape of formatted deferred fragment data.
|
|
129
|
+
* @typeParam TExtensions - Shape of formatted extensions payloads.
|
|
130
|
+
*/
|
|
65
131
|
export interface FormattedIncrementalDeferResult<TDeferredData = ObjMap<unknown>, TExtensions = ObjMap<unknown>> {
|
|
132
|
+
/** Formatted errors raised while executing the deferred fragment. */
|
|
66
133
|
errors?: ReadonlyArray<GraphQLFormattedError>;
|
|
134
|
+
/** Formatted data produced by the deferred fragment. */
|
|
67
135
|
data: TDeferredData;
|
|
136
|
+
/** Identifier matching this payload to a pending deferred fragment. */
|
|
68
137
|
id: string;
|
|
138
|
+
/** Path from the deferred fragment location to this payload. */
|
|
69
139
|
subPath?: ReadonlyArray<string | number>;
|
|
140
|
+
/** Additional non-standard metadata included in this formatted payload. */
|
|
70
141
|
extensions?: TExtensions;
|
|
71
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* Incremental payload produced by a streamed list field.
|
|
145
|
+
* @typeParam TStreamItem - Shape of streamed list items.
|
|
146
|
+
* @typeParam TExtensions - Shape of extensions payloads.
|
|
147
|
+
*/
|
|
72
148
|
export interface IncrementalStreamResult<TStreamItem = unknown, TExtensions = ObjMap<unknown>> {
|
|
149
|
+
/** Identifier matching this payload to a pending stream. */
|
|
73
150
|
id: string;
|
|
151
|
+
/** Path from the streamed field location to these items. */
|
|
74
152
|
subPath?: ReadonlyArray<string | number>;
|
|
153
|
+
/** Errors raised while producing streamed items. */
|
|
75
154
|
errors?: ReadonlyArray<GraphQLError>;
|
|
155
|
+
/** Streamed list items delivered by this payload. */
|
|
76
156
|
items: ReadonlyArray<TStreamItem>;
|
|
157
|
+
/** Additional non-standard metadata included in this payload. */
|
|
77
158
|
extensions?: TExtensions;
|
|
78
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* JSON-serializable form of a streamed list payload.
|
|
162
|
+
* @typeParam TStreamItem - Shape of formatted streamed list items.
|
|
163
|
+
* @typeParam TExtensions - Shape of formatted extensions payloads.
|
|
164
|
+
*/
|
|
79
165
|
export interface FormattedIncrementalStreamResult<TStreamItem = Array<unknown>, TExtensions = ObjMap<unknown>> {
|
|
166
|
+
/** Formatted errors raised while producing streamed items. */
|
|
80
167
|
errors?: ReadonlyArray<GraphQLFormattedError>;
|
|
168
|
+
/** Formatted streamed list items delivered by this payload. */
|
|
81
169
|
items: ReadonlyArray<TStreamItem>;
|
|
170
|
+
/** Identifier matching this payload to a pending stream. */
|
|
82
171
|
id: string;
|
|
172
|
+
/** Path from the streamed field location to these items. */
|
|
83
173
|
subPath?: ReadonlyArray<string | number>;
|
|
174
|
+
/** Additional non-standard metadata included in this formatted payload. */
|
|
84
175
|
extensions?: TExtensions;
|
|
85
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* Deferred fragment or streamed list payload produced by incremental execution.
|
|
179
|
+
* @typeParam TDeferredData - Shape of deferred fragment data.
|
|
180
|
+
* @typeParam TStreamItem - Shape of streamed list items.
|
|
181
|
+
* @typeParam TExtensions - Shape of extensions payloads.
|
|
182
|
+
*/
|
|
86
183
|
export type IncrementalResult<TDeferredData = ObjMap<unknown>, TStreamItem = unknown, TExtensions = ObjMap<unknown>> = IncrementalDeferResult<TDeferredData, TExtensions> | IncrementalStreamResult<TStreamItem, TExtensions>;
|
|
184
|
+
/**
|
|
185
|
+
* JSON-serializable deferred fragment or streamed list payload.
|
|
186
|
+
* @typeParam TDeferredData - Shape of formatted deferred fragment data.
|
|
187
|
+
* @typeParam TStreamItem - Shape of formatted streamed list items.
|
|
188
|
+
* @typeParam TExtensions - Shape of formatted extensions payloads.
|
|
189
|
+
*/
|
|
87
190
|
export type FormattedIncrementalResult<TDeferredData = ObjMap<unknown>, TStreamItem = unknown, TExtensions = ObjMap<unknown>> = FormattedIncrementalDeferResult<TDeferredData, TExtensions> | FormattedIncrementalStreamResult<TStreamItem, TExtensions>;
|
|
191
|
+
/** @internal */
|
|
88
192
|
export interface PendingResult {
|
|
89
193
|
id: string;
|
|
90
194
|
path: ReadonlyArray<string | number>;
|
|
91
195
|
label?: string;
|
|
92
196
|
}
|
|
197
|
+
/** @internal */
|
|
93
198
|
export interface CompletedResult {
|
|
94
199
|
id: string;
|
|
95
200
|
errors?: ReadonlyArray<GraphQLError>;
|
|
96
201
|
}
|
|
202
|
+
/** @internal */
|
|
97
203
|
export interface FormattedCompletedResult {
|
|
98
204
|
id: string;
|
|
99
205
|
errors?: ReadonlyArray<GraphQLFormattedError>;
|
|
100
206
|
}
|
|
101
|
-
/** @internal */
|
|
102
207
|
interface ExecutionGroup extends Task<ExecutionGroupValue, StreamItemValue, DeliveryGroup, ItemStream> {
|
|
103
208
|
groups: ReadonlyArray<DeliveryGroup>;
|
|
104
209
|
path: Path | undefined;
|
|
@@ -110,26 +215,32 @@ export interface DeliveryGroup extends Group<DeliveryGroup> {
|
|
|
110
215
|
label: string | undefined;
|
|
111
216
|
parent: DeliveryGroup | undefined;
|
|
112
217
|
}
|
|
218
|
+
/** @internal */
|
|
113
219
|
export interface ItemStream extends Stream<ExecutionGroupValue, StreamItemValue, DeliveryGroup, ItemStream> {
|
|
114
220
|
path: Path;
|
|
115
221
|
label: string | undefined;
|
|
116
222
|
initialCount: number;
|
|
117
223
|
}
|
|
224
|
+
/** @internal */
|
|
118
225
|
export interface ExecutionGroupValue {
|
|
119
226
|
deliveryGroups: ReadonlyArray<DeliveryGroup>;
|
|
120
227
|
path: ReadonlyArray<string | number>;
|
|
121
228
|
errors?: ReadonlyArray<GraphQLError>;
|
|
122
229
|
data: ObjMap<unknown>;
|
|
123
230
|
}
|
|
231
|
+
/** @internal */
|
|
124
232
|
export type IncrementalWork = Work<ExecutionGroupValue, StreamItemValue, DeliveryGroup, ItemStream>;
|
|
233
|
+
/** @internal */
|
|
125
234
|
export interface ExecutionGroupResult {
|
|
126
235
|
value: ExecutionGroupValue;
|
|
127
236
|
work?: IncrementalWork | undefined;
|
|
128
237
|
}
|
|
238
|
+
/** @internal */
|
|
129
239
|
export interface StreamItemValue {
|
|
130
240
|
errors?: ReadonlyArray<GraphQLError>;
|
|
131
241
|
item: unknown;
|
|
132
242
|
}
|
|
243
|
+
/** @internal */
|
|
133
244
|
export interface StreamItemResult {
|
|
134
245
|
value: StreamItemValue;
|
|
135
246
|
work?: IncrementalWork | undefined;
|
|
@@ -146,6 +257,8 @@ export declare class IncrementalExecutor<TExperimental = ExperimentalIncremental
|
|
|
146
257
|
/**
|
|
147
258
|
* Given a completed execution context and data, build the `{ errors, data }`
|
|
148
259
|
* response defined by the "Response" section of the GraphQL specification.
|
|
260
|
+
*
|
|
261
|
+
* @internal
|
|
149
262
|
*/
|
|
150
263
|
buildResponse(data: ObjMap<unknown> | null): ExecutionResult | TExperimental;
|
|
151
264
|
executeCollectedRootFields(rootType: GraphQLObjectType, rootValue: unknown, originalGroupedFieldSet: GroupedFieldSet, serially: boolean, newDeferUsages: ReadonlyArray<DeferUsage>): PromiseOrValue<ObjMap<unknown>>;
|
|
@@ -162,6 +275,8 @@ export declare class IncrementalExecutor<TExperimental = ExperimentalIncremental
|
|
|
162
275
|
*
|
|
163
276
|
* Note: As defer directives may be used with operations returning lists,
|
|
164
277
|
* a DeferUsage object may correspond to many DeliveryGroups.
|
|
278
|
+
*
|
|
279
|
+
* @internal
|
|
165
280
|
*/
|
|
166
281
|
getNewDeliveryGroupMap(newDeferUsages: ReadonlyArray<DeferUsage>, deliveryGroupMap: ReadonlyMap<DeferUsage, DeliveryGroup> | undefined, path: Path | undefined): {
|
|
167
282
|
newDeliveryGroups: ReadonlyArray<DeliveryGroup>;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.IncrementalExecutor = void 0;
|
|
4
|
-
/* eslint-disable max-params */
|
|
5
4
|
const invariant_ts_1 = require("../../jsutils/invariant.js");
|
|
6
5
|
const isPromise_ts_1 = require("../../jsutils/isPromise.js");
|
|
7
6
|
const memoize1_ts_1 = require("../../jsutils/memoize1.js");
|
|
@@ -19,7 +18,6 @@ const IncrementalPublisher_ts_1 = require("./IncrementalPublisher.js");
|
|
|
19
18
|
const Queue_ts_1 = require("./Queue.js");
|
|
20
19
|
const buildExecutionPlanFromInitial = (0, memoize1_ts_1.memoize1)((groupedFieldSet) => (0, buildExecutionPlan_ts_1.buildExecutionPlan)(groupedFieldSet));
|
|
21
20
|
const buildExecutionPlanFromDeferred = (0, memoize2_ts_1.memoize2)((groupedFieldSet, deferUsageSet) => (0, buildExecutionPlan_ts_1.buildExecutionPlan)(groupedFieldSet, deferUsageSet));
|
|
22
|
-
/** @internal */
|
|
23
21
|
class IncrementalExecutor extends Executor_ts_1.Executor {
|
|
24
22
|
constructor(validatedExecutionArgs, sharedExecutionContext, deferUsageSet) {
|
|
25
23
|
super(validatedExecutionArgs, sharedExecutionContext);
|
|
@@ -46,10 +44,6 @@ class IncrementalExecutor extends Executor_ts_1.Executor {
|
|
|
46
44
|
(0, invariant_ts_1.invariant)(false);
|
|
47
45
|
}
|
|
48
46
|
}
|
|
49
|
-
/**
|
|
50
|
-
* Given a completed execution context and data, build the `{ errors, data }`
|
|
51
|
-
* response defined by the "Response" section of the GraphQL specification.
|
|
52
|
-
*/
|
|
53
47
|
buildResponse(data) {
|
|
54
48
|
const work = this.getIncrementalWork();
|
|
55
49
|
const { tasks, streams } = work;
|
|
@@ -117,7 +111,6 @@ class IncrementalExecutor extends Executor_ts_1.Executor {
|
|
|
117
111
|
const parentDeferUsages = this.deferUsageSet;
|
|
118
112
|
if (this.validatedExecutionArgs.enableEarlyExecution) {
|
|
119
113
|
if (this.shouldDefer(parentDeferUsages, deferUsageSet)) {
|
|
120
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
121
114
|
Promise.resolve().then(() => executionGroup.computation.prime());
|
|
122
115
|
}
|
|
123
116
|
else {
|
|
@@ -188,31 +181,20 @@ class IncrementalExecutor extends Executor_ts_1.Executor {
|
|
|
188
181
|
streams: filteredStreams,
|
|
189
182
|
};
|
|
190
183
|
}
|
|
191
|
-
/**
|
|
192
|
-
* Instantiates new DeliveryGroups for the given path, returning an
|
|
193
|
-
* updated map of DeferUsage objects to DeliveryGroups.
|
|
194
|
-
*
|
|
195
|
-
* Note: As defer directives may be used with operations returning lists,
|
|
196
|
-
* a DeferUsage object may correspond to many DeliveryGroups.
|
|
197
|
-
*/
|
|
198
184
|
getNewDeliveryGroupMap(newDeferUsages, deliveryGroupMap, path) {
|
|
199
185
|
const newDeliveryGroups = [];
|
|
200
186
|
const newDeliveryGroupMap = new Map(deliveryGroupMap);
|
|
201
|
-
// For each new deferUsage object:
|
|
202
187
|
for (const newDeferUsage of newDeferUsages) {
|
|
203
188
|
const parentDeferUsage = newDeferUsage.parentDeferUsage;
|
|
204
189
|
const parent = parentDeferUsage === undefined
|
|
205
190
|
? undefined
|
|
206
191
|
: deliveryGroupFromDeferUsage(parentDeferUsage, newDeliveryGroupMap);
|
|
207
|
-
// Create a new DeliveryGroup object
|
|
208
192
|
const deliveryGroup = {
|
|
209
193
|
path,
|
|
210
194
|
label: newDeferUsage.label,
|
|
211
195
|
parent,
|
|
212
196
|
};
|
|
213
|
-
// Add it to the list of new groups
|
|
214
197
|
newDeliveryGroups.push(deliveryGroup);
|
|
215
|
-
// Update the map
|
|
216
198
|
newDeliveryGroupMap.set(newDeferUsage, deliveryGroup);
|
|
217
199
|
}
|
|
218
200
|
return {
|
|
@@ -221,10 +203,6 @@ class IncrementalExecutor extends Executor_ts_1.Executor {
|
|
|
221
203
|
};
|
|
222
204
|
}
|
|
223
205
|
shouldDefer(parentDeferUsages, deferUsages) {
|
|
224
|
-
// If we have a new child defer usage, defer.
|
|
225
|
-
// Otherwise, this defer usage was already deferred when it was initially
|
|
226
|
-
// encountered, and is now in the midst of executing early, so the new
|
|
227
|
-
// deferred grouped fields set can be executed immediately.
|
|
228
206
|
return (parentDeferUsages === undefined ||
|
|
229
207
|
!Array.from(deferUsages).every((deferUsage) => parentDeferUsages.has(deferUsage)));
|
|
230
208
|
}
|
|
@@ -271,7 +249,6 @@ class IncrementalExecutor extends Executor_ts_1.Executor {
|
|
|
271
249
|
let iteration;
|
|
272
250
|
try {
|
|
273
251
|
if (isAsync) {
|
|
274
|
-
// eslint-disable-next-line no-await-in-loop
|
|
275
252
|
iteration = await iterator.next();
|
|
276
253
|
if (stopRequested) {
|
|
277
254
|
return;
|
|
@@ -287,11 +264,9 @@ class IncrementalExecutor extends Executor_ts_1.Executor {
|
|
|
287
264
|
if (iteration.done) {
|
|
288
265
|
finishedNormally = true;
|
|
289
266
|
const stopped = stop();
|
|
290
|
-
/* node:coverage disable */
|
|
291
267
|
if ((0, isPromise_ts_1.isPromise)(stopped)) {
|
|
292
268
|
stopped.catch(() => undefined);
|
|
293
269
|
}
|
|
294
|
-
/* node:coverage enable */
|
|
295
270
|
return;
|
|
296
271
|
}
|
|
297
272
|
const itemPath = (0, Path_ts_1.addPath)(streamPath, index, undefined);
|
|
@@ -306,7 +281,6 @@ class IncrementalExecutor extends Executor_ts_1.Executor {
|
|
|
306
281
|
});
|
|
307
282
|
}
|
|
308
283
|
else {
|
|
309
|
-
// eslint-disable-next-line no-await-in-loop
|
|
310
284
|
streamItemResult = await streamItemResult;
|
|
311
285
|
if (stopRequested) {
|
|
312
286
|
return;
|
|
@@ -315,7 +289,6 @@ class IncrementalExecutor extends Executor_ts_1.Executor {
|
|
|
315
289
|
}
|
|
316
290
|
const pushResult = push(streamItemResult);
|
|
317
291
|
if ((0, isPromise_ts_1.isPromise)(pushResult)) {
|
|
318
|
-
// eslint-disable-next-line no-await-in-loop
|
|
319
292
|
await pushResult;
|
|
320
293
|
if (stopRequested) {
|
|
321
294
|
return;
|
|
@@ -323,9 +296,7 @@ class IncrementalExecutor extends Executor_ts_1.Executor {
|
|
|
323
296
|
}
|
|
324
297
|
index += 1;
|
|
325
298
|
}
|
|
326
|
-
},
|
|
327
|
-
// set initialCapacity to 100 by default
|
|
328
|
-
100);
|
|
299
|
+
}, 100);
|
|
329
300
|
return queue;
|
|
330
301
|
}
|
|
331
302
|
completeStreamItem(itemPath, item, fieldDetailsList, info, itemType) {
|
|
@@ -384,7 +355,6 @@ function getDeliveryGroups(deferUsageSet, deliveryGroupMap) {
|
|
|
384
355
|
return Array.from(deferUsageSet).map((deferUsage) => deliveryGroupFromDeferUsage(deferUsage, deliveryGroupMap));
|
|
385
356
|
}
|
|
386
357
|
function deliveryGroupFromDeferUsage(deferUsage, deliveryGroupMap) {
|
|
387
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
388
358
|
return deliveryGroupMap.get(deferUsage);
|
|
389
359
|
}
|
|
390
360
|
//# sourceMappingURL=IncrementalExecutor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IncrementalExecutor.js","sourceRoot":"","sources":["../../../src/execution/incremental/IncrementalExecutor.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable max-params */\nimport { invariant } from '../../jsutils/invariant.ts';\nimport { isPromise, isPromiseLike } from '../../jsutils/isPromise.ts';\nimport { memoize1 } from '../../jsutils/memoize1.ts';\nimport { memoize2 } from '../../jsutils/memoize2.ts';\nimport type { ObjMap } from '../../jsutils/ObjMap.ts';\nimport type { Path } from '../../jsutils/Path.ts';\nimport { addPath, pathToArray } from '../../jsutils/Path.ts';\nimport type { PromiseOrValue } from '../../jsutils/PromiseOrValue.ts';\n\nimport type {\n GraphQLError,\n GraphQLFormattedError,\n} from '../../error/GraphQLError.ts';\nimport { locatedError } from '../../error/locatedError.ts';\n\nimport type { FieldNode } from '../../language/ast.ts';\nimport { OperationTypeNode } from '../../language/ast.ts';\n\nimport type {\n GraphQLObjectType,\n GraphQLOutputType,\n GraphQLResolveInfo,\n} from '../../type/definition.ts';\n\nimport type {\n DeferUsage,\n FieldDetailsList,\n GroupedFieldSet,\n} from '../collectFields.ts';\nimport { collectSubfields as _collectSubfields } from '../collectFields.ts';\nimport { collectIteratorPromises } from '../collectIteratorPromises.ts';\nimport type { SharedExecutionContext } from '../createSharedExecutionContext.ts';\nimport type {\n ExecutionResult,\n FormattedExecutionResult,\n ValidatedExecutionArgs,\n} from '../Executor.ts';\nimport { Executor } from '../Executor.ts';\nimport type { StreamUsage } from '../getStreamUsage.ts';\nimport { returnIteratorCatchingErrors } from '../returnIteratorCatchingErrors.ts';\n\nimport type { DeferUsageSet, ExecutionPlan } from './buildExecutionPlan.ts';\nimport { buildExecutionPlan } from './buildExecutionPlan.ts';\nimport { Computation } from './Computation.ts';\nimport { IncrementalPublisher } from './IncrementalPublisher.ts';\nimport { Queue } from './Queue.ts';\nimport type { Group, Stream, Task, Work } from './WorkQueue.ts';\n\nconst buildExecutionPlanFromInitial = memoize1(\n (groupedFieldSet: GroupedFieldSet) => buildExecutionPlan(groupedFieldSet),\n);\n\nconst buildExecutionPlanFromDeferred = memoize2(\n (groupedFieldSet: GroupedFieldSet, deferUsageSet: DeferUsageSet) =>\n buildExecutionPlan(groupedFieldSet, deferUsageSet),\n);\n\n/**\n * The result of GraphQL execution.\n *\n * - `errors` is included when any errors occurred as a non-empty array.\n * - `data` is the result of a successful execution of the query.\n * - `hasNext` is true if a future payload is expected.\n * - `extensions` is reserved for adding non-standard properties.\n * - `incremental` is a list of the results from defer/stream directives.\n */\nexport interface ExperimentalIncrementalExecutionResults<\n TInitialData = ObjMap<unknown>,\n TDeferredData = ObjMap<unknown>,\n TStreamItem = unknown,\n TExtensions = ObjMap<unknown>,\n> {\n initialResult: InitialIncrementalExecutionResult<TInitialData, TExtensions>;\n subsequentResults: AsyncGenerator<\n SubsequentIncrementalExecutionResult<\n TDeferredData,\n TStreamItem,\n TExtensions\n >,\n void,\n void\n >;\n}\n\nexport interface FormattedExperimentalIncrementalExecutionResults<\n TInitial = ObjMap<unknown>,\n TDeferredData = ObjMap<unknown>,\n TStreamItem = unknown,\n TExtensions = ObjMap<unknown>,\n> {\n initialResult: FormattedInitialIncrementalExecutionResult<\n TInitial,\n TExtensions\n >;\n subsequentResults: AsyncGenerator<\n FormattedSubsequentIncrementalExecutionResult<\n TDeferredData,\n TStreamItem,\n TExtensions\n >,\n void,\n void\n >;\n}\nexport interface InitialIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends ExecutionResult<TData, TExtensions> {\n data: TData;\n pending: ReadonlyArray<PendingResult>;\n hasNext: true;\n extensions?: TExtensions;\n}\n\nexport interface FormattedInitialIncrementalExecutionResult<\n TInitialData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends FormattedExecutionResult<TInitialData, TExtensions> {\n data: TInitialData;\n pending: ReadonlyArray<PendingResult>;\n hasNext: boolean;\n extensions?: TExtensions;\n}\n\nexport interface SubsequentIncrementalExecutionResult<\n TDeferredData = ObjMap<unknown>,\n TStreamItem = unknown,\n TExtensions = ObjMap<unknown>,\n> {\n pending?: ReadonlyArray<PendingResult>;\n incremental?: ReadonlyArray<\n IncrementalResult<TDeferredData, TStreamItem, TExtensions>\n >;\n completed?: ReadonlyArray<CompletedResult>;\n hasNext: boolean;\n extensions?: TExtensions;\n}\n\nexport interface FormattedSubsequentIncrementalExecutionResult<\n TDeferredData = ObjMap<unknown>,\n TStreamItem = unknown,\n TExtensions = ObjMap<unknown>,\n> {\n hasNext: boolean;\n pending?: ReadonlyArray<PendingResult>;\n incremental?: ReadonlyArray<\n FormattedIncrementalResult<TDeferredData, TStreamItem, TExtensions>\n >;\n completed?: ReadonlyArray<FormattedCompletedResult>;\n extensions?: TExtensions;\n}\n\nexport interface IncrementalDeferResult<\n TDeferredData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n id: string;\n subPath?: ReadonlyArray<string | number>;\n errors?: ReadonlyArray<GraphQLError>;\n data: TDeferredData;\n extensions?: TExtensions;\n}\n\nexport interface FormattedIncrementalDeferResult<\n TDeferredData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n data: TDeferredData;\n id: string;\n subPath?: ReadonlyArray<string | number>;\n extensions?: TExtensions;\n}\n\nexport interface IncrementalStreamResult<\n TStreamItem = unknown,\n TExtensions = ObjMap<unknown>,\n> {\n id: string;\n subPath?: ReadonlyArray<string | number>;\n errors?: ReadonlyArray<GraphQLError>;\n items: ReadonlyArray<TStreamItem>;\n extensions?: TExtensions;\n}\n\nexport interface FormattedIncrementalStreamResult<\n TStreamItem = Array<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n items: ReadonlyArray<TStreamItem>;\n id: string;\n subPath?: ReadonlyArray<string | number>;\n extensions?: TExtensions;\n}\n\nexport type IncrementalResult<\n TDeferredData = ObjMap<unknown>,\n TStreamItem = unknown,\n TExtensions = ObjMap<unknown>,\n> =\n | IncrementalDeferResult<TDeferredData, TExtensions>\n | IncrementalStreamResult<TStreamItem, TExtensions>;\n\nexport type FormattedIncrementalResult<\n TDeferredData = ObjMap<unknown>,\n TStreamItem = unknown,\n TExtensions = ObjMap<unknown>,\n> =\n | FormattedIncrementalDeferResult<TDeferredData, TExtensions>\n | FormattedIncrementalStreamResult<TStreamItem, TExtensions>;\n\nexport interface PendingResult {\n id: string;\n path: ReadonlyArray<string | number>;\n label?: string;\n}\n\nexport interface CompletedResult {\n id: string;\n errors?: ReadonlyArray<GraphQLError>;\n}\n\nexport interface FormattedCompletedResult {\n id: string;\n errors?: ReadonlyArray<GraphQLFormattedError>;\n}\n\n/** @internal */\ninterface ExecutionGroup extends Task<\n ExecutionGroupValue,\n StreamItemValue,\n DeliveryGroup,\n ItemStream\n> {\n groups: ReadonlyArray<DeliveryGroup>;\n path: Path | undefined;\n computation: Computation<ExecutionGroupResult>;\n}\n\n/** @internal */\nexport interface DeliveryGroup extends Group<DeliveryGroup> {\n path: Path | undefined;\n label: string | undefined;\n parent: DeliveryGroup | undefined;\n}\n\nexport interface ItemStream extends Stream<\n ExecutionGroupValue,\n StreamItemValue,\n DeliveryGroup,\n ItemStream\n> {\n path: Path;\n label: string | undefined;\n initialCount: number;\n}\n\nexport interface ExecutionGroupValue {\n deliveryGroups: ReadonlyArray<DeliveryGroup>;\n path: ReadonlyArray<string | number>;\n errors?: ReadonlyArray<GraphQLError>;\n data: ObjMap<unknown>;\n}\n\nexport type IncrementalWork = Work<\n ExecutionGroupValue,\n StreamItemValue,\n DeliveryGroup,\n ItemStream\n>;\n\nexport interface ExecutionGroupResult {\n value: ExecutionGroupValue;\n work?: IncrementalWork | undefined;\n}\n\nexport interface StreamItemValue {\n errors?: ReadonlyArray<GraphQLError>;\n item: unknown;\n}\n\nexport interface StreamItemResult {\n value: StreamItemValue;\n work?: IncrementalWork | undefined;\n}\n\n/** @internal */\nexport class IncrementalExecutor<\n TExperimental = ExperimentalIncrementalExecutionResults,\n> extends Executor<ReadonlyMap<DeferUsage, DeliveryGroup>, TExperimental> {\n deferUsageSet?: DeferUsageSet | undefined;\n groups: Array<DeliveryGroup>;\n tasks: Array<ExecutionGroup>;\n streams: Array<ItemStream>;\n\n constructor(\n validatedExecutionArgs: ValidatedExecutionArgs,\n sharedExecutionContext?: SharedExecutionContext,\n deferUsageSet?: DeferUsageSet,\n ) {\n super(validatedExecutionArgs, sharedExecutionContext);\n this.deferUsageSet = deferUsageSet;\n this.groups = [];\n this.tasks = [];\n this.streams = [];\n }\n\n getCreateSubExecutor(): (\n deferUsageSet?: DeferUsageSet,\n ) => IncrementalExecutor<TExperimental> {\n const validatedExecutionArgs = this.validatedExecutionArgs;\n const sharedExecutionContext = this.sharedExecutionContext;\n\n return (deferUsageSet?: DeferUsageSet) =>\n new IncrementalExecutor<TExperimental>(\n validatedExecutionArgs,\n sharedExecutionContext,\n deferUsageSet,\n );\n }\n\n override abort(reason?: unknown): void {\n super.abort(reason);\n for (const task of this.tasks) {\n const aborted = task.computation.abort(reason);\n invariant(!isPromise(aborted));\n }\n for (const stream of this.streams) {\n const aborted = stream.queue.abort(reason);\n invariant(!isPromise(aborted));\n }\n }\n\n /**\n * Given a completed execution context and data, build the `{ errors, data }`\n * response defined by the \"Response\" section of the GraphQL specification.\n */\n override buildResponse(\n data: ObjMap<unknown> | null,\n ): ExecutionResult | TExperimental {\n const work = this.getIncrementalWork();\n const { tasks, streams } = work;\n if (tasks?.length === 0 && streams?.length === 0) {\n return super.buildResponse(data);\n }\n\n const errors = this.collectedErrors.errors;\n invariant(data !== null);\n const incrementalPublisher = new IncrementalPublisher();\n return incrementalPublisher.buildResponse(\n data,\n errors,\n work,\n this.validatedExecutionArgs.externalAbortSignal,\n this.getFinishSharedExecution(),\n ) as TExperimental;\n }\n\n override executeCollectedRootFields(\n rootType: GraphQLObjectType,\n rootValue: unknown,\n originalGroupedFieldSet: GroupedFieldSet,\n serially: boolean,\n newDeferUsages: ReadonlyArray<DeferUsage>,\n ): PromiseOrValue<ObjMap<unknown>> {\n if (newDeferUsages.length === 0) {\n return this.executeRootGroupedFieldSet(\n rootType,\n rootValue,\n originalGroupedFieldSet,\n serially,\n undefined,\n );\n }\n\n invariant(\n this.validatedExecutionArgs.operation.operation !==\n OperationTypeNode.SUBSCRIPTION,\n '`@defer` directive not supported on subscription operations. Disable `@defer` by setting the `if` argument to `false`.',\n );\n\n const { newDeliveryGroups, newDeliveryGroupMap } =\n this.getNewDeliveryGroupMap(newDeferUsages, undefined, undefined);\n\n const { groupedFieldSet, newGroupedFieldSets } =\n this.buildRootExecutionPlan(originalGroupedFieldSet);\n\n const data = this.executeRootGroupedFieldSet(\n rootType,\n rootValue,\n groupedFieldSet,\n serially,\n newDeliveryGroupMap,\n );\n\n this.groups.push(...newDeliveryGroups);\n\n if (newGroupedFieldSets.size > 0) {\n this.collectExecutionGroups(\n rootType,\n rootValue,\n undefined,\n newGroupedFieldSets,\n newDeliveryGroupMap,\n );\n }\n\n return data;\n }\n\n buildRootExecutionPlan(\n originalGroupedFieldSet: GroupedFieldSet,\n ): ExecutionPlan {\n return buildExecutionPlanFromInitial(originalGroupedFieldSet);\n }\n\n override executeCollectedSubfields(\n parentType: GraphQLObjectType,\n sourceValue: unknown,\n path: Path | undefined,\n originalGroupedFieldSet: GroupedFieldSet,\n newDeferUsages: ReadonlyArray<DeferUsage>,\n deliveryGroupMap: ReadonlyMap<DeferUsage, DeliveryGroup> | undefined,\n ): PromiseOrValue<ObjMap<unknown>> {\n if (newDeferUsages.length > 0) {\n invariant(\n this.validatedExecutionArgs.operation.operation !==\n OperationTypeNode.SUBSCRIPTION,\n '`@defer` directive not supported on subscription operations. Disable `@defer` by setting the `if` argument to `false`.',\n );\n }\n\n if (deliveryGroupMap === undefined && newDeferUsages.length === 0) {\n return this.executeFields(\n parentType,\n sourceValue,\n path,\n originalGroupedFieldSet,\n deliveryGroupMap,\n );\n }\n\n const { newDeliveryGroups, newDeliveryGroupMap } =\n this.getNewDeliveryGroupMap(newDeferUsages, deliveryGroupMap, path);\n\n const { groupedFieldSet, newGroupedFieldSets } = this.buildSubExecutionPlan(\n originalGroupedFieldSet,\n );\n\n const data = this.executeFields(\n parentType,\n sourceValue,\n path,\n groupedFieldSet,\n newDeliveryGroupMap,\n );\n\n this.groups.push(...newDeliveryGroups);\n\n if (newGroupedFieldSets.size > 0) {\n this.collectExecutionGroups(\n parentType,\n sourceValue,\n path,\n newGroupedFieldSets,\n newDeliveryGroupMap,\n );\n }\n\n return data;\n }\n\n buildSubExecutionPlan(\n originalGroupedFieldSet: GroupedFieldSet,\n ): ExecutionPlan {\n return this.deferUsageSet === undefined\n ? buildExecutionPlanFromInitial(originalGroupedFieldSet)\n : buildExecutionPlanFromDeferred(\n originalGroupedFieldSet,\n this.deferUsageSet,\n );\n }\n\n collectExecutionGroups(\n parentType: GraphQLObjectType,\n sourceValue: unknown,\n path: Path | undefined,\n newGroupedFieldSets: Map<DeferUsageSet, GroupedFieldSet>,\n deliveryGroupMap: ReadonlyMap<DeferUsage, DeliveryGroup>,\n ): void {\n const createSubExecutor = this.getCreateSubExecutor();\n for (const [deferUsageSet, groupedFieldSet] of newGroupedFieldSets) {\n const deliveryGroups = getDeliveryGroups(deferUsageSet, deliveryGroupMap);\n\n const executor = createSubExecutor(deferUsageSet);\n\n const executionGroup: ExecutionGroup = {\n groups: deliveryGroups,\n path,\n computation: new Computation(\n () =>\n executor.executeExecutionGroup(\n deliveryGroups,\n parentType,\n sourceValue,\n path,\n groupedFieldSet,\n deliveryGroupMap,\n ),\n (reason) => executor.abort(reason),\n ),\n };\n\n const parentDeferUsages = this.deferUsageSet;\n\n if (this.validatedExecutionArgs.enableEarlyExecution) {\n if (this.shouldDefer(parentDeferUsages, deferUsageSet)) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n Promise.resolve().then(() => executionGroup.computation.prime());\n } else {\n executionGroup.computation.prime();\n }\n }\n\n this.tasks.push(executionGroup);\n }\n }\n\n executeExecutionGroup(\n deliveryGroups: ReadonlyArray<DeliveryGroup>,\n parentType: GraphQLObjectType,\n sourceValue: unknown,\n path: Path | undefined,\n groupedFieldSet: GroupedFieldSet,\n deliveryGroupMap: ReadonlyMap<DeferUsage, DeliveryGroup>,\n ): PromiseOrValue<ExecutionGroupResult> {\n let result;\n try {\n result = this.executeFields(\n parentType,\n sourceValue,\n path,\n groupedFieldSet,\n deliveryGroupMap,\n );\n } catch (error) {\n this.abort();\n throw error;\n }\n\n if (isPromise(result)) {\n return result.then(\n (resolved) =>\n this.buildExecutionGroupResult(deliveryGroups, path, resolved),\n (error: unknown) => {\n this.abort();\n throw error;\n },\n );\n }\n\n return this.buildExecutionGroupResult(deliveryGroups, path, result);\n }\n\n buildExecutionGroupResult(\n deliveryGroups: ReadonlyArray<DeliveryGroup>,\n path: Path | undefined,\n result: ObjMap<unknown>,\n ): ExecutionGroupResult {\n const data = result;\n const errors = this.collectedErrors.errors;\n return this.finish({\n value: errors.length\n ? { deliveryGroups, path: pathToArray(path), errors, data }\n : { deliveryGroups, path: pathToArray(path), data },\n work: this.getIncrementalWork(),\n });\n }\n\n getIncrementalWork(): IncrementalWork {\n const { groups, tasks, streams, collectedErrors } = this;\n\n if (collectedErrors.errors.length === 0) {\n return { groups, tasks, streams };\n }\n\n const cancellationReason = new Error(\n 'Cancelled secondary to null within original result',\n );\n\n const filteredTasks: Array<ExecutionGroup> = [];\n for (const task of tasks) {\n if (collectedErrors.hasNulledPosition(task.path)) {\n const aborted = task.computation.abort(cancellationReason);\n invariant(!isPromise(aborted));\n } else {\n filteredTasks.push(task);\n }\n }\n\n const filteredStreams: Array<ItemStream> = [];\n for (const stream of streams) {\n if (collectedErrors.hasNulledPosition(stream.path)) {\n const aborted = stream.queue.abort(cancellationReason);\n invariant(!isPromise(aborted));\n } else {\n filteredStreams.push(stream);\n }\n }\n\n return {\n groups,\n tasks: filteredTasks,\n streams: filteredStreams,\n };\n }\n\n /**\n * Instantiates new DeliveryGroups for the given path, returning an\n * updated map of DeferUsage objects to DeliveryGroups.\n *\n * Note: As defer directives may be used with operations returning lists,\n * a DeferUsage object may correspond to many DeliveryGroups.\n */\n getNewDeliveryGroupMap(\n newDeferUsages: ReadonlyArray<DeferUsage>,\n deliveryGroupMap: ReadonlyMap<DeferUsage, DeliveryGroup> | undefined,\n path: Path | undefined,\n ): {\n newDeliveryGroups: ReadonlyArray<DeliveryGroup>;\n newDeliveryGroupMap: ReadonlyMap<DeferUsage, DeliveryGroup>;\n } {\n const newDeliveryGroups: Array<DeliveryGroup> = [];\n const newDeliveryGroupMap = new Map(deliveryGroupMap);\n\n // For each new deferUsage object:\n for (const newDeferUsage of newDeferUsages) {\n const parentDeferUsage = newDeferUsage.parentDeferUsage;\n\n const parent =\n parentDeferUsage === undefined\n ? undefined\n : deliveryGroupFromDeferUsage(parentDeferUsage, newDeliveryGroupMap);\n\n // Create a new DeliveryGroup object\n const deliveryGroup: DeliveryGroup = {\n path,\n label: newDeferUsage.label,\n parent,\n };\n\n // Add it to the list of new groups\n newDeliveryGroups.push(deliveryGroup);\n\n // Update the map\n newDeliveryGroupMap.set(newDeferUsage, deliveryGroup);\n }\n\n return {\n newDeliveryGroups,\n newDeliveryGroupMap,\n };\n }\n\n shouldDefer(\n parentDeferUsages: undefined | DeferUsageSet,\n deferUsages: DeferUsageSet,\n ): boolean {\n // If we have a new child defer usage, defer.\n // Otherwise, this defer usage was already deferred when it was initially\n // encountered, and is now in the midst of executing early, so the new\n // deferred grouped fields set can be executed immediately.\n return (\n parentDeferUsages === undefined ||\n !Array.from(deferUsages).every((deferUsage) =>\n parentDeferUsages.has(deferUsage),\n )\n );\n }\n\n override handleStream(\n index: number,\n path: Path,\n iterator:\n | { handle: Iterator<unknown>; isAsync?: never }\n | { handle: AsyncIterator<unknown>; isAsync: true },\n streamUsage: StreamUsage,\n info: GraphQLResolveInfo,\n itemType: GraphQLOutputType,\n ): boolean {\n const { handle, isAsync } = iterator;\n const queue = this.buildStreamItemQueue(\n index,\n path,\n handle,\n streamUsage.fieldDetailsList,\n info,\n itemType,\n isAsync,\n );\n\n const itemStream: ItemStream = {\n label: streamUsage.label,\n path,\n queue,\n initialCount: index,\n };\n\n this.streams.push(itemStream);\n return true;\n }\n\n buildStreamItemQueue(\n initialIndex: number,\n streamPath: Path,\n iterator: Iterator<unknown> | AsyncIterator<unknown>,\n fieldDetailsList: FieldDetailsList,\n info: GraphQLResolveInfo,\n itemType: GraphQLOutputType,\n isAsync: boolean | undefined,\n ): Queue<StreamItemResult> {\n const createSubExecutor = this.getCreateSubExecutor();\n const { enableEarlyExecution } = this.validatedExecutionArgs;\n const sharedExecutionContext = this.sharedExecutionContext;\n const queue = new Queue<StreamItemResult>(\n async ({ push, stop, onStop, started }) => {\n const abortStreamItems = new Set<(reason?: unknown) => void>();\n let finishedNormally = false;\n let stopRequested = false;\n\n onStop((reason) => {\n stopRequested = true;\n if (!finishedNormally) {\n for (const abortStreamItem of abortStreamItems) {\n abortStreamItem(reason);\n }\n if (isAsync) {\n sharedExecutionContext.asyncWorkTracker.add(\n returnIteratorCatchingErrors(\n iterator as AsyncIterator<unknown>,\n ),\n );\n } else {\n sharedExecutionContext.asyncWorkTracker.addValues(\n collectIteratorPromises(iterator as Iterator<unknown>),\n );\n }\n }\n });\n await (enableEarlyExecution ? Promise.resolve() : started);\n if (stopRequested) {\n return;\n }\n let index = initialIndex;\n while (true) {\n let iteration;\n try {\n if (isAsync) {\n // eslint-disable-next-line no-await-in-loop\n iteration = await iterator.next();\n if (stopRequested) {\n return;\n }\n } else {\n iteration = (iterator as Iterator<unknown>).next();\n }\n } catch (rawError) {\n throw locatedError(\n rawError,\n toNodes(fieldDetailsList),\n pathToArray(streamPath),\n );\n }\n\n if (iteration.done) {\n finishedNormally = true;\n const stopped = stop();\n /* node:coverage disable */\n if (isPromise(stopped)) {\n stopped.catch(() => undefined);\n }\n /* node:coverage enable */\n return;\n }\n\n const itemPath = addPath(streamPath, index, undefined);\n\n const executor = createSubExecutor();\n\n let streamItemResult = executor.completeStreamItem(\n itemPath,\n iteration.value,\n fieldDetailsList,\n info,\n itemType,\n );\n if (isPromise(streamItemResult)) {\n if (enableEarlyExecution) {\n const abortStreamItem = (reason?: unknown) =>\n executor.abort(reason);\n abortStreamItems.add(abortStreamItem);\n streamItemResult = streamItemResult.finally(() => {\n abortStreamItems.delete(abortStreamItem);\n });\n } else {\n // eslint-disable-next-line no-await-in-loop\n streamItemResult = await streamItemResult;\n if (stopRequested) {\n return;\n }\n }\n }\n const pushResult = push(streamItemResult);\n if (isPromise(pushResult)) {\n // eslint-disable-next-line no-await-in-loop\n await pushResult;\n if (stopRequested) {\n return;\n }\n }\n index += 1;\n }\n },\n // set initialCapacity to 100 by default\n 100,\n );\n return queue;\n }\n\n completeStreamItem(\n itemPath: Path,\n item: unknown,\n fieldDetailsList: FieldDetailsList,\n info: GraphQLResolveInfo,\n itemType: GraphQLOutputType,\n ): PromiseOrValue<StreamItemResult> {\n if (isPromiseLike(item)) {\n return this.completePromisedValue(\n itemType,\n fieldDetailsList,\n info,\n itemPath,\n item,\n undefined,\n )\n .then(\n (resolvedItem) => this.buildStreamItemResult(resolvedItem),\n (rawError: unknown) => {\n this.handleFieldError(\n rawError,\n itemType,\n fieldDetailsList,\n itemPath,\n );\n return this.buildStreamItemResult(null);\n },\n )\n .then(undefined, (error: unknown) => {\n this.abort();\n throw error;\n });\n }\n\n let result: PromiseOrValue<unknown>;\n try {\n try {\n result = this.completeValue(\n itemType,\n fieldDetailsList,\n info,\n itemPath,\n item,\n undefined,\n );\n } catch (rawError) {\n this.handleFieldError(rawError, itemType, fieldDetailsList, itemPath);\n return this.buildStreamItemResult(null);\n }\n } catch (error) {\n this.abort();\n throw error;\n }\n\n if (isPromise(result)) {\n return result\n .then(\n (resolved) => this.buildStreamItemResult(resolved),\n (rawError: unknown) => {\n this.handleFieldError(\n rawError,\n itemType,\n fieldDetailsList,\n itemPath,\n );\n return this.buildStreamItemResult(null);\n },\n )\n .then(undefined, (error: unknown) => {\n this.abort();\n throw error;\n });\n }\n\n return this.buildStreamItemResult(result);\n }\n\n buildStreamItemResult(result: unknown): StreamItemResult {\n const item = result;\n const errors = this.collectedErrors.errors;\n const work = this.getIncrementalWork();\n return this.finish(\n errors.length > 0\n ? { value: { item, errors }, work }\n : { value: { item }, work },\n );\n }\n}\n\nfunction toNodes(fieldDetailsList: FieldDetailsList): ReadonlyArray<FieldNode> {\n return fieldDetailsList.map((fieldDetails) => fieldDetails.node);\n}\n\nfunction getDeliveryGroups(\n deferUsageSet: DeferUsageSet,\n deliveryGroupMap: ReadonlyMap<DeferUsage, DeliveryGroup>,\n): ReadonlyArray<DeliveryGroup> {\n return Array.from(deferUsageSet).map((deferUsage) =>\n deliveryGroupFromDeferUsage(deferUsage, deliveryGroupMap),\n );\n}\n\nfunction deliveryGroupFromDeferUsage(\n deferUsage: DeferUsage,\n deliveryGroupMap: ReadonlyMap<DeferUsage, DeliveryGroup>,\n): DeliveryGroup {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return deliveryGroupMap.get(deferUsage)!;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"IncrementalExecutor.js","sourceRoot":"","sources":["../../../src/execution/incremental/IncrementalExecutor.ts"],"names":[],"mappings":"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","sourcesContent":["/** @category Incremental Execution */\n\n/* eslint-disable max-params */\nimport { invariant } from '../../jsutils/invariant.ts';\nimport { isPromise, isPromiseLike } from '../../jsutils/isPromise.ts';\nimport { memoize1 } from '../../jsutils/memoize1.ts';\nimport { memoize2 } from '../../jsutils/memoize2.ts';\nimport type { ObjMap } from '../../jsutils/ObjMap.ts';\nimport type { Path } from '../../jsutils/Path.ts';\nimport { addPath, pathToArray } from '../../jsutils/Path.ts';\nimport type { PromiseOrValue } from '../../jsutils/PromiseOrValue.ts';\n\nimport type {\n GraphQLError,\n GraphQLFormattedError,\n} from '../../error/GraphQLError.ts';\nimport { locatedError } from '../../error/locatedError.ts';\n\nimport type { FieldNode } from '../../language/ast.ts';\nimport { OperationTypeNode } from '../../language/ast.ts';\n\nimport type {\n GraphQLObjectType,\n GraphQLOutputType,\n GraphQLResolveInfo,\n} from '../../type/definition.ts';\n\nimport type {\n DeferUsage,\n FieldDetailsList,\n GroupedFieldSet,\n} from '../collectFields.ts';\nimport { collectSubfields as _collectSubfields } from '../collectFields.ts';\nimport { collectIteratorPromises } from '../collectIteratorPromises.ts';\nimport type { SharedExecutionContext } from '../createSharedExecutionContext.ts';\nimport type { ValidatedExecutionArgs } from '../ExecutionArgs.ts';\nimport type { ExecutionResult, FormattedExecutionResult } from '../Executor.ts';\nimport { Executor } from '../Executor.ts';\nimport type { StreamUsage } from '../getStreamUsage.ts';\nimport { returnIteratorCatchingErrors } from '../returnIteratorCatchingErrors.ts';\n\nimport type { DeferUsageSet, ExecutionPlan } from './buildExecutionPlan.ts';\nimport { buildExecutionPlan } from './buildExecutionPlan.ts';\nimport { Computation } from './Computation.ts';\nimport { IncrementalPublisher } from './IncrementalPublisher.ts';\nimport { Queue } from './Queue.ts';\nimport type { Group, Stream, Task, Work } from './WorkQueue.ts';\n\nconst buildExecutionPlanFromInitial = memoize1(\n (groupedFieldSet: GroupedFieldSet) => buildExecutionPlan(groupedFieldSet),\n);\n\nconst buildExecutionPlanFromDeferred = memoize2(\n (groupedFieldSet: GroupedFieldSet, deferUsageSet: DeferUsageSet) =>\n buildExecutionPlan(groupedFieldSet, deferUsageSet),\n);\n\n/**\n * Results for an operation that produced incremental payloads.\n * @typeParam TInitialData - Shape of the initial result data payload.\n * @typeParam TDeferredData - Shape of deferred fragment data payloads.\n * @typeParam TStreamItem - Shape of streamed list items.\n * @typeParam TExtensions - Shape of extensions payloads.\n */\nexport interface ExperimentalIncrementalExecutionResults<\n TInitialData = ObjMap<unknown>,\n TDeferredData = ObjMap<unknown>,\n TStreamItem = unknown,\n TExtensions = ObjMap<unknown>,\n> {\n /** Initial execution result delivered before subsequent incremental payloads. */\n initialResult: InitialIncrementalExecutionResult<TInitialData, TExtensions>;\n /** Async stream of incremental payloads delivered after the initial result. */\n subsequentResults: AsyncGenerator<\n SubsequentIncrementalExecutionResult<\n TDeferredData,\n TStreamItem,\n TExtensions\n >,\n void,\n void\n >;\n}\n\n/**\n * JSON-serializable form of incremental execution results.\n * @typeParam TInitial - Shape of the formatted initial result data payload.\n * @typeParam TDeferredData - Shape of formatted deferred fragment data payloads.\n * @typeParam TStreamItem - Shape of formatted streamed list items.\n * @typeParam TExtensions - Shape of formatted extensions payloads.\n */\nexport interface FormattedExperimentalIncrementalExecutionResults<\n TInitial = ObjMap<unknown>,\n TDeferredData = ObjMap<unknown>,\n TStreamItem = unknown,\n TExtensions = ObjMap<unknown>,\n> {\n /** Formatted initial execution result. */\n initialResult: FormattedInitialIncrementalExecutionResult<\n TInitial,\n TExtensions\n >;\n /** Async stream of formatted incremental payloads. */\n subsequentResults: AsyncGenerator<\n FormattedSubsequentIncrementalExecutionResult<\n TDeferredData,\n TStreamItem,\n TExtensions\n >,\n void,\n void\n >;\n}\n/**\n * Initial execution result for an operation that produced incremental payloads.\n * @typeParam TData - Shape of the initial data payload.\n * @typeParam TExtensions - Shape of the extensions payload.\n */\nexport interface InitialIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends ExecutionResult<TData, TExtensions> {\n /** Data produced by the initial execution payload. */\n data: TData;\n /** Incremental payloads that are still pending after the initial result. */\n pending: ReadonlyArray<PendingResult>;\n /** Indicates that subsequent incremental payloads will follow. */\n hasNext: true;\n /** Additional non-standard metadata included in the initial result. */\n extensions?: TExtensions;\n}\n\n/**\n * JSON-serializable form of an initial incremental execution result.\n * @typeParam TInitialData - Shape of the formatted initial data payload.\n * @typeParam TExtensions - Shape of the formatted extensions payload.\n */\nexport interface FormattedInitialIncrementalExecutionResult<\n TInitialData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends FormattedExecutionResult<TInitialData, TExtensions> {\n /** Formatted data produced by the initial execution payload. */\n data: TInitialData;\n /** Formatted list of incremental payloads still pending after the initial result. */\n pending: ReadonlyArray<PendingResult>;\n /** Indicates whether subsequent incremental payloads will follow. */\n hasNext: boolean;\n /** Additional non-standard metadata included in the formatted initial result. */\n extensions?: TExtensions;\n}\n\n/**\n * Subsequent payload produced by incremental execution.\n * @typeParam TDeferredData - Shape of deferred fragment data payloads.\n * @typeParam TStreamItem - Shape of streamed list items.\n * @typeParam TExtensions - Shape of the extensions payload.\n */\nexport interface SubsequentIncrementalExecutionResult<\n TDeferredData = ObjMap<unknown>,\n TStreamItem = unknown,\n TExtensions = ObjMap<unknown>,\n> {\n /** Incremental payloads that became pending with this response. */\n pending?: ReadonlyArray<PendingResult>;\n /** Deferred or streamed payloads delivered by this response. */\n incremental?: ReadonlyArray<\n IncrementalResult<TDeferredData, TStreamItem, TExtensions>\n >;\n /** Incremental payloads that completed with this response. */\n completed?: ReadonlyArray<CompletedResult>;\n /** Indicates whether more incremental payloads will follow. */\n hasNext: boolean;\n /** Additional non-standard metadata included in this payload. */\n extensions?: TExtensions;\n}\n\n/**\n * JSON-serializable form of a subsequent incremental execution payload.\n * @typeParam TDeferredData - Shape of formatted deferred fragment data payloads.\n * @typeParam TStreamItem - Shape of formatted streamed list items.\n * @typeParam TExtensions - Shape of formatted extensions payloads.\n */\nexport interface FormattedSubsequentIncrementalExecutionResult<\n TDeferredData = ObjMap<unknown>,\n TStreamItem = unknown,\n TExtensions = ObjMap<unknown>,\n> {\n /** Indicates whether more incremental payloads will follow. */\n hasNext: boolean;\n /** Formatted incremental payloads that became pending with this response. */\n pending?: ReadonlyArray<PendingResult>;\n /** Formatted deferred or streamed payloads delivered by this response. */\n incremental?: ReadonlyArray<\n FormattedIncrementalResult<TDeferredData, TStreamItem, TExtensions>\n >;\n /** Formatted incremental payloads that completed with this response. */\n completed?: ReadonlyArray<FormattedCompletedResult>;\n /** Additional non-standard metadata included in this formatted payload. */\n extensions?: TExtensions;\n}\n\n/**\n * Incremental payload produced by a deferred fragment.\n * @typeParam TDeferredData - Shape of deferred fragment data.\n * @typeParam TExtensions - Shape of extensions payloads.\n */\nexport interface IncrementalDeferResult<\n TDeferredData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n /** Identifier matching this payload to a pending deferred fragment. */\n id: string;\n /** Path from the deferred fragment location to this payload. */\n subPath?: ReadonlyArray<string | number>;\n /** Errors raised while executing the deferred fragment. */\n errors?: ReadonlyArray<GraphQLError>;\n /** Data produced by the deferred fragment. */\n data: TDeferredData;\n /** Additional non-standard metadata included in this payload. */\n extensions?: TExtensions;\n}\n\n/**\n * JSON-serializable form of a deferred fragment payload.\n * @typeParam TDeferredData - Shape of formatted deferred fragment data.\n * @typeParam TExtensions - Shape of formatted extensions payloads.\n */\nexport interface FormattedIncrementalDeferResult<\n TDeferredData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n /** Formatted errors raised while executing the deferred fragment. */\n errors?: ReadonlyArray<GraphQLFormattedError>;\n /** Formatted data produced by the deferred fragment. */\n data: TDeferredData;\n /** Identifier matching this payload to a pending deferred fragment. */\n id: string;\n /** Path from the deferred fragment location to this payload. */\n subPath?: ReadonlyArray<string | number>;\n /** Additional non-standard metadata included in this formatted payload. */\n extensions?: TExtensions;\n}\n\n/**\n * Incremental payload produced by a streamed list field.\n * @typeParam TStreamItem - Shape of streamed list items.\n * @typeParam TExtensions - Shape of extensions payloads.\n */\nexport interface IncrementalStreamResult<\n TStreamItem = unknown,\n TExtensions = ObjMap<unknown>,\n> {\n /** Identifier matching this payload to a pending stream. */\n id: string;\n /** Path from the streamed field location to these items. */\n subPath?: ReadonlyArray<string | number>;\n /** Errors raised while producing streamed items. */\n errors?: ReadonlyArray<GraphQLError>;\n /** Streamed list items delivered by this payload. */\n items: ReadonlyArray<TStreamItem>;\n /** Additional non-standard metadata included in this payload. */\n extensions?: TExtensions;\n}\n\n/**\n * JSON-serializable form of a streamed list payload.\n * @typeParam TStreamItem - Shape of formatted streamed list items.\n * @typeParam TExtensions - Shape of formatted extensions payloads.\n */\nexport interface FormattedIncrementalStreamResult<\n TStreamItem = Array<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n /** Formatted errors raised while producing streamed items. */\n errors?: ReadonlyArray<GraphQLFormattedError>;\n /** Formatted streamed list items delivered by this payload. */\n items: ReadonlyArray<TStreamItem>;\n /** Identifier matching this payload to a pending stream. */\n id: string;\n /** Path from the streamed field location to these items. */\n subPath?: ReadonlyArray<string | number>;\n /** Additional non-standard metadata included in this formatted payload. */\n extensions?: TExtensions;\n}\n\n/**\n * Deferred fragment or streamed list payload produced by incremental execution.\n * @typeParam TDeferredData - Shape of deferred fragment data.\n * @typeParam TStreamItem - Shape of streamed list items.\n * @typeParam TExtensions - Shape of extensions payloads.\n */\nexport type IncrementalResult<\n TDeferredData = ObjMap<unknown>,\n TStreamItem = unknown,\n TExtensions = ObjMap<unknown>,\n> =\n | IncrementalDeferResult<TDeferredData, TExtensions>\n | IncrementalStreamResult<TStreamItem, TExtensions>;\n\n/**\n * JSON-serializable deferred fragment or streamed list payload.\n * @typeParam TDeferredData - Shape of formatted deferred fragment data.\n * @typeParam TStreamItem - Shape of formatted streamed list items.\n * @typeParam TExtensions - Shape of formatted extensions payloads.\n */\nexport type FormattedIncrementalResult<\n TDeferredData = ObjMap<unknown>,\n TStreamItem = unknown,\n TExtensions = ObjMap<unknown>,\n> =\n | FormattedIncrementalDeferResult<TDeferredData, TExtensions>\n | FormattedIncrementalStreamResult<TStreamItem, TExtensions>;\n\n/** @internal */\nexport interface PendingResult {\n id: string;\n path: ReadonlyArray<string | number>;\n label?: string;\n}\n\n/** @internal */\nexport interface CompletedResult {\n id: string;\n errors?: ReadonlyArray<GraphQLError>;\n}\n\n/** @internal */\nexport interface FormattedCompletedResult {\n id: string;\n errors?: ReadonlyArray<GraphQLFormattedError>;\n}\n\ninterface ExecutionGroup extends Task<\n ExecutionGroupValue,\n StreamItemValue,\n DeliveryGroup,\n ItemStream\n> {\n groups: ReadonlyArray<DeliveryGroup>;\n path: Path | undefined;\n computation: Computation<ExecutionGroupResult>;\n}\n\n/** @internal */\nexport interface DeliveryGroup extends Group<DeliveryGroup> {\n path: Path | undefined;\n label: string | undefined;\n parent: DeliveryGroup | undefined;\n}\n\n/** @internal */\nexport interface ItemStream extends Stream<\n ExecutionGroupValue,\n StreamItemValue,\n DeliveryGroup,\n ItemStream\n> {\n path: Path;\n label: string | undefined;\n initialCount: number;\n}\n\n/** @internal */\nexport interface ExecutionGroupValue {\n deliveryGroups: ReadonlyArray<DeliveryGroup>;\n path: ReadonlyArray<string | number>;\n errors?: ReadonlyArray<GraphQLError>;\n data: ObjMap<unknown>;\n}\n\n/** @internal */\nexport type IncrementalWork = Work<\n ExecutionGroupValue,\n StreamItemValue,\n DeliveryGroup,\n ItemStream\n>;\n\n/** @internal */\nexport interface ExecutionGroupResult {\n value: ExecutionGroupValue;\n work?: IncrementalWork | undefined;\n}\n\n/** @internal */\nexport interface StreamItemValue {\n errors?: ReadonlyArray<GraphQLError>;\n item: unknown;\n}\n\n/** @internal */\nexport interface StreamItemResult {\n value: StreamItemValue;\n work?: IncrementalWork | undefined;\n}\n\n/** @internal */\nexport class IncrementalExecutor<\n TExperimental = ExperimentalIncrementalExecutionResults,\n> extends Executor<ReadonlyMap<DeferUsage, DeliveryGroup>, TExperimental> {\n deferUsageSet?: DeferUsageSet | undefined;\n groups: Array<DeliveryGroup>;\n tasks: Array<ExecutionGroup>;\n streams: Array<ItemStream>;\n\n constructor(\n validatedExecutionArgs: ValidatedExecutionArgs,\n sharedExecutionContext?: SharedExecutionContext,\n deferUsageSet?: DeferUsageSet,\n ) {\n super(validatedExecutionArgs, sharedExecutionContext);\n this.deferUsageSet = deferUsageSet;\n this.groups = [];\n this.tasks = [];\n this.streams = [];\n }\n\n getCreateSubExecutor(): (\n deferUsageSet?: DeferUsageSet,\n ) => IncrementalExecutor<TExperimental> {\n const validatedExecutionArgs = this.validatedExecutionArgs;\n const sharedExecutionContext = this.sharedExecutionContext;\n\n return (deferUsageSet?: DeferUsageSet) =>\n new IncrementalExecutor<TExperimental>(\n validatedExecutionArgs,\n sharedExecutionContext,\n deferUsageSet,\n );\n }\n\n override abort(reason?: unknown): void {\n super.abort(reason);\n for (const task of this.tasks) {\n const aborted = task.computation.abort(reason);\n invariant(!isPromise(aborted));\n }\n for (const stream of this.streams) {\n const aborted = stream.queue.abort(reason);\n invariant(!isPromise(aborted));\n }\n }\n\n /**\n * Given a completed execution context and data, build the `{ errors, data }`\n * response defined by the \"Response\" section of the GraphQL specification.\n *\n * @internal\n */\n override buildResponse(\n data: ObjMap<unknown> | null,\n ): ExecutionResult | TExperimental {\n const work = this.getIncrementalWork();\n const { tasks, streams } = work;\n if (tasks?.length === 0 && streams?.length === 0) {\n return super.buildResponse(data);\n }\n\n const errors = this.collectedErrors.errors;\n invariant(data !== null);\n const incrementalPublisher = new IncrementalPublisher();\n return incrementalPublisher.buildResponse(\n data,\n errors,\n work,\n this.validatedExecutionArgs.externalAbortSignal,\n this.getFinishSharedExecution(),\n ) as TExperimental;\n }\n\n override executeCollectedRootFields(\n rootType: GraphQLObjectType,\n rootValue: unknown,\n originalGroupedFieldSet: GroupedFieldSet,\n serially: boolean,\n newDeferUsages: ReadonlyArray<DeferUsage>,\n ): PromiseOrValue<ObjMap<unknown>> {\n if (newDeferUsages.length === 0) {\n return this.executeRootGroupedFieldSet(\n rootType,\n rootValue,\n originalGroupedFieldSet,\n serially,\n undefined,\n );\n }\n\n invariant(\n this.validatedExecutionArgs.operation.operation !==\n OperationTypeNode.SUBSCRIPTION,\n '`@defer` directive not supported on subscription operations. Disable `@defer` by setting the `if` argument to `false`.',\n );\n\n const { newDeliveryGroups, newDeliveryGroupMap } =\n this.getNewDeliveryGroupMap(newDeferUsages, undefined, undefined);\n\n const { groupedFieldSet, newGroupedFieldSets } =\n this.buildRootExecutionPlan(originalGroupedFieldSet);\n\n const data = this.executeRootGroupedFieldSet(\n rootType,\n rootValue,\n groupedFieldSet,\n serially,\n newDeliveryGroupMap,\n );\n\n this.groups.push(...newDeliveryGroups);\n\n if (newGroupedFieldSets.size > 0) {\n this.collectExecutionGroups(\n rootType,\n rootValue,\n undefined,\n newGroupedFieldSets,\n newDeliveryGroupMap,\n );\n }\n\n return data;\n }\n\n buildRootExecutionPlan(\n originalGroupedFieldSet: GroupedFieldSet,\n ): ExecutionPlan {\n return buildExecutionPlanFromInitial(originalGroupedFieldSet);\n }\n\n override executeCollectedSubfields(\n parentType: GraphQLObjectType,\n sourceValue: unknown,\n path: Path | undefined,\n originalGroupedFieldSet: GroupedFieldSet,\n newDeferUsages: ReadonlyArray<DeferUsage>,\n deliveryGroupMap: ReadonlyMap<DeferUsage, DeliveryGroup> | undefined,\n ): PromiseOrValue<ObjMap<unknown>> {\n if (newDeferUsages.length > 0) {\n invariant(\n this.validatedExecutionArgs.operation.operation !==\n OperationTypeNode.SUBSCRIPTION,\n '`@defer` directive not supported on subscription operations. Disable `@defer` by setting the `if` argument to `false`.',\n );\n }\n\n if (deliveryGroupMap === undefined && newDeferUsages.length === 0) {\n return this.executeFields(\n parentType,\n sourceValue,\n path,\n originalGroupedFieldSet,\n deliveryGroupMap,\n );\n }\n\n const { newDeliveryGroups, newDeliveryGroupMap } =\n this.getNewDeliveryGroupMap(newDeferUsages, deliveryGroupMap, path);\n\n const { groupedFieldSet, newGroupedFieldSets } = this.buildSubExecutionPlan(\n originalGroupedFieldSet,\n );\n\n const data = this.executeFields(\n parentType,\n sourceValue,\n path,\n groupedFieldSet,\n newDeliveryGroupMap,\n );\n\n this.groups.push(...newDeliveryGroups);\n\n if (newGroupedFieldSets.size > 0) {\n this.collectExecutionGroups(\n parentType,\n sourceValue,\n path,\n newGroupedFieldSets,\n newDeliveryGroupMap,\n );\n }\n\n return data;\n }\n\n buildSubExecutionPlan(\n originalGroupedFieldSet: GroupedFieldSet,\n ): ExecutionPlan {\n return this.deferUsageSet === undefined\n ? buildExecutionPlanFromInitial(originalGroupedFieldSet)\n : buildExecutionPlanFromDeferred(\n originalGroupedFieldSet,\n this.deferUsageSet,\n );\n }\n\n collectExecutionGroups(\n parentType: GraphQLObjectType,\n sourceValue: unknown,\n path: Path | undefined,\n newGroupedFieldSets: Map<DeferUsageSet, GroupedFieldSet>,\n deliveryGroupMap: ReadonlyMap<DeferUsage, DeliveryGroup>,\n ): void {\n const createSubExecutor = this.getCreateSubExecutor();\n for (const [deferUsageSet, groupedFieldSet] of newGroupedFieldSets) {\n const deliveryGroups = getDeliveryGroups(deferUsageSet, deliveryGroupMap);\n\n const executor = createSubExecutor(deferUsageSet);\n\n const executionGroup: ExecutionGroup = {\n groups: deliveryGroups,\n path,\n computation: new Computation(\n () =>\n executor.executeExecutionGroup(\n deliveryGroups,\n parentType,\n sourceValue,\n path,\n groupedFieldSet,\n deliveryGroupMap,\n ),\n (reason) => executor.abort(reason),\n ),\n };\n\n const parentDeferUsages = this.deferUsageSet;\n\n if (this.validatedExecutionArgs.enableEarlyExecution) {\n if (this.shouldDefer(parentDeferUsages, deferUsageSet)) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n Promise.resolve().then(() => executionGroup.computation.prime());\n } else {\n executionGroup.computation.prime();\n }\n }\n\n this.tasks.push(executionGroup);\n }\n }\n\n executeExecutionGroup(\n deliveryGroups: ReadonlyArray<DeliveryGroup>,\n parentType: GraphQLObjectType,\n sourceValue: unknown,\n path: Path | undefined,\n groupedFieldSet: GroupedFieldSet,\n deliveryGroupMap: ReadonlyMap<DeferUsage, DeliveryGroup>,\n ): PromiseOrValue<ExecutionGroupResult> {\n let result;\n try {\n result = this.executeFields(\n parentType,\n sourceValue,\n path,\n groupedFieldSet,\n deliveryGroupMap,\n );\n } catch (error) {\n this.abort();\n throw error;\n }\n\n if (isPromise(result)) {\n return result.then(\n (resolved) =>\n this.buildExecutionGroupResult(deliveryGroups, path, resolved),\n (error: unknown) => {\n this.abort();\n throw error;\n },\n );\n }\n\n return this.buildExecutionGroupResult(deliveryGroups, path, result);\n }\n\n buildExecutionGroupResult(\n deliveryGroups: ReadonlyArray<DeliveryGroup>,\n path: Path | undefined,\n result: ObjMap<unknown>,\n ): ExecutionGroupResult {\n const data = result;\n const errors = this.collectedErrors.errors;\n return this.finish({\n value: errors.length\n ? { deliveryGroups, path: pathToArray(path), errors, data }\n : { deliveryGroups, path: pathToArray(path), data },\n work: this.getIncrementalWork(),\n });\n }\n\n getIncrementalWork(): IncrementalWork {\n const { groups, tasks, streams, collectedErrors } = this;\n\n if (collectedErrors.errors.length === 0) {\n return { groups, tasks, streams };\n }\n\n const cancellationReason = new Error(\n 'Cancelled secondary to null within original result',\n );\n\n const filteredTasks: Array<ExecutionGroup> = [];\n for (const task of tasks) {\n if (collectedErrors.hasNulledPosition(task.path)) {\n const aborted = task.computation.abort(cancellationReason);\n invariant(!isPromise(aborted));\n } else {\n filteredTasks.push(task);\n }\n }\n\n const filteredStreams: Array<ItemStream> = [];\n for (const stream of streams) {\n if (collectedErrors.hasNulledPosition(stream.path)) {\n const aborted = stream.queue.abort(cancellationReason);\n invariant(!isPromise(aborted));\n } else {\n filteredStreams.push(stream);\n }\n }\n\n return {\n groups,\n tasks: filteredTasks,\n streams: filteredStreams,\n };\n }\n\n /**\n * Instantiates new DeliveryGroups for the given path, returning an\n * updated map of DeferUsage objects to DeliveryGroups.\n *\n * Note: As defer directives may be used with operations returning lists,\n * a DeferUsage object may correspond to many DeliveryGroups.\n *\n * @internal\n */\n getNewDeliveryGroupMap(\n newDeferUsages: ReadonlyArray<DeferUsage>,\n deliveryGroupMap: ReadonlyMap<DeferUsage, DeliveryGroup> | undefined,\n path: Path | undefined,\n ): {\n newDeliveryGroups: ReadonlyArray<DeliveryGroup>;\n newDeliveryGroupMap: ReadonlyMap<DeferUsage, DeliveryGroup>;\n } {\n const newDeliveryGroups: Array<DeliveryGroup> = [];\n const newDeliveryGroupMap = new Map(deliveryGroupMap);\n\n // For each new deferUsage object:\n for (const newDeferUsage of newDeferUsages) {\n const parentDeferUsage = newDeferUsage.parentDeferUsage;\n\n const parent =\n parentDeferUsage === undefined\n ? undefined\n : deliveryGroupFromDeferUsage(parentDeferUsage, newDeliveryGroupMap);\n\n // Create a new DeliveryGroup object\n const deliveryGroup: DeliveryGroup = {\n path,\n label: newDeferUsage.label,\n parent,\n };\n\n // Add it to the list of new groups\n newDeliveryGroups.push(deliveryGroup);\n\n // Update the map\n newDeliveryGroupMap.set(newDeferUsage, deliveryGroup);\n }\n\n return {\n newDeliveryGroups,\n newDeliveryGroupMap,\n };\n }\n\n shouldDefer(\n parentDeferUsages: undefined | DeferUsageSet,\n deferUsages: DeferUsageSet,\n ): boolean {\n // If we have a new child defer usage, defer.\n // Otherwise, this defer usage was already deferred when it was initially\n // encountered, and is now in the midst of executing early, so the new\n // deferred grouped fields set can be executed immediately.\n return (\n parentDeferUsages === undefined ||\n !Array.from(deferUsages).every((deferUsage) =>\n parentDeferUsages.has(deferUsage),\n )\n );\n }\n\n override handleStream(\n index: number,\n path: Path,\n iterator:\n | { handle: Iterator<unknown>; isAsync?: never }\n | { handle: AsyncIterator<unknown>; isAsync: true },\n streamUsage: StreamUsage,\n info: GraphQLResolveInfo,\n itemType: GraphQLOutputType,\n ): boolean {\n const { handle, isAsync } = iterator;\n const queue = this.buildStreamItemQueue(\n index,\n path,\n handle,\n streamUsage.fieldDetailsList,\n info,\n itemType,\n isAsync,\n );\n\n const itemStream: ItemStream = {\n label: streamUsage.label,\n path,\n queue,\n initialCount: index,\n };\n\n this.streams.push(itemStream);\n return true;\n }\n\n buildStreamItemQueue(\n initialIndex: number,\n streamPath: Path,\n iterator: Iterator<unknown> | AsyncIterator<unknown>,\n fieldDetailsList: FieldDetailsList,\n info: GraphQLResolveInfo,\n itemType: GraphQLOutputType,\n isAsync: boolean | undefined,\n ): Queue<StreamItemResult> {\n const createSubExecutor = this.getCreateSubExecutor();\n const { enableEarlyExecution } = this.validatedExecutionArgs;\n const sharedExecutionContext = this.sharedExecutionContext;\n const queue = new Queue<StreamItemResult>(\n async ({ push, stop, onStop, started }) => {\n const abortStreamItems = new Set<(reason?: unknown) => void>();\n let finishedNormally = false;\n let stopRequested = false;\n\n onStop((reason) => {\n stopRequested = true;\n if (!finishedNormally) {\n for (const abortStreamItem of abortStreamItems) {\n abortStreamItem(reason);\n }\n if (isAsync) {\n sharedExecutionContext.asyncWorkTracker.add(\n returnIteratorCatchingErrors(\n iterator as AsyncIterator<unknown>,\n ),\n );\n } else {\n sharedExecutionContext.asyncWorkTracker.addValues(\n collectIteratorPromises(iterator as Iterator<unknown>),\n );\n }\n }\n });\n await (enableEarlyExecution ? Promise.resolve() : started);\n if (stopRequested) {\n return;\n }\n let index = initialIndex;\n while (true) {\n let iteration;\n try {\n if (isAsync) {\n // eslint-disable-next-line no-await-in-loop\n iteration = await iterator.next();\n if (stopRequested) {\n return;\n }\n } else {\n iteration = (iterator as Iterator<unknown>).next();\n }\n } catch (rawError) {\n throw locatedError(\n rawError,\n toNodes(fieldDetailsList),\n pathToArray(streamPath),\n );\n }\n\n if (iteration.done) {\n finishedNormally = true;\n const stopped = stop();\n /* node:coverage disable */\n if (isPromise(stopped)) {\n stopped.catch(() => undefined);\n }\n /* node:coverage enable */\n return;\n }\n\n const itemPath = addPath(streamPath, index, undefined);\n\n const executor = createSubExecutor();\n\n let streamItemResult = executor.completeStreamItem(\n itemPath,\n iteration.value,\n fieldDetailsList,\n info,\n itemType,\n );\n if (isPromise(streamItemResult)) {\n if (enableEarlyExecution) {\n const abortStreamItem = (reason?: unknown) =>\n executor.abort(reason);\n abortStreamItems.add(abortStreamItem);\n streamItemResult = streamItemResult.finally(() => {\n abortStreamItems.delete(abortStreamItem);\n });\n } else {\n // eslint-disable-next-line no-await-in-loop\n streamItemResult = await streamItemResult;\n if (stopRequested) {\n return;\n }\n }\n }\n const pushResult = push(streamItemResult);\n if (isPromise(pushResult)) {\n // eslint-disable-next-line no-await-in-loop\n await pushResult;\n if (stopRequested) {\n return;\n }\n }\n index += 1;\n }\n },\n // set initialCapacity to 100 by default\n 100,\n );\n return queue;\n }\n\n completeStreamItem(\n itemPath: Path,\n item: unknown,\n fieldDetailsList: FieldDetailsList,\n info: GraphQLResolveInfo,\n itemType: GraphQLOutputType,\n ): PromiseOrValue<StreamItemResult> {\n if (isPromiseLike(item)) {\n return this.completePromisedValue(\n itemType,\n fieldDetailsList,\n info,\n itemPath,\n item,\n undefined,\n )\n .then(\n (resolvedItem) => this.buildStreamItemResult(resolvedItem),\n (rawError: unknown) => {\n this.handleFieldError(\n rawError,\n itemType,\n fieldDetailsList,\n itemPath,\n );\n return this.buildStreamItemResult(null);\n },\n )\n .then(undefined, (error: unknown) => {\n this.abort();\n throw error;\n });\n }\n\n let result: PromiseOrValue<unknown>;\n try {\n try {\n result = this.completeValue(\n itemType,\n fieldDetailsList,\n info,\n itemPath,\n item,\n undefined,\n );\n } catch (rawError) {\n this.handleFieldError(rawError, itemType, fieldDetailsList, itemPath);\n return this.buildStreamItemResult(null);\n }\n } catch (error) {\n this.abort();\n throw error;\n }\n\n if (isPromise(result)) {\n return result\n .then(\n (resolved) => this.buildStreamItemResult(resolved),\n (rawError: unknown) => {\n this.handleFieldError(\n rawError,\n itemType,\n fieldDetailsList,\n itemPath,\n );\n return this.buildStreamItemResult(null);\n },\n )\n .then(undefined, (error: unknown) => {\n this.abort();\n throw error;\n });\n }\n\n return this.buildStreamItemResult(result);\n }\n\n buildStreamItemResult(result: unknown): StreamItemResult {\n const item = result;\n const errors = this.collectedErrors.errors;\n const work = this.getIncrementalWork();\n return this.finish(\n errors.length > 0\n ? { value: { item, errors }, work }\n : { value: { item }, work },\n );\n }\n}\n\nfunction toNodes(fieldDetailsList: FieldDetailsList): ReadonlyArray<FieldNode> {\n return fieldDetailsList.map((fieldDetails) => fieldDetails.node);\n}\n\nfunction getDeliveryGroups(\n deferUsageSet: DeferUsageSet,\n deliveryGroupMap: ReadonlyMap<DeferUsage, DeliveryGroup>,\n): ReadonlyArray<DeliveryGroup> {\n return Array.from(deferUsageSet).map((deferUsage) =>\n deliveryGroupFromDeferUsage(deferUsage, deliveryGroupMap),\n );\n}\n\nfunction deliveryGroupFromDeferUsage(\n deferUsage: DeferUsage,\n deliveryGroupMap: ReadonlyMap<DeferUsage, DeliveryGroup>,\n): DeliveryGroup {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return deliveryGroupMap.get(deferUsage)!;\n}\n"]}
|