graphql 17.0.0-alpha.8 → 17.0.0-beta.0
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/README.md +54 -10
- package/__dev__/devMode.d.mts +1 -0
- package/__dev__/devMode.d.ts +1 -0
- package/__dev__/devMode.js +3 -0
- package/__dev__/devMode.mjs +3 -0
- package/__dev__/error/GraphQLError.d.mts +1 -0
- package/__dev__/error/GraphQLError.d.ts +1 -0
- package/__dev__/error/GraphQLError.js +3 -0
- package/__dev__/error/GraphQLError.mjs +3 -0
- package/__dev__/error/ensureGraphQLError.d.mts +1 -0
- package/__dev__/error/ensureGraphQLError.d.ts +1 -0
- package/__dev__/error/ensureGraphQLError.js +3 -0
- package/__dev__/error/ensureGraphQLError.mjs +3 -0
- package/__dev__/error/index.d.mts +1 -0
- package/__dev__/error/index.d.ts +1 -0
- package/__dev__/error/index.js +3 -0
- package/__dev__/error/index.mjs +3 -0
- package/__dev__/error/locatedError.d.mts +1 -0
- package/__dev__/error/locatedError.d.ts +1 -0
- package/__dev__/error/locatedError.js +3 -0
- package/__dev__/error/locatedError.mjs +3 -0
- package/__dev__/error/syntaxError.d.mts +1 -0
- package/__dev__/error/syntaxError.d.ts +1 -0
- package/__dev__/error/syntaxError.js +3 -0
- package/__dev__/error/syntaxError.mjs +3 -0
- package/__dev__/execution/AbortedGraphQLExecutionError.d.mts +1 -0
- package/__dev__/execution/AbortedGraphQLExecutionError.d.ts +1 -0
- package/__dev__/execution/AbortedGraphQLExecutionError.js +3 -0
- package/__dev__/execution/AbortedGraphQLExecutionError.mjs +3 -0
- package/__dev__/execution/AsyncWorkTracker.d.mts +1 -0
- package/__dev__/execution/AsyncWorkTracker.d.ts +1 -0
- package/__dev__/execution/AsyncWorkTracker.js +3 -0
- package/__dev__/execution/AsyncWorkTracker.mjs +3 -0
- package/__dev__/execution/Executor.d.mts +1 -0
- package/__dev__/execution/Executor.d.ts +1 -0
- package/__dev__/execution/Executor.js +3 -0
- package/__dev__/execution/Executor.mjs +3 -0
- package/__dev__/execution/ExecutorThrowingOnIncremental.d.mts +1 -0
- package/__dev__/execution/ExecutorThrowingOnIncremental.d.ts +1 -0
- package/__dev__/execution/ExecutorThrowingOnIncremental.js +3 -0
- package/__dev__/execution/ExecutorThrowingOnIncremental.mjs +3 -0
- package/__dev__/execution/cancellablePromise.d.mts +1 -0
- package/__dev__/execution/cancellablePromise.d.ts +1 -0
- package/__dev__/execution/cancellablePromise.js +3 -0
- package/__dev__/execution/cancellablePromise.mjs +3 -0
- package/__dev__/execution/collectFields.d.mts +1 -0
- package/__dev__/execution/collectFields.d.ts +1 -0
- package/__dev__/execution/collectFields.js +3 -0
- package/__dev__/execution/collectFields.mjs +3 -0
- package/__dev__/execution/collectIteratorPromises.d.mts +1 -0
- package/__dev__/execution/collectIteratorPromises.d.ts +1 -0
- package/__dev__/execution/collectIteratorPromises.js +3 -0
- package/__dev__/execution/collectIteratorPromises.mjs +3 -0
- package/__dev__/execution/createSharedExecutionContext.d.mts +1 -0
- package/__dev__/execution/createSharedExecutionContext.d.ts +1 -0
- package/__dev__/execution/createSharedExecutionContext.js +3 -0
- package/__dev__/execution/createSharedExecutionContext.mjs +3 -0
- package/__dev__/execution/execute.d.mts +1 -0
- package/__dev__/execution/execute.d.ts +1 -0
- package/__dev__/execution/execute.js +3 -0
- package/__dev__/execution/execute.mjs +3 -0
- package/__dev__/execution/getStreamUsage.d.mts +1 -0
- package/__dev__/execution/getStreamUsage.d.ts +1 -0
- package/__dev__/execution/getStreamUsage.js +3 -0
- package/__dev__/execution/getStreamUsage.mjs +3 -0
- package/__dev__/execution/getVariableSignature.d.mts +1 -0
- package/__dev__/execution/getVariableSignature.d.ts +1 -0
- package/__dev__/execution/getVariableSignature.js +3 -0
- package/__dev__/execution/getVariableSignature.mjs +3 -0
- package/__dev__/execution/hooks.d.mts +1 -0
- package/__dev__/execution/hooks.d.ts +1 -0
- package/__dev__/execution/hooks.js +3 -0
- package/__dev__/execution/hooks.mjs +3 -0
- package/__dev__/execution/incremental/Computation.d.mts +1 -0
- package/__dev__/execution/incremental/Computation.d.ts +1 -0
- package/__dev__/execution/incremental/Computation.js +3 -0
- package/__dev__/execution/incremental/Computation.mjs +3 -0
- package/__dev__/execution/incremental/IncrementalExecutor.d.mts +1 -0
- package/__dev__/execution/incremental/IncrementalExecutor.d.ts +1 -0
- package/__dev__/execution/incremental/IncrementalExecutor.js +3 -0
- package/__dev__/execution/incremental/IncrementalExecutor.mjs +3 -0
- package/__dev__/execution/incremental/IncrementalPublisher.d.mts +1 -0
- package/__dev__/execution/incremental/IncrementalPublisher.d.ts +1 -0
- package/__dev__/execution/incremental/IncrementalPublisher.js +3 -0
- package/__dev__/execution/incremental/IncrementalPublisher.mjs +3 -0
- package/__dev__/execution/incremental/Queue.d.mts +1 -0
- package/__dev__/execution/incremental/Queue.d.ts +1 -0
- package/__dev__/execution/incremental/Queue.js +3 -0
- package/__dev__/execution/incremental/Queue.mjs +3 -0
- package/__dev__/execution/incremental/WorkQueue.d.mts +1 -0
- package/__dev__/execution/incremental/WorkQueue.d.ts +1 -0
- package/__dev__/execution/incremental/WorkQueue.js +3 -0
- package/__dev__/execution/incremental/WorkQueue.mjs +3 -0
- package/__dev__/execution/incremental/buildExecutionPlan.d.mts +1 -0
- package/__dev__/execution/incremental/buildExecutionPlan.d.ts +1 -0
- package/__dev__/execution/incremental/buildExecutionPlan.js +3 -0
- package/__dev__/execution/incremental/buildExecutionPlan.mjs +3 -0
- package/__dev__/execution/index.d.mts +1 -0
- package/__dev__/execution/index.d.ts +1 -0
- package/__dev__/execution/index.js +3 -0
- package/__dev__/execution/index.mjs +3 -0
- package/__dev__/execution/mapAsyncIterable.d.mts +1 -0
- package/__dev__/execution/mapAsyncIterable.d.ts +1 -0
- package/__dev__/execution/mapAsyncIterable.js +3 -0
- package/__dev__/execution/mapAsyncIterable.mjs +3 -0
- package/__dev__/execution/returnIteratorCatchingErrors.d.mts +1 -0
- package/__dev__/execution/returnIteratorCatchingErrors.d.ts +1 -0
- package/__dev__/execution/returnIteratorCatchingErrors.js +3 -0
- package/__dev__/execution/returnIteratorCatchingErrors.mjs +3 -0
- package/__dev__/execution/values.d.mts +1 -0
- package/__dev__/execution/values.d.ts +1 -0
- package/__dev__/execution/values.js +3 -0
- package/__dev__/execution/values.mjs +3 -0
- package/__dev__/execution/withConcurrentAbruptClose.d.mts +1 -0
- package/__dev__/execution/withConcurrentAbruptClose.d.ts +1 -0
- package/__dev__/execution/withConcurrentAbruptClose.js +3 -0
- package/__dev__/execution/withConcurrentAbruptClose.mjs +3 -0
- package/__dev__/graphql.d.mts +1 -0
- package/__dev__/graphql.d.ts +1 -0
- package/__dev__/graphql.js +3 -0
- package/__dev__/graphql.mjs +3 -0
- package/__dev__/harness.d.mts +1 -0
- package/__dev__/harness.d.ts +1 -0
- package/__dev__/harness.js +3 -0
- package/__dev__/harness.mjs +3 -0
- package/__dev__/index.d.mts +1 -0
- package/__dev__/index.d.ts +1 -0
- package/__dev__/index.js +3 -0
- package/__dev__/index.mjs +3 -0
- package/__dev__/jsutils/AccumulatorMap.d.mts +1 -0
- package/__dev__/jsutils/AccumulatorMap.d.ts +1 -0
- package/__dev__/jsutils/AccumulatorMap.js +3 -0
- package/__dev__/jsutils/AccumulatorMap.mjs +3 -0
- package/__dev__/jsutils/Maybe.d.mts +1 -0
- package/__dev__/jsutils/Maybe.d.ts +1 -0
- package/__dev__/jsutils/Maybe.js +3 -0
- package/__dev__/jsutils/Maybe.mjs +3 -0
- package/__dev__/jsutils/ObjMap.d.mts +1 -0
- package/__dev__/jsutils/ObjMap.d.ts +1 -0
- package/__dev__/jsutils/ObjMap.js +3 -0
- package/__dev__/jsutils/ObjMap.mjs +3 -0
- package/__dev__/jsutils/Path.d.mts +1 -0
- package/__dev__/jsutils/Path.d.ts +1 -0
- package/__dev__/jsutils/Path.js +3 -0
- package/__dev__/jsutils/Path.mjs +3 -0
- package/__dev__/jsutils/PromiseOrValue.d.mts +1 -0
- package/__dev__/jsutils/PromiseOrValue.d.ts +1 -0
- package/__dev__/jsutils/PromiseOrValue.js +3 -0
- package/__dev__/jsutils/PromiseOrValue.mjs +3 -0
- package/__dev__/jsutils/capitalize.d.mts +1 -0
- package/__dev__/jsutils/capitalize.d.ts +1 -0
- package/__dev__/jsutils/capitalize.js +3 -0
- package/__dev__/jsutils/capitalize.mjs +3 -0
- package/__dev__/jsutils/devAssert.d.mts +1 -0
- package/__dev__/jsutils/devAssert.d.ts +1 -0
- package/__dev__/jsutils/devAssert.js +3 -0
- package/__dev__/jsutils/devAssert.mjs +3 -0
- package/__dev__/jsutils/didYouMean.d.mts +1 -0
- package/__dev__/jsutils/didYouMean.d.ts +1 -0
- package/__dev__/jsutils/didYouMean.js +3 -0
- package/__dev__/jsutils/didYouMean.mjs +3 -0
- package/__dev__/jsutils/formatList.d.mts +1 -0
- package/__dev__/jsutils/formatList.d.ts +1 -0
- package/__dev__/jsutils/formatList.js +3 -0
- package/__dev__/jsutils/formatList.mjs +3 -0
- package/__dev__/jsutils/getBySet.d.mts +1 -0
- package/__dev__/jsutils/getBySet.d.ts +1 -0
- package/__dev__/jsutils/getBySet.js +3 -0
- package/__dev__/jsutils/getBySet.mjs +3 -0
- package/__dev__/jsutils/groupBy.d.mts +1 -0
- package/__dev__/jsutils/groupBy.d.ts +1 -0
- package/__dev__/jsutils/groupBy.js +3 -0
- package/__dev__/jsutils/groupBy.mjs +3 -0
- package/__dev__/jsutils/identityFunc.d.mts +1 -0
- package/__dev__/jsutils/identityFunc.d.ts +1 -0
- package/__dev__/jsutils/identityFunc.js +3 -0
- package/__dev__/jsutils/identityFunc.mjs +3 -0
- package/__dev__/jsutils/inspect.d.mts +1 -0
- package/__dev__/jsutils/inspect.d.ts +1 -0
- package/__dev__/jsutils/inspect.js +3 -0
- package/__dev__/jsutils/inspect.mjs +3 -0
- package/__dev__/jsutils/instanceOf.d.mts +1 -0
- package/__dev__/jsutils/instanceOf.d.ts +1 -0
- package/__dev__/jsutils/instanceOf.js +3 -0
- package/__dev__/jsutils/instanceOf.mjs +3 -0
- package/__dev__/jsutils/invariant.d.mts +1 -0
- package/__dev__/jsutils/invariant.d.ts +1 -0
- package/__dev__/jsutils/invariant.js +3 -0
- package/__dev__/jsutils/invariant.mjs +3 -0
- package/__dev__/jsutils/isAsyncIterable.d.mts +1 -0
- package/__dev__/jsutils/isAsyncIterable.d.ts +1 -0
- package/__dev__/jsutils/isAsyncIterable.js +3 -0
- package/__dev__/jsutils/isAsyncIterable.mjs +3 -0
- package/__dev__/jsutils/isIterableObject.d.mts +1 -0
- package/__dev__/jsutils/isIterableObject.d.ts +1 -0
- package/__dev__/jsutils/isIterableObject.js +3 -0
- package/__dev__/jsutils/isIterableObject.mjs +3 -0
- package/__dev__/jsutils/isObjectLike.d.mts +1 -0
- package/__dev__/jsutils/isObjectLike.d.ts +1 -0
- package/__dev__/jsutils/isObjectLike.js +3 -0
- package/__dev__/jsutils/isObjectLike.mjs +3 -0
- package/__dev__/jsutils/isPromise.d.mts +1 -0
- package/__dev__/jsutils/isPromise.d.ts +1 -0
- package/__dev__/jsutils/isPromise.js +3 -0
- package/__dev__/jsutils/isPromise.mjs +3 -0
- package/__dev__/jsutils/isSameSet.d.mts +1 -0
- package/__dev__/jsutils/isSameSet.d.ts +1 -0
- package/__dev__/jsutils/isSameSet.js +3 -0
- package/__dev__/jsutils/isSameSet.mjs +3 -0
- package/__dev__/jsutils/keyMap.d.mts +1 -0
- package/__dev__/jsutils/keyMap.d.ts +1 -0
- package/__dev__/jsutils/keyMap.js +3 -0
- package/__dev__/jsutils/keyMap.mjs +3 -0
- package/__dev__/jsutils/keyValMap.d.mts +1 -0
- package/__dev__/jsutils/keyValMap.d.ts +1 -0
- package/__dev__/jsutils/keyValMap.js +3 -0
- package/__dev__/jsutils/keyValMap.mjs +3 -0
- package/__dev__/jsutils/mapValue.d.mts +1 -0
- package/__dev__/jsutils/mapValue.d.ts +1 -0
- package/__dev__/jsutils/mapValue.js +3 -0
- package/__dev__/jsutils/mapValue.mjs +3 -0
- package/__dev__/jsutils/memoize1.d.mts +1 -0
- package/__dev__/jsutils/memoize1.d.ts +1 -0
- package/__dev__/jsutils/memoize1.js +3 -0
- package/__dev__/jsutils/memoize1.mjs +3 -0
- package/__dev__/jsutils/memoize2.d.mts +1 -0
- package/__dev__/jsutils/memoize2.d.ts +1 -0
- package/__dev__/jsutils/memoize2.js +3 -0
- package/__dev__/jsutils/memoize2.mjs +3 -0
- package/__dev__/jsutils/memoize3.d.mts +1 -0
- package/__dev__/jsutils/memoize3.d.ts +1 -0
- package/__dev__/jsutils/memoize3.js +3 -0
- package/__dev__/jsutils/memoize3.mjs +3 -0
- package/__dev__/jsutils/naturalCompare.d.mts +1 -0
- package/__dev__/jsutils/naturalCompare.d.ts +1 -0
- package/__dev__/jsutils/naturalCompare.js +3 -0
- package/__dev__/jsutils/naturalCompare.mjs +3 -0
- package/__dev__/jsutils/printPathArray.d.mts +1 -0
- package/__dev__/jsutils/printPathArray.d.ts +1 -0
- package/__dev__/jsutils/printPathArray.js +3 -0
- package/__dev__/jsutils/printPathArray.mjs +3 -0
- package/__dev__/jsutils/promiseForObject.d.mts +1 -0
- package/__dev__/jsutils/promiseForObject.d.ts +1 -0
- package/__dev__/jsutils/promiseForObject.js +3 -0
- package/__dev__/jsutils/promiseForObject.mjs +3 -0
- package/__dev__/jsutils/promiseReduce.d.mts +1 -0
- package/__dev__/jsutils/promiseReduce.d.ts +1 -0
- package/__dev__/jsutils/promiseReduce.js +3 -0
- package/__dev__/jsutils/promiseReduce.mjs +3 -0
- package/__dev__/jsutils/promiseWithResolvers.d.mts +1 -0
- package/__dev__/jsutils/promiseWithResolvers.d.ts +1 -0
- package/__dev__/jsutils/promiseWithResolvers.js +3 -0
- package/__dev__/jsutils/promiseWithResolvers.mjs +3 -0
- package/__dev__/jsutils/suggestionList.d.mts +1 -0
- package/__dev__/jsutils/suggestionList.d.ts +1 -0
- package/__dev__/jsutils/suggestionList.js +3 -0
- package/__dev__/jsutils/suggestionList.mjs +3 -0
- package/__dev__/jsutils/toError.d.mts +1 -0
- package/__dev__/jsutils/toError.d.ts +1 -0
- package/__dev__/jsutils/toError.js +3 -0
- package/__dev__/jsutils/toError.mjs +3 -0
- package/__dev__/jsutils/toObjMap.d.mts +1 -0
- package/__dev__/jsutils/toObjMap.d.ts +1 -0
- package/__dev__/jsutils/toObjMap.js +3 -0
- package/__dev__/jsutils/toObjMap.mjs +3 -0
- package/__dev__/language/KindTypeMap.d.mts +1 -0
- package/__dev__/language/KindTypeMap.d.ts +1 -0
- package/__dev__/language/KindTypeMap.js +3 -0
- package/__dev__/language/KindTypeMap.mjs +3 -0
- package/__dev__/language/ast.d.mts +1 -0
- package/__dev__/language/ast.d.ts +1 -0
- package/__dev__/language/ast.js +3 -0
- package/__dev__/language/ast.mjs +3 -0
- package/__dev__/language/blockString.d.mts +1 -0
- package/__dev__/language/blockString.d.ts +1 -0
- package/__dev__/language/blockString.js +3 -0
- package/__dev__/language/blockString.mjs +3 -0
- package/__dev__/language/characterClasses.d.mts +1 -0
- package/__dev__/language/characterClasses.d.ts +1 -0
- package/__dev__/language/characterClasses.js +3 -0
- package/__dev__/language/characterClasses.mjs +3 -0
- package/__dev__/language/directiveLocation.d.mts +1 -0
- package/__dev__/language/directiveLocation.d.ts +1 -0
- package/__dev__/language/directiveLocation.js +3 -0
- package/__dev__/language/directiveLocation.mjs +3 -0
- package/__dev__/language/index.d.mts +1 -0
- package/__dev__/language/index.d.ts +1 -0
- package/__dev__/language/index.js +3 -0
- package/__dev__/language/index.mjs +3 -0
- package/__dev__/language/kinds.d.mts +1 -0
- package/__dev__/language/kinds.d.ts +1 -0
- package/__dev__/language/kinds.js +3 -0
- package/__dev__/language/kinds.mjs +3 -0
- package/__dev__/language/kinds_.d.mts +1 -0
- package/__dev__/language/kinds_.d.ts +1 -0
- package/__dev__/language/kinds_.js +3 -0
- package/__dev__/language/kinds_.mjs +3 -0
- package/__dev__/language/lexer.d.mts +1 -0
- package/__dev__/language/lexer.d.ts +1 -0
- package/__dev__/language/lexer.js +3 -0
- package/__dev__/language/lexer.mjs +3 -0
- package/__dev__/language/location.d.mts +1 -0
- package/__dev__/language/location.d.ts +1 -0
- package/__dev__/language/location.js +3 -0
- package/__dev__/language/location.mjs +3 -0
- package/__dev__/language/parser.d.mts +1 -0
- package/__dev__/language/parser.d.ts +1 -0
- package/__dev__/language/parser.js +3 -0
- package/__dev__/language/parser.mjs +3 -0
- package/__dev__/language/predicates.d.mts +1 -0
- package/__dev__/language/predicates.d.ts +1 -0
- package/__dev__/language/predicates.js +3 -0
- package/__dev__/language/predicates.mjs +3 -0
- package/__dev__/language/printLocation.d.mts +1 -0
- package/__dev__/language/printLocation.d.ts +1 -0
- package/__dev__/language/printLocation.js +3 -0
- package/__dev__/language/printLocation.mjs +3 -0
- package/__dev__/language/printString.d.mts +1 -0
- package/__dev__/language/printString.d.ts +1 -0
- package/__dev__/language/printString.js +3 -0
- package/__dev__/language/printString.mjs +3 -0
- package/__dev__/language/printer.d.mts +1 -0
- package/__dev__/language/printer.d.ts +1 -0
- package/__dev__/language/printer.js +3 -0
- package/__dev__/language/printer.mjs +3 -0
- package/__dev__/language/schemaCoordinateLexer.d.mts +1 -0
- package/__dev__/language/schemaCoordinateLexer.d.ts +1 -0
- package/__dev__/language/schemaCoordinateLexer.js +3 -0
- package/__dev__/language/schemaCoordinateLexer.mjs +3 -0
- package/__dev__/language/source.d.mts +1 -0
- package/__dev__/language/source.d.ts +1 -0
- package/__dev__/language/source.js +3 -0
- package/__dev__/language/source.mjs +3 -0
- package/__dev__/language/tokenKind.d.mts +1 -0
- package/__dev__/language/tokenKind.d.ts +1 -0
- package/__dev__/language/tokenKind.js +3 -0
- package/__dev__/language/tokenKind.mjs +3 -0
- package/__dev__/language/visitor.d.mts +1 -0
- package/__dev__/language/visitor.d.ts +1 -0
- package/__dev__/language/visitor.js +3 -0
- package/__dev__/language/visitor.mjs +3 -0
- package/__dev__/type/assertName.d.mts +1 -0
- package/__dev__/type/assertName.d.ts +1 -0
- package/__dev__/type/assertName.js +3 -0
- package/__dev__/type/assertName.mjs +3 -0
- package/__dev__/type/definition.d.mts +1 -0
- package/__dev__/type/definition.d.ts +1 -0
- package/__dev__/type/definition.js +3 -0
- package/__dev__/type/definition.mjs +3 -0
- package/__dev__/type/directives.d.mts +1 -0
- package/__dev__/type/directives.d.ts +1 -0
- package/__dev__/type/directives.js +3 -0
- package/__dev__/type/directives.mjs +3 -0
- package/__dev__/type/index.d.mts +1 -0
- package/__dev__/type/index.d.ts +1 -0
- package/__dev__/type/index.js +3 -0
- package/__dev__/type/index.mjs +3 -0
- package/__dev__/type/introspection.d.mts +1 -0
- package/__dev__/type/introspection.d.ts +1 -0
- package/__dev__/type/introspection.js +3 -0
- package/__dev__/type/introspection.mjs +3 -0
- package/__dev__/type/scalars.d.mts +1 -0
- package/__dev__/type/scalars.d.ts +1 -0
- package/__dev__/type/scalars.js +3 -0
- package/__dev__/type/scalars.mjs +3 -0
- package/__dev__/type/schema.d.mts +1 -0
- package/__dev__/type/schema.d.ts +1 -0
- package/__dev__/type/schema.js +3 -0
- package/__dev__/type/schema.mjs +3 -0
- package/__dev__/type/validate.d.mts +1 -0
- package/__dev__/type/validate.d.ts +1 -0
- package/__dev__/type/validate.js +3 -0
- package/__dev__/type/validate.mjs +3 -0
- package/__dev__/utilities/TypeInfo.d.mts +1 -0
- package/__dev__/utilities/TypeInfo.d.ts +1 -0
- package/__dev__/utilities/TypeInfo.js +3 -0
- package/__dev__/utilities/TypeInfo.mjs +3 -0
- package/__dev__/utilities/astFromValue.d.mts +1 -0
- package/__dev__/utilities/astFromValue.d.ts +1 -0
- package/__dev__/utilities/astFromValue.js +3 -0
- package/__dev__/utilities/astFromValue.mjs +3 -0
- package/__dev__/utilities/buildASTSchema.d.mts +1 -0
- package/__dev__/utilities/buildASTSchema.d.ts +1 -0
- package/__dev__/utilities/buildASTSchema.js +3 -0
- package/__dev__/utilities/buildASTSchema.mjs +3 -0
- package/__dev__/utilities/buildClientSchema.d.mts +1 -0
- package/__dev__/utilities/buildClientSchema.d.ts +1 -0
- package/__dev__/utilities/buildClientSchema.js +3 -0
- package/__dev__/utilities/buildClientSchema.mjs +3 -0
- package/__dev__/utilities/coerceInputValue.d.mts +1 -0
- package/__dev__/utilities/coerceInputValue.d.ts +1 -0
- package/__dev__/utilities/coerceInputValue.js +3 -0
- package/__dev__/utilities/coerceInputValue.mjs +3 -0
- package/__dev__/utilities/concatAST.d.mts +1 -0
- package/__dev__/utilities/concatAST.d.ts +1 -0
- package/__dev__/utilities/concatAST.js +3 -0
- package/__dev__/utilities/concatAST.mjs +3 -0
- package/__dev__/utilities/extendSchema.d.mts +1 -0
- package/__dev__/utilities/extendSchema.d.ts +1 -0
- package/__dev__/utilities/extendSchema.js +3 -0
- package/__dev__/utilities/extendSchema.mjs +3 -0
- package/__dev__/utilities/findSchemaChanges.d.mts +1 -0
- package/__dev__/utilities/findSchemaChanges.d.ts +1 -0
- package/__dev__/utilities/findSchemaChanges.js +3 -0
- package/__dev__/utilities/findSchemaChanges.mjs +3 -0
- package/__dev__/utilities/getDefaultValueAST.d.mts +1 -0
- package/__dev__/utilities/getDefaultValueAST.d.ts +1 -0
- package/__dev__/utilities/getDefaultValueAST.js +3 -0
- package/__dev__/utilities/getDefaultValueAST.mjs +3 -0
- package/__dev__/utilities/getIntrospectionQuery.d.mts +1 -0
- package/__dev__/utilities/getIntrospectionQuery.d.ts +1 -0
- package/__dev__/utilities/getIntrospectionQuery.js +3 -0
- package/__dev__/utilities/getIntrospectionQuery.mjs +3 -0
- package/__dev__/utilities/getOperationAST.d.mts +1 -0
- package/__dev__/utilities/getOperationAST.d.ts +1 -0
- package/__dev__/utilities/getOperationAST.js +3 -0
- package/__dev__/utilities/getOperationAST.mjs +3 -0
- package/__dev__/utilities/index.d.mts +1 -0
- package/__dev__/utilities/index.d.ts +1 -0
- package/__dev__/utilities/index.js +3 -0
- package/__dev__/utilities/index.mjs +3 -0
- package/__dev__/utilities/introspectionFromSchema.d.mts +1 -0
- package/__dev__/utilities/introspectionFromSchema.d.ts +1 -0
- package/__dev__/utilities/introspectionFromSchema.js +3 -0
- package/__dev__/utilities/introspectionFromSchema.mjs +3 -0
- package/__dev__/utilities/lexicographicSortSchema.d.mts +1 -0
- package/__dev__/utilities/lexicographicSortSchema.d.ts +1 -0
- package/__dev__/utilities/lexicographicSortSchema.js +3 -0
- package/__dev__/utilities/lexicographicSortSchema.mjs +3 -0
- package/__dev__/utilities/mapSchemaConfig.d.mts +1 -0
- package/__dev__/utilities/mapSchemaConfig.d.ts +1 -0
- package/__dev__/utilities/mapSchemaConfig.js +3 -0
- package/__dev__/utilities/mapSchemaConfig.mjs +3 -0
- package/__dev__/utilities/printSchema.d.mts +1 -0
- package/__dev__/utilities/printSchema.d.ts +1 -0
- package/__dev__/utilities/printSchema.js +3 -0
- package/__dev__/utilities/printSchema.mjs +3 -0
- package/__dev__/utilities/replaceVariables.d.mts +1 -0
- package/__dev__/utilities/replaceVariables.d.ts +1 -0
- package/__dev__/utilities/replaceVariables.js +3 -0
- package/__dev__/utilities/replaceVariables.mjs +3 -0
- package/__dev__/utilities/resolveSchemaCoordinate.d.mts +1 -0
- package/__dev__/utilities/resolveSchemaCoordinate.d.ts +1 -0
- package/__dev__/utilities/resolveSchemaCoordinate.js +3 -0
- package/__dev__/utilities/resolveSchemaCoordinate.mjs +3 -0
- package/__dev__/utilities/separateOperations.d.mts +1 -0
- package/__dev__/utilities/separateOperations.d.ts +1 -0
- package/__dev__/utilities/separateOperations.js +3 -0
- package/__dev__/utilities/separateOperations.mjs +3 -0
- package/__dev__/utilities/sortValueNode.d.mts +1 -0
- package/__dev__/utilities/sortValueNode.d.ts +1 -0
- package/__dev__/utilities/sortValueNode.js +3 -0
- package/__dev__/utilities/sortValueNode.mjs +3 -0
- package/__dev__/utilities/stripIgnoredCharacters.d.mts +1 -0
- package/__dev__/utilities/stripIgnoredCharacters.d.ts +1 -0
- package/__dev__/utilities/stripIgnoredCharacters.js +3 -0
- package/__dev__/utilities/stripIgnoredCharacters.mjs +3 -0
- package/__dev__/utilities/typeComparators.d.mts +1 -0
- package/__dev__/utilities/typeComparators.d.ts +1 -0
- package/__dev__/utilities/typeComparators.js +3 -0
- package/__dev__/utilities/typeComparators.mjs +3 -0
- package/__dev__/utilities/typeFromAST.d.mts +1 -0
- package/__dev__/utilities/typeFromAST.d.ts +1 -0
- package/__dev__/utilities/typeFromAST.js +3 -0
- package/__dev__/utilities/typeFromAST.mjs +3 -0
- package/__dev__/utilities/typedQueryDocumentNode.d.mts +1 -0
- package/__dev__/utilities/typedQueryDocumentNode.d.ts +1 -0
- package/__dev__/utilities/typedQueryDocumentNode.js +3 -0
- package/__dev__/utilities/typedQueryDocumentNode.mjs +3 -0
- package/__dev__/utilities/validateInputValue.d.mts +1 -0
- package/__dev__/utilities/validateInputValue.d.ts +1 -0
- package/__dev__/utilities/validateInputValue.js +3 -0
- package/__dev__/utilities/validateInputValue.mjs +3 -0
- package/__dev__/utilities/valueFromAST.d.mts +1 -0
- package/__dev__/utilities/valueFromAST.d.ts +1 -0
- package/__dev__/utilities/valueFromAST.js +3 -0
- package/__dev__/utilities/valueFromAST.mjs +3 -0
- package/__dev__/utilities/valueFromASTUntyped.d.mts +1 -0
- package/__dev__/utilities/valueFromASTUntyped.d.ts +1 -0
- package/__dev__/utilities/valueFromASTUntyped.js +3 -0
- package/__dev__/utilities/valueFromASTUntyped.mjs +3 -0
- package/__dev__/utilities/valueToLiteral.d.mts +1 -0
- package/__dev__/utilities/valueToLiteral.d.ts +1 -0
- package/__dev__/utilities/valueToLiteral.js +3 -0
- package/__dev__/utilities/valueToLiteral.mjs +3 -0
- package/__dev__/validation/ValidationContext.d.mts +1 -0
- package/__dev__/validation/ValidationContext.d.ts +1 -0
- package/__dev__/validation/ValidationContext.js +3 -0
- package/__dev__/validation/ValidationContext.mjs +3 -0
- package/__dev__/validation/index.d.mts +1 -0
- package/__dev__/validation/index.d.ts +1 -0
- package/__dev__/validation/index.js +3 -0
- package/__dev__/validation/index.mjs +3 -0
- package/__dev__/validation/rules/DeferStreamDirectiveLabelRule.d.mts +1 -0
- package/__dev__/validation/rules/DeferStreamDirectiveLabelRule.d.ts +1 -0
- package/__dev__/validation/rules/DeferStreamDirectiveLabelRule.js +3 -0
- package/__dev__/validation/rules/DeferStreamDirectiveLabelRule.mjs +3 -0
- package/__dev__/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.mts +1 -0
- package/__dev__/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +1 -0
- package/__dev__/validation/rules/DeferStreamDirectiveOnRootFieldRule.js +3 -0
- package/__dev__/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs +3 -0
- package/__dev__/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.mts +1 -0
- package/__dev__/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +1 -0
- package/__dev__/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js +3 -0
- package/__dev__/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs +3 -0
- package/__dev__/validation/rules/ExecutableDefinitionsRule.d.mts +1 -0
- package/__dev__/validation/rules/ExecutableDefinitionsRule.d.ts +1 -0
- package/__dev__/validation/rules/ExecutableDefinitionsRule.js +3 -0
- package/__dev__/validation/rules/ExecutableDefinitionsRule.mjs +3 -0
- package/__dev__/validation/rules/FieldsOnCorrectTypeRule.d.mts +1 -0
- package/__dev__/validation/rules/FieldsOnCorrectTypeRule.d.ts +1 -0
- package/__dev__/validation/rules/FieldsOnCorrectTypeRule.js +3 -0
- package/__dev__/validation/rules/FieldsOnCorrectTypeRule.mjs +3 -0
- package/__dev__/validation/rules/FragmentsOnCompositeTypesRule.d.mts +1 -0
- package/__dev__/validation/rules/FragmentsOnCompositeTypesRule.d.ts +1 -0
- package/__dev__/validation/rules/FragmentsOnCompositeTypesRule.js +3 -0
- package/__dev__/validation/rules/FragmentsOnCompositeTypesRule.mjs +3 -0
- package/__dev__/validation/rules/KnownArgumentNamesRule.d.mts +1 -0
- package/__dev__/validation/rules/KnownArgumentNamesRule.d.ts +1 -0
- package/__dev__/validation/rules/KnownArgumentNamesRule.js +3 -0
- package/__dev__/validation/rules/KnownArgumentNamesRule.mjs +3 -0
- package/__dev__/validation/rules/KnownDirectivesRule.d.mts +1 -0
- package/__dev__/validation/rules/KnownDirectivesRule.d.ts +1 -0
- package/__dev__/validation/rules/KnownDirectivesRule.js +3 -0
- package/__dev__/validation/rules/KnownDirectivesRule.mjs +3 -0
- package/__dev__/validation/rules/KnownFragmentNamesRule.d.mts +1 -0
- package/__dev__/validation/rules/KnownFragmentNamesRule.d.ts +1 -0
- package/__dev__/validation/rules/KnownFragmentNamesRule.js +3 -0
- package/__dev__/validation/rules/KnownFragmentNamesRule.mjs +3 -0
- package/__dev__/validation/rules/KnownOperationTypesRule.d.mts +1 -0
- package/__dev__/validation/rules/KnownOperationTypesRule.d.ts +1 -0
- package/__dev__/validation/rules/KnownOperationTypesRule.js +3 -0
- package/__dev__/validation/rules/KnownOperationTypesRule.mjs +3 -0
- package/__dev__/validation/rules/KnownTypeNamesRule.d.mts +1 -0
- package/__dev__/validation/rules/KnownTypeNamesRule.d.ts +1 -0
- package/__dev__/validation/rules/KnownTypeNamesRule.js +3 -0
- package/__dev__/validation/rules/KnownTypeNamesRule.mjs +3 -0
- package/__dev__/validation/rules/LoneAnonymousOperationRule.d.mts +1 -0
- package/__dev__/validation/rules/LoneAnonymousOperationRule.d.ts +1 -0
- package/__dev__/validation/rules/LoneAnonymousOperationRule.js +3 -0
- package/__dev__/validation/rules/LoneAnonymousOperationRule.mjs +3 -0
- package/__dev__/validation/rules/LoneSchemaDefinitionRule.d.mts +1 -0
- package/__dev__/validation/rules/LoneSchemaDefinitionRule.d.ts +1 -0
- package/__dev__/validation/rules/LoneSchemaDefinitionRule.js +3 -0
- package/__dev__/validation/rules/LoneSchemaDefinitionRule.mjs +3 -0
- package/__dev__/validation/rules/MaxIntrospectionDepthRule.d.mts +1 -0
- package/__dev__/validation/rules/MaxIntrospectionDepthRule.d.ts +1 -0
- package/__dev__/validation/rules/MaxIntrospectionDepthRule.js +3 -0
- package/__dev__/validation/rules/MaxIntrospectionDepthRule.mjs +3 -0
- package/__dev__/validation/rules/NoFragmentCyclesRule.d.mts +1 -0
- package/__dev__/validation/rules/NoFragmentCyclesRule.d.ts +1 -0
- package/__dev__/validation/rules/NoFragmentCyclesRule.js +3 -0
- package/__dev__/validation/rules/NoFragmentCyclesRule.mjs +3 -0
- package/__dev__/validation/rules/NoUndefinedVariablesRule.d.mts +1 -0
- package/__dev__/validation/rules/NoUndefinedVariablesRule.d.ts +1 -0
- package/__dev__/validation/rules/NoUndefinedVariablesRule.js +3 -0
- package/__dev__/validation/rules/NoUndefinedVariablesRule.mjs +3 -0
- package/__dev__/validation/rules/NoUnusedFragmentsRule.d.mts +1 -0
- package/__dev__/validation/rules/NoUnusedFragmentsRule.d.ts +1 -0
- package/__dev__/validation/rules/NoUnusedFragmentsRule.js +3 -0
- package/__dev__/validation/rules/NoUnusedFragmentsRule.mjs +3 -0
- package/__dev__/validation/rules/NoUnusedVariablesRule.d.mts +1 -0
- package/__dev__/validation/rules/NoUnusedVariablesRule.d.ts +1 -0
- package/__dev__/validation/rules/NoUnusedVariablesRule.js +3 -0
- package/__dev__/validation/rules/NoUnusedVariablesRule.mjs +3 -0
- package/__dev__/validation/rules/OverlappingFieldsCanBeMergedRule.d.mts +1 -0
- package/__dev__/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +1 -0
- package/__dev__/validation/rules/OverlappingFieldsCanBeMergedRule.js +3 -0
- package/__dev__/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +3 -0
- package/__dev__/validation/rules/PossibleFragmentSpreadsRule.d.mts +1 -0
- package/__dev__/validation/rules/PossibleFragmentSpreadsRule.d.ts +1 -0
- package/__dev__/validation/rules/PossibleFragmentSpreadsRule.js +3 -0
- package/__dev__/validation/rules/PossibleFragmentSpreadsRule.mjs +3 -0
- package/__dev__/validation/rules/PossibleTypeExtensionsRule.d.mts +1 -0
- package/__dev__/validation/rules/PossibleTypeExtensionsRule.d.ts +1 -0
- package/__dev__/validation/rules/PossibleTypeExtensionsRule.js +3 -0
- package/__dev__/validation/rules/PossibleTypeExtensionsRule.mjs +3 -0
- package/__dev__/validation/rules/ProvidedRequiredArgumentsRule.d.mts +1 -0
- package/__dev__/validation/rules/ProvidedRequiredArgumentsRule.d.ts +1 -0
- package/__dev__/validation/rules/ProvidedRequiredArgumentsRule.js +3 -0
- package/__dev__/validation/rules/ProvidedRequiredArgumentsRule.mjs +3 -0
- package/__dev__/validation/rules/ScalarLeafsRule.d.mts +1 -0
- package/__dev__/validation/rules/ScalarLeafsRule.d.ts +1 -0
- package/__dev__/validation/rules/ScalarLeafsRule.js +3 -0
- package/__dev__/validation/rules/ScalarLeafsRule.mjs +3 -0
- package/__dev__/validation/rules/SingleFieldSubscriptionsRule.d.mts +1 -0
- package/__dev__/validation/rules/SingleFieldSubscriptionsRule.d.ts +1 -0
- package/__dev__/validation/rules/SingleFieldSubscriptionsRule.js +3 -0
- package/__dev__/validation/rules/SingleFieldSubscriptionsRule.mjs +3 -0
- package/__dev__/validation/rules/StreamDirectiveOnListFieldRule.d.mts +1 -0
- package/__dev__/validation/rules/StreamDirectiveOnListFieldRule.d.ts +1 -0
- package/__dev__/validation/rules/StreamDirectiveOnListFieldRule.js +3 -0
- package/__dev__/validation/rules/StreamDirectiveOnListFieldRule.mjs +3 -0
- package/__dev__/validation/rules/UniqueArgumentDefinitionNamesRule.d.mts +1 -0
- package/__dev__/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +1 -0
- package/__dev__/validation/rules/UniqueArgumentDefinitionNamesRule.js +3 -0
- package/__dev__/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +3 -0
- package/__dev__/validation/rules/UniqueArgumentNamesRule.d.mts +1 -0
- package/__dev__/validation/rules/UniqueArgumentNamesRule.d.ts +1 -0
- package/__dev__/validation/rules/UniqueArgumentNamesRule.js +3 -0
- package/__dev__/validation/rules/UniqueArgumentNamesRule.mjs +3 -0
- package/__dev__/validation/rules/UniqueDirectiveNamesRule.d.mts +1 -0
- package/__dev__/validation/rules/UniqueDirectiveNamesRule.d.ts +1 -0
- package/__dev__/validation/rules/UniqueDirectiveNamesRule.js +3 -0
- package/__dev__/validation/rules/UniqueDirectiveNamesRule.mjs +3 -0
- package/__dev__/validation/rules/UniqueDirectivesPerLocationRule.d.mts +1 -0
- package/__dev__/validation/rules/UniqueDirectivesPerLocationRule.d.ts +1 -0
- package/__dev__/validation/rules/UniqueDirectivesPerLocationRule.js +3 -0
- package/__dev__/validation/rules/UniqueDirectivesPerLocationRule.mjs +3 -0
- package/__dev__/validation/rules/UniqueEnumValueNamesRule.d.mts +1 -0
- package/__dev__/validation/rules/UniqueEnumValueNamesRule.d.ts +1 -0
- package/__dev__/validation/rules/UniqueEnumValueNamesRule.js +3 -0
- package/__dev__/validation/rules/UniqueEnumValueNamesRule.mjs +3 -0
- package/__dev__/validation/rules/UniqueFieldDefinitionNamesRule.d.mts +1 -0
- package/__dev__/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +1 -0
- package/__dev__/validation/rules/UniqueFieldDefinitionNamesRule.js +3 -0
- package/__dev__/validation/rules/UniqueFieldDefinitionNamesRule.mjs +3 -0
- package/__dev__/validation/rules/UniqueFragmentNamesRule.d.mts +1 -0
- package/__dev__/validation/rules/UniqueFragmentNamesRule.d.ts +1 -0
- package/__dev__/validation/rules/UniqueFragmentNamesRule.js +3 -0
- package/__dev__/validation/rules/UniqueFragmentNamesRule.mjs +3 -0
- package/__dev__/validation/rules/UniqueInputFieldNamesRule.d.mts +1 -0
- package/__dev__/validation/rules/UniqueInputFieldNamesRule.d.ts +1 -0
- package/__dev__/validation/rules/UniqueInputFieldNamesRule.js +3 -0
- package/__dev__/validation/rules/UniqueInputFieldNamesRule.mjs +3 -0
- package/__dev__/validation/rules/UniqueOperationNamesRule.d.mts +1 -0
- package/__dev__/validation/rules/UniqueOperationNamesRule.d.ts +1 -0
- package/__dev__/validation/rules/UniqueOperationNamesRule.js +3 -0
- package/__dev__/validation/rules/UniqueOperationNamesRule.mjs +3 -0
- package/__dev__/validation/rules/UniqueOperationTypesRule.d.mts +1 -0
- package/__dev__/validation/rules/UniqueOperationTypesRule.d.ts +1 -0
- package/__dev__/validation/rules/UniqueOperationTypesRule.js +3 -0
- package/__dev__/validation/rules/UniqueOperationTypesRule.mjs +3 -0
- package/__dev__/validation/rules/UniqueTypeNamesRule.d.mts +1 -0
- package/__dev__/validation/rules/UniqueTypeNamesRule.d.ts +1 -0
- package/__dev__/validation/rules/UniqueTypeNamesRule.js +3 -0
- package/__dev__/validation/rules/UniqueTypeNamesRule.mjs +3 -0
- package/__dev__/validation/rules/UniqueVariableNamesRule.d.mts +1 -0
- package/__dev__/validation/rules/UniqueVariableNamesRule.d.ts +1 -0
- package/__dev__/validation/rules/UniqueVariableNamesRule.js +3 -0
- package/__dev__/validation/rules/UniqueVariableNamesRule.mjs +3 -0
- package/__dev__/validation/rules/ValuesOfCorrectTypeRule.d.mts +1 -0
- package/__dev__/validation/rules/ValuesOfCorrectTypeRule.d.ts +1 -0
- package/__dev__/validation/rules/ValuesOfCorrectTypeRule.js +3 -0
- package/__dev__/validation/rules/ValuesOfCorrectTypeRule.mjs +3 -0
- package/__dev__/validation/rules/VariablesAreInputTypesRule.d.mts +1 -0
- package/__dev__/validation/rules/VariablesAreInputTypesRule.d.ts +1 -0
- package/__dev__/validation/rules/VariablesAreInputTypesRule.js +3 -0
- package/__dev__/validation/rules/VariablesAreInputTypesRule.mjs +3 -0
- package/__dev__/validation/rules/VariablesInAllowedPositionRule.d.mts +1 -0
- package/__dev__/validation/rules/VariablesInAllowedPositionRule.d.ts +1 -0
- package/__dev__/validation/rules/VariablesInAllowedPositionRule.js +3 -0
- package/__dev__/validation/rules/VariablesInAllowedPositionRule.mjs +3 -0
- package/__dev__/validation/rules/custom/NoDeprecatedCustomRule.d.mts +1 -0
- package/__dev__/validation/rules/custom/NoDeprecatedCustomRule.d.ts +1 -0
- package/__dev__/validation/rules/custom/NoDeprecatedCustomRule.js +3 -0
- package/__dev__/validation/rules/custom/NoDeprecatedCustomRule.mjs +3 -0
- package/__dev__/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.mts +1 -0
- package/__dev__/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +1 -0
- package/__dev__/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +3 -0
- package/__dev__/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +3 -0
- package/__dev__/validation/specifiedRules.d.mts +1 -0
- package/__dev__/validation/specifiedRules.d.ts +1 -0
- package/__dev__/validation/specifiedRules.js +3 -0
- package/__dev__/validation/specifiedRules.mjs +3 -0
- package/__dev__/validation/validate.d.mts +1 -0
- package/__dev__/validation/validate.d.ts +1 -0
- package/__dev__/validation/validate.js +3 -0
- package/__dev__/validation/validate.mjs +3 -0
- package/__dev__/version.d.mts +1 -0
- package/__dev__/version.d.ts +1 -0
- package/__dev__/version.js +3 -0
- package/__dev__/version.mjs +3 -0
- package/devMode.d.mts +2 -0
- package/devMode.d.ts +2 -0
- package/devMode.js +14 -0
- package/devMode.js.map +1 -0
- package/devMode.mjs +10 -0
- package/devMode.mjs.map +1 -0
- package/error/GraphQLError.d.mts +120 -0
- package/error/ensureGraphQLError.d.mts +5 -0
- package/error/ensureGraphQLError.d.ts +5 -0
- package/error/ensureGraphQLError.js +16 -0
- package/error/ensureGraphQLError.js.map +1 -0
- package/error/ensureGraphQLError.mjs +13 -0
- package/error/ensureGraphQLError.mjs.map +1 -0
- package/error/index.d.mts +4 -0
- package/error/locatedError.d.mts +9 -0
- package/error/syntaxError.d.mts +7 -0
- package/execution/AbortedGraphQLExecutionError.d.mts +6 -0
- package/execution/AbortedGraphQLExecutionError.d.ts +6 -0
- package/execution/AbortedGraphQLExecutionError.js +27 -0
- package/execution/AbortedGraphQLExecutionError.js.map +1 -0
- package/execution/AbortedGraphQLExecutionError.mjs +23 -0
- package/execution/AbortedGraphQLExecutionError.mjs.map +1 -0
- package/execution/AsyncWorkTracker.d.mts +10 -0
- package/execution/AsyncWorkTracker.d.ts +10 -0
- package/execution/AsyncWorkTracker.js +49 -0
- package/execution/AsyncWorkTracker.js.map +1 -0
- package/execution/AsyncWorkTracker.mjs +45 -0
- package/execution/AsyncWorkTracker.mjs.map +1 -0
- package/execution/Executor.d.mts +212 -0
- package/execution/Executor.d.ts +212 -0
- package/execution/Executor.js +655 -0
- package/execution/Executor.js.map +1 -0
- package/execution/Executor.mjs +651 -0
- package/execution/Executor.mjs.map +1 -0
- package/execution/ExecutorThrowingOnIncremental.d.mts +12 -0
- package/execution/ExecutorThrowingOnIncremental.d.ts +12 -0
- package/execution/ExecutorThrowingOnIncremental.js +47 -0
- package/execution/ExecutorThrowingOnIncremental.js.map +1 -0
- package/execution/ExecutorThrowingOnIncremental.mjs +43 -0
- package/execution/ExecutorThrowingOnIncremental.mjs.map +1 -0
- package/execution/cancellablePromise.d.mts +6 -0
- package/execution/cancellablePromise.d.ts +6 -0
- package/execution/cancellablePromise.js +49 -0
- package/execution/cancellablePromise.js.map +1 -0
- package/execution/cancellablePromise.mjs +45 -0
- package/execution/cancellablePromise.mjs.map +1 -0
- package/execution/collectFields.d.mts +59 -0
- package/execution/collectFields.d.ts +15 -4
- package/execution/collectFields.js +57 -22
- package/execution/collectFields.js.map +1 -1
- package/execution/collectFields.mjs +58 -23
- package/execution/collectFields.mjs.map +1 -1
- package/execution/collectIteratorPromises.d.mts +5 -0
- package/execution/collectIteratorPromises.d.ts +5 -0
- package/execution/collectIteratorPromises.js +27 -0
- package/execution/collectIteratorPromises.js.map +1 -0
- package/execution/collectIteratorPromises.mjs +24 -0
- package/execution/collectIteratorPromises.mjs.map +1 -0
- package/execution/createSharedExecutionContext.d.mts +10 -0
- package/execution/createSharedExecutionContext.d.ts +10 -0
- package/execution/createSharedExecutionContext.js +20 -0
- package/execution/createSharedExecutionContext.js.map +1 -0
- package/execution/createSharedExecutionContext.mjs +17 -0
- package/execution/createSharedExecutionContext.mjs.map +1 -0
- package/execution/execute.d.mts +180 -0
- package/execution/execute.d.ts +73 -118
- package/execution/execute.js +218 -1121
- package/execution/execute.js.map +1 -1
- package/execution/execute.mjs +213 -1119
- package/execution/execute.mjs.map +1 -1
- package/execution/getStreamUsage.d.mts +13 -0
- package/execution/getStreamUsage.d.ts +13 -0
- package/execution/getStreamUsage.js +41 -0
- package/execution/getStreamUsage.js.map +1 -0
- package/execution/getStreamUsage.mjs +38 -0
- package/execution/getStreamUsage.mjs.map +1 -0
- package/execution/getVariableSignature.d.mts +18 -0
- package/execution/hooks.d.mts +9 -0
- package/execution/hooks.d.ts +9 -0
- package/execution/hooks.js +24 -0
- package/execution/hooks.js.map +1 -0
- package/execution/hooks.mjs +21 -0
- package/execution/hooks.mjs.map +1 -0
- package/execution/incremental/Computation.d.mts +22 -0
- package/execution/incremental/Computation.d.ts +22 -0
- package/execution/incremental/Computation.js +68 -0
- package/execution/incremental/Computation.js.map +1 -0
- package/execution/incremental/Computation.mjs +64 -0
- package/execution/incremental/Computation.mjs.map +1 -0
- package/execution/incremental/IncrementalExecutor.d.mts +182 -0
- package/execution/incremental/IncrementalExecutor.d.ts +182 -0
- package/execution/incremental/IncrementalExecutor.js +390 -0
- package/execution/incremental/IncrementalExecutor.js.map +1 -0
- package/execution/incremental/IncrementalExecutor.mjs +386 -0
- package/execution/incremental/IncrementalExecutor.mjs.map +1 -0
- package/execution/incremental/IncrementalPublisher.d.mts +17 -0
- package/execution/incremental/IncrementalPublisher.d.ts +17 -0
- package/execution/incremental/IncrementalPublisher.js +201 -0
- package/execution/incremental/IncrementalPublisher.js.map +1 -0
- package/execution/incremental/IncrementalPublisher.mjs +197 -0
- package/execution/incremental/IncrementalPublisher.mjs.map +1 -0
- package/execution/incremental/Queue.d.mts +86 -0
- package/execution/incremental/Queue.d.ts +86 -0
- package/execution/incremental/Queue.js +330 -0
- package/execution/incremental/Queue.js.map +1 -0
- package/execution/incremental/Queue.mjs +325 -0
- package/execution/incremental/Queue.mjs.map +1 -0
- package/execution/incremental/WorkQueue.d.mts +67 -0
- package/execution/incremental/WorkQueue.d.ts +67 -0
- package/execution/incremental/WorkQueue.js +396 -0
- package/execution/incremental/WorkQueue.js.map +1 -0
- package/execution/incremental/WorkQueue.mjs +393 -0
- package/execution/incremental/WorkQueue.mjs.map +1 -0
- package/execution/incremental/buildExecutionPlan.d.mts +7 -0
- package/execution/{buildExecutionPlan.d.ts → incremental/buildExecutionPlan.d.ts} +1 -1
- package/execution/{buildExecutionPlan.js → incremental/buildExecutionPlan.js} +2 -2
- package/execution/incremental/buildExecutionPlan.js.map +1 -0
- package/execution/{buildExecutionPlan.mjs → incremental/buildExecutionPlan.mjs} +2 -2
- package/execution/incremental/buildExecutionPlan.mjs.map +1 -0
- package/execution/index.d.mts +8 -0
- package/execution/index.d.ts +6 -3
- package/execution/index.js +8 -4
- package/execution/index.js.map +1 -1
- package/execution/index.mjs +2 -1
- package/execution/index.mjs.map +1 -1
- package/execution/mapAsyncIterable.d.mts +6 -0
- package/execution/mapAsyncIterable.d.ts +1 -1
- package/execution/mapAsyncIterable.js +28 -51
- package/execution/mapAsyncIterable.js.map +1 -1
- package/execution/mapAsyncIterable.mjs +28 -51
- 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 +12 -0
- package/execution/returnIteratorCatchingErrors.js.map +1 -0
- package/execution/returnIteratorCatchingErrors.mjs +9 -0
- package/execution/returnIteratorCatchingErrors.mjs.map +1 -0
- package/execution/values.d.mts +61 -0
- package/execution/values.d.ts +12 -21
- package/execution/values.js +111 -74
- package/execution/values.js.map +1 -1
- package/execution/values.mjs +111 -73
- package/execution/values.mjs.map +1 -1
- package/execution/withConcurrentAbruptClose.d.mts +13 -0
- package/execution/withConcurrentAbruptClose.d.ts +13 -0
- package/execution/withConcurrentAbruptClose.js +72 -0
- package/execution/withConcurrentAbruptClose.js.map +1 -0
- package/execution/withConcurrentAbruptClose.mjs +69 -0
- package/execution/withConcurrentAbruptClose.mjs.map +1 -0
- package/graphql.d.mts +61 -0
- package/graphql.d.ts +9 -16
- package/graphql.js +22 -22
- package/graphql.js.map +1 -1
- package/graphql.mjs +22 -22
- package/graphql.mjs.map +1 -1
- package/harness.d.mts +15 -0
- package/harness.d.ts +15 -0
- package/harness.js +13 -0
- package/harness.js.map +1 -0
- package/harness.mjs +10 -0
- package/harness.mjs.map +1 -0
- package/index.d.mts +51 -0
- package/index.d.ts +10 -7
- package/index.js +25 -8
- package/index.js.map +1 -1
- package/index.mjs +11 -5
- package/index.mjs.map +1 -1
- package/jsutils/AccumulatorMap.d.mts +7 -0
- package/jsutils/AccumulatorMap.js +1 -0
- package/jsutils/AccumulatorMap.js.map +1 -1
- package/jsutils/AccumulatorMap.mjs +1 -0
- package/jsutils/AccumulatorMap.mjs.map +1 -1
- package/jsutils/Maybe.d.mts +2 -0
- package/jsutils/ObjMap.d.mts +18 -0
- package/jsutils/Path.d.mts +14 -0
- package/jsutils/PromiseOrValue.d.mts +1 -0
- package/jsutils/capitalize.d.mts +4 -0
- package/jsutils/devAssert.d.mts +1 -0
- package/jsutils/didYouMean.d.mts +5 -0
- package/jsutils/formatList.d.mts +8 -0
- package/jsutils/formatList.js +2 -1
- package/jsutils/formatList.js.map +1 -1
- package/jsutils/formatList.mjs +2 -1
- package/jsutils/formatList.mjs.map +1 -1
- package/jsutils/getBySet.d.mts +1 -0
- package/jsutils/groupBy.d.mts +4 -0
- package/jsutils/identityFunc.d.mts +4 -0
- package/jsutils/inspect.d.mts +4 -0
- package/jsutils/instanceOf.d.mts +15 -0
- package/jsutils/instanceOf.d.ts +8 -7
- package/jsutils/instanceOf.js +29 -30
- package/jsutils/instanceOf.js.map +1 -1
- package/jsutils/instanceOf.mjs +28 -30
- package/jsutils/instanceOf.mjs.map +1 -1
- package/jsutils/invariant.d.mts +1 -0
- package/jsutils/isAsyncIterable.d.mts +5 -0
- package/jsutils/isIterableObject.d.mts +18 -0
- package/jsutils/isObjectLike.d.mts +7 -0
- package/jsutils/isPromise.d.mts +6 -0
- package/jsutils/isPromise.d.ts +2 -1
- package/jsutils/isPromise.js +5 -1
- package/jsutils/isPromise.js.map +1 -1
- package/jsutils/isPromise.mjs +4 -1
- package/jsutils/isPromise.mjs.map +1 -1
- package/jsutils/isSameSet.d.mts +1 -0
- package/jsutils/keyMap.d.mts +29 -0
- package/jsutils/keyValMap.d.mts +19 -0
- package/jsutils/mapValue.d.mts +6 -0
- package/jsutils/memoize1.d.mts +4 -0
- package/jsutils/memoize1.d.ts +4 -0
- package/jsutils/memoize1.js +19 -0
- package/jsutils/memoize1.js.map +1 -0
- package/jsutils/memoize1.mjs +16 -0
- package/jsutils/memoize1.mjs.map +1 -0
- package/jsutils/memoize2.d.mts +4 -0
- package/jsutils/memoize2.d.ts +4 -0
- package/jsutils/memoize2.js +24 -0
- package/jsutils/memoize2.js.map +1 -0
- package/jsutils/memoize2.mjs +21 -0
- package/jsutils/memoize2.mjs.map +1 -0
- package/jsutils/memoize3.d.mts +4 -0
- package/jsutils/memoize3.js +1 -3
- package/jsutils/memoize3.js.map +1 -1
- package/jsutils/memoize3.mjs +1 -3
- package/jsutils/memoize3.mjs.map +1 -1
- package/jsutils/naturalCompare.d.mts +8 -0
- package/jsutils/printPathArray.d.mts +4 -0
- package/jsutils/promiseForObject.d.mts +10 -0
- package/jsutils/promiseForObject.d.ts +2 -1
- package/jsutils/promiseForObject.js +8 -7
- package/jsutils/promiseForObject.js.map +1 -1
- package/jsutils/promiseForObject.mjs +8 -7
- package/jsutils/promiseForObject.mjs.map +1 -1
- package/jsutils/promiseReduce.d.mts +9 -0
- package/jsutils/promiseWithResolvers.d.mts +10 -0
- package/jsutils/suggestionList.d.mts +5 -0
- package/jsutils/toError.d.mts +4 -0
- package/jsutils/toObjMap.d.mts +4 -0
- package/language/KindTypeMap.d.mts +2 -0
- package/language/KindTypeMap.d.ts +2 -0
- package/language/KindTypeMap.js +3 -0
- package/language/KindTypeMap.js.map +1 -0
- package/language/KindTypeMap.mjs +2 -0
- package/language/KindTypeMap.mjs.map +1 -0
- package/language/ast.d.mts +495 -0
- package/language/ast.d.ts +94 -51
- package/language/ast.js +15 -2
- package/language/ast.js.map +1 -1
- package/language/ast.mjs +15 -2
- package/language/ast.mjs.map +1 -1
- package/language/blockString.d.mts +23 -0
- package/language/characterClasses.d.mts +47 -0
- package/language/directiveLocation.d.mts +28 -0
- package/language/index.d.mts +16 -0
- package/language/index.d.ts +3 -3
- package/language/index.js +7 -2
- package/language/index.js.map +1 -1
- package/language/index.mjs +5 -3
- package/language/index.mjs.map +1 -1
- package/language/kinds.d.mts +3 -0
- package/language/kinds.js +34 -1
- package/language/kinds.js.map +1 -1
- package/language/kinds_.d.mts +109 -0
- package/language/kinds_.d.ts +11 -0
- package/language/kinds_.js +7 -1
- package/language/kinds_.js.map +1 -1
- package/language/kinds_.mjs +6 -0
- package/language/kinds_.mjs.map +1 -1
- package/language/lexer.d.mts +87 -0
- package/language/lexer.d.ts +43 -1
- package/language/lexer.js +10 -0
- package/language/lexer.js.map +1 -1
- package/language/lexer.mjs +10 -3
- package/language/lexer.mjs.map +1 -1
- package/language/location.d.mts +13 -0
- package/language/location.js +2 -1
- package/language/location.js.map +1 -1
- package/language/location.mjs +2 -1
- package/language/location.mjs.map +1 -1
- package/language/parser.d.mts +522 -0
- package/language/parser.d.ts +28 -4
- package/language/parser.js +101 -6
- package/language/parser.js.map +1 -1
- package/language/parser.mjs +100 -6
- package/language/parser.mjs.map +1 -1
- package/language/predicates.d.mts +19 -0
- package/language/predicates.d.ts +9 -1
- package/language/predicates.js +19 -0
- package/language/predicates.js.map +1 -1
- package/language/predicates.mjs +17 -0
- package/language/predicates.mjs.map +1 -1
- package/language/printLocation.d.mts +11 -0
- package/language/printString.d.mts +5 -0
- package/language/printer.d.mts +6 -0
- package/language/printer.js +28 -12
- package/language/printer.js.map +1 -1
- package/language/printer.mjs +28 -12
- package/language/printer.mjs.map +1 -1
- package/language/schemaCoordinateLexer.d.mts +43 -0
- package/language/schemaCoordinateLexer.d.ts +43 -0
- package/language/schemaCoordinateLexer.js +93 -0
- package/language/schemaCoordinateLexer.js.map +1 -0
- package/language/schemaCoordinateLexer.mjs +89 -0
- package/language/schemaCoordinateLexer.mjs.map +1 -0
- package/language/source.d.mts +26 -0
- package/language/source.d.ts +1 -0
- package/language/source.js +7 -3
- package/language/source.js.map +1 -1
- package/language/source.mjs +7 -3
- package/language/source.mjs.map +1 -1
- package/language/tokenKind.d.mts +30 -0
- package/language/tokenKind.d.ts +1 -0
- package/language/tokenKind.js +1 -0
- package/language/tokenKind.js.map +1 -1
- package/language/tokenKind.mjs +1 -0
- package/language/tokenKind.mjs.map +1 -1
- package/language/visitor.d.mts +160 -0
- package/language/visitor.js +3 -2
- package/language/visitor.js.map +1 -1
- package/language/visitor.mjs +3 -2
- package/language/visitor.mjs.map +1 -1
- package/package.json +174 -7
- package/type/assertName.d.mts +10 -0
- package/type/definition.d.mts +933 -0
- package/type/definition.d.ts +58 -16
- package/type/definition.js +53 -28
- package/type/definition.js.map +1 -1
- package/type/definition.mjs +53 -28
- package/type/definition.mjs.map +1 -1
- package/type/directives.d.mts +97 -0
- package/type/directives.d.ts +5 -0
- package/type/directives.js +20 -4
- package/type/directives.js.map +1 -1
- package/type/directives.mjs +19 -3
- package/type/directives.mjs.map +1 -1
- package/type/index.d.mts +12 -0
- package/type/index.d.ts +1 -1
- package/type/index.js.map +1 -1
- package/type/index.mjs.map +1 -1
- package/type/introspection.d.mts +26 -0
- package/type/introspection.d.ts +3 -3
- package/type/introspection.js +9 -7
- package/type/introspection.js.map +1 -1
- package/type/introspection.mjs +9 -7
- package/type/introspection.mjs.map +1 -1
- package/type/scalars.d.mts +19 -0
- package/type/scalars.d.ts +5 -5
- package/type/scalars.js +130 -38
- package/type/scalars.js.map +1 -1
- package/type/scalars.mjs +130 -38
- package/type/scalars.mjs.map +1 -1
- package/type/schema.d.mts +172 -0
- package/type/schema.d.ts +2 -0
- package/type/schema.js +11 -13
- package/type/schema.js.map +1 -1
- package/type/schema.mjs +11 -13
- package/type/schema.mjs.map +1 -1
- package/type/validate.d.mts +21 -0
- package/type/validate.d.ts +6 -0
- package/type/validate.js +48 -30
- package/type/validate.js.map +1 -1
- package/type/validate.mjs +47 -30
- package/type/validate.mjs.map +1 -1
- package/utilities/TypeInfo.d.mts +55 -0
- package/utilities/TypeInfo.js +3 -1
- package/utilities/TypeInfo.js.map +1 -1
- package/utilities/TypeInfo.mjs +3 -1
- package/utilities/TypeInfo.mjs.map +1 -1
- package/utilities/astFromValue.d.mts +27 -0
- package/utilities/astFromValue.d.ts +1 -0
- package/utilities/astFromValue.js +8 -2
- package/utilities/astFromValue.js.map +1 -1
- package/utilities/astFromValue.mjs +8 -2
- package/utilities/astFromValue.mjs.map +1 -1
- package/utilities/buildASTSchema.d.mts +29 -0
- package/utilities/buildClientSchema.d.mts +16 -0
- package/utilities/buildClientSchema.js +10 -6
- package/utilities/buildClientSchema.js.map +1 -1
- package/utilities/buildClientSchema.mjs +9 -6
- package/utilities/buildClientSchema.mjs.map +1 -1
- package/utilities/coerceInputValue.d.mts +34 -0
- package/utilities/coerceInputValue.d.ts +7 -1
- package/utilities/coerceInputValue.js +36 -13
- package/utilities/coerceInputValue.js.map +1 -1
- package/utilities/coerceInputValue.mjs +36 -13
- package/utilities/coerceInputValue.mjs.map +1 -1
- package/utilities/concatAST.d.mts +7 -0
- package/utilities/extendSchema.d.mts +29 -0
- package/utilities/extendSchema.js +2 -1
- package/utilities/extendSchema.js.map +1 -1
- package/utilities/extendSchema.mjs +2 -1
- package/utilities/extendSchema.mjs.map +1 -1
- package/utilities/findSchemaChanges.d.mts +72 -0
- package/utilities/findSchemaChanges.d.ts +18 -18
- package/utilities/findSchemaChanges.js +4 -2
- package/utilities/findSchemaChanges.js.map +1 -1
- package/utilities/findSchemaChanges.mjs +4 -2
- package/utilities/findSchemaChanges.mjs.map +1 -1
- package/utilities/getDefaultValueAST.d.mts +3 -0
- package/utilities/getDefaultValueAST.js +4 -2
- package/utilities/getDefaultValueAST.js.map +1 -1
- package/utilities/getDefaultValueAST.mjs +4 -2
- package/utilities/getDefaultValueAST.mjs.map +1 -1
- package/utilities/getIntrospectionQuery.d.mts +138 -0
- package/utilities/getOperationAST.d.mts +8 -0
- package/utilities/index.d.mts +32 -0
- package/utilities/index.d.ts +2 -0
- package/utilities/index.js +5 -1
- package/utilities/index.js.map +1 -1
- package/utilities/index.mjs +2 -0
- package/utilities/index.mjs.map +1 -1
- package/utilities/introspectionFromSchema.d.mts +12 -0
- package/utilities/introspectionFromSchema.js +2 -1
- package/utilities/introspectionFromSchema.js.map +1 -1
- package/utilities/introspectionFromSchema.mjs +2 -1
- package/utilities/introspectionFromSchema.mjs.map +1 -1
- package/utilities/lexicographicSortSchema.d.mts +7 -0
- package/utilities/mapSchemaConfig.d.mts +66 -0
- package/utilities/mapSchemaConfig.d.ts +1 -1
- package/utilities/mapSchemaConfig.js +6 -3
- package/utilities/mapSchemaConfig.js.map +1 -1
- package/utilities/mapSchemaConfig.mjs +6 -3
- package/utilities/mapSchemaConfig.mjs.map +1 -1
- package/utilities/printSchema.d.mts +7 -0
- package/utilities/printSchema.js +4 -2
- package/utilities/printSchema.js.map +1 -1
- package/utilities/printSchema.mjs +4 -2
- package/utilities/printSchema.mjs.map +1 -1
- package/utilities/replaceVariables.d.mts +13 -0
- package/utilities/replaceVariables.d.ts +2 -1
- package/utilities/replaceVariables.js +17 -8
- package/utilities/replaceVariables.js.map +1 -1
- package/utilities/replaceVariables.mjs +17 -8
- package/utilities/replaceVariables.mjs.map +1 -1
- package/utilities/resolveSchemaCoordinate.d.mts +57 -0
- package/utilities/resolveSchemaCoordinate.d.ts +57 -0
- package/utilities/resolveSchemaCoordinate.js +167 -0
- package/utilities/resolveSchemaCoordinate.js.map +1 -0
- package/utilities/resolveSchemaCoordinate.mjs +163 -0
- package/utilities/resolveSchemaCoordinate.mjs.map +1 -0
- package/utilities/separateOperations.d.mts +9 -0
- package/utilities/sortValueNode.d.mts +9 -0
- package/utilities/stripIgnoredCharacters.d.mts +62 -0
- package/utilities/typeComparators.d.mts +21 -0
- package/utilities/typeFromAST.d.mts +15 -0
- package/utilities/typedQueryDocumentNode.d.mts +17 -0
- package/utilities/validateInputValue.d.mts +19 -0
- package/utilities/validateInputValue.d.ts +2 -1
- package/utilities/validateInputValue.js +42 -17
- package/utilities/validateInputValue.js.map +1 -1
- package/utilities/validateInputValue.mjs +42 -17
- package/utilities/validateInputValue.mjs.map +1 -1
- package/utilities/valueFromAST.d.mts +26 -0
- package/utilities/valueFromAST.js +24 -9
- package/utilities/valueFromAST.js.map +1 -1
- package/utilities/valueFromAST.mjs +24 -9
- package/utilities/valueFromAST.mjs.map +1 -1
- package/utilities/valueFromASTUntyped.d.mts +20 -0
- package/utilities/valueToLiteral.d.mts +31 -0
- package/utilities/valueToLiteral.d.ts +1 -0
- package/utilities/valueToLiteral.js +4 -1
- package/utilities/valueToLiteral.js.map +1 -1
- package/utilities/valueToLiteral.mjs +4 -1
- package/utilities/valueToLiteral.mjs.map +1 -1
- package/validation/ValidationContext.d.mts +70 -0
- package/validation/ValidationContext.js +2 -0
- package/validation/ValidationContext.js.map +1 -1
- package/validation/ValidationContext.mjs +2 -0
- package/validation/ValidationContext.mjs.map +1 -1
- package/validation/index.d.mts +46 -0
- package/validation/rules/DeferStreamDirectiveLabelRule.d.mts +8 -0
- package/validation/rules/DeferStreamDirectiveLabelRule.js +1 -1
- package/validation/rules/DeferStreamDirectiveLabelRule.js.map +1 -1
- package/validation/rules/DeferStreamDirectiveLabelRule.mjs +1 -1
- package/validation/rules/DeferStreamDirectiveLabelRule.mjs.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.mts +8 -0
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.mts +8 -0
- package/validation/rules/ExecutableDefinitionsRule.d.mts +11 -0
- package/validation/rules/FieldsOnCorrectTypeRule.d.mts +11 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.d.mts +12 -0
- package/validation/rules/KnownArgumentNamesRule.d.mts +16 -0
- package/validation/rules/KnownDirectivesRule.d.mts +11 -0
- package/validation/rules/KnownDirectivesRule.js +7 -4
- package/validation/rules/KnownDirectivesRule.js.map +1 -1
- package/validation/rules/KnownDirectivesRule.mjs +7 -4
- package/validation/rules/KnownDirectivesRule.mjs.map +1 -1
- package/validation/rules/KnownFragmentNamesRule.d.mts +11 -0
- package/validation/rules/KnownOperationTypesRule.d.mts +11 -0
- package/validation/rules/KnownTypeNamesRule.d.mts +11 -0
- package/validation/rules/LoneAnonymousOperationRule.d.mts +11 -0
- package/validation/rules/LoneSchemaDefinitionRule.d.mts +8 -0
- package/validation/rules/MaxIntrospectionDepthRule.d.mts +3 -0
- package/validation/rules/MaxIntrospectionDepthRule.d.ts +2 -2
- package/validation/rules/MaxIntrospectionDepthRule.js +1 -2
- package/validation/rules/MaxIntrospectionDepthRule.js.map +1 -1
- package/validation/rules/MaxIntrospectionDepthRule.mjs +1 -2
- package/validation/rules/MaxIntrospectionDepthRule.mjs.map +1 -1
- package/validation/rules/NoFragmentCyclesRule.d.mts +11 -0
- package/validation/rules/NoUndefinedVariablesRule.d.mts +11 -0
- package/validation/rules/NoUnusedFragmentsRule.d.mts +11 -0
- package/validation/rules/NoUnusedVariablesRule.d.mts +11 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.d.mts +12 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +15 -14
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js.map +1 -1
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +15 -14
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs.map +1 -1
- package/validation/rules/PossibleFragmentSpreadsRule.d.mts +10 -0
- package/validation/rules/PossibleTypeExtensionsRule.d.mts +8 -0
- package/validation/rules/PossibleTypeExtensionsRule.js +5 -3
- package/validation/rules/PossibleTypeExtensionsRule.js.map +1 -1
- package/validation/rules/PossibleTypeExtensionsRule.mjs +5 -3
- package/validation/rules/PossibleTypeExtensionsRule.mjs.map +1 -1
- package/validation/rules/ProvidedRequiredArgumentsRule.d.mts +13 -0
- package/validation/rules/ScalarLeafsRule.d.mts +9 -0
- package/validation/rules/SingleFieldSubscriptionsRule.d.mts +12 -0
- package/validation/rules/SingleFieldSubscriptionsRule.d.ts +2 -1
- package/validation/rules/SingleFieldSubscriptionsRule.js +9 -2
- package/validation/rules/SingleFieldSubscriptionsRule.js.map +1 -1
- package/validation/rules/SingleFieldSubscriptionsRule.mjs +9 -2
- package/validation/rules/SingleFieldSubscriptionsRule.mjs.map +1 -1
- package/validation/rules/StreamDirectiveOnListFieldRule.d.mts +8 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.d.mts +9 -0
- package/validation/rules/UniqueArgumentNamesRule.d.mts +11 -0
- package/validation/rules/UniqueDirectiveNamesRule.d.mts +8 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.d.mts +11 -0
- package/validation/rules/UniqueEnumValueNamesRule.d.mts +8 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.d.mts +8 -0
- package/validation/rules/UniqueFragmentNamesRule.d.mts +10 -0
- package/validation/rules/UniqueInputFieldNamesRule.d.mts +11 -0
- package/validation/rules/UniqueInputFieldNamesRule.js +2 -1
- package/validation/rules/UniqueInputFieldNamesRule.js.map +1 -1
- package/validation/rules/UniqueInputFieldNamesRule.mjs +2 -1
- package/validation/rules/UniqueInputFieldNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueOperationNamesRule.d.mts +10 -0
- package/validation/rules/UniqueOperationTypesRule.d.mts +8 -0
- package/validation/rules/UniqueTypeNamesRule.d.mts +8 -0
- package/validation/rules/UniqueVariableNamesRule.d.mts +8 -0
- package/validation/rules/ValuesOfCorrectTypeRule.d.mts +11 -0
- package/validation/rules/ValuesOfCorrectTypeRule.js +5 -0
- package/validation/rules/ValuesOfCorrectTypeRule.js.map +1 -1
- package/validation/rules/ValuesOfCorrectTypeRule.mjs +5 -0
- package/validation/rules/ValuesOfCorrectTypeRule.mjs.map +1 -1
- package/validation/rules/VariablesAreInputTypesRule.d.mts +11 -0
- package/validation/rules/VariablesInAllowedPositionRule.d.mts +10 -0
- package/validation/rules/VariablesInAllowedPositionRule.js +1 -3
- package/validation/rules/VariablesInAllowedPositionRule.js.map +1 -1
- package/validation/rules/VariablesInAllowedPositionRule.mjs +1 -3
- package/validation/rules/VariablesInAllowedPositionRule.mjs.map +1 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.d.mts +13 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.mts +13 -0
- package/validation/specifiedRules.d.mts +17 -0
- package/validation/specifiedRules.d.ts +1 -2
- package/validation/specifiedRules.js +3 -1
- package/validation/specifiedRules.js.map +1 -1
- package/validation/specifiedRules.mjs +3 -1
- package/validation/specifiedRules.mjs.map +1 -1
- package/validation/validate.d.mts +48 -0
- package/validation/validate.d.ts +5 -4
- package/validation/validate.js +10 -5
- package/validation/validate.js.map +1 -1
- package/validation/validate.mjs +10 -5
- package/validation/validate.mjs.map +1 -1
- package/version.d.mts +13 -0
- package/version.js +2 -2
- package/version.js.map +1 -1
- package/version.mjs +2 -2
- package/version.mjs.map +1 -1
- package/execution/AbortSignalListener.d.ts +0 -17
- package/execution/AbortSignalListener.js +0 -71
- package/execution/AbortSignalListener.js.map +0 -1
- package/execution/AbortSignalListener.mjs +0 -65
- package/execution/AbortSignalListener.mjs.map +0 -1
- package/execution/IncrementalGraph.d.ts +0 -29
- package/execution/IncrementalGraph.js +0 -232
- package/execution/IncrementalGraph.js.map +0 -1
- package/execution/IncrementalGraph.mjs +0 -228
- package/execution/IncrementalGraph.mjs.map +0 -1
- package/execution/IncrementalPublisher.d.ts +0 -10
- package/execution/IncrementalPublisher.js +0 -259
- package/execution/IncrementalPublisher.js.map +0 -1
- package/execution/IncrementalPublisher.mjs +0 -256
- package/execution/IncrementalPublisher.mjs.map +0 -1
- package/execution/buildExecutionPlan.js.map +0 -1
- package/execution/buildExecutionPlan.mjs.map +0 -1
- package/execution/types.d.ts +0 -161
- package/execution/types.js +0 -36
- package/execution/types.js.map +0 -1
- package/execution/types.mjs +0 -27
- package/execution/types.mjs.map +0 -1
- package/jsutils/BoxedPromiseOrValue.d.ts +0 -15
- package/jsutils/BoxedPromiseOrValue.js +0 -27
- package/jsutils/BoxedPromiseOrValue.js.map +0 -1
- package/jsutils/BoxedPromiseOrValue.mjs +0 -23
- package/jsutils/BoxedPromiseOrValue.mjs.map +0 -1
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IncrementalPublisher = void 0;
|
|
4
|
+
const Path_js_1 = require("../../jsutils/Path.js");
|
|
5
|
+
const ensureGraphQLError_js_1 = require("../../error/ensureGraphQLError.js");
|
|
6
|
+
const mapAsyncIterable_js_1 = require("../mapAsyncIterable.js");
|
|
7
|
+
const withConcurrentAbruptClose_js_1 = require("../withConcurrentAbruptClose.js");
|
|
8
|
+
const WorkQueue_js_1 = require("./WorkQueue.js");
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
class IncrementalPublisher {
|
|
13
|
+
constructor() {
|
|
14
|
+
this._ids = new Map();
|
|
15
|
+
this._nextId = 0;
|
|
16
|
+
}
|
|
17
|
+
buildResponse(data, errors, work, abortSignal, onFinished) {
|
|
18
|
+
const { initialGroups, initialStreams, events } = (0, WorkQueue_js_1.createWorkQueue)(work);
|
|
19
|
+
function abort() {
|
|
20
|
+
subsequentResults.throw(abortSignal?.reason).catch(() => {
|
|
21
|
+
// Ignore errors
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
if (abortSignal) {
|
|
25
|
+
abortSignal.addEventListener('abort', abort);
|
|
26
|
+
}
|
|
27
|
+
const onWorkQueueFinished = () => {
|
|
28
|
+
onFinished();
|
|
29
|
+
abortSignal?.removeEventListener('abort', abort);
|
|
30
|
+
};
|
|
31
|
+
const pending = this._toPendingResults(initialGroups, initialStreams);
|
|
32
|
+
const initialResult = errors.length
|
|
33
|
+
? { errors, data, pending, hasNext: true }
|
|
34
|
+
: { data, pending, hasNext: true };
|
|
35
|
+
const subsequentResults = (0, withConcurrentAbruptClose_js_1.withConcurrentAbruptClose)((0, mapAsyncIterable_js_1.mapAsyncIterable)(events, (batch) => this._handleBatch(batch, onWorkQueueFinished)), () => onWorkQueueFinished());
|
|
36
|
+
return {
|
|
37
|
+
initialResult,
|
|
38
|
+
subsequentResults,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
_ensureId(deferredFragmentOrStream) {
|
|
42
|
+
let id = this._ids.get(deferredFragmentOrStream);
|
|
43
|
+
if (id !== undefined) {
|
|
44
|
+
return id;
|
|
45
|
+
}
|
|
46
|
+
id = String(this._nextId++);
|
|
47
|
+
this._ids.set(deferredFragmentOrStream, id);
|
|
48
|
+
return id;
|
|
49
|
+
}
|
|
50
|
+
_toPendingResults(newGroups, newStreams) {
|
|
51
|
+
const pendingResults = [];
|
|
52
|
+
for (const collection of [newGroups, newStreams]) {
|
|
53
|
+
for (const node of collection) {
|
|
54
|
+
const id = this._ensureId(node);
|
|
55
|
+
const pendingResult = {
|
|
56
|
+
id,
|
|
57
|
+
path: (0, Path_js_1.pathToArray)(node.path),
|
|
58
|
+
};
|
|
59
|
+
if (node.label !== undefined) {
|
|
60
|
+
pendingResult.label = node.label;
|
|
61
|
+
}
|
|
62
|
+
pendingResults.push(pendingResult);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return pendingResults;
|
|
66
|
+
}
|
|
67
|
+
_handleBatch(batch, onWorkQueueFinished) {
|
|
68
|
+
const context = {
|
|
69
|
+
pending: [],
|
|
70
|
+
incremental: [],
|
|
71
|
+
completed: [],
|
|
72
|
+
hasNext: true,
|
|
73
|
+
};
|
|
74
|
+
for (const event of batch) {
|
|
75
|
+
this._handleWorkQueueEvent(event, context, onWorkQueueFinished);
|
|
76
|
+
}
|
|
77
|
+
const { incremental, completed, pending, hasNext } = context;
|
|
78
|
+
const result = { hasNext };
|
|
79
|
+
if (pending.length > 0) {
|
|
80
|
+
result.pending = pending;
|
|
81
|
+
}
|
|
82
|
+
if (incremental.length > 0) {
|
|
83
|
+
result.incremental = incremental;
|
|
84
|
+
}
|
|
85
|
+
if (completed.length > 0) {
|
|
86
|
+
result.completed = completed;
|
|
87
|
+
}
|
|
88
|
+
return result;
|
|
89
|
+
}
|
|
90
|
+
_handleWorkQueueEvent(event, context, onWorkQueueFinished) {
|
|
91
|
+
switch (event.kind) {
|
|
92
|
+
case 'GROUP_VALUES': {
|
|
93
|
+
const group = event.group;
|
|
94
|
+
const id = this._ensureId(group);
|
|
95
|
+
for (const value of event.values) {
|
|
96
|
+
const { bestId, subPath } = this._getBestIdAndSubPath(id, group, value);
|
|
97
|
+
const incrementalEntry = {
|
|
98
|
+
id: bestId,
|
|
99
|
+
data: value.data,
|
|
100
|
+
};
|
|
101
|
+
if (value.errors !== undefined) {
|
|
102
|
+
incrementalEntry.errors = value.errors;
|
|
103
|
+
}
|
|
104
|
+
if (subPath !== undefined) {
|
|
105
|
+
incrementalEntry.subPath = subPath;
|
|
106
|
+
}
|
|
107
|
+
context.incremental.push(incrementalEntry);
|
|
108
|
+
}
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
case 'GROUP_SUCCESS': {
|
|
112
|
+
const group = event.group;
|
|
113
|
+
const id = this._ensureId(group);
|
|
114
|
+
context.completed.push({ id });
|
|
115
|
+
this._ids.delete(group);
|
|
116
|
+
if (event.newGroups.length > 0 || event.newStreams.length > 0) {
|
|
117
|
+
context.pending.push(...this._toPendingResults(event.newGroups, event.newStreams));
|
|
118
|
+
}
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
case 'GROUP_FAILURE': {
|
|
122
|
+
const { group, error } = event;
|
|
123
|
+
const id = this._ensureId(group);
|
|
124
|
+
context.completed.push({
|
|
125
|
+
id,
|
|
126
|
+
errors: [(0, ensureGraphQLError_js_1.ensureGraphQLError)(error)],
|
|
127
|
+
});
|
|
128
|
+
this._ids.delete(group);
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
case 'STREAM_VALUES': {
|
|
132
|
+
const stream = event.stream;
|
|
133
|
+
const id = this._ensureId(stream);
|
|
134
|
+
const { values, newGroups, newStreams } = event;
|
|
135
|
+
const items = [];
|
|
136
|
+
const errors = [];
|
|
137
|
+
for (const value of values) {
|
|
138
|
+
items.push(value.item);
|
|
139
|
+
if (value.errors !== undefined) {
|
|
140
|
+
errors.push(...value.errors);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
context.incremental.push(errors.length > 0 ? { id, items, errors } : { id, items });
|
|
144
|
+
if (newGroups.length > 0 || newStreams.length > 0) {
|
|
145
|
+
context.pending.push(...this._toPendingResults(newGroups, newStreams));
|
|
146
|
+
}
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
case 'STREAM_SUCCESS': {
|
|
150
|
+
const stream = event.stream;
|
|
151
|
+
context.completed.push({
|
|
152
|
+
id: this._ensureId(stream),
|
|
153
|
+
});
|
|
154
|
+
this._ids.delete(stream);
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
case 'STREAM_FAILURE': {
|
|
158
|
+
const stream = event.stream;
|
|
159
|
+
context.completed.push({
|
|
160
|
+
id: this._ensureId(stream),
|
|
161
|
+
errors: [(0, ensureGraphQLError_js_1.ensureGraphQLError)(event.error)],
|
|
162
|
+
});
|
|
163
|
+
this._ids.delete(stream);
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
case 'WORK_QUEUE_TERMINATION': {
|
|
167
|
+
onWorkQueueFinished?.();
|
|
168
|
+
context.hasNext = false;
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
_getBestIdAndSubPath(initialId, initialDeferredFragmentRecord, executionGroupValue) {
|
|
174
|
+
let maxLength = (0, Path_js_1.pathToArray)(initialDeferredFragmentRecord.path).length;
|
|
175
|
+
let bestId = initialId;
|
|
176
|
+
for (const deliveryGroup of executionGroupValue.deliveryGroups) {
|
|
177
|
+
if (deliveryGroup === initialDeferredFragmentRecord) {
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
const id = this._ids.get(deliveryGroup);
|
|
181
|
+
// TODO: add test case for when an group has not been released, but might be processed for the shortest path.
|
|
182
|
+
/* c8 ignore next 3 */
|
|
183
|
+
if (id === undefined) {
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
const path = (0, Path_js_1.pathToArray)(deliveryGroup.path);
|
|
187
|
+
const length = path.length;
|
|
188
|
+
if (length > maxLength) {
|
|
189
|
+
maxLength = length;
|
|
190
|
+
bestId = id;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
const subPath = executionGroupValue.path.slice(maxLength);
|
|
194
|
+
return {
|
|
195
|
+
bestId,
|
|
196
|
+
subPath: subPath.length > 0 ? subPath : undefined,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
exports.IncrementalPublisher = IncrementalPublisher;
|
|
201
|
+
//# sourceMappingURL=IncrementalPublisher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IncrementalPublisher.js","sourceRoot":"","sources":["../../../src/execution/incremental/IncrementalPublisher.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ObjMap } from '../../jsutils/ObjMap.js';\nimport { pathToArray } from '../../jsutils/Path.js';\n\nimport { ensureGraphQLError } from '../../error/ensureGraphQLError.js';\nimport type { GraphQLError } from '../../error/GraphQLError.js';\n\nimport { mapAsyncIterable } from '../mapAsyncIterable.js';\nimport { withConcurrentAbruptClose } from '../withConcurrentAbruptClose.js';\n\nimport type {\n CompletedResult,\n DeliveryGroup,\n ExecutionGroupValue,\n ExperimentalIncrementalExecutionResults,\n IncrementalDeferResult,\n IncrementalResult,\n IncrementalWork,\n InitialIncrementalExecutionResult,\n ItemStream,\n PendingResult,\n StreamItemValue,\n SubsequentIncrementalExecutionResult,\n} from './IncrementalExecutor.js';\nimport type { WorkQueueEvent } from './WorkQueue.js';\nimport { createWorkQueue } from './WorkQueue.js';\n\ninterface SubsequentIncrementalExecutionResultContext {\n pending: Array<PendingResult>;\n incremental: Array<IncrementalResult>;\n completed: Array<CompletedResult>;\n hasNext: boolean;\n}\n\n/**\n * @internal\n */\nexport class IncrementalPublisher {\n private _ids: Map<DeliveryGroup | ItemStream, string>;\n private _nextId: number;\n\n constructor() {\n this._ids = new Map();\n this._nextId = 0;\n }\n\n buildResponse(\n data: ObjMap<unknown>,\n errors: ReadonlyArray<GraphQLError>,\n work: IncrementalWork,\n abortSignal: AbortSignal | undefined,\n onFinished: () => void,\n ): ExperimentalIncrementalExecutionResults {\n const { initialGroups, initialStreams, events } = createWorkQueue<\n ExecutionGroupValue,\n StreamItemValue,\n DeliveryGroup,\n ItemStream\n >(work);\n\n function abort(): void {\n subsequentResults.throw(abortSignal?.reason).catch(() => {\n // Ignore errors\n });\n }\n\n if (abortSignal) {\n abortSignal.addEventListener('abort', abort);\n }\n const onWorkQueueFinished = () => {\n onFinished();\n abortSignal?.removeEventListener('abort', abort);\n };\n\n const pending = this._toPendingResults(initialGroups, initialStreams);\n\n const initialResult: InitialIncrementalExecutionResult = errors.length\n ? { errors, data, pending, hasNext: true }\n : { data, pending, hasNext: true };\n\n const subsequentResults = withConcurrentAbruptClose(\n mapAsyncIterable(events, (batch) =>\n this._handleBatch(batch, onWorkQueueFinished),\n ),\n () => onWorkQueueFinished(),\n );\n\n return {\n initialResult,\n subsequentResults,\n };\n }\n\n private _ensureId(\n deferredFragmentOrStream: DeliveryGroup | ItemStream,\n ): string {\n let id = this._ids.get(deferredFragmentOrStream);\n if (id !== undefined) {\n return id;\n }\n id = String(this._nextId++);\n this._ids.set(deferredFragmentOrStream, id);\n return id;\n }\n\n private _toPendingResults(\n newGroups: ReadonlyArray<DeliveryGroup>,\n newStreams: ReadonlyArray<ItemStream>,\n ): Array<PendingResult> {\n const pendingResults: Array<PendingResult> = [];\n for (const collection of [newGroups, newStreams]) {\n for (const node of collection) {\n const id = this._ensureId(node);\n const pendingResult: PendingResult = {\n id,\n path: pathToArray(node.path),\n };\n if (node.label !== undefined) {\n pendingResult.label = node.label;\n }\n pendingResults.push(pendingResult);\n }\n }\n return pendingResults;\n }\n\n private _handleBatch(\n batch: ReadonlyArray<\n WorkQueueEvent<\n ExecutionGroupValue,\n StreamItemValue,\n DeliveryGroup,\n ItemStream\n >\n >,\n onWorkQueueFinished: (() => void) | undefined,\n ): SubsequentIncrementalExecutionResult {\n const context: SubsequentIncrementalExecutionResultContext = {\n pending: [],\n incremental: [],\n completed: [],\n hasNext: true,\n };\n\n for (const event of batch) {\n this._handleWorkQueueEvent(event, context, onWorkQueueFinished);\n }\n\n const { incremental, completed, pending, hasNext } = context;\n\n const result: SubsequentIncrementalExecutionResult = { hasNext };\n if (pending.length > 0) {\n result.pending = pending;\n }\n if (incremental.length > 0) {\n result.incremental = incremental;\n }\n if (completed.length > 0) {\n result.completed = completed;\n }\n\n return result;\n }\n\n private _handleWorkQueueEvent(\n event: WorkQueueEvent<\n ExecutionGroupValue,\n StreamItemValue,\n DeliveryGroup,\n ItemStream\n >,\n context: SubsequentIncrementalExecutionResultContext,\n onWorkQueueFinished: (() => void) | undefined,\n ): void {\n switch (event.kind) {\n case 'GROUP_VALUES': {\n const group = event.group;\n const id = this._ensureId(group);\n for (const value of event.values) {\n const { bestId, subPath } = this._getBestIdAndSubPath(\n id,\n group,\n value,\n );\n const incrementalEntry: IncrementalDeferResult = {\n id: bestId,\n data: value.data,\n };\n if (value.errors !== undefined) {\n incrementalEntry.errors = value.errors;\n }\n if (subPath !== undefined) {\n incrementalEntry.subPath = subPath;\n }\n context.incremental.push(incrementalEntry);\n }\n break;\n }\n case 'GROUP_SUCCESS': {\n const group = event.group;\n const id = this._ensureId(group);\n context.completed.push({ id });\n this._ids.delete(group);\n if (event.newGroups.length > 0 || event.newStreams.length > 0) {\n context.pending.push(\n ...this._toPendingResults(event.newGroups, event.newStreams),\n );\n }\n break;\n }\n case 'GROUP_FAILURE': {\n const { group, error } = event;\n const id = this._ensureId(group);\n context.completed.push({\n id,\n errors: [ensureGraphQLError(error)],\n });\n this._ids.delete(group);\n break;\n }\n case 'STREAM_VALUES': {\n const stream = event.stream;\n const id = this._ensureId(stream);\n const { values, newGroups, newStreams } = event;\n const items: Array<unknown> = [];\n const errors: Array<GraphQLError> = [];\n for (const value of values) {\n items.push(value.item);\n if (value.errors !== undefined) {\n errors.push(...value.errors);\n }\n }\n context.incremental.push(\n errors.length > 0 ? { id, items, errors } : { id, items },\n );\n if (newGroups.length > 0 || newStreams.length > 0) {\n context.pending.push(\n ...this._toPendingResults(newGroups, newStreams),\n );\n }\n break;\n }\n case 'STREAM_SUCCESS': {\n const stream = event.stream;\n context.completed.push({\n id: this._ensureId(stream),\n });\n this._ids.delete(stream);\n break;\n }\n case 'STREAM_FAILURE': {\n const stream = event.stream;\n context.completed.push({\n id: this._ensureId(stream),\n errors: [ensureGraphQLError(event.error)],\n });\n this._ids.delete(stream);\n break;\n }\n case 'WORK_QUEUE_TERMINATION': {\n onWorkQueueFinished?.();\n context.hasNext = false;\n break;\n }\n }\n }\n\n private _getBestIdAndSubPath(\n initialId: string,\n initialDeferredFragmentRecord: DeliveryGroup,\n executionGroupValue: ExecutionGroupValue,\n ): { bestId: string; subPath: ReadonlyArray<string | number> | undefined } {\n let maxLength = pathToArray(initialDeferredFragmentRecord.path).length;\n let bestId = initialId;\n\n for (const deliveryGroup of executionGroupValue.deliveryGroups) {\n if (deliveryGroup === initialDeferredFragmentRecord) {\n continue;\n }\n const id = this._ids.get(deliveryGroup);\n // TODO: add test case for when an group has not been released, but might be processed for the shortest path.\n /* c8 ignore next 3 */\n if (id === undefined) {\n continue;\n }\n const path = pathToArray(deliveryGroup.path);\n const length = path.length;\n if (length > maxLength) {\n maxLength = length;\n bestId = id;\n }\n }\n const subPath = executionGroupValue.path.slice(maxLength);\n return {\n bestId,\n subPath: subPath.length > 0 ? subPath : undefined,\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { pathToArray } from "../../jsutils/Path.mjs";
|
|
2
|
+
import { ensureGraphQLError } from "../../error/ensureGraphQLError.mjs";
|
|
3
|
+
import { mapAsyncIterable } from "../mapAsyncIterable.mjs";
|
|
4
|
+
import { withConcurrentAbruptClose } from "../withConcurrentAbruptClose.mjs";
|
|
5
|
+
import { createWorkQueue } from "./WorkQueue.mjs";
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export class IncrementalPublisher {
|
|
10
|
+
constructor() {
|
|
11
|
+
this._ids = new Map();
|
|
12
|
+
this._nextId = 0;
|
|
13
|
+
}
|
|
14
|
+
buildResponse(data, errors, work, abortSignal, onFinished) {
|
|
15
|
+
const { initialGroups, initialStreams, events } = createWorkQueue(work);
|
|
16
|
+
function abort() {
|
|
17
|
+
subsequentResults.throw(abortSignal?.reason).catch(() => {
|
|
18
|
+
// Ignore errors
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
if (abortSignal) {
|
|
22
|
+
abortSignal.addEventListener('abort', abort);
|
|
23
|
+
}
|
|
24
|
+
const onWorkQueueFinished = () => {
|
|
25
|
+
onFinished();
|
|
26
|
+
abortSignal?.removeEventListener('abort', abort);
|
|
27
|
+
};
|
|
28
|
+
const pending = this._toPendingResults(initialGroups, initialStreams);
|
|
29
|
+
const initialResult = errors.length
|
|
30
|
+
? { errors, data, pending, hasNext: true }
|
|
31
|
+
: { data, pending, hasNext: true };
|
|
32
|
+
const subsequentResults = withConcurrentAbruptClose(mapAsyncIterable(events, (batch) => this._handleBatch(batch, onWorkQueueFinished)), () => onWorkQueueFinished());
|
|
33
|
+
return {
|
|
34
|
+
initialResult,
|
|
35
|
+
subsequentResults,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
_ensureId(deferredFragmentOrStream) {
|
|
39
|
+
let id = this._ids.get(deferredFragmentOrStream);
|
|
40
|
+
if (id !== undefined) {
|
|
41
|
+
return id;
|
|
42
|
+
}
|
|
43
|
+
id = String(this._nextId++);
|
|
44
|
+
this._ids.set(deferredFragmentOrStream, id);
|
|
45
|
+
return id;
|
|
46
|
+
}
|
|
47
|
+
_toPendingResults(newGroups, newStreams) {
|
|
48
|
+
const pendingResults = [];
|
|
49
|
+
for (const collection of [newGroups, newStreams]) {
|
|
50
|
+
for (const node of collection) {
|
|
51
|
+
const id = this._ensureId(node);
|
|
52
|
+
const pendingResult = {
|
|
53
|
+
id,
|
|
54
|
+
path: pathToArray(node.path),
|
|
55
|
+
};
|
|
56
|
+
if (node.label !== undefined) {
|
|
57
|
+
pendingResult.label = node.label;
|
|
58
|
+
}
|
|
59
|
+
pendingResults.push(pendingResult);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return pendingResults;
|
|
63
|
+
}
|
|
64
|
+
_handleBatch(batch, onWorkQueueFinished) {
|
|
65
|
+
const context = {
|
|
66
|
+
pending: [],
|
|
67
|
+
incremental: [],
|
|
68
|
+
completed: [],
|
|
69
|
+
hasNext: true,
|
|
70
|
+
};
|
|
71
|
+
for (const event of batch) {
|
|
72
|
+
this._handleWorkQueueEvent(event, context, onWorkQueueFinished);
|
|
73
|
+
}
|
|
74
|
+
const { incremental, completed, pending, hasNext } = context;
|
|
75
|
+
const result = { hasNext };
|
|
76
|
+
if (pending.length > 0) {
|
|
77
|
+
result.pending = pending;
|
|
78
|
+
}
|
|
79
|
+
if (incremental.length > 0) {
|
|
80
|
+
result.incremental = incremental;
|
|
81
|
+
}
|
|
82
|
+
if (completed.length > 0) {
|
|
83
|
+
result.completed = completed;
|
|
84
|
+
}
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
_handleWorkQueueEvent(event, context, onWorkQueueFinished) {
|
|
88
|
+
switch (event.kind) {
|
|
89
|
+
case 'GROUP_VALUES': {
|
|
90
|
+
const group = event.group;
|
|
91
|
+
const id = this._ensureId(group);
|
|
92
|
+
for (const value of event.values) {
|
|
93
|
+
const { bestId, subPath } = this._getBestIdAndSubPath(id, group, value);
|
|
94
|
+
const incrementalEntry = {
|
|
95
|
+
id: bestId,
|
|
96
|
+
data: value.data,
|
|
97
|
+
};
|
|
98
|
+
if (value.errors !== undefined) {
|
|
99
|
+
incrementalEntry.errors = value.errors;
|
|
100
|
+
}
|
|
101
|
+
if (subPath !== undefined) {
|
|
102
|
+
incrementalEntry.subPath = subPath;
|
|
103
|
+
}
|
|
104
|
+
context.incremental.push(incrementalEntry);
|
|
105
|
+
}
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
case 'GROUP_SUCCESS': {
|
|
109
|
+
const group = event.group;
|
|
110
|
+
const id = this._ensureId(group);
|
|
111
|
+
context.completed.push({ id });
|
|
112
|
+
this._ids.delete(group);
|
|
113
|
+
if (event.newGroups.length > 0 || event.newStreams.length > 0) {
|
|
114
|
+
context.pending.push(...this._toPendingResults(event.newGroups, event.newStreams));
|
|
115
|
+
}
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
case 'GROUP_FAILURE': {
|
|
119
|
+
const { group, error } = event;
|
|
120
|
+
const id = this._ensureId(group);
|
|
121
|
+
context.completed.push({
|
|
122
|
+
id,
|
|
123
|
+
errors: [ensureGraphQLError(error)],
|
|
124
|
+
});
|
|
125
|
+
this._ids.delete(group);
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
case 'STREAM_VALUES': {
|
|
129
|
+
const stream = event.stream;
|
|
130
|
+
const id = this._ensureId(stream);
|
|
131
|
+
const { values, newGroups, newStreams } = event;
|
|
132
|
+
const items = [];
|
|
133
|
+
const errors = [];
|
|
134
|
+
for (const value of values) {
|
|
135
|
+
items.push(value.item);
|
|
136
|
+
if (value.errors !== undefined) {
|
|
137
|
+
errors.push(...value.errors);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
context.incremental.push(errors.length > 0 ? { id, items, errors } : { id, items });
|
|
141
|
+
if (newGroups.length > 0 || newStreams.length > 0) {
|
|
142
|
+
context.pending.push(...this._toPendingResults(newGroups, newStreams));
|
|
143
|
+
}
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
case 'STREAM_SUCCESS': {
|
|
147
|
+
const stream = event.stream;
|
|
148
|
+
context.completed.push({
|
|
149
|
+
id: this._ensureId(stream),
|
|
150
|
+
});
|
|
151
|
+
this._ids.delete(stream);
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
case 'STREAM_FAILURE': {
|
|
155
|
+
const stream = event.stream;
|
|
156
|
+
context.completed.push({
|
|
157
|
+
id: this._ensureId(stream),
|
|
158
|
+
errors: [ensureGraphQLError(event.error)],
|
|
159
|
+
});
|
|
160
|
+
this._ids.delete(stream);
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
case 'WORK_QUEUE_TERMINATION': {
|
|
164
|
+
onWorkQueueFinished?.();
|
|
165
|
+
context.hasNext = false;
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
_getBestIdAndSubPath(initialId, initialDeferredFragmentRecord, executionGroupValue) {
|
|
171
|
+
let maxLength = pathToArray(initialDeferredFragmentRecord.path).length;
|
|
172
|
+
let bestId = initialId;
|
|
173
|
+
for (const deliveryGroup of executionGroupValue.deliveryGroups) {
|
|
174
|
+
if (deliveryGroup === initialDeferredFragmentRecord) {
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
const id = this._ids.get(deliveryGroup);
|
|
178
|
+
// TODO: add test case for when an group has not been released, but might be processed for the shortest path.
|
|
179
|
+
/* c8 ignore next 3 */
|
|
180
|
+
if (id === undefined) {
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
const path = pathToArray(deliveryGroup.path);
|
|
184
|
+
const length = path.length;
|
|
185
|
+
if (length > maxLength) {
|
|
186
|
+
maxLength = length;
|
|
187
|
+
bestId = id;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
const subPath = executionGroupValue.path.slice(maxLength);
|
|
191
|
+
return {
|
|
192
|
+
bestId,
|
|
193
|
+
subPath: subPath.length > 0 ? subPath : undefined,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=IncrementalPublisher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IncrementalPublisher.js","sourceRoot":"","sources":["../../../src/execution/incremental/IncrementalPublisher.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ObjMap } from '../../jsutils/ObjMap.js';\nimport { pathToArray } from '../../jsutils/Path.js';\n\nimport { ensureGraphQLError } from '../../error/ensureGraphQLError.js';\nimport type { GraphQLError } from '../../error/GraphQLError.js';\n\nimport { mapAsyncIterable } from '../mapAsyncIterable.js';\nimport { withConcurrentAbruptClose } from '../withConcurrentAbruptClose.js';\n\nimport type {\n CompletedResult,\n DeliveryGroup,\n ExecutionGroupValue,\n ExperimentalIncrementalExecutionResults,\n IncrementalDeferResult,\n IncrementalResult,\n IncrementalWork,\n InitialIncrementalExecutionResult,\n ItemStream,\n PendingResult,\n StreamItemValue,\n SubsequentIncrementalExecutionResult,\n} from './IncrementalExecutor.js';\nimport type { WorkQueueEvent } from './WorkQueue.js';\nimport { createWorkQueue } from './WorkQueue.js';\n\ninterface SubsequentIncrementalExecutionResultContext {\n pending: Array<PendingResult>;\n incremental: Array<IncrementalResult>;\n completed: Array<CompletedResult>;\n hasNext: boolean;\n}\n\n/**\n * @internal\n */\nexport class IncrementalPublisher {\n private _ids: Map<DeliveryGroup | ItemStream, string>;\n private _nextId: number;\n\n constructor() {\n this._ids = new Map();\n this._nextId = 0;\n }\n\n buildResponse(\n data: ObjMap<unknown>,\n errors: ReadonlyArray<GraphQLError>,\n work: IncrementalWork,\n abortSignal: AbortSignal | undefined,\n onFinished: () => void,\n ): ExperimentalIncrementalExecutionResults {\n const { initialGroups, initialStreams, events } = createWorkQueue<\n ExecutionGroupValue,\n StreamItemValue,\n DeliveryGroup,\n ItemStream\n >(work);\n\n function abort(): void {\n subsequentResults.throw(abortSignal?.reason).catch(() => {\n // Ignore errors\n });\n }\n\n if (abortSignal) {\n abortSignal.addEventListener('abort', abort);\n }\n const onWorkQueueFinished = () => {\n onFinished();\n abortSignal?.removeEventListener('abort', abort);\n };\n\n const pending = this._toPendingResults(initialGroups, initialStreams);\n\n const initialResult: InitialIncrementalExecutionResult = errors.length\n ? { errors, data, pending, hasNext: true }\n : { data, pending, hasNext: true };\n\n const subsequentResults = withConcurrentAbruptClose(\n mapAsyncIterable(events, (batch) =>\n this._handleBatch(batch, onWorkQueueFinished),\n ),\n () => onWorkQueueFinished(),\n );\n\n return {\n initialResult,\n subsequentResults,\n };\n }\n\n private _ensureId(\n deferredFragmentOrStream: DeliveryGroup | ItemStream,\n ): string {\n let id = this._ids.get(deferredFragmentOrStream);\n if (id !== undefined) {\n return id;\n }\n id = String(this._nextId++);\n this._ids.set(deferredFragmentOrStream, id);\n return id;\n }\n\n private _toPendingResults(\n newGroups: ReadonlyArray<DeliveryGroup>,\n newStreams: ReadonlyArray<ItemStream>,\n ): Array<PendingResult> {\n const pendingResults: Array<PendingResult> = [];\n for (const collection of [newGroups, newStreams]) {\n for (const node of collection) {\n const id = this._ensureId(node);\n const pendingResult: PendingResult = {\n id,\n path: pathToArray(node.path),\n };\n if (node.label !== undefined) {\n pendingResult.label = node.label;\n }\n pendingResults.push(pendingResult);\n }\n }\n return pendingResults;\n }\n\n private _handleBatch(\n batch: ReadonlyArray<\n WorkQueueEvent<\n ExecutionGroupValue,\n StreamItemValue,\n DeliveryGroup,\n ItemStream\n >\n >,\n onWorkQueueFinished: (() => void) | undefined,\n ): SubsequentIncrementalExecutionResult {\n const context: SubsequentIncrementalExecutionResultContext = {\n pending: [],\n incremental: [],\n completed: [],\n hasNext: true,\n };\n\n for (const event of batch) {\n this._handleWorkQueueEvent(event, context, onWorkQueueFinished);\n }\n\n const { incremental, completed, pending, hasNext } = context;\n\n const result: SubsequentIncrementalExecutionResult = { hasNext };\n if (pending.length > 0) {\n result.pending = pending;\n }\n if (incremental.length > 0) {\n result.incremental = incremental;\n }\n if (completed.length > 0) {\n result.completed = completed;\n }\n\n return result;\n }\n\n private _handleWorkQueueEvent(\n event: WorkQueueEvent<\n ExecutionGroupValue,\n StreamItemValue,\n DeliveryGroup,\n ItemStream\n >,\n context: SubsequentIncrementalExecutionResultContext,\n onWorkQueueFinished: (() => void) | undefined,\n ): void {\n switch (event.kind) {\n case 'GROUP_VALUES': {\n const group = event.group;\n const id = this._ensureId(group);\n for (const value of event.values) {\n const { bestId, subPath } = this._getBestIdAndSubPath(\n id,\n group,\n value,\n );\n const incrementalEntry: IncrementalDeferResult = {\n id: bestId,\n data: value.data,\n };\n if (value.errors !== undefined) {\n incrementalEntry.errors = value.errors;\n }\n if (subPath !== undefined) {\n incrementalEntry.subPath = subPath;\n }\n context.incremental.push(incrementalEntry);\n }\n break;\n }\n case 'GROUP_SUCCESS': {\n const group = event.group;\n const id = this._ensureId(group);\n context.completed.push({ id });\n this._ids.delete(group);\n if (event.newGroups.length > 0 || event.newStreams.length > 0) {\n context.pending.push(\n ...this._toPendingResults(event.newGroups, event.newStreams),\n );\n }\n break;\n }\n case 'GROUP_FAILURE': {\n const { group, error } = event;\n const id = this._ensureId(group);\n context.completed.push({\n id,\n errors: [ensureGraphQLError(error)],\n });\n this._ids.delete(group);\n break;\n }\n case 'STREAM_VALUES': {\n const stream = event.stream;\n const id = this._ensureId(stream);\n const { values, newGroups, newStreams } = event;\n const items: Array<unknown> = [];\n const errors: Array<GraphQLError> = [];\n for (const value of values) {\n items.push(value.item);\n if (value.errors !== undefined) {\n errors.push(...value.errors);\n }\n }\n context.incremental.push(\n errors.length > 0 ? { id, items, errors } : { id, items },\n );\n if (newGroups.length > 0 || newStreams.length > 0) {\n context.pending.push(\n ...this._toPendingResults(newGroups, newStreams),\n );\n }\n break;\n }\n case 'STREAM_SUCCESS': {\n const stream = event.stream;\n context.completed.push({\n id: this._ensureId(stream),\n });\n this._ids.delete(stream);\n break;\n }\n case 'STREAM_FAILURE': {\n const stream = event.stream;\n context.completed.push({\n id: this._ensureId(stream),\n errors: [ensureGraphQLError(event.error)],\n });\n this._ids.delete(stream);\n break;\n }\n case 'WORK_QUEUE_TERMINATION': {\n onWorkQueueFinished?.();\n context.hasNext = false;\n break;\n }\n }\n }\n\n private _getBestIdAndSubPath(\n initialId: string,\n initialDeferredFragmentRecord: DeliveryGroup,\n executionGroupValue: ExecutionGroupValue,\n ): { bestId: string; subPath: ReadonlyArray<string | number> | undefined } {\n let maxLength = pathToArray(initialDeferredFragmentRecord.path).length;\n let bestId = initialId;\n\n for (const deliveryGroup of executionGroupValue.deliveryGroups) {\n if (deliveryGroup === initialDeferredFragmentRecord) {\n continue;\n }\n const id = this._ids.get(deliveryGroup);\n // TODO: add test case for when an group has not been released, but might be processed for the shortest path.\n /* c8 ignore next 3 */\n if (id === undefined) {\n continue;\n }\n const path = pathToArray(deliveryGroup.path);\n const length = path.length;\n if (length > maxLength) {\n maxLength = length;\n bestId = id;\n }\n }\n const subPath = executionGroupValue.path.slice(maxLength);\n return {\n bestId,\n subPath: subPath.length > 0 ? subPath : undefined,\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { PromiseOrValue } from '../../jsutils/PromiseOrValue.js';
|
|
2
|
+
interface QueueExecutorOptions<T> {
|
|
3
|
+
push: (item: PromiseOrValue<T>) => PromiseOrValue<void>;
|
|
4
|
+
stop: (reason?: unknown) => PromiseOrValue<void>;
|
|
5
|
+
onStop: (cleanup: (reason?: unknown) => PromiseOrValue<void>) => void;
|
|
6
|
+
started: Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A Queue is a lightweight async-generator primitive inspired by Brian Kim's
|
|
10
|
+
* Repeater (https://repeater.js.org, https://github.com/repeaterjs/repeater).
|
|
11
|
+
* The ergonomics are similar, but this implementation favors clarity over
|
|
12
|
+
* performance and gives producers flexibility to remain lazy, become eager, or
|
|
13
|
+
* live somewhere in between.
|
|
14
|
+
*
|
|
15
|
+
* The constructor takes an executor function and an optional `initialCapacity`.
|
|
16
|
+
* Executors receive `{ push, stop, onStop, started }` and may return `void` or
|
|
17
|
+
* a promise if they perform asynchronous setup. They call `push` whenever
|
|
18
|
+
* another item is ready, call `stop` when no more values will be produced
|
|
19
|
+
* (optionally supplying an error), register stop-time cleanup via `onStop`,
|
|
20
|
+
* and await `started` when setup should run only after iteration begins.
|
|
21
|
+
* Because `push`, `stop`, and `onStop` are plain functions, executors can
|
|
22
|
+
* hoist them into outside scopes or pass them to helpers. If the executor
|
|
23
|
+
* throws or its returned promise rejects, the queue treats it as `stop(error)`
|
|
24
|
+
* and propagates the failure.
|
|
25
|
+
*
|
|
26
|
+
* The `initialCapacity` argument (default `1`) governs backpressure. Capacity
|
|
27
|
+
* is the maximum number of buffered items allowed before a push must wait.
|
|
28
|
+
* When the backlog reaches capacity, `push` returns a promise that settles
|
|
29
|
+
* once consumption releases space; otherwise it returns `undefined`. Setting
|
|
30
|
+
* capacity to `1` yields a fully lazy queue (every push waits unless a prior
|
|
31
|
+
* item has been consumed); higher capacities buffer that many items eagerly.
|
|
32
|
+
* Capacity can be changed later via `setCapacity` and observed via
|
|
33
|
+
* `getCapacity`.
|
|
34
|
+
*
|
|
35
|
+
* `subscribe(reducer)` returns an async generator whose batches feed a generator
|
|
36
|
+
* of settled values into the reducer; whatever the reducer returns (other than
|
|
37
|
+
* `undefined`) becomes the yielded value for that batch. Calling `return()` on
|
|
38
|
+
* the subscription settles pending `next` calls thanks to `withConcurrent`,
|
|
39
|
+
* providing direct abort semantics rather than leaving `next()` suspended.
|
|
40
|
+
*
|
|
41
|
+
* 'forEachBatch(reducer)` is a convenience method that subscribes with the
|
|
42
|
+
* given reducer and runs it for each batch until the queue stops.
|
|
43
|
+
*
|
|
44
|
+
* Producers can stay lazy by awaiting `started`, using zero capacity, and
|
|
45
|
+
* awaiting each `push`. Skipping those waits while raising capacity makes the
|
|
46
|
+
* queue eager up to its configured limit. The `isStopped()` helper exposes
|
|
47
|
+
* whether the queue has fully stopped, which can be useful when the reducer
|
|
48
|
+
* function actually performs external work and wants to bail early without
|
|
49
|
+
* awaiting another `next`.
|
|
50
|
+
*
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
53
|
+
export declare class Queue<T> {
|
|
54
|
+
private _capacity;
|
|
55
|
+
private _backlog;
|
|
56
|
+
private _waiters;
|
|
57
|
+
private _entries;
|
|
58
|
+
private _isStopped;
|
|
59
|
+
private _stopRequested;
|
|
60
|
+
private _stopCleanupCallbacks;
|
|
61
|
+
private _stopCompletion;
|
|
62
|
+
private _batchRequests;
|
|
63
|
+
private _resolveStarted;
|
|
64
|
+
constructor(executor: ({ push, stop, onStop, started, }: QueueExecutorOptions<T>) => PromiseOrValue<void>, initialCapacity?: number);
|
|
65
|
+
subscribe<U>(reducer?: (generator: Generator<T, void, void>) => PromiseOrValue<U | undefined>): AsyncGenerator<U, void, void>;
|
|
66
|
+
cancel(): PromiseOrValue<void>;
|
|
67
|
+
abort(reason?: unknown): PromiseOrValue<void>;
|
|
68
|
+
forEachBatch(reducer: (generator: Generator<T, void, void>) => PromiseOrValue<void>): Promise<void>;
|
|
69
|
+
setCapacity(nextCapacity: number): void;
|
|
70
|
+
getCapacity(): number;
|
|
71
|
+
isStopped(): boolean;
|
|
72
|
+
private _normalizeCapacity;
|
|
73
|
+
private _flush;
|
|
74
|
+
private _reserve;
|
|
75
|
+
private _release;
|
|
76
|
+
private _onStop;
|
|
77
|
+
private _runStopCleanup;
|
|
78
|
+
private _iteratorLoop;
|
|
79
|
+
private _waitForNextBatch;
|
|
80
|
+
private _push;
|
|
81
|
+
private _terminate;
|
|
82
|
+
private _stop;
|
|
83
|
+
private _deliverBatchIfReady;
|
|
84
|
+
private _drainBatch;
|
|
85
|
+
}
|
|
86
|
+
export {};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { PromiseOrValue } from '../../jsutils/PromiseOrValue.js';
|
|
2
|
+
interface QueueExecutorOptions<T> {
|
|
3
|
+
push: (item: PromiseOrValue<T>) => PromiseOrValue<void>;
|
|
4
|
+
stop: (reason?: unknown) => PromiseOrValue<void>;
|
|
5
|
+
onStop: (cleanup: (reason?: unknown) => PromiseOrValue<void>) => void;
|
|
6
|
+
started: Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A Queue is a lightweight async-generator primitive inspired by Brian Kim's
|
|
10
|
+
* Repeater (https://repeater.js.org, https://github.com/repeaterjs/repeater).
|
|
11
|
+
* The ergonomics are similar, but this implementation favors clarity over
|
|
12
|
+
* performance and gives producers flexibility to remain lazy, become eager, or
|
|
13
|
+
* live somewhere in between.
|
|
14
|
+
*
|
|
15
|
+
* The constructor takes an executor function and an optional `initialCapacity`.
|
|
16
|
+
* Executors receive `{ push, stop, onStop, started }` and may return `void` or
|
|
17
|
+
* a promise if they perform asynchronous setup. They call `push` whenever
|
|
18
|
+
* another item is ready, call `stop` when no more values will be produced
|
|
19
|
+
* (optionally supplying an error), register stop-time cleanup via `onStop`,
|
|
20
|
+
* and await `started` when setup should run only after iteration begins.
|
|
21
|
+
* Because `push`, `stop`, and `onStop` are plain functions, executors can
|
|
22
|
+
* hoist them into outside scopes or pass them to helpers. If the executor
|
|
23
|
+
* throws or its returned promise rejects, the queue treats it as `stop(error)`
|
|
24
|
+
* and propagates the failure.
|
|
25
|
+
*
|
|
26
|
+
* The `initialCapacity` argument (default `1`) governs backpressure. Capacity
|
|
27
|
+
* is the maximum number of buffered items allowed before a push must wait.
|
|
28
|
+
* When the backlog reaches capacity, `push` returns a promise that settles
|
|
29
|
+
* once consumption releases space; otherwise it returns `undefined`. Setting
|
|
30
|
+
* capacity to `1` yields a fully lazy queue (every push waits unless a prior
|
|
31
|
+
* item has been consumed); higher capacities buffer that many items eagerly.
|
|
32
|
+
* Capacity can be changed later via `setCapacity` and observed via
|
|
33
|
+
* `getCapacity`.
|
|
34
|
+
*
|
|
35
|
+
* `subscribe(reducer)` returns an async generator whose batches feed a generator
|
|
36
|
+
* of settled values into the reducer; whatever the reducer returns (other than
|
|
37
|
+
* `undefined`) becomes the yielded value for that batch. Calling `return()` on
|
|
38
|
+
* the subscription settles pending `next` calls thanks to `withConcurrent`,
|
|
39
|
+
* providing direct abort semantics rather than leaving `next()` suspended.
|
|
40
|
+
*
|
|
41
|
+
* 'forEachBatch(reducer)` is a convenience method that subscribes with the
|
|
42
|
+
* given reducer and runs it for each batch until the queue stops.
|
|
43
|
+
*
|
|
44
|
+
* Producers can stay lazy by awaiting `started`, using zero capacity, and
|
|
45
|
+
* awaiting each `push`. Skipping those waits while raising capacity makes the
|
|
46
|
+
* queue eager up to its configured limit. The `isStopped()` helper exposes
|
|
47
|
+
* whether the queue has fully stopped, which can be useful when the reducer
|
|
48
|
+
* function actually performs external work and wants to bail early without
|
|
49
|
+
* awaiting another `next`.
|
|
50
|
+
*
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
53
|
+
export declare class Queue<T> {
|
|
54
|
+
private _capacity;
|
|
55
|
+
private _backlog;
|
|
56
|
+
private _waiters;
|
|
57
|
+
private _entries;
|
|
58
|
+
private _isStopped;
|
|
59
|
+
private _stopRequested;
|
|
60
|
+
private _stopCleanupCallbacks;
|
|
61
|
+
private _stopCompletion;
|
|
62
|
+
private _batchRequests;
|
|
63
|
+
private _resolveStarted;
|
|
64
|
+
constructor(executor: ({ push, stop, onStop, started, }: QueueExecutorOptions<T>) => PromiseOrValue<void>, initialCapacity?: number);
|
|
65
|
+
subscribe<U>(reducer?: (generator: Generator<T, void, void>) => PromiseOrValue<U | undefined>): AsyncGenerator<U, void, void>;
|
|
66
|
+
cancel(): PromiseOrValue<void>;
|
|
67
|
+
abort(reason?: unknown): PromiseOrValue<void>;
|
|
68
|
+
forEachBatch(reducer: (generator: Generator<T, void, void>) => PromiseOrValue<void>): Promise<void>;
|
|
69
|
+
setCapacity(nextCapacity: number): void;
|
|
70
|
+
getCapacity(): number;
|
|
71
|
+
isStopped(): boolean;
|
|
72
|
+
private _normalizeCapacity;
|
|
73
|
+
private _flush;
|
|
74
|
+
private _reserve;
|
|
75
|
+
private _release;
|
|
76
|
+
private _onStop;
|
|
77
|
+
private _runStopCleanup;
|
|
78
|
+
private _iteratorLoop;
|
|
79
|
+
private _waitForNextBatch;
|
|
80
|
+
private _push;
|
|
81
|
+
private _terminate;
|
|
82
|
+
private _stop;
|
|
83
|
+
private _deliverBatchIfReady;
|
|
84
|
+
private _drainBatch;
|
|
85
|
+
}
|
|
86
|
+
export {};
|