New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

graphql

Package Overview
Dependencies
Maintainers
7
Versions
272
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

graphql - npm Package Compare versions

Comparing version 16.3.0-canary.pr.3506.be685b29062b443b0962af292fb5c9337331db70 to 16.3.0-canary.pr.3510.5099f4491dc2a35a3e4a0270a55e2a228c15f13b

utilities/applyRequiredStatus.d.ts

1

execution/execute.d.ts

@@ -59,2 +59,3 @@ import type { Maybe } from '../jsutils/Maybe';

errors: Array<GraphQLError>;
nullPropagationPairs: Map<String, Path>;
}

@@ -61,0 +62,0 @@ /**

@@ -48,2 +48,4 @@ 'use strict';

var _applyRequiredStatus = require('../utilities/applyRequiredStatus.js');
var _collectFields = require('./collectFields.js');

@@ -316,2 +318,3 @@

errors: [],
nullPropagationPairs: new Map(),
};

@@ -340,7 +343,17 @@ }

);
const path = undefined;
const path = undefined; // This is a fake path. It can't exist, so if there is null propagation, then it will go all
// the way to data.
const currentPropagationPath = (0, _Path.addPath)(undefined, '', undefined);
switch (operation.operation) {
case _ast.OperationTypeNode.QUERY:
return executeFields(exeContext, rootType, rootValue, path, rootFields);
return executeFields(
exeContext,
rootType,
rootValue,
path,
currentPropagationPath,
rootFields,
);

@@ -353,2 +366,3 @@ case _ast.OperationTypeNode.MUTATION:

path,
currentPropagationPath,
rootFields,

@@ -360,3 +374,10 @@ );

// Temporary solution until we finish merging execute and subscribe together
return executeFields(exeContext, rootType, rootValue, path, rootFields);
return executeFields(
exeContext,
rootType,
rootValue,
path,
currentPropagationPath,
rootFields,
);
}

@@ -374,2 +395,3 @@ }

path,
currentPropagationPath,
fields,

@@ -387,2 +409,3 @@ ) {

fieldPath,
currentPropagationPath,
);

@@ -412,3 +435,10 @@

function executeFields(exeContext, parentType, sourceValue, path, fields) {
function executeFields(
exeContext,
parentType,
sourceValue,
path,
currentPropagationPath,
fields,
) {
const results = Object.create(null);

@@ -425,2 +455,3 @@ let containsPromise = false;

fieldPath,
currentPropagationPath,
);

@@ -452,7 +483,36 @@

function executeField(exeContext, parentType, source, fieldNodes, path) {
function executeField(
exeContext,
parentType,
source,
fieldNodes,
path,
currentPropagationPath,
) {
var _fieldDef$resolve;
const fieldDef = getFieldDef(exeContext.schema, parentType, fieldNodes[0]);
const requiredStatus = fieldNodes[0].required;
let newPropagationPath = currentPropagationPath;
/*
When we see an optional field, hold it and pass it to all children.
Replace it every time we see a new optional field
If we ever null propagate from a required field, we propagate to that point
*/
if (
(requiredStatus === null || requiredStatus === void 0
? void 0
: requiredStatus.kind) === _kinds.Kind.OPTIONAL_DESIGNATOR
) {
newPropagationPath = path;
} else if (
(requiredStatus === null || requiredStatus === void 0
? void 0
: requiredStatus.kind) === _kinds.Kind.REQUIRED_DESIGNATOR
) {
const pathString = JSON.stringify((0, _Path.pathToArray)(path));
exeContext.nullPropagationPairs.set(pathString, newPropagationPath);
}
if (!fieldDef) {

@@ -462,3 +522,35 @@ return;

const returnType = fieldDef.type;
let returnType;
try {
returnType = (0, _applyRequiredStatus.applyRequiredStatus)(
fieldDef.type,
requiredStatus,
);
} catch (error) {
var _fieldNodes$, _fieldNodes$0$loc;
const location =
(_fieldNodes$ = fieldNodes[0]) === null || _fieldNodes$ === void 0
? void 0
: _fieldNodes$.loc;
let starts = [];
/* istanbul ignore next (branch where location is undefined is difficult to test) */
if (location !== undefined) {
starts = [location.start];
}
throw new _GraphQLError.GraphQLError(
'Syntax Error: Something is wrong with the nullability designator. Is the correct list depth being used?',
undefined,
(_fieldNodes$0$loc = fieldNodes[0].loc) === null ||
_fieldNodes$0$loc === void 0
? void 0
: _fieldNodes$0$loc.source,
starts,
(0, _Path.pathToArray)(path),
);
}
const resolveFn =

@@ -495,3 +587,11 @@ (_fieldDef$resolve = fieldDef.resolve) !== null &&

completed = result.then((resolved) =>
completeValue(exeContext, returnType, fieldNodes, info, path, resolved),
completeValue(
exeContext,
returnType,
fieldNodes,
info,
path,
newPropagationPath,
resolved,
),
);

@@ -505,2 +605,3 @@ } else {

path,
newPropagationPath,
result,

@@ -519,3 +620,3 @@ );

);
return handleFieldError(error, returnType, exeContext);
return handleFieldError(error, returnType, exeContext, path);
});

@@ -531,3 +632,3 @@ }

);
return handleFieldError(error, returnType, exeContext);
return handleFieldError(error, returnType, exeContext, path);
}

@@ -556,6 +657,25 @@ }

function handleFieldError(error, returnType, exeContext) {
// If the field type is non-nullable, then it is resolved without any
function handleFieldError(error, returnType, exeContext, path) {
/*
options:
- pass in field nodes, so we can see which are required
- create a new GraphQL output type to represent required and optional fields
? on its own marks a field nullable
All ! are caught by the next ?, no matter the level
! + ! = !
! + ? = 0
! + ! + ? = 0
if propagation path is undefined, that could mean that there are no required fields
or that could mean that there are no optional fields. Path can't represent an empty path
*/
const errorPath = error.path;
const pathString = JSON.stringify(errorPath);
const propagationPath = exeContext.nullPropagationPairs.get(pathString); // If the field type is non-nullable, then it is resolved without any
// protection from errors, however it still properly locates the error.
if ((0, _definition.isNonNullType)(returnType)) {
// Also check if we're in the middle of a null propagation chain.
if (
(0, _definition.isNonNullType)(returnType) ||
(propagationPath !== undefined && propagationPath !== path)
) {
throw error;

@@ -590,3 +710,11 @@ } // Otherwise, error protection is applied, logging the error and resolving

function completeValue(exeContext, returnType, fieldNodes, info, path, result) {
function completeValue(
exeContext,
returnType,
fieldNodes,
info,
path,
currentPropagationPath,
result,
) {
// If result is an Error, throw a located error.

@@ -605,2 +733,3 @@ if (result instanceof Error) {

path,
currentPropagationPath,
result,

@@ -629,2 +758,3 @@ );

path,
currentPropagationPath,
result,

@@ -647,2 +777,3 @@ );

path,
currentPropagationPath,
result,

@@ -659,2 +790,3 @@ );

path,
currentPropagationPath,
result,

@@ -684,2 +816,3 @@ );

path,
currentPropagationPath,
result,

@@ -712,2 +845,3 @@ ) {

itemPath,
currentPropagationPath,
resolved,

@@ -723,2 +857,3 @@ ),

itemPath,
currentPropagationPath,
item,

@@ -738,3 +873,3 @@ );

);
return handleFieldError(error, itemType, exeContext);
return handleFieldError(error, itemType, exeContext, path);
});

@@ -750,3 +885,3 @@ }

);
return handleFieldError(error, itemType, exeContext);
return handleFieldError(error, itemType, exeContext, path);
}

@@ -787,2 +922,3 @@ });

path,
currentPropagationPath,
result,

@@ -815,2 +951,3 @@ ) {

path,
currentPropagationPath,
result,

@@ -834,2 +971,3 @@ ),

path,
currentPropagationPath,
result,

@@ -904,2 +1042,3 @@ );

path,
currentPropagationPath,
result,

@@ -926,2 +1065,3 @@ ) {

path,
currentPropagationPath,
subFieldNodes,

@@ -937,3 +1077,10 @@ );

return executeFields(exeContext, returnType, result, path, subFieldNodes);
return executeFields(
exeContext,
returnType,
result,
path,
currentPropagationPath,
subFieldNodes,
);
}

@@ -940,0 +1087,0 @@

@@ -217,2 +217,3 @@ /**

DirectiveLocationEnum,
ASTReducer,
ASTVisitor,

@@ -234,2 +235,6 @@ ASTVisitFn,

ArgumentNode,
NullabilityDesignatorNode,
RequiredDesignatorNode,
OptionalDesignatorNode,
ListNullabilityNode,
ConstArgumentNode,

@@ -341,2 +346,3 @@ FragmentSpreadNode,

NoSchemaIntrospectionCustomRule,
RequiredStatusOnFieldMatchesDefinitionRule,
} from './validation/index';

@@ -387,2 +393,3 @@ export type { ValidationRule } from './validation/index';

findDangerousChanges,
modifiedOutputType,
} from './utilities/index';

@@ -389,0 +396,0 @@ export type {

@@ -306,2 +306,8 @@ 'use strict';

});
Object.defineProperty(exports, 'RequiredStatusOnFieldMatchesDefinitionRule', {
enumerable: true,
get: function () {
return _index4.RequiredStatusOnFieldMatchesDefinitionRule;
},
});
Object.defineProperty(exports, 'ScalarLeafsRule', {

@@ -1069,2 +1075,8 @@ enumerable: true,

});
Object.defineProperty(exports, 'modifiedOutputType', {
enumerable: true,
get: function () {
return _index6.modifiedOutputType;
},
});
Object.defineProperty(exports, 'parse', {

@@ -1071,0 +1083,0 @@ enumerable: true,

@@ -137,3 +137,6 @@ import type { Kind } from './kinds';

| EnumTypeExtensionNode
| InputObjectTypeExtensionNode;
| InputObjectTypeExtensionNode
| RequiredDesignatorNode
| OptionalDesignatorNode
| ListNullabilityNode;
/**

@@ -216,5 +219,24 @@ * Utility type listing all nodes indexed by their kind.

readonly arguments?: ReadonlyArray<ArgumentNode>;
readonly required?: ListNullabilityNode | NullabilityDesignatorNode;
readonly directives?: ReadonlyArray<DirectiveNode>;
readonly selectionSet?: SelectionSetNode;
}
export interface RequiredDesignatorNode {
readonly kind: Kind.REQUIRED_DESIGNATOR;
readonly loc?: Location;
readonly element?: ListNullabilityNode;
}
export interface OptionalDesignatorNode {
readonly kind: Kind.OPTIONAL_DESIGNATOR;
readonly loc?: Location;
readonly element?: ListNullabilityNode;
}
export interface ListNullabilityNode {
readonly kind: Kind.LIST_NULLABILITY;
readonly loc?: Location;
readonly element?: NullabilityDesignatorNode | ListNullabilityNode;
}
export declare type NullabilityDesignatorNode =
| RequiredDesignatorNode
| OptionalDesignatorNode;
export interface ArgumentNode {

@@ -221,0 +243,0 @@ readonly kind: Kind.ARGUMENT;

@@ -142,3 +142,16 @@ 'use strict';

SelectionSet: ['selections'],
Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],
Field: [
'alias',
'name',
'arguments',
'directives',
'selectionSet', // Note: Client Controlled Nullability is experimental and may be changed
// or removed in the future.
'required',
],
// Note: Client Controlled Nullability is experimental and may be changed
// or removed in the future.
ListNullability: ['element'],
RequiredDesignator: ['element'],
OptionalDesignator: ['element'],
Argument: ['name', 'value'],

@@ -145,0 +158,0 @@ FragmentSpread: ['name', 'directives'],

@@ -20,3 +20,8 @@ export { Source } from './source';

} from './visitor';
export type { ASTVisitor, ASTVisitFn, ASTVisitorKeyMap } from './visitor';
export type {
ASTVisitor,
ASTVisitFn,
ASTVisitorKeyMap,
ASTReducer,
} from './visitor';
export { Location, Token, OperationTypeNode } from './ast';

@@ -36,2 +41,6 @@ export type {

FieldNode,
NullabilityDesignatorNode,
RequiredDesignatorNode,
OptionalDesignatorNode,
ListNullabilityNode,
ArgumentNode,

@@ -38,0 +47,0 @@ ConstArgumentNode,

@@ -18,2 +18,5 @@ /**

FRAGMENT_DEFINITION = 'FragmentDefinition',
LIST_NULLABILITY = 'ListNullability',
REQUIRED_DESIGNATOR = 'RequiredDesignator',
OPTIONAL_DESIGNATOR = 'OptionalDesignator',
/** Values */

@@ -20,0 +23,0 @@ VARIABLE = 'Variable',

@@ -31,2 +31,5 @@ 'use strict';

Kind['FRAGMENT_DEFINITION'] = 'FragmentDefinition';
Kind['LIST_NULLABILITY'] = 'ListNullability';
Kind['REQUIRED_DESIGNATOR'] = 'RequiredDesignator';
Kind['OPTIONAL_DESIGNATOR'] = 'OptionalDesignator';
Kind['VARIABLE'] = 'Variable';

@@ -33,0 +36,0 @@ Kind['INT'] = 'IntValue';

@@ -106,2 +106,3 @@ 'use strict';

kind === _tokenKind.TokenKind.BANG ||
kind === _tokenKind.TokenKind.QUESTION_MARK ||
kind === _tokenKind.TokenKind.DOLLAR ||

@@ -399,2 +400,11 @@ kind === _tokenKind.TokenKind.AMP ||

);
case 0x003f:
// ?
return createToken(
lexer,
_tokenKind.TokenKind.QUESTION_MARK,
position,
position + 1,
);
// StringValue

@@ -401,0 +411,0 @@

@@ -28,5 +28,7 @@ import type { Maybe } from '../jsutils/Maybe';

InterfaceTypeExtensionNode,
ListNullabilityNode,
ListValueNode,
NamedTypeNode,
NameNode,
NullabilityDesignatorNode,
ObjectFieldNode,

@@ -38,2 +40,4 @@ ObjectTypeDefinitionNode,

OperationTypeDefinitionNode,
OptionalDesignatorNode,
RequiredDesignatorNode,
ScalarTypeDefinitionNode,

@@ -85,2 +89,24 @@ ScalarTypeExtensionNode,

allowLegacyFragmentVariables?: boolean;
/**
* EXPERIMENTAL:
*
* If enabled, the parser will understand and parse Client Controlled Nullability
* Designators contained in Fields. They'll be represented in the
* `required` field of the FieldNode.
*
* The syntax looks like the following:
*
* ```graphql
* {
* nullableField!
* nonNullableField?
* nonNullableSelectionSet? {
* childField!
* }
* }
* ```
* Note: this feature is experimental and may change or be removed in the
* future.
*/
experimentalClientControlledNullability?: boolean;
}

@@ -220,2 +246,22 @@ /**

/**
* Nullability :
* - !
* - ?
*
*/
parseRequiredStatus():
| NullabilityDesignatorNode
| ListNullabilityNode
| undefined;
parseListNullability(): ListNullabilityNode | undefined;
parseNullabilityDesignatorNode(
childElement?: ListNullabilityNode,
): NullabilityDesignatorNode | undefined;
parseRequiredDesignatorNode(
childElement?: ListNullabilityNode,
): RequiredDesignatorNode | undefined;
parseOptionalDesignatorNode(
childElement?: ListNullabilityNode,
): OptionalDesignatorNode | undefined;
/**
* Arguments[Const] : ( Argument[?Const]+ )

@@ -222,0 +268,0 @@ */

@@ -345,2 +345,4 @@ 'use strict';

parseField() {
var _this$_options;
const start = this._lexer.token;

@@ -358,2 +360,13 @@ const nameOrAlias = this.parseName();

const args = this.parseArguments(false);
const required =
(_this$_options = this._options) !== null &&
_this$_options !== void 0 &&
_this$_options.experimentalClientControlledNullability
? this.parseRequiredStatus()
: undefined;
const directives = this.parseDirectives(false);
const selectionSet = this.peek(_tokenKind.TokenKind.BRACE_L)
? this.parseSelectionSet()
: undefined;
return this.node(start, {

@@ -363,10 +376,71 @@ kind: _kinds.Kind.FIELD,

name,
arguments: this.parseArguments(false),
directives: this.parseDirectives(false),
selectionSet: this.peek(_tokenKind.TokenKind.BRACE_L)
? this.parseSelectionSet()
: undefined,
arguments: args,
// Experimental support for Client Controlled Nullability changes
// the grammar of Field:
// - Field : Alias? Name Arguments? Nullability? Directives? SelectionSet?
required,
directives,
selectionSet,
});
}
/**
* Nullability :
* - !
* - ?
*
*/
parseRequiredStatus() {
const list = this.parseListNullability();
const nullabilityStatus = this.parseNullabilityDesignatorNode(list);
return nullabilityStatus !== null && nullabilityStatus !== void 0
? nullabilityStatus
: list;
}
parseListNullability() {
const start = this._lexer.token;
if (this.expectOptionalToken(_tokenKind.TokenKind.BRACKET_L)) {
const child = this.parseRequiredStatus();
this.expectToken(_tokenKind.TokenKind.BRACKET_R);
return this.node(start, {
kind: _kinds.Kind.LIST_NULLABILITY,
element: child,
});
}
}
parseNullabilityDesignatorNode(childElement) {
var _this$parseRequiredDe;
return (_this$parseRequiredDe =
this.parseRequiredDesignatorNode(childElement)) !== null &&
_this$parseRequiredDe !== void 0
? _this$parseRequiredDe
: this.parseOptionalDesignatorNode(childElement);
}
parseRequiredDesignatorNode(childElement) {
const start = this._lexer.token;
if (this.expectOptionalToken(_tokenKind.TokenKind.BANG)) {
return this.node(start, {
kind: _kinds.Kind.REQUIRED_DESIGNATOR,
element: childElement,
});
}
}
parseOptionalDesignatorNode(childElement) {
const start = this._lexer.token;
if (this.expectOptionalToken(_tokenKind.TokenKind.QUESTION_MARK)) {
return this.node(start, {
kind: _kinds.Kind.OPTIONAL_DESIGNATOR,
element: childElement,
});
}
}
/**
* Arguments[Const] : ( Argument[?Const]+ )

@@ -438,3 +512,3 @@ */

parseFragmentDefinition() {
var _this$_options;
var _this$_options2;

@@ -447,5 +521,5 @@ const start = this._lexer.token;

if (
((_this$_options = this._options) === null || _this$_options === void 0
((_this$_options2 = this._options) === null || _this$_options2 === void 0
? void 0
: _this$_options.allowLegacyFragmentVariables) === true
: _this$_options2.allowLegacyFragmentVariables) === true
) {

@@ -1381,8 +1455,8 @@ return this.node(start, {

node(startToken, node) {
var _this$_options2;
var _this$_options3;
if (
((_this$_options2 = this._options) === null || _this$_options2 === void 0
((_this$_options3 = this._options) === null || _this$_options3 === void 0
? void 0
: _this$_options2.noLocation) !== true
: _this$_options3.noLocation) !== true
) {

@@ -1389,0 +1463,0 @@ node.loc = new _ast.Location(

@@ -62,4 +62,11 @@ 'use strict';

Field: {
leave({ alias, name, arguments: args, directives, selectionSet }) {
const prefix = wrap('', alias, ': ') + name;
leave({
alias,
name,
arguments: args,
directives,
selectionSet,
required,
}) {
const prefix = join([wrap('', alias, ': '), name], '');
let argsLine = prefix + wrap('(', join(args, ', '), ')');

@@ -69,7 +76,26 @@

argsLine = prefix + wrap('(\n', indent(join(args, '\n')), '\n)');
}
} // Note: Client Controlled Nullability is experimental and may be changed
// or removed in the future.
return join([argsLine, join(directives, ' '), selectionSet], ' ');
const requiredArgsLine = join([argsLine, required], '');
return join([requiredArgsLine, join(directives, ' '), selectionSet], ' ');
},
},
RequiredDesignator: {
leave({ element }) {
return (element !== null && element !== void 0 ? element : '') + '!';
},
},
OptionalDesignator: {
leave({ element }) {
return (element !== null && element !== void 0 ? element : '') + '?';
},
},
ListNullability: {
leave({ element }) {
return (
'[' + (element !== null && element !== void 0 ? element : '') + ']'
);
},
},
Argument: {

@@ -76,0 +102,0 @@ leave: ({ name, value }) => name + ': ' + value,

@@ -9,2 +9,3 @@ /**

BANG = '!',
QUESTION_MARK = '?',
DOLLAR = '$',

@@ -11,0 +12,0 @@ AMP = '&',

@@ -25,2 +25,3 @@ 'use strict';

TokenKind['BANG'] = '!';
TokenKind['QUESTION_MARK'] = '?';
TokenKind['DOLLAR'] = '$';

@@ -27,0 +28,0 @@ TokenKind['AMP'] = '&';

6

package.json
{
"name": "graphql",
"version": "16.3.0-canary.pr.3506.be685b29062b443b0962af292fb5c9337331db70",
"version": "16.3.0-canary.pr.3510.5099f4491dc2a35a3e4a0270a55e2a228c15f13b",
"description": "A Query Language and Runtime which can target any service.",

@@ -37,5 +37,5 @@ "license": "MIT",

"publishConfig": {
"tag": "canary-pr-3506"
"tag": "canary-pr-3510"
},
"deprecated": "You are using canary version build from https://api.github.com/repos/graphql/graphql-js/pulls/3506, no gurantees provided so please use your own discretion."
"deprecated": "You are using canary version build from https://api.github.com/repos/graphql/graphql-js/pulls/3510, no gurantees provided so please use your own discretion."
}

@@ -62,1 +62,2 @@ export { getIntrospectionQuery } from './getIntrospectionQuery';

export type { TypedQueryDocumentNode } from './typedQueryDocumentNode';
export { applyRequiredStatus as modifiedOutputType } from './applyRequiredStatus';

@@ -138,2 +138,8 @@ 'use strict';

});
Object.defineProperty(exports, 'modifiedOutputType', {
enumerable: true,
get: function () {
return _applyRequiredStatus.applyRequiredStatus;
},
});
Object.defineProperty(exports, 'printIntrospectionSchema', {

@@ -235,1 +241,3 @@ enumerable: true,

var _findBreakingChanges = require('./findBreakingChanges.js');
var _applyRequiredStatus = require('./applyRequiredStatus.js');

@@ -31,2 +31,3 @@ export { validate } from './validate';

export { VariablesInAllowedPositionRule } from './rules/VariablesInAllowedPositionRule';
export { RequiredStatusOnFieldMatchesDefinitionRule } from './rules/RequiredStatusOnFieldMatchesDefinitionRule';
export { LoneSchemaDefinitionRule } from './rules/LoneSchemaDefinitionRule';

@@ -33,0 +34,0 @@ export { UniqueOperationTypesRule } from './rules/UniqueOperationTypesRule';

@@ -120,2 +120,8 @@ 'use strict';

});
Object.defineProperty(exports, 'RequiredStatusOnFieldMatchesDefinitionRule', {
enumerable: true,
get: function () {
return _RequiredStatusOnFieldMatchesDefinitionRule.RequiredStatusOnFieldMatchesDefinitionRule;
},
});
Object.defineProperty(exports, 'ScalarLeafsRule', {

@@ -300,2 +306,4 @@ enumerable: true,

var _RequiredStatusOnFieldMatchesDefinitionRule = require('./rules/RequiredStatusOnFieldMatchesDefinitionRule.js');
var _LoneSchemaDefinitionRule = require('./rules/LoneSchemaDefinitionRule.js');

@@ -302,0 +310,0 @@

@@ -18,2 +18,4 @@ 'use strict';

var _applyRequiredStatus = require('../../utilities/applyRequiredStatus.js');
var _sortValueNode = require('../../utilities/sortValueNode.js');

@@ -557,13 +559,24 @@

if (type1 && type2 && doTypesConflict(type1, type2)) {
return [
[
responseName,
`they return conflicting types "${(0, _inspect.inspect)(
type1,
)}" and "${(0, _inspect.inspect)(type2)}"`,
],
[node1],
[node2],
];
if (type1 && type2) {
const modifiedType1 = (0, _applyRequiredStatus.applyRequiredStatus)(
type1,
node1.required,
);
const modifiedType2 = (0, _applyRequiredStatus.applyRequiredStatus)(
type2,
node2.required,
);
if (doTypesConflict(modifiedType1, modifiedType2)) {
return [
[
responseName,
`they return conflicting types "${(0, _inspect.inspect)(
modifiedType1,
)}" and "${(0, _inspect.inspect)(modifiedType2)}"`,
],
[node1],
[node2],
];
}
} // Collect and compare sub-fields. Use the same "visited fragment names" list

@@ -570,0 +583,0 @@ // for both collections so fields in a fragment reference are never

@@ -42,2 +42,4 @@ 'use strict';

var _RequiredStatusOnFieldMatchesDefinitionRule = require('./rules/RequiredStatusOnFieldMatchesDefinitionRule.js');
var _ScalarLeafsRule = require('./rules/ScalarLeafsRule.js');

@@ -136,2 +138,3 @@

_VariablesInAllowedPositionRule.VariablesInAllowedPositionRule,
_RequiredStatusOnFieldMatchesDefinitionRule.RequiredStatusOnFieldMatchesDefinitionRule,
_OverlappingFieldsCanBeMergedRule.OverlappingFieldsCanBeMergedRule,

@@ -138,0 +141,0 @@ _UniqueInputFieldNamesRule.UniqueInputFieldNamesRule,

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc