@graphitation/supermassive 3.0.0-alpha.3 → 3.0.0-alpha.4

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.
Files changed (133) hide show
  1. package/.eslintcache +1 -1
  2. package/CHANGELOG.md +10 -2
  3. package/lib/__testUtils__/execute.d.ts.map +1 -1
  4. package/lib/__testUtils__/execute.js +15 -8
  5. package/lib/__testUtils__/execute.js.map +2 -2
  6. package/lib/__testUtils__/execute.mjs +15 -8
  7. package/lib/__testUtils__/execute.mjs.map +2 -2
  8. package/lib/__testUtils__/gql.d.ts +7 -0
  9. package/lib/__testUtils__/gql.d.ts.map +1 -0
  10. package/lib/{utilities/getSchemaFragment.js → __testUtils__/gql.js} +6 -17
  11. package/lib/__testUtils__/gql.js.map +7 -0
  12. package/lib/__testUtils__/gql.mjs +8 -0
  13. package/lib/__testUtils__/gql.mjs.map +7 -0
  14. package/lib/benchmarks/index.js +8 -4
  15. package/lib/benchmarks/index.js.map +3 -3
  16. package/lib/benchmarks/index.mjs +7 -3
  17. package/lib/benchmarks/index.mjs.map +2 -2
  18. package/lib/collectFields.js +2 -2
  19. package/lib/collectFields.js.map +1 -1
  20. package/lib/collectFields.mjs +2 -2
  21. package/lib/collectFields.mjs.map +1 -1
  22. package/lib/executeWithSchema.d.ts +1 -1
  23. package/lib/executeWithSchema.d.ts.map +1 -1
  24. package/lib/executeWithSchema.js +24 -8
  25. package/lib/executeWithSchema.js.map +2 -2
  26. package/lib/executeWithSchema.mjs +27 -8
  27. package/lib/executeWithSchema.mjs.map +2 -2
  28. package/lib/executeWithoutSchema.d.ts +7 -3
  29. package/lib/executeWithoutSchema.d.ts.map +1 -1
  30. package/lib/executeWithoutSchema.js +100 -73
  31. package/lib/executeWithoutSchema.js.map +3 -3
  32. package/lib/executeWithoutSchema.mjs +104 -76
  33. package/lib/executeWithoutSchema.mjs.map +3 -3
  34. package/lib/index.d.ts +15 -3
  35. package/lib/index.d.ts.map +1 -1
  36. package/lib/index.js +24 -4
  37. package/lib/index.js.map +2 -2
  38. package/lib/index.mjs +34 -3
  39. package/lib/index.mjs.map +2 -2
  40. package/lib/schema/definition.d.ts +6 -1
  41. package/lib/schema/definition.d.ts.map +1 -1
  42. package/lib/schema/definition.js.map +1 -1
  43. package/lib/schema/definition.mjs.map +1 -1
  44. package/lib/schema/directives.d.ts +2 -1
  45. package/lib/schema/directives.d.ts.map +1 -1
  46. package/lib/schema/directives.js +8 -3
  47. package/lib/schema/directives.js.map +2 -2
  48. package/lib/schema/directives.mjs +8 -3
  49. package/lib/schema/directives.mjs.map +2 -2
  50. package/lib/schema/fragment.d.ts +29 -7
  51. package/lib/schema/fragment.d.ts.map +1 -1
  52. package/lib/schema/fragment.js +55 -30
  53. package/lib/schema/fragment.js.map +2 -2
  54. package/lib/schema/fragment.mjs +55 -30
  55. package/lib/schema/fragment.mjs.map +2 -2
  56. package/lib/subscribeWithSchema.d.ts +1 -1
  57. package/lib/subscribeWithSchema.d.ts.map +1 -1
  58. package/lib/subscribeWithSchema.js +24 -8
  59. package/lib/subscribeWithSchema.js.map +2 -2
  60. package/lib/subscribeWithSchema.mjs +27 -8
  61. package/lib/subscribeWithSchema.mjs.map +2 -2
  62. package/lib/types.d.ts +9 -6
  63. package/lib/types.d.ts.map +1 -1
  64. package/lib/types.js +0 -14
  65. package/lib/types.js.map +2 -2
  66. package/lib/types.mjs +0 -11
  67. package/lib/types.mjs.map +3 -3
  68. package/lib/utilities/addMinimalViableSchemaToRequestDocument.d.ts +8 -5
  69. package/lib/utilities/addMinimalViableSchemaToRequestDocument.d.ts.map +1 -1
  70. package/lib/utilities/addMinimalViableSchemaToRequestDocument.js +35 -222
  71. package/lib/utilities/addMinimalViableSchemaToRequestDocument.js.map +3 -3
  72. package/lib/utilities/addMinimalViableSchemaToRequestDocument.mjs +37 -249
  73. package/lib/utilities/addMinimalViableSchemaToRequestDocument.mjs.map +3 -3
  74. package/lib/utilities/annotateDocumentGraphQLTransform.d.ts +2 -1
  75. package/lib/utilities/annotateDocumentGraphQLTransform.d.ts.map +1 -1
  76. package/lib/utilities/annotateDocumentGraphQLTransform.js +2 -9
  77. package/lib/utilities/annotateDocumentGraphQLTransform.js.map +2 -2
  78. package/lib/utilities/annotateDocumentGraphQLTransform.mjs +4 -11
  79. package/lib/utilities/annotateDocumentGraphQLTransform.mjs.map +2 -2
  80. package/lib/utilities/coerceInputValue.d.ts +2 -2
  81. package/lib/utilities/coerceInputValue.d.ts.map +1 -1
  82. package/lib/utilities/coerceInputValue.js.map +1 -1
  83. package/lib/utilities/coerceInputValue.mjs.map +1 -1
  84. package/lib/utilities/decodeASTSchema.d.ts +2 -2
  85. package/lib/utilities/decodeASTSchema.d.ts.map +1 -1
  86. package/lib/utilities/decodeASTSchema.js +8 -5
  87. package/lib/utilities/decodeASTSchema.js.map +2 -2
  88. package/lib/utilities/decodeASTSchema.mjs +8 -5
  89. package/lib/utilities/decodeASTSchema.mjs.map +2 -2
  90. package/lib/utilities/encodeASTSchema.d.ts +2 -2
  91. package/lib/utilities/encodeASTSchema.d.ts.map +1 -1
  92. package/lib/utilities/encodeASTSchema.js +39 -10
  93. package/lib/utilities/encodeASTSchema.js.map +2 -2
  94. package/lib/utilities/encodeASTSchema.mjs +39 -10
  95. package/lib/utilities/encodeASTSchema.mjs.map +2 -2
  96. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.d.ts +8 -0
  97. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.d.ts.map +1 -0
  98. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.js +238 -0
  99. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.js.map +7 -0
  100. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.mjs +245 -0
  101. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.mjs.map +7 -0
  102. package/lib/utilities/mergeResolvers.d.ts +2 -2
  103. package/lib/utilities/mergeResolvers.d.ts.map +1 -1
  104. package/lib/utilities/mergeResolvers.js +20 -22
  105. package/lib/utilities/mergeResolvers.js.map +2 -2
  106. package/lib/utilities/mergeResolvers.mjs +20 -25
  107. package/lib/utilities/mergeResolvers.mjs.map +2 -2
  108. package/lib/utilities/mergeSchemaDefinitions.d.ts +8 -0
  109. package/lib/utilities/mergeSchemaDefinitions.d.ts.map +1 -0
  110. package/lib/utilities/{mergeDefinitions.js → mergeSchemaDefinitions.js} +13 -13
  111. package/lib/utilities/mergeSchemaDefinitions.js.map +7 -0
  112. package/lib/utilities/{mergeDefinitions.mjs → mergeSchemaDefinitions.mjs} +11 -11
  113. package/lib/utilities/mergeSchemaDefinitions.mjs.map +7 -0
  114. package/lib/utilities/valueFromAST.d.ts +2 -2
  115. package/lib/utilities/valueFromAST.d.ts.map +1 -1
  116. package/lib/utilities/valueFromAST.js.map +1 -1
  117. package/lib/utilities/valueFromAST.mjs.map +1 -1
  118. package/lib/values.d.ts +2 -2
  119. package/lib/values.d.ts.map +1 -1
  120. package/lib/values.js +2 -2
  121. package/lib/values.js.map +1 -1
  122. package/lib/values.mjs +2 -2
  123. package/lib/values.mjs.map +1 -1
  124. package/package.json +1 -1
  125. package/lib/utilities/getSchemaFragment.d.ts +0 -4
  126. package/lib/utilities/getSchemaFragment.d.ts.map +0 -1
  127. package/lib/utilities/getSchemaFragment.js.map +0 -7
  128. package/lib/utilities/getSchemaFragment.mjs +0 -22
  129. package/lib/utilities/getSchemaFragment.mjs.map +0 -7
  130. package/lib/utilities/mergeDefinitions.d.ts +0 -8
  131. package/lib/utilities/mergeDefinitions.d.ts.map +0 -1
  132. package/lib/utilities/mergeDefinitions.js.map +0 -7
  133. package/lib/utilities/mergeDefinitions.mjs.map +0 -7
package/lib/types.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/types.ts"],
4
- "sourcesContent": ["import {\n GraphQLError,\n GraphQLFormattedError,\n GraphQLScalarType,\n DocumentNode,\n FragmentDefinitionNode,\n OperationDefinitionNode,\n} from \"graphql\";\nimport { Maybe } from \"./jsutils/Maybe\";\nimport { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\nimport { ObjMap } from \"./jsutils/ObjMap\";\nimport { Path } from \"./jsutils/Path\";\nimport { ExecutionHooks } from \"./hooks/types\";\nimport { FieldGroup } from \"./collectFields\";\nimport { SchemaFragmentDefinitions } from \"./schema/definition\";\n\nexport type ScalarTypeResolver = GraphQLScalarType;\nexport type EnumTypeResolver = Record<string, unknown>;\nexport type FunctionFieldResolver<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> = (\n source: TSource,\n args: TArgs,\n context: TContext,\n info: ResolveInfo,\n) => TReturn;\n\nexport type FieldResolver<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> =\n | FunctionFieldResolver<TSource, TContext, TArgs, TReturn>\n | FieldResolverObject<TSource, TContext, TArgs, TReturn>;\n\nexport type FieldResolverObject<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> = {\n subscribe?: FunctionFieldResolver<TSource, TContext, TArgs, TReturn>;\n resolve?: FunctionFieldResolver<TSource, TContext, TArgs, TReturn>;\n};\n\nexport type TypeResolver<TSource, TContext> = (\n value: TSource,\n context: TContext,\n info: ResolveInfo,\n) => PromiseOrValue<Maybe<string>>;\n\nexport type ObjectTypeResolver<\n TSource = unknown,\n TContext = unknown,\n TArgs = unknown,\n> = {\n [key: string]: FieldResolver<TSource, TContext, TArgs>;\n};\n\nexport type UserInterfaceTypeResolver = {\n __resolveType?: TypeResolver<unknown, unknown>;\n};\n\nexport type UserUnionTypeResolver = {\n __resolveType?: TypeResolver<unknown, unknown>;\n};\n\nexport type UserResolver<TSource, TContext> =\n | ObjectTypeResolver<TSource, TContext>\n | UserInterfaceTypeResolver\n | UserUnionTypeResolver\n | ScalarTypeResolver\n | EnumTypeResolver;\n\n// TODO: Keep only UserResolver\nexport type Resolver<TSource, TContext> = UserResolver<TSource, TContext>;\n\nexport type Resolvers<TSource = unknown, TContext = unknown> = UserResolvers<\n TSource,\n TContext\n>;\n\nexport type UserResolvers<TSource = unknown, TContext = unknown> = Record<\n string,\n UserResolver<TSource, TContext>\n>;\n\nexport interface ResolveInfo {\n fieldName: string;\n fieldGroup: FieldGroup;\n returnTypeName: string;\n parentTypeName: string;\n // readonly returnType: GraphQLOutputType;\n // readonly parentType: GraphQLObjectType;\n path: Path;\n // readonly schema: GraphQLSchema;\n fragments: ObjMap<FragmentDefinitionNode>;\n rootValue: unknown;\n operation: OperationDefinitionNode;\n variableValues: { [variable: string]: unknown };\n}\n\nexport type ExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> =\n | TotalExecutionResult<TData, TExtensions>\n | SubscriptionExecutionResult<TData, TExtensions>\n | IncrementalExecutionResult<TData, TExtensions>;\n\n/**\n * The result of GraphQL execution.\n *\n * - `errors` is included when any errors occurred as a non-empty array.\n * - `data` is the result of a successful execution of the query.\n * - `hasNext` is true if a future payload is expected.\n * - `extensions` is reserved for adding non-standard properties.\n * - `incremental` is a list of the results from defer/stream directives.\n */\nexport interface TotalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLError>;\n data?: TData | null;\n extensions?: TExtensions;\n}\n\nexport type SubscriptionExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> = AsyncGenerator<TotalExecutionResult<TData, TExtensions>>;\n\nexport interface FormattedTotalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n data?: TData | null;\n extensions?: TExtensions;\n}\n\nexport interface IncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n initialResult: InitialIncrementalExecutionResult<TData, TExtensions>;\n subsequentResults: AsyncGenerator<\n SubsequentIncrementalExecutionResult<TData, TExtensions>,\n void,\n void\n >;\n}\n\nexport interface InitialIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends TotalExecutionResult<TData, TExtensions> {\n hasNext: boolean;\n incremental?: ReadonlyArray<IncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface FormattedInitialIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends FormattedTotalExecutionResult<TData, TExtensions> {\n hasNext: boolean;\n incremental?: ReadonlyArray<FormattedIncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface SubsequentIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n hasNext: boolean;\n incremental?: ReadonlyArray<IncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface FormattedSubsequentIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n hasNext: boolean;\n incremental?: ReadonlyArray<FormattedIncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface IncrementalDeferResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends TotalExecutionResult<TData, TExtensions> {\n path?: ReadonlyArray<string | number>;\n label?: string;\n}\n\nexport interface FormattedIncrementalDeferResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends FormattedTotalExecutionResult<TData, TExtensions> {\n path?: ReadonlyArray<string | number>;\n label?: string;\n}\n\nexport interface IncrementalStreamResult<\n TData = Array<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLError>;\n items?: TData | null;\n path?: ReadonlyArray<string | number>;\n label?: string;\n extensions?: TExtensions;\n}\n\nexport interface FormattedIncrementalStreamResult<\n TData = Array<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n items?: TData | null;\n path?: ReadonlyArray<string | number>;\n label?: string;\n extensions?: TExtensions;\n}\n\nexport type IncrementalResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> =\n | IncrementalDeferResult<TData, TExtensions>\n | IncrementalStreamResult<TData, TExtensions>;\n\nexport type FormattedIncrementalResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> =\n | FormattedIncrementalDeferResult<TData, TExtensions>\n | FormattedIncrementalStreamResult<TData, TExtensions>;\n\nexport interface CommonExecutionArgs {\n resolvers: UserResolvers;\n rootValue?: unknown;\n contextValue?: unknown;\n buildContextValue?: (contextValue?: unknown) => unknown;\n variableValues?: Maybe<{ [variable: string]: unknown }>;\n operationName?: Maybe<string>;\n fieldResolver?: Maybe<FunctionFieldResolver<unknown, unknown>>;\n typeResolver?: Maybe<TypeResolver<unknown, unknown>>;\n subscribeFieldResolver?: Maybe<FunctionFieldResolver<unknown, unknown>>;\n fieldExecutionHooks?: ExecutionHooks;\n}\nexport type ExecutionWithoutSchemaArgs = CommonExecutionArgs & {\n document: DocumentNode;\n schemaFragment?: SchemaFragmentDefinitions;\n};\n\nexport type ExecutionWithSchemaArgs = CommonExecutionArgs & {\n document: DocumentNode;\n typeDefs: DocumentNode;\n};\n\nexport function isIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n>(\n result: ExecutionResult<TData, TExtensions>,\n): result is IncrementalExecutionResult<TData, TExtensions> {\n return \"initialResult\" in result;\n}\n\nexport function isTotalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n>(\n result: ExecutionResult<TData, TExtensions>,\n): result is IncrementalExecutionResult<TData, TExtensions> {\n return !(\"initialResult\" in result);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4QO,SAAS,6BAId,QAC0D;AAC1D,SAAO,mBAAmB;AAC5B;AAEO,SAAS,uBAId,QAC0D;AAC1D,SAAO,EAAE,mBAAmB;AAC9B;",
4
+ "sourcesContent": ["import {\n GraphQLError,\n GraphQLFormattedError,\n GraphQLScalarType,\n DocumentNode,\n FragmentDefinitionNode,\n OperationDefinitionNode,\n} from \"graphql\";\nimport { Maybe } from \"./jsutils/Maybe\";\nimport { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\nimport { ObjMap } from \"./jsutils/ObjMap\";\nimport { Path } from \"./jsutils/Path\";\nimport { ExecutionHooks } from \"./hooks/types\";\nimport { FieldGroup } from \"./collectFields\";\nimport { SchemaFragment } from \"./schema/fragment\";\nimport { SchemaFragmentLoader } from \"./schema/fragment\";\n\nexport type ScalarTypeResolver = GraphQLScalarType;\nexport type EnumTypeResolver = Record<string, unknown>;\nexport type FunctionFieldResolver<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> = (\n source: TSource,\n args: TArgs,\n context: TContext,\n info: ResolveInfo,\n) => TReturn;\n\nexport type FieldResolver<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> =\n | FunctionFieldResolver<TSource, TContext, TArgs, TReturn>\n | FieldResolverObject<TSource, TContext, TArgs, TReturn>;\n\nexport type FieldResolverObject<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> = {\n subscribe?: FunctionFieldResolver<TSource, TContext, TArgs, TReturn>;\n resolve?: FunctionFieldResolver<TSource, TContext, TArgs, TReturn>;\n};\n\nexport type TypeResolver<TSource, TContext> = (\n value: TSource,\n context: TContext,\n info: ResolveInfo,\n) => PromiseOrValue<Maybe<string>>;\n\nexport type ObjectTypeResolver<\n TSource = unknown,\n TContext = unknown,\n TArgs = unknown,\n> = {\n [key: string]: FieldResolver<TSource, TContext, TArgs>;\n};\n\nexport type UserInterfaceTypeResolver = {\n __resolveType?: TypeResolver<unknown, unknown>;\n};\n\nexport type UserUnionTypeResolver = {\n __resolveType?: TypeResolver<unknown, unknown>;\n};\n\nexport type UserResolver<TSource, TContext> =\n | ObjectTypeResolver<TSource, TContext>\n | UserInterfaceTypeResolver\n | UserUnionTypeResolver\n | ScalarTypeResolver\n | EnumTypeResolver;\n\n// TODO: Keep only UserResolver\nexport type Resolver<TSource, TContext> = UserResolver<TSource, TContext>;\n\nexport type Resolvers<TSource = unknown, TContext = unknown> = UserResolvers<\n TSource,\n TContext\n>;\n\nexport type UserResolvers<TSource = unknown, TContext = unknown> = Record<\n string,\n UserResolver<TSource, TContext>\n>;\n\nexport interface ResolveInfo {\n fieldName: string;\n fieldGroup: FieldGroup;\n returnTypeName: string;\n parentTypeName: string;\n // readonly returnType: GraphQLOutputType;\n // readonly parentType: GraphQLObjectType;\n path: Path;\n // readonly schema: GraphQLSchema;\n fragments: ObjMap<FragmentDefinitionNode>;\n rootValue: unknown;\n operation: OperationDefinitionNode;\n variableValues: { [variable: string]: unknown };\n}\n\nexport type ExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> =\n | TotalExecutionResult<TData, TExtensions>\n | SubscriptionExecutionResult<TData, TExtensions>\n | IncrementalExecutionResult<TData, TExtensions>;\n\n/**\n * The result of GraphQL execution.\n *\n * - `errors` is included when any errors occurred as a non-empty array.\n * - `data` is the result of a successful execution of the query.\n * - `hasNext` is true if a future payload is expected.\n * - `extensions` is reserved for adding non-standard properties.\n * - `incremental` is a list of the results from defer/stream directives.\n */\nexport interface TotalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLError>;\n data?: TData | null;\n extensions?: TExtensions;\n}\n\nexport type SubscriptionExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> = AsyncGenerator<TotalExecutionResult<TData, TExtensions>>;\n\nexport interface FormattedTotalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n data?: TData | null;\n extensions?: TExtensions;\n}\n\nexport interface IncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n initialResult: InitialIncrementalExecutionResult<TData, TExtensions>;\n subsequentResults: AsyncGenerator<\n SubsequentIncrementalExecutionResult<TData, TExtensions>,\n void,\n void\n >;\n}\n\nexport interface InitialIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends TotalExecutionResult<TData, TExtensions> {\n hasNext: boolean;\n incremental?: ReadonlyArray<IncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface FormattedInitialIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends FormattedTotalExecutionResult<TData, TExtensions> {\n hasNext: boolean;\n incremental?: ReadonlyArray<FormattedIncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface SubsequentIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n hasNext: boolean;\n incremental?: ReadonlyArray<IncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface FormattedSubsequentIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n hasNext: boolean;\n incremental?: ReadonlyArray<FormattedIncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface IncrementalDeferResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends TotalExecutionResult<TData, TExtensions> {\n path?: ReadonlyArray<string | number>;\n label?: string;\n}\n\nexport interface FormattedIncrementalDeferResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends FormattedTotalExecutionResult<TData, TExtensions> {\n path?: ReadonlyArray<string | number>;\n label?: string;\n}\n\nexport interface IncrementalStreamResult<\n TData = Array<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLError>;\n items?: TData | null;\n path?: ReadonlyArray<string | number>;\n label?: string;\n extensions?: TExtensions;\n}\n\nexport interface FormattedIncrementalStreamResult<\n TData = Array<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n items?: TData | null;\n path?: ReadonlyArray<string | number>;\n label?: string;\n extensions?: TExtensions;\n}\n\nexport type IncrementalResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> =\n | IncrementalDeferResult<TData, TExtensions>\n | IncrementalStreamResult<TData, TExtensions>;\n\nexport type FormattedIncrementalResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> =\n | FormattedIncrementalDeferResult<TData, TExtensions>\n | FormattedIncrementalStreamResult<TData, TExtensions>;\n\nexport interface CommonExecutionArgs {\n rootValue?: unknown;\n contextValue?: unknown;\n buildContextValue?: (contextValue?: unknown) => unknown;\n variableValues?: Maybe<{ [variable: string]: unknown }>;\n operationName?: Maybe<string>;\n fieldResolver?: Maybe<FunctionFieldResolver<unknown, unknown>>;\n typeResolver?: Maybe<TypeResolver<unknown, unknown>>;\n subscribeFieldResolver?: Maybe<FunctionFieldResolver<unknown, unknown>>;\n fieldExecutionHooks?: ExecutionHooks;\n}\nexport type ExecutionWithoutSchemaArgs = CommonExecutionArgs & {\n document: DocumentNode;\n schemaFragment: SchemaFragment;\n schemaFragmentLoader?: SchemaFragmentLoader;\n};\n\nexport type ExecutionWithSchemaArgs = CommonExecutionArgs & {\n document: DocumentNode;\n schema: {\n schemaId: string;\n definitions: DocumentNode;\n resolvers: UserResolvers;\n };\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
package/lib/types.mjs CHANGED
@@ -1,11 +0,0 @@
1
- // src/types.ts
2
- function isIncrementalExecutionResult(result) {
3
- return "initialResult" in result;
4
- }
5
- function isTotalExecutionResult(result) {
6
- return !("initialResult" in result);
7
- }
8
- export {
9
- isIncrementalExecutionResult,
10
- isTotalExecutionResult
11
- };
package/lib/types.mjs.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/types.ts"],
4
- "sourcesContent": ["import {\n GraphQLError,\n GraphQLFormattedError,\n GraphQLScalarType,\n DocumentNode,\n FragmentDefinitionNode,\n OperationDefinitionNode,\n} from \"graphql\";\nimport { Maybe } from \"./jsutils/Maybe\";\nimport { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\nimport { ObjMap } from \"./jsutils/ObjMap\";\nimport { Path } from \"./jsutils/Path\";\nimport { ExecutionHooks } from \"./hooks/types\";\nimport { FieldGroup } from \"./collectFields\";\nimport { SchemaFragmentDefinitions } from \"./schema/definition\";\n\nexport type ScalarTypeResolver = GraphQLScalarType;\nexport type EnumTypeResolver = Record<string, unknown>;\nexport type FunctionFieldResolver<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> = (\n source: TSource,\n args: TArgs,\n context: TContext,\n info: ResolveInfo,\n) => TReturn;\n\nexport type FieldResolver<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> =\n | FunctionFieldResolver<TSource, TContext, TArgs, TReturn>\n | FieldResolverObject<TSource, TContext, TArgs, TReturn>;\n\nexport type FieldResolverObject<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> = {\n subscribe?: FunctionFieldResolver<TSource, TContext, TArgs, TReturn>;\n resolve?: FunctionFieldResolver<TSource, TContext, TArgs, TReturn>;\n};\n\nexport type TypeResolver<TSource, TContext> = (\n value: TSource,\n context: TContext,\n info: ResolveInfo,\n) => PromiseOrValue<Maybe<string>>;\n\nexport type ObjectTypeResolver<\n TSource = unknown,\n TContext = unknown,\n TArgs = unknown,\n> = {\n [key: string]: FieldResolver<TSource, TContext, TArgs>;\n};\n\nexport type UserInterfaceTypeResolver = {\n __resolveType?: TypeResolver<unknown, unknown>;\n};\n\nexport type UserUnionTypeResolver = {\n __resolveType?: TypeResolver<unknown, unknown>;\n};\n\nexport type UserResolver<TSource, TContext> =\n | ObjectTypeResolver<TSource, TContext>\n | UserInterfaceTypeResolver\n | UserUnionTypeResolver\n | ScalarTypeResolver\n | EnumTypeResolver;\n\n// TODO: Keep only UserResolver\nexport type Resolver<TSource, TContext> = UserResolver<TSource, TContext>;\n\nexport type Resolvers<TSource = unknown, TContext = unknown> = UserResolvers<\n TSource,\n TContext\n>;\n\nexport type UserResolvers<TSource = unknown, TContext = unknown> = Record<\n string,\n UserResolver<TSource, TContext>\n>;\n\nexport interface ResolveInfo {\n fieldName: string;\n fieldGroup: FieldGroup;\n returnTypeName: string;\n parentTypeName: string;\n // readonly returnType: GraphQLOutputType;\n // readonly parentType: GraphQLObjectType;\n path: Path;\n // readonly schema: GraphQLSchema;\n fragments: ObjMap<FragmentDefinitionNode>;\n rootValue: unknown;\n operation: OperationDefinitionNode;\n variableValues: { [variable: string]: unknown };\n}\n\nexport type ExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> =\n | TotalExecutionResult<TData, TExtensions>\n | SubscriptionExecutionResult<TData, TExtensions>\n | IncrementalExecutionResult<TData, TExtensions>;\n\n/**\n * The result of GraphQL execution.\n *\n * - `errors` is included when any errors occurred as a non-empty array.\n * - `data` is the result of a successful execution of the query.\n * - `hasNext` is true if a future payload is expected.\n * - `extensions` is reserved for adding non-standard properties.\n * - `incremental` is a list of the results from defer/stream directives.\n */\nexport interface TotalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLError>;\n data?: TData | null;\n extensions?: TExtensions;\n}\n\nexport type SubscriptionExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> = AsyncGenerator<TotalExecutionResult<TData, TExtensions>>;\n\nexport interface FormattedTotalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n data?: TData | null;\n extensions?: TExtensions;\n}\n\nexport interface IncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n initialResult: InitialIncrementalExecutionResult<TData, TExtensions>;\n subsequentResults: AsyncGenerator<\n SubsequentIncrementalExecutionResult<TData, TExtensions>,\n void,\n void\n >;\n}\n\nexport interface InitialIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends TotalExecutionResult<TData, TExtensions> {\n hasNext: boolean;\n incremental?: ReadonlyArray<IncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface FormattedInitialIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends FormattedTotalExecutionResult<TData, TExtensions> {\n hasNext: boolean;\n incremental?: ReadonlyArray<FormattedIncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface SubsequentIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n hasNext: boolean;\n incremental?: ReadonlyArray<IncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface FormattedSubsequentIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n hasNext: boolean;\n incremental?: ReadonlyArray<FormattedIncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface IncrementalDeferResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends TotalExecutionResult<TData, TExtensions> {\n path?: ReadonlyArray<string | number>;\n label?: string;\n}\n\nexport interface FormattedIncrementalDeferResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends FormattedTotalExecutionResult<TData, TExtensions> {\n path?: ReadonlyArray<string | number>;\n label?: string;\n}\n\nexport interface IncrementalStreamResult<\n TData = Array<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLError>;\n items?: TData | null;\n path?: ReadonlyArray<string | number>;\n label?: string;\n extensions?: TExtensions;\n}\n\nexport interface FormattedIncrementalStreamResult<\n TData = Array<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n items?: TData | null;\n path?: ReadonlyArray<string | number>;\n label?: string;\n extensions?: TExtensions;\n}\n\nexport type IncrementalResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> =\n | IncrementalDeferResult<TData, TExtensions>\n | IncrementalStreamResult<TData, TExtensions>;\n\nexport type FormattedIncrementalResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> =\n | FormattedIncrementalDeferResult<TData, TExtensions>\n | FormattedIncrementalStreamResult<TData, TExtensions>;\n\nexport interface CommonExecutionArgs {\n resolvers: UserResolvers;\n rootValue?: unknown;\n contextValue?: unknown;\n buildContextValue?: (contextValue?: unknown) => unknown;\n variableValues?: Maybe<{ [variable: string]: unknown }>;\n operationName?: Maybe<string>;\n fieldResolver?: Maybe<FunctionFieldResolver<unknown, unknown>>;\n typeResolver?: Maybe<TypeResolver<unknown, unknown>>;\n subscribeFieldResolver?: Maybe<FunctionFieldResolver<unknown, unknown>>;\n fieldExecutionHooks?: ExecutionHooks;\n}\nexport type ExecutionWithoutSchemaArgs = CommonExecutionArgs & {\n document: DocumentNode;\n schemaFragment?: SchemaFragmentDefinitions;\n};\n\nexport type ExecutionWithSchemaArgs = CommonExecutionArgs & {\n document: DocumentNode;\n typeDefs: DocumentNode;\n};\n\nexport function isIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n>(\n result: ExecutionResult<TData, TExtensions>,\n): result is IncrementalExecutionResult<TData, TExtensions> {\n return \"initialResult\" in result;\n}\n\nexport function isTotalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n>(\n result: ExecutionResult<TData, TExtensions>,\n): result is IncrementalExecutionResult<TData, TExtensions> {\n return !(\"initialResult\" in result);\n}\n"],
5
- "mappings": ";AA4QO,SAAS,6BAId,QAC0D;AAC1D,SAAO,mBAAmB;AAC5B;AAEO,SAAS,uBAId,QAC0D;AAC1D,SAAO,EAAE,mBAAmB;AAC9B;",
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
6
  "names": []
7
7
  }
@@ -1,9 +1,12 @@
1
- import { DocumentNode, GraphQLSchema } from "graphql";
2
- import { SchemaFragmentDefinitions } from "../schema/definition";
1
+ import { DocumentNode, ExecutableDefinitionNode, GraphQLSchema } from "graphql";
2
+ import { SchemaDefinitions } from "../schema/definition";
3
3
  export type AddMinimalViableSchemaToRequestDocumentOptions = {
4
- ignoredDirectives?: string[];
5
- includeImplementations?: boolean;
4
+ addTo?: "DIRECTIVE" | "PROPERTY";
6
5
  };
7
6
  export declare function addMinimalViableSchemaToRequestDocument(schema: GraphQLSchema, document: DocumentNode, options?: AddMinimalViableSchemaToRequestDocumentOptions): DocumentNode;
8
- export declare function extractMinimalViableSchemaForRequestDocument(schema: GraphQLSchema, document: DocumentNode, options?: AddMinimalViableSchemaToRequestDocumentOptions): SchemaFragmentDefinitions;
7
+ export declare function addMinimalViableSchemaToExecutableDefinitionNode(schema: GraphQLSchema, node: ExecutableDefinitionNode, options?: AddMinimalViableSchemaToRequestDocumentOptions): ExecutableDefinitionNode;
8
+ export type ExecutableDefinitionNodeWithInlinedSchema = ExecutableDefinitionNode & {
9
+ __defs?: SchemaDefinitions;
10
+ };
11
+ export declare function getSchemaDefinitions(node: ExecutableDefinitionNodeWithInlinedSchema): SchemaDefinitions | undefined;
9
12
  //# sourceMappingURL=addMinimalViableSchemaToRequestDocument.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"addMinimalViableSchemaToRequestDocument.d.ts","sourceRoot":"","sources":["../../src/utilities/addMinimalViableSchemaToRequestDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EAaZ,aAAa,EAcd,MAAM,SAAS,CAAC;AACjB,OAAO,EAIL,yBAAyB,EAiB1B,MAAM,sBAAsB,CAAC;AAe9B,MAAM,MAAM,8CAA8C,GAAG;IAC3D,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,wBAAgB,uCAAuC,CACrD,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,8CAA8C,GACvD,YAAY,CAcd;AAgDD,wBAAgB,4CAA4C,CAC1D,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,8CAA8C,GACvD,yBAAyB,CAoE3B"}
1
+ {"version":3,"file":"addMinimalViableSchemaToRequestDocument.d.ts","sourceRoot":"","sources":["../../src/utilities/addMinimalViableSchemaToRequestDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,wBAAwB,EACxB,aAAa,EAGd,MAAM,SAAS,CAAC;AAMjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,MAAM,8CAA8C,GAAG;IAC3D,KAAK,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;CAClC,CAAC;AAEF,wBAAgB,uCAAuC,CACrD,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,8CAA8C,GACvD,YAAY,CAcd;AAED,wBAAgB,gDAAgD,CAC9D,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,wBAAwB,EAC9B,OAAO,CAAC,EAAE,8CAA8C,4BAUzD;AAED,MAAM,MAAM,yCAAyC,GACnD,wBAAwB,GAAG;IACzB,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B,CAAC;AA0CJ,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,yCAAyC,GAC9C,iBAAiB,GAAG,SAAS,CAgB/B"}
@@ -35,16 +35,14 @@ var __copyProps = (to, from, except, desc) => {
35
35
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
36
  var addMinimalViableSchemaToRequestDocument_exports = {};
37
37
  __export(addMinimalViableSchemaToRequestDocument_exports, {
38
+ addMinimalViableSchemaToExecutableDefinitionNode: () => addMinimalViableSchemaToExecutableDefinitionNode,
38
39
  addMinimalViableSchemaToRequestDocument: () => addMinimalViableSchemaToRequestDocument,
39
- extractMinimalViableSchemaForRequestDocument: () => extractMinimalViableSchemaForRequestDocument
40
+ getSchemaDefinitions: () => getSchemaDefinitions
40
41
  });
41
42
  module.exports = __toCommonJS(addMinimalViableSchemaToRequestDocument_exports);
42
43
  var import_graphql = require("graphql");
43
- var import_definition = require("../schema/definition");
44
- var import_reference = require("../schema/reference");
45
- var import_invariant = require("../jsutils/invariant");
46
44
  var import_directives = require("../schema/directives");
47
- var import_makeReadableErrorPath = require("./makeReadableErrorPath");
45
+ var import_extractMinimalViableSchemaForRequestDocument = require("./extractMinimalViableSchemaForRequestDocument");
48
46
  function addMinimalViableSchemaToRequestDocument(schema, document, options) {
49
47
  return __spreadProps(__spreadValues({}, document), {
50
48
  definitions: document.definitions.map(
@@ -57,21 +55,31 @@ function addMinimalViableSchemaToRequestDocument(schema, document, options) {
57
55
  });
58
56
  }
59
57
  function addMinimalViableSchemaToExecutableDefinitionNode(schema, node, options) {
58
+ const { definitions } = (0, import_extractMinimalViableSchemaForRequestDocument.extractMinimalViableSchemaForRequestDocument)(schema, {
59
+ kind: import_graphql.Kind.DOCUMENT,
60
+ definitions: [node]
61
+ });
62
+ return (options == null ? void 0 : options.addTo) === "PROPERTY" ? addToExecutableDefinitionNodeProperty(definitions, node) : addToExecutableDefinitionNodeDirective(definitions, node);
63
+ }
64
+ function addToExecutableDefinitionNodeProperty(schemaFragment, node) {
65
+ if (node.__defs) {
66
+ return node;
67
+ }
68
+ return __spreadProps(__spreadValues({}, node), {
69
+ __defs: schemaFragment
70
+ });
71
+ }
72
+ function addToExecutableDefinitionNodeDirective(schemaFragment, node) {
60
73
  var _a, _b;
61
74
  if ((_a = node.directives) == null ? void 0 : _a.some((directive2) => directive2.name.value === "schema")) {
62
75
  return node;
63
76
  }
64
- const schemaFragment = extractMinimalViableSchemaForRequestDocument(
65
- schema,
66
- { kind: import_graphql.Kind.DOCUMENT, definitions: [node] },
67
- options
68
- );
69
77
  const directive = {
70
78
  kind: import_graphql.Kind.DIRECTIVE,
71
79
  name: nameNode(import_directives.SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME),
72
80
  arguments: [
73
81
  argNode(
74
- import_directives.SUPERMASSIVE_SCHEMA_DIRECTIVE_FRAGMENT_ARGUMENT_NAME,
82
+ import_directives.SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME,
75
83
  schemaFragment
76
84
  )
77
85
  ]
@@ -80,6 +88,22 @@ function addMinimalViableSchemaToExecutableDefinitionNode(schema, node, options)
80
88
  directives: [...(_b = node.directives) != null ? _b : [], directive]
81
89
  });
82
90
  }
91
+ function getSchemaDefinitions(node) {
92
+ var _a, _b;
93
+ if (node.__defs) {
94
+ return node.__defs;
95
+ }
96
+ const directive = (_a = node.directives) == null ? void 0 : _a.find(
97
+ (directive2) => directive2.name.value === import_directives.SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME
98
+ );
99
+ const arg = (_b = directive == null ? void 0 : directive.arguments) == null ? void 0 : _b.find(
100
+ (arg2) => arg2.name.value === import_directives.SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME
101
+ );
102
+ if ((arg == null ? void 0 : arg.value.kind) === import_graphql.Kind.STRING) {
103
+ return JSON.parse(arg.value.value);
104
+ }
105
+ return void 0;
106
+ }
83
107
  function nameNode(name) {
84
108
  return { kind: import_graphql.Kind.NAME, value: name };
85
109
  }
@@ -90,214 +114,3 @@ function argNode(name, value) {
90
114
  value: { kind: import_graphql.Kind.STRING, value: JSON.stringify(value) }
91
115
  };
92
116
  }
93
- function extractMinimalViableSchemaForRequestDocument(schema, document, options) {
94
- const types = /* @__PURE__ */ Object.create(null);
95
- const directives = [];
96
- const typeInfo = new import_graphql.TypeInfo(schema);
97
- (0, import_graphql.visit)(
98
- document,
99
- (0, import_graphql.visitWithTypeInfo)(typeInfo, {
100
- Field(node, _key, _parent, _path, ancestors) {
101
- const parentType = typeInfo.getParentType();
102
- assertCompositeType(parentType, node, ancestors);
103
- const typeDef = addCompositeType(types, parentType);
104
- if (typeDef[0] === import_definition.TypeKind.UNION || node.name.value === "__typename") {
105
- return;
106
- }
107
- const field = typeInfo.getFieldDef();
108
- assertExistingField(field, node, ancestors);
109
- assertAllArgumentsAreDefined(field, node, ancestors);
110
- const fieldDef = addField(typeDef, field, node);
111
- if (Array.isArray(fieldDef)) {
112
- addReferencedOutputType(schema, types, fieldDef[import_definition.FieldKeys.type]);
113
- addReferencedInputTypes(schema, types, fieldDef[import_definition.FieldKeys.arguments]);
114
- } else {
115
- addReferencedOutputType(schema, types, fieldDef);
116
- }
117
- },
118
- Directive(node, _key, _parent, _path, ancestors) {
119
- var _a;
120
- if ((0, import_directives.isSpecifiedDirective)(node.name.value) || ((_a = options == null ? void 0 : options.ignoredDirectives) == null ? void 0 : _a.includes(node.name.value))) {
121
- return;
122
- }
123
- const directive = typeInfo.getDirective();
124
- if (!directive) {
125
- const errorPath = (0, import_makeReadableErrorPath.makeReadableErrorPath)(ancestors);
126
- throw new import_graphql.GraphQLError(
127
- `Cannot find definition for directive: ${errorPath.join(".")} @${node.name.value}`,
128
- { nodes: node }
129
- );
130
- }
131
- addDirective(directives, directive, node);
132
- },
133
- FragmentDefinition(node, _key, _parent, _path, ancestors) {
134
- const type = typeInfo.getType();
135
- assertCompositeType(type, node, ancestors);
136
- addCompositeType(types, type);
137
- },
138
- InlineFragment(node, _key, _parent, _path, ancestors) {
139
- if (node == null ? void 0 : node.typeCondition) {
140
- const type = typeInfo.getType();
141
- assertCompositeType(type, node, ancestors);
142
- addCompositeType(types, type);
143
- }
144
- },
145
- Argument() {
146
- return false;
147
- }
148
- })
149
- );
150
- return directives.length ? { types, directives } : { types };
151
- }
152
- function addReferencedOutputType(schema, types, typeRef) {
153
- const name = (0, import_reference.typeNameFromReference)(typeRef);
154
- const schemaType = schema.getType(name);
155
- if (!schemaType) {
156
- throw new Error(`Type ${name} not found in schema`);
157
- }
158
- if (types[name] || (0, import_graphql.isSpecifiedScalarType)(schemaType)) {
159
- return;
160
- }
161
- if ((0, import_graphql.isCompositeType)(schemaType)) {
162
- addCompositeType(types, schemaType);
163
- } else if ((0, import_graphql.isEnumType)(schemaType)) {
164
- types[name] = encodeEnumType(schemaType);
165
- } else if ((0, import_graphql.isScalarType)(schemaType)) {
166
- types[name] = encodeScalarType(schemaType);
167
- } else {
168
- (0, import_invariant.invariant)(false, "Got non-output type: " + (0, import_reference.inspectTypeReference)(typeRef));
169
- }
170
- }
171
- function addReferencedInputTypes(schema, types, inputValues) {
172
- for (const inputValueDef of Object.values(inputValues)) {
173
- const typeRef = Array.isArray(inputValueDef) ? inputValueDef[import_definition.InputValueKeys.type] : inputValueDef;
174
- const name = (0, import_reference.typeNameFromReference)(typeRef);
175
- const schemaType = schema.getType(name);
176
- if (!schemaType) {
177
- throw new Error(`Type ${name} not found in schema`);
178
- }
179
- if (types[name] || (0, import_graphql.isSpecifiedScalarType)(schemaType)) {
180
- continue;
181
- }
182
- if ((0, import_graphql.isInputObjectType)(schemaType)) {
183
- const inputObjectDef = encodeInputObjectType(schemaType);
184
- types[name] = inputObjectDef;
185
- addReferencedInputTypes(
186
- schema,
187
- types,
188
- inputObjectDef[import_definition.InputObjectKeys.fields]
189
- );
190
- } else if ((0, import_graphql.isEnumType)(schemaType)) {
191
- types[name] = encodeEnumType(schemaType);
192
- } else if ((0, import_graphql.isScalarType)(schemaType)) {
193
- types[name] = encodeScalarType(schemaType);
194
- } else {
195
- (0, import_invariant.invariant)(false, "Got non-input type: " + (0, import_reference.inspectTypeReference)(typeRef));
196
- }
197
- }
198
- }
199
- function addCompositeType(types, type) {
200
- if (types[type.name]) {
201
- return types[type.name];
202
- }
203
- return types[type.name] = encodeCompositeType(type);
204
- }
205
- function addField(type, field, fieldNode) {
206
- var _a;
207
- const fields = type[0] === import_definition.TypeKind.OBJECT ? type[import_definition.ObjectKeys.fields] : type[import_definition.InterfaceKeys.fields];
208
- const existingFieldDef = fields[field.name];
209
- const previouslyAddedArgs = Array.isArray(existingFieldDef) ? existingFieldDef[import_definition.FieldKeys.arguments] : /* @__PURE__ */ Object.create(null);
210
- const nodeArgs = new Set((_a = fieldNode.arguments) == null ? void 0 : _a.map((arg) => arg.name.value));
211
- const argsFilter = (argDef) => Boolean(
212
- previouslyAddedArgs[argDef.name] || (0, import_graphql.isNonNullType)(argDef.type) || argDef.defaultValue !== void 0 || nodeArgs.has(argDef.name)
213
- );
214
- return fields[field.name] = encodeFieldDef(field, argsFilter);
215
- }
216
- function addDirective(directives, directive, node) {
217
- var _a;
218
- const name = directive.name;
219
- let tuple = directives.find((d) => d[import_definition.DirectiveKeys.name] === name);
220
- if (!tuple) {
221
- tuple = [directive.name];
222
- directives.push(tuple);
223
- }
224
- const previouslyAddedArgs = tuple[import_definition.DirectiveKeys.arguments];
225
- const nodeArgs = new Set((_a = node.arguments) == null ? void 0 : _a.map((arg) => arg.name.value));
226
- const argsFilter = (argDef) => Boolean(
227
- (previouslyAddedArgs == null ? void 0 : previouslyAddedArgs[argDef.name]) || (0, import_graphql.isNonNullType)(argDef.type) || argDef.defaultValue !== void 0 || nodeArgs.has(argDef.name)
228
- );
229
- const [hasArgs, argsRecord] = encodeArguments(directive.args, argsFilter);
230
- if (hasArgs) {
231
- tuple[import_definition.DirectiveKeys.arguments] = argsRecord;
232
- }
233
- return tuple;
234
- }
235
- function encodeCompositeType(type) {
236
- if ((0, import_graphql.isUnionType)(type)) {
237
- return [import_definition.TypeKind.UNION, type.getTypes().map((type2) => type2.name)];
238
- }
239
- const ifaces = type.getInterfaces().map((iface) => iface.name);
240
- const typeKind = (0, import_graphql.isObjectType)(type) ? import_definition.TypeKind.OBJECT : import_definition.TypeKind.INTERFACE;
241
- return ifaces.length ? [typeKind, {}, ifaces] : [typeKind, {}];
242
- }
243
- function encodeInputObjectType(type) {
244
- const result = /* @__PURE__ */ Object.create(null);
245
- for (const [fieldName, field] of Object.entries(type.getFields())) {
246
- result[fieldName] = encodeInputField(field);
247
- }
248
- return [import_definition.TypeKind.INPUT, result];
249
- }
250
- function encodeInputField(field) {
251
- const typeReference = (0, import_reference.typeReferenceFromName)(field.type.toString());
252
- return field.defaultValue === void 0 ? typeReference : [typeReference, field.defaultValue];
253
- }
254
- function encodeFieldDef(field, argumentsFilter) {
255
- const typeReference = (0, import_reference.typeReferenceFromName)(field.type.toString());
256
- const [hasArgs, argsRecord] = encodeArguments(field.args, argumentsFilter);
257
- return !hasArgs ? typeReference : [typeReference, argsRecord];
258
- }
259
- function encodeArguments(args, argumentsFilter) {
260
- let hasArgs = false;
261
- const argsRecord = {};
262
- for (const argDef of args) {
263
- if (argumentsFilter && !argumentsFilter(argDef)) {
264
- continue;
265
- }
266
- const typeReference = (0, import_reference.typeReferenceFromName)(argDef.type.toString());
267
- argsRecord[argDef.name] = argDef.defaultValue === void 0 ? typeReference : [typeReference, argDef.defaultValue];
268
- hasArgs = true;
269
- }
270
- return [hasArgs, argsRecord];
271
- }
272
- function encodeEnumType(type) {
273
- return [import_definition.TypeKind.ENUM, type.getValues().map((v) => v.name)];
274
- }
275
- function encodeScalarType(_type) {
276
- return [import_definition.TypeKind.SCALAR];
277
- }
278
- function assertCompositeType(type, node, ancestors) {
279
- if (!type || !(0, import_graphql.isCompositeType)(type)) {
280
- const path = node.kind === import_graphql.Kind.FIELD ? (0, import_makeReadableErrorPath.makeReadableErrorPath)(ancestors).join(".") + "." + node.name.value : (0, import_makeReadableErrorPath.makeReadableErrorPath)(ancestors).join(".");
281
- throw new import_graphql.GraphQLError(`Cannot find type for: ${path}`, {
282
- nodes: node
283
- });
284
- }
285
- }
286
- function assertExistingField(field, node, ancestors) {
287
- if (!field) {
288
- const path = (0, import_makeReadableErrorPath.makeReadableErrorPath)(ancestors).join(".") + "." + node.name.value;
289
- throw new import_graphql.GraphQLError(`Cannot find field: ${path}`, { nodes: node });
290
- }
291
- }
292
- function assertAllArgumentsAreDefined(field, node, ancestors) {
293
- var _a;
294
- const defArgs = new Set(field.args.map((arg) => arg.name));
295
- for (const arg of (_a = node.arguments) != null ? _a : []) {
296
- if (!defArgs.has(arg.name.value)) {
297
- const path = (0, import_makeReadableErrorPath.makeReadableErrorPath)(ancestors).join(".") + "." + node.name.value + `(${arg.name.value}: ...)`;
298
- throw new import_graphql.GraphQLError(`Cannot find type for argument: ${path}`, {
299
- nodes: arg
300
- });
301
- }
302
- }
303
- }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utilities/addMinimalViableSchemaToRequestDocument.ts"],
4
- "sourcesContent": ["import {\n ArgumentNode,\n ASTNode,\n DirectiveNode,\n DocumentNode,\n ExecutableDefinitionNode,\n FieldNode,\n GraphQLArgument,\n GraphQLCompositeType,\n GraphQLDirective,\n GraphQLEnumType,\n GraphQLError,\n GraphQLField,\n GraphQLInputObjectType,\n GraphQLInputField,\n GraphQLOutputType,\n GraphQLScalarType,\n GraphQLSchema,\n isCompositeType,\n isEnumType,\n isInputObjectType,\n isNonNullType,\n isObjectType,\n isScalarType,\n isSpecifiedScalarType,\n isUnionType,\n Kind,\n NameNode,\n TypeInfo,\n visit,\n visitWithTypeInfo,\n} from \"graphql\";\nimport {\n CompositeTypeTuple,\n DirectiveDefinitionTuple,\n DirectiveKeys,\n SchemaFragmentDefinitions,\n EnumTypeDefinitionTuple,\n FieldDefinition,\n FieldKeys,\n InputObjectKeys,\n InputObjectTypeDefinitionTuple,\n InputValueDefinition,\n InputValueDefinitionRecord,\n InputValueKeys,\n InterfaceKeys,\n InterfaceTypeDefinitionTuple,\n ObjectKeys,\n ObjectTypeDefinitionTuple,\n ScalarTypeDefinitionTuple,\n TypeDefinitionsRecord,\n TypeKind,\n TypeReference,\n} from \"../schema/definition\";\nimport {\n inspectTypeReference,\n typeNameFromReference,\n typeReferenceFromName,\n} from \"../schema/reference\";\nimport { invariant } from \"../jsutils/invariant\";\nimport { Maybe } from \"../jsutils/Maybe\";\nimport {\n isSpecifiedDirective,\n SUPERMASSIVE_SCHEMA_DIRECTIVE_FRAGMENT_ARGUMENT_NAME,\n SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,\n} from \"../schema/directives\";\nimport { makeReadableErrorPath } from \"./makeReadableErrorPath\";\n\nexport type AddMinimalViableSchemaToRequestDocumentOptions = {\n ignoredDirectives?: string[];\n includeImplementations?: boolean; // TODO\n};\n\nexport function addMinimalViableSchemaToRequestDocument(\n schema: GraphQLSchema,\n document: DocumentNode,\n options?: AddMinimalViableSchemaToRequestDocumentOptions,\n): DocumentNode {\n return {\n ...document,\n definitions: document.definitions.map((node) =>\n node.kind === Kind.OPERATION_DEFINITION ||\n node.kind === Kind.FRAGMENT_DEFINITION\n ? addMinimalViableSchemaToExecutableDefinitionNode(\n schema,\n node,\n options,\n )\n : node,\n ),\n };\n}\n\n/**\n * Adds directive with minimal viable schema to every individual executable node (operation, fragment)\n */\nfunction addMinimalViableSchemaToExecutableDefinitionNode<\n T extends ExecutableDefinitionNode,\n>(\n schema: GraphQLSchema,\n node: T,\n options?: AddMinimalViableSchemaToRequestDocumentOptions,\n): T {\n if (node.directives?.some((directive) => directive.name.value === \"schema\")) {\n return node;\n }\n const schemaFragment = extractMinimalViableSchemaForRequestDocument(\n schema,\n { kind: Kind.DOCUMENT, definitions: [node] },\n options,\n );\n const directive: DirectiveNode = {\n kind: Kind.DIRECTIVE,\n name: nameNode(SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME),\n arguments: [\n argNode(\n SUPERMASSIVE_SCHEMA_DIRECTIVE_FRAGMENT_ARGUMENT_NAME,\n schemaFragment,\n ),\n ],\n };\n return {\n ...node,\n directives: [...(node.directives ?? []), directive],\n };\n}\n\nfunction nameNode(name: string): NameNode {\n return { kind: Kind.NAME, value: name };\n}\n\nfunction argNode(name: string, value: unknown): ArgumentNode {\n return {\n kind: Kind.ARGUMENT,\n name: nameNode(name),\n value: { kind: Kind.STRING, value: JSON.stringify(value) },\n };\n}\n\nexport function extractMinimalViableSchemaForRequestDocument(\n schema: GraphQLSchema,\n document: DocumentNode,\n options?: AddMinimalViableSchemaToRequestDocumentOptions,\n): SchemaFragmentDefinitions {\n const types: TypeDefinitionsRecord = Object.create(null);\n const directives: DirectiveDefinitionTuple[] = [];\n\n const typeInfo = new TypeInfo(schema);\n visit(\n document,\n visitWithTypeInfo(typeInfo, {\n Field(node, _key, _parent, _path, ancestors): void {\n const parentType = typeInfo.getParentType();\n assertCompositeType(parentType, node, ancestors);\n\n const typeDef = addCompositeType(types, parentType);\n if (typeDef[0] === TypeKind.UNION || node.name.value === \"__typename\") {\n return;\n }\n const field = typeInfo.getFieldDef();\n assertExistingField(field, node, ancestors);\n assertAllArgumentsAreDefined(field, node, ancestors);\n\n const fieldDef = addField(typeDef, field, node);\n if (Array.isArray(fieldDef)) {\n addReferencedOutputType(schema, types, fieldDef[FieldKeys.type]);\n addReferencedInputTypes(schema, types, fieldDef[FieldKeys.arguments]);\n } else {\n addReferencedOutputType(schema, types, fieldDef);\n }\n },\n Directive(node, _key, _parent, _path, ancestors) {\n if (\n isSpecifiedDirective(node.name.value) ||\n options?.ignoredDirectives?.includes(node.name.value)\n ) {\n return;\n }\n const directive = typeInfo.getDirective();\n if (!directive) {\n const errorPath = makeReadableErrorPath(ancestors);\n\n // This happens whenever a directive is requested that hasn't been defined in schema\n throw new GraphQLError(\n `Cannot find definition for directive: ${errorPath.join(\".\")} @${\n node.name.value\n }`,\n { nodes: node },\n );\n }\n addDirective(directives, directive, node);\n },\n FragmentDefinition(node, _key, _parent, _path, ancestors): void {\n const type = typeInfo.getType();\n assertCompositeType(type, node, ancestors);\n addCompositeType(types, type);\n },\n InlineFragment(node, _key, _parent, _path, ancestors): void {\n if (node?.typeCondition) {\n const type = typeInfo.getType();\n assertCompositeType(type, node, ancestors);\n addCompositeType(types, type);\n }\n },\n Argument() {\n // Perf: no need to visit arguments - they were handled by Field/Directive visitors\n return false;\n },\n }),\n );\n return directives.length ? { types, directives } : { types };\n}\n\nfunction addReferencedOutputType(\n schema: GraphQLSchema,\n types: TypeDefinitionsRecord,\n typeRef: TypeReference,\n) {\n const name = typeNameFromReference(typeRef);\n const schemaType = schema.getType(name);\n\n if (!schemaType) {\n throw new Error(`Type ${name} not found in schema`);\n }\n if (types[name] || isSpecifiedScalarType(schemaType)) {\n // Assuming already added\n return;\n }\n if (isCompositeType(schemaType)) {\n addCompositeType(types, schemaType);\n } else if (isEnumType(schemaType)) {\n types[name] = encodeEnumType(schemaType);\n } else if (isScalarType(schemaType)) {\n types[name] = encodeScalarType(schemaType);\n } else {\n invariant(false, \"Got non-output type: \" + inspectTypeReference(typeRef));\n }\n}\n\nfunction addReferencedInputTypes(\n schema: GraphQLSchema,\n types: TypeDefinitionsRecord,\n inputValues: InputValueDefinitionRecord,\n): void {\n for (const inputValueDef of Object.values(inputValues)) {\n const typeRef = Array.isArray(inputValueDef)\n ? inputValueDef[InputValueKeys.type]\n : inputValueDef;\n\n const name = typeNameFromReference(typeRef);\n const schemaType = schema.getType(name);\n\n if (!schemaType) {\n throw new Error(`Type ${name} not found in schema`);\n }\n if (types[name] || isSpecifiedScalarType(schemaType)) {\n // Assuming already fully added\n continue;\n }\n if (isInputObjectType(schemaType)) {\n const inputObjectDef = encodeInputObjectType(schemaType);\n types[name] = inputObjectDef;\n addReferencedInputTypes(\n schema,\n types,\n inputObjectDef[InputObjectKeys.fields],\n );\n } else if (isEnumType(schemaType)) {\n types[name] = encodeEnumType(schemaType);\n } else if (isScalarType(schemaType)) {\n types[name] = encodeScalarType(schemaType);\n } else {\n invariant(false, \"Got non-input type: \" + inspectTypeReference(typeRef));\n }\n }\n}\n\nfunction addCompositeType(\n types: TypeDefinitionsRecord,\n type: GraphQLCompositeType,\n): CompositeTypeTuple {\n if (types[type.name]) {\n // TODO: double check that the kind match?\n return types[type.name] as CompositeTypeTuple;\n }\n return (types[type.name] = encodeCompositeType(type));\n}\n\nfunction addField(\n type: ObjectTypeDefinitionTuple | InterfaceTypeDefinitionTuple,\n field: GraphQLField<unknown, unknown>,\n fieldNode: FieldNode,\n): FieldDefinition {\n const fields =\n type[0] === TypeKind.OBJECT\n ? type[ObjectKeys.fields]\n : type[InterfaceKeys.fields];\n\n const existingFieldDef: FieldDefinition = fields[field.name];\n const previouslyAddedArgs = Array.isArray(existingFieldDef)\n ? existingFieldDef[FieldKeys.arguments]\n : Object.create(null);\n\n const nodeArgs = new Set(fieldNode.arguments?.map((arg) => arg.name.value));\n\n const argsFilter = (argDef: GraphQLArgument) =>\n Boolean(\n previouslyAddedArgs[argDef.name] ||\n isNonNullType(argDef.type) ||\n argDef.defaultValue !== undefined ||\n nodeArgs.has(argDef.name),\n );\n\n return (fields[field.name] = encodeFieldDef(field, argsFilter));\n}\n\nfunction addDirective(\n directives: DirectiveDefinitionTuple[],\n directive: GraphQLDirective,\n node: DirectiveNode,\n) {\n const name = directive.name;\n let tuple = directives.find((d) => d[DirectiveKeys.name] === name);\n if (!tuple) {\n tuple = [directive.name];\n directives.push(tuple);\n }\n\n const previouslyAddedArgs = tuple[DirectiveKeys.arguments];\n const nodeArgs = new Set(node.arguments?.map((arg) => arg.name.value));\n\n const argsFilter = (argDef: GraphQLArgument) =>\n Boolean(\n previouslyAddedArgs?.[argDef.name] ||\n isNonNullType(argDef.type) ||\n argDef.defaultValue !== undefined ||\n nodeArgs.has(argDef.name),\n );\n const [hasArgs, argsRecord] = encodeArguments(directive.args, argsFilter);\n if (hasArgs) {\n tuple[DirectiveKeys.arguments] = argsRecord;\n }\n return tuple;\n}\n\nfunction encodeCompositeType(type: GraphQLCompositeType): CompositeTypeTuple {\n if (isUnionType(type)) {\n return [TypeKind.UNION, type.getTypes().map((type) => type.name)];\n }\n const ifaces = type.getInterfaces().map((iface) => iface.name);\n const typeKind = isObjectType(type) ? TypeKind.OBJECT : TypeKind.INTERFACE;\n return ifaces.length ? [typeKind, {}, ifaces] : [typeKind, {}];\n}\n\nfunction encodeInputObjectType(\n type: GraphQLInputObjectType,\n): InputObjectTypeDefinitionTuple {\n const result = Object.create(null);\n for (const [fieldName, field] of Object.entries(type.getFields())) {\n result[fieldName] = encodeInputField(field);\n }\n return [TypeKind.INPUT, result];\n}\n\nfunction encodeInputField(field: GraphQLInputField): InputValueDefinition {\n const typeReference = typeReferenceFromName(field.type.toString());\n return field.defaultValue === undefined\n ? typeReference\n : [typeReference, field.defaultValue];\n}\n\nfunction encodeFieldDef(\n field: GraphQLField<unknown, unknown>,\n argumentsFilter?: (arg: GraphQLArgument) => boolean,\n): FieldDefinition {\n const typeReference = typeReferenceFromName(field.type.toString());\n const [hasArgs, argsRecord] = encodeArguments(field.args, argumentsFilter);\n return !hasArgs ? typeReference : [typeReference, argsRecord];\n}\n\nfunction encodeArguments(\n args: ReadonlyArray<GraphQLArgument>,\n argumentsFilter?: (arg: GraphQLArgument) => boolean,\n): [boolean, InputValueDefinitionRecord] {\n let hasArgs = false;\n const argsRecord: InputValueDefinitionRecord = {};\n for (const argDef of args) {\n if (argumentsFilter && !argumentsFilter(argDef)) {\n continue;\n }\n const typeReference = typeReferenceFromName(argDef.type.toString());\n argsRecord[argDef.name] =\n argDef.defaultValue === undefined\n ? typeReference\n : [typeReference, argDef.defaultValue];\n hasArgs = true;\n }\n return [hasArgs, argsRecord];\n}\n\nfunction encodeEnumType(type: GraphQLEnumType): EnumTypeDefinitionTuple {\n return [TypeKind.ENUM, type.getValues().map((v) => v.name)];\n}\n\nfunction encodeScalarType(_type: GraphQLScalarType): ScalarTypeDefinitionTuple {\n return [TypeKind.SCALAR];\n}\n\nfunction assertCompositeType(\n type: Maybe<GraphQLOutputType>,\n node: ASTNode,\n ancestors: ReadonlyArray<readonly ASTNode[] | ASTNode>,\n): asserts type is GraphQLCompositeType {\n if (!type || !isCompositeType(type)) {\n const path =\n node.kind === Kind.FIELD\n ? makeReadableErrorPath(ancestors).join(\".\") + \".\" + node.name.value\n : makeReadableErrorPath(ancestors).join(\".\");\n throw new GraphQLError(`Cannot find type for: ${path}`, {\n nodes: node,\n });\n }\n}\n\nfunction assertExistingField(\n field: Maybe<GraphQLField<unknown, unknown>>,\n node: FieldNode,\n ancestors: ReadonlyArray<readonly ASTNode[] | ASTNode>,\n): asserts field is GraphQLField<unknown, unknown> {\n if (!field) {\n const path =\n makeReadableErrorPath(ancestors).join(\".\") + \".\" + node.name.value;\n throw new GraphQLError(`Cannot find field: ${path}`, { nodes: node });\n }\n}\n\nfunction assertAllArgumentsAreDefined(\n field: GraphQLField<unknown, unknown> | GraphQLDirective,\n node: FieldNode | DirectiveNode,\n ancestors: ReadonlyArray<readonly ASTNode[] | ASTNode>,\n) {\n const defArgs = new Set(field.args.map((arg) => arg.name));\n for (const arg of node.arguments ?? []) {\n if (!defArgs.has(arg.name.value)) {\n const path =\n makeReadableErrorPath(ancestors).join(\".\") +\n \".\" +\n node.name.value +\n `(${arg.name.value}: ...)`;\n throw new GraphQLError(`Cannot find type for argument: ${path}`, {\n nodes: arg,\n });\n }\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["directive", "type"]
4
+ "sourcesContent": ["import {\n ArgumentNode,\n DirectiveNode,\n DocumentNode,\n ExecutableDefinitionNode,\n GraphQLSchema,\n Kind,\n NameNode,\n} from \"graphql\";\nimport {\n SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME,\n SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,\n} from \"../schema/directives\";\nimport { extractMinimalViableSchemaForRequestDocument } from \"./extractMinimalViableSchemaForRequestDocument\";\nimport { SchemaDefinitions } from \"../schema/definition\";\n\nexport type AddMinimalViableSchemaToRequestDocumentOptions = {\n addTo?: \"DIRECTIVE\" | \"PROPERTY\";\n};\n\nexport function addMinimalViableSchemaToRequestDocument(\n schema: GraphQLSchema,\n document: DocumentNode,\n options?: AddMinimalViableSchemaToRequestDocumentOptions,\n): DocumentNode {\n return {\n ...document,\n definitions: document.definitions.map((node) =>\n node.kind === Kind.OPERATION_DEFINITION ||\n node.kind === Kind.FRAGMENT_DEFINITION\n ? addMinimalViableSchemaToExecutableDefinitionNode(\n schema,\n node,\n options,\n )\n : node,\n ),\n };\n}\n\nexport function addMinimalViableSchemaToExecutableDefinitionNode(\n schema: GraphQLSchema,\n node: ExecutableDefinitionNode,\n options?: AddMinimalViableSchemaToRequestDocumentOptions,\n) {\n const { definitions } = extractMinimalViableSchemaForRequestDocument(schema, {\n kind: Kind.DOCUMENT,\n definitions: [node],\n });\n\n return options?.addTo === \"PROPERTY\"\n ? addToExecutableDefinitionNodeProperty(definitions, node)\n : addToExecutableDefinitionNodeDirective(definitions, node);\n}\n\nexport type ExecutableDefinitionNodeWithInlinedSchema =\n ExecutableDefinitionNode & {\n __defs?: SchemaDefinitions;\n };\n\n/**\n * Adds directive with minimal viable schema to every individual executable node (operation, fragment)\n */\nfunction addToExecutableDefinitionNodeProperty<\n T extends ExecutableDefinitionNodeWithInlinedSchema,\n>(schemaFragment: SchemaDefinitions, node: T): T {\n if (node.__defs) {\n return node;\n }\n return {\n ...node,\n __defs: schemaFragment,\n };\n}\n\n/**\n * Adds directive with minimal viable schema to every individual executable node (operation, fragment)\n */\nfunction addToExecutableDefinitionNodeDirective<\n T extends ExecutableDefinitionNode,\n>(schemaFragment: SchemaDefinitions, node: T): T {\n if (node.directives?.some((directive) => directive.name.value === \"schema\")) {\n return node;\n }\n const directive: DirectiveNode = {\n kind: Kind.DIRECTIVE,\n name: nameNode(SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME),\n arguments: [\n argNode(\n SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME,\n schemaFragment,\n ),\n ],\n };\n return {\n ...node,\n directives: [...(node.directives ?? []), directive],\n };\n}\n\nexport function getSchemaDefinitions(\n node: ExecutableDefinitionNodeWithInlinedSchema,\n): SchemaDefinitions | undefined {\n if (node.__defs) {\n return node.__defs;\n }\n const directive = node.directives?.find(\n (directive) => directive.name.value === SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,\n );\n const arg = directive?.arguments?.find(\n (arg) =>\n arg.name.value ===\n SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME,\n );\n if (arg?.value.kind === Kind.STRING) {\n return JSON.parse(arg.value.value);\n }\n return undefined;\n}\n\nfunction nameNode(name: string): NameNode {\n return { kind: Kind.NAME, value: name };\n}\n\nfunction argNode(name: string, value: unknown): ArgumentNode {\n return {\n kind: Kind.ARGUMENT,\n name: nameNode(name),\n value: { kind: Kind.STRING, value: JSON.stringify(value) },\n };\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAQO;AACP,wBAGO;AACP,0DAA6D;AAOtD,SAAS,wCACd,QACA,UACA,SACc;AACd,SAAO,iCACF,WADE;AAAA,IAEL,aAAa,SAAS,YAAY;AAAA,MAAI,CAAC,SACrC,KAAK,SAAS,oBAAK,wBACnB,KAAK,SAAS,oBAAK,sBACf;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,MACF,IACA;AAAA,IACN;AAAA,EACF;AACF;AAEO,SAAS,iDACd,QACA,MACA,SACA;AACA,QAAM,EAAE,YAAY,QAAI,kGAA6C,QAAQ;AAAA,IAC3E,MAAM,oBAAK;AAAA,IACX,aAAa,CAAC,IAAI;AAAA,EACpB,CAAC;AAED,UAAO,mCAAS,WAAU,aACtB,sCAAsC,aAAa,IAAI,IACvD,uCAAuC,aAAa,IAAI;AAC9D;AAUA,SAAS,sCAEP,gBAAmC,MAAY;AAC/C,MAAI,KAAK,QAAQ;AACf,WAAO;AAAA,EACT;AACA,SAAO,iCACF,OADE;AAAA,IAEL,QAAQ;AAAA,EACV;AACF;AAKA,SAAS,uCAEP,gBAAmC,MAAY;AAhFjD;AAiFE,OAAI,UAAK,eAAL,mBAAiB,KAAK,CAACA,eAAcA,WAAU,KAAK,UAAU,WAAW;AAC3E,WAAO;AAAA,EACT;AACA,QAAM,YAA2B;AAAA,IAC/B,MAAM,oBAAK;AAAA,IACX,MAAM,SAAS,oDAAkC;AAAA,IACjD,WAAW;AAAA,MACT;AAAA,QACE;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO,iCACF,OADE;AAAA,IAEL,YAAY,CAAC,IAAI,UAAK,eAAL,YAAmB,CAAC,GAAI,SAAS;AAAA,EACpD;AACF;AAEO,SAAS,qBACd,MAC+B;AAtGjC;AAuGE,MAAI,KAAK,QAAQ;AACf,WAAO,KAAK;AAAA,EACd;AACA,QAAM,aAAY,UAAK,eAAL,mBAAiB;AAAA,IACjC,CAACA,eAAcA,WAAU,KAAK,UAAU;AAAA;AAE1C,QAAM,OAAM,4CAAW,cAAX,mBAAsB;AAAA,IAChC,CAACC,SACCA,KAAI,KAAK,UACT;AAAA;AAEJ,OAAI,2BAAK,MAAM,UAAS,oBAAK,QAAQ;AACnC,WAAO,KAAK,MAAM,IAAI,MAAM,KAAK;AAAA,EACnC;AACA,SAAO;AACT;AAEA,SAAS,SAAS,MAAwB;AACxC,SAAO,EAAE,MAAM,oBAAK,MAAM,OAAO,KAAK;AACxC;AAEA,SAAS,QAAQ,MAAc,OAA8B;AAC3D,SAAO;AAAA,IACL,MAAM,oBAAK;AAAA,IACX,MAAM,SAAS,IAAI;AAAA,IACnB,OAAO,EAAE,MAAM,oBAAK,QAAQ,OAAO,KAAK,UAAU,KAAK,EAAE;AAAA,EAC3D;AACF;",
6
+ "names": ["directive", "arg"]
7
7
  }