@0no-co/graphql.web 1.0.11 → 1.0.12

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.
@@ -588,7 +588,7 @@ var c = {
588
588
  if (e.directives && e.directives.length) {
589
589
  r += " " + mapJoin(e.directives, " ", c.Directive);
590
590
  }
591
- if (e.selectionSet) {
591
+ if (e.selectionSet && e.selectionSet.selections.length) {
592
592
  r += " " + c.SelectionSet(e.selectionSet);
593
593
  }
594
594
  return r;
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.web.js","sources":["../src/error.ts","../src/parser.ts","../src/visitor.ts","../src/printer.ts","../src/values.ts","../src/kind.js","../src/helpers.ts"],"sourcesContent":["import type { Maybe, Extensions, Source } from './types';\nimport type { ASTNode } from './ast';\n\nexport class GraphQLError extends Error {\n readonly locations: ReadonlyArray<any> | undefined;\n readonly path: ReadonlyArray<string | number> | undefined;\n readonly nodes: ReadonlyArray<any> | undefined;\n readonly source: Source | undefined;\n readonly positions: ReadonlyArray<number> | undefined;\n readonly originalError: Error | undefined;\n readonly extensions: Extensions;\n\n constructor(\n message: string,\n nodes?: ReadonlyArray<ASTNode> | ASTNode | null,\n source?: Maybe<Source>,\n positions?: Maybe<ReadonlyArray<number>>,\n path?: Maybe<ReadonlyArray<string | number>>,\n originalError?: Maybe<Error>,\n extensions?: Maybe<Extensions>\n ) {\n super(message);\n\n this.name = 'GraphQLError';\n this.message = message;\n\n if (path) this.path = path;\n if (nodes) this.nodes = (Array.isArray(nodes) ? nodes : [nodes]) as ASTNode[];\n if (source) this.source = source;\n if (positions) this.positions = positions;\n if (originalError) this.originalError = originalError;\n\n let _extensions = extensions;\n if (!_extensions && originalError) {\n const originalExtensions = (originalError as any).extensions;\n if (originalExtensions && typeof originalExtensions === 'object') {\n _extensions = originalExtensions;\n }\n }\n\n this.extensions = _extensions || {};\n }\n\n toJSON(): any {\n return { ...this, message: this.message };\n }\n\n toString(): string {\n return this.message;\n }\n\n get [Symbol.toStringTag](): string {\n return 'GraphQLError';\n }\n}\n","/**\n * This is a spec-compliant implementation of a GraphQL query language parser,\n * up-to-date with the October 2021 Edition. Unlike the reference implementation\n * in graphql.js it will only parse the query language, but not the schema\n * language.\n */\nimport type { Kind, OperationTypeNode } from './kind';\nimport { GraphQLError } from './error';\nimport type { Location, Source } from './types';\nimport type * as ast from './ast';\n\nlet input: string;\nlet idx: number;\n\nfunction error(kind: string) {\n return new GraphQLError(`Syntax Error: Unexpected token at ${idx} in ${kind}`);\n}\n\nfunction advance(pattern: RegExp) {\n pattern.lastIndex = idx;\n if (pattern.test(input)) {\n const match = input.slice(idx, (idx = pattern.lastIndex));\n return match;\n }\n}\n\nconst leadingRe = / +(?=[^\\s])/y;\nfunction blockString(string: string) {\n const lines = string.split('\\n');\n let out = '';\n let commonIndent = 0;\n let firstNonEmptyLine = 0;\n let lastNonEmptyLine = lines.length - 1;\n for (let i = 0; i < lines.length; i++) {\n leadingRe.lastIndex = 0;\n if (leadingRe.test(lines[i])) {\n if (i && (!commonIndent || leadingRe.lastIndex < commonIndent))\n commonIndent = leadingRe.lastIndex;\n firstNonEmptyLine = firstNonEmptyLine || i;\n lastNonEmptyLine = i;\n }\n }\n for (let i = firstNonEmptyLine; i <= lastNonEmptyLine; i++) {\n if (i !== firstNonEmptyLine) out += '\\n';\n out += lines[i].slice(commonIndent).replace(/\\\\\"\"\"/g, '\"\"\"');\n }\n return out;\n}\n\n// Note: This is equivalent to: /(?:[\\s,]*|#[^\\n\\r]*)*/y\nfunction ignored() {\n for (\n let char = input.charCodeAt(idx++) | 0;\n char === 9 /*'\\t'*/ ||\n char === 10 /*'\\n'*/ ||\n char === 13 /*'\\r'*/ ||\n char === 32 /*' '*/ ||\n char === 35 /*'#'*/ ||\n char === 44 /*','*/ ||\n char === 65279 /*'\\ufeff'*/;\n char = input.charCodeAt(idx++) | 0\n ) {\n if (char === 35 /*'#'*/) while ((char = input.charCodeAt(idx++)) !== 10 && char !== 13);\n }\n idx--;\n}\n\nconst nameRe = /[_A-Za-z]\\w*/y;\n\n// NOTE: This should be compressed by our build step\n// This merges all possible value parsing into one regular expression\nconst valueRe = new RegExp(\n '(?:' +\n // `null`, `true`, and `false` literals (BooleanValue & NullValue)\n '(null|true|false)|' +\n // Variables starting with `$` then having a name (VariableNode)\n '\\\\$(' +\n nameRe.source +\n ')|' +\n // Numbers, starting with int then optionally following with a float part (IntValue and FloatValue)\n '(-?\\\\d+)((?:\\\\.\\\\d+)?[eE][+-]?\\\\d+|\\\\.\\\\d+)?|' +\n // Block strings starting with `\"\"\"` until the next unescaped `\"\"\"` (StringValue)\n '(\"\"\"(?:\"\"\"|(?:[\\\\s\\\\S]*?[^\\\\\\\\])\"\"\"))|' +\n // Strings starting with `\"` must be on one line (StringValue)\n '(\"(?:\"|[^\\\\r\\\\n]*?[^\\\\\\\\]\"))|' + // string\n // Enums are simply names except for our literals (EnumValue)\n '(' +\n nameRe.source +\n '))',\n 'y'\n);\n\n// NOTE: Each of the groups above end up in the RegExpExecArray at the specified indices (starting with 1)\nconst enum ValueGroup {\n Const = 1,\n Var,\n Int,\n Float,\n BlockString,\n String,\n Enum,\n}\n\ntype ValueExec = RegExpExecArray & {\n [Prop in ValueGroup]: string | undefined;\n};\n\nconst complexStringRe = /\\\\/;\n\nfunction value(constant: true): ast.ConstValueNode;\nfunction value(constant: boolean): ast.ValueNode;\n\nfunction value(constant: boolean): ast.ValueNode {\n let match: string | undefined;\n let exec: ValueExec | null;\n valueRe.lastIndex = idx;\n if (input.charCodeAt(idx) === 91 /*'['*/) {\n // Lists are checked ahead of time with `[` chars\n idx++;\n ignored();\n const values: ast.ValueNode[] = [];\n while (input.charCodeAt(idx) !== 93 /*']'*/) values.push(value(constant));\n idx++;\n ignored();\n return {\n kind: 'ListValue' as Kind.LIST,\n values,\n };\n } else if (input.charCodeAt(idx) === 123 /*'{'*/) {\n // Objects are checked ahead of time with `{` chars\n idx++;\n ignored();\n const fields: ast.ObjectFieldNode[] = [];\n while (input.charCodeAt(idx) !== 125 /*'}'*/) {\n if ((match = advance(nameRe)) == null) throw error('ObjectField');\n ignored();\n if (input.charCodeAt(idx++) !== 58 /*':'*/) throw error('ObjectField');\n ignored();\n fields.push({\n kind: 'ObjectField' as Kind.OBJECT_FIELD,\n name: { kind: 'Name' as Kind.NAME, value: match },\n value: value(constant),\n });\n }\n idx++;\n ignored();\n return {\n kind: 'ObjectValue' as Kind.OBJECT,\n fields,\n };\n } else if ((exec = valueRe.exec(input) as ValueExec) != null) {\n // Starting from here, the merged `valueRe` is used\n idx = valueRe.lastIndex;\n ignored();\n if ((match = exec[ValueGroup.Const]) != null) {\n return match === 'null'\n ? { kind: 'NullValue' as Kind.NULL }\n : {\n kind: 'BooleanValue' as Kind.BOOLEAN,\n value: match === 'true',\n };\n } else if ((match = exec[ValueGroup.Var]) != null) {\n if (constant) {\n throw error('Variable');\n } else {\n return {\n kind: 'Variable' as Kind.VARIABLE,\n name: {\n kind: 'Name' as Kind.NAME,\n value: match,\n },\n };\n }\n } else if ((match = exec[ValueGroup.Int]) != null) {\n let floatPart: string | undefined;\n if ((floatPart = exec[ValueGroup.Float]) != null) {\n return {\n kind: 'FloatValue' as Kind.FLOAT,\n value: match + floatPart,\n };\n } else {\n return {\n kind: 'IntValue' as Kind.INT,\n value: match,\n };\n }\n } else if ((match = exec[ValueGroup.BlockString]) != null) {\n return {\n kind: 'StringValue' as Kind.STRING,\n value: blockString(match.slice(3, -3)),\n block: true,\n };\n } else if ((match = exec[ValueGroup.String]) != null) {\n return {\n kind: 'StringValue' as Kind.STRING,\n // When strings don't contain escape codes, a simple slice will be enough, otherwise\n // `JSON.parse` matches GraphQL's string parsing perfectly\n value: complexStringRe.test(match) ? (JSON.parse(match) as string) : match.slice(1, -1),\n block: false,\n };\n } else if ((match = exec[ValueGroup.Enum]) != null) {\n return {\n kind: 'EnumValue' as Kind.ENUM,\n value: match,\n };\n }\n }\n\n throw error('Value');\n}\n\nfunction arguments_(constant: boolean): ast.ArgumentNode[] | undefined {\n if (input.charCodeAt(idx) === 40 /*'('*/) {\n const args: ast.ArgumentNode[] = [];\n idx++;\n ignored();\n let _name: string | undefined;\n do {\n if ((_name = advance(nameRe)) == null) throw error('Argument');\n ignored();\n if (input.charCodeAt(idx++) !== 58 /*':'*/) throw error('Argument');\n ignored();\n args.push({\n kind: 'Argument' as Kind.ARGUMENT,\n name: { kind: 'Name' as Kind.NAME, value: _name },\n value: value(constant),\n });\n } while (input.charCodeAt(idx) !== 41 /*')'*/);\n idx++;\n ignored();\n return args;\n }\n}\n\nfunction directives(constant: true): ast.ConstDirectiveNode[] | undefined;\nfunction directives(constant: boolean): ast.DirectiveNode[] | undefined;\n\nfunction directives(constant: boolean): ast.DirectiveNode[] | undefined {\n if (input.charCodeAt(idx) === 64 /*'@'*/) {\n const directives: ast.DirectiveNode[] = [];\n let _name: string | undefined;\n do {\n idx++;\n if ((_name = advance(nameRe)) == null) throw error('Directive');\n ignored();\n directives.push({\n kind: 'Directive' as Kind.DIRECTIVE,\n name: { kind: 'Name' as Kind.NAME, value: _name },\n arguments: arguments_(constant),\n });\n } while (input.charCodeAt(idx) === 64 /*'@'*/);\n return directives;\n }\n}\n\nfunction type(): ast.TypeNode {\n let match: string | undefined;\n let lists = 0;\n while (input.charCodeAt(idx) === 91 /*'['*/) {\n lists++;\n idx++;\n ignored();\n }\n if ((match = advance(nameRe)) == null) throw error('NamedType');\n ignored();\n let type: ast.TypeNode = {\n kind: 'NamedType' as Kind.NAMED_TYPE,\n name: { kind: 'Name' as Kind.NAME, value: match },\n };\n do {\n if (input.charCodeAt(idx) === 33 /*'!'*/) {\n idx++;\n ignored();\n type = {\n kind: 'NonNullType' as Kind.NON_NULL_TYPE,\n type: type as ast.NamedTypeNode | ast.ListTypeNode,\n } satisfies ast.NonNullTypeNode;\n }\n if (lists) {\n if (input.charCodeAt(idx++) !== 93 /*']'*/) throw error('NamedType');\n ignored();\n type = {\n kind: 'ListType' as Kind.LIST_TYPE,\n type: type as ast.NamedTypeNode | ast.ListTypeNode,\n } satisfies ast.ListTypeNode;\n }\n } while (lists--);\n return type;\n}\n\n// NOTE: This should be compressed by our build step\n// This merges the two possible selection parsing branches into one regular expression\nconst selectionRe = new RegExp(\n '(?:' +\n // fragment spreads (FragmentSpread or InlineFragment nodes)\n '(\\\\.{3})|' +\n // field aliases or names (FieldNode)\n '(' +\n nameRe.source +\n '))',\n 'y'\n);\n\n// NOTE: Each of the groups above end up in the RegExpExecArray at the indices 1&2\nconst enum SelectionGroup {\n Spread = 1,\n Name,\n}\n\ntype SelectionExec = RegExpExecArray & {\n [Prop in SelectionGroup]: string | undefined;\n};\n\nfunction selectionSet(): ast.SelectionSetNode {\n const selections: ast.SelectionNode[] = [];\n let match: string | undefined;\n let exec: SelectionExec | null;\n do {\n selectionRe.lastIndex = idx;\n if ((exec = selectionRe.exec(input) as SelectionExec) != null) {\n idx = selectionRe.lastIndex;\n if (exec[SelectionGroup.Spread] != null) {\n ignored();\n let match = advance(nameRe);\n if (match != null && match !== 'on') {\n // A simple `...Name` spread with optional directives\n ignored();\n selections.push({\n kind: 'FragmentSpread' as Kind.FRAGMENT_SPREAD,\n name: { kind: 'Name' as Kind.NAME, value: match },\n directives: directives(false),\n });\n } else {\n ignored();\n if (match === 'on') {\n // An inline `... on Name` spread; if this doesn't match, the type condition has been omitted\n if ((match = advance(nameRe)) == null) throw error('NamedType');\n ignored();\n }\n const _directives = directives(false);\n if (input.charCodeAt(idx++) !== 123 /*'{'*/) throw error('InlineFragment');\n ignored();\n selections.push({\n kind: 'InlineFragment' as Kind.INLINE_FRAGMENT,\n typeCondition: match\n ? {\n kind: 'NamedType' as Kind.NAMED_TYPE,\n name: { kind: 'Name' as Kind.NAME, value: match },\n }\n : undefined,\n directives: _directives,\n selectionSet: selectionSet(),\n });\n }\n } else if ((match = exec[SelectionGroup.Name]) != null) {\n let _alias: string | undefined;\n ignored();\n // Parse the optional alias, by reassigning and then getting the name\n if (input.charCodeAt(idx) === 58 /*':'*/) {\n idx++;\n ignored();\n _alias = match;\n if ((match = advance(nameRe)) == null) throw error('Field');\n ignored();\n }\n const _arguments = arguments_(false);\n ignored();\n const _directives = directives(false);\n let _selectionSet: ast.SelectionSetNode | undefined;\n if (input.charCodeAt(idx) === 123 /*'{'*/) {\n idx++;\n ignored();\n _selectionSet = selectionSet();\n }\n selections.push({\n kind: 'Field' as Kind.FIELD,\n alias: _alias ? { kind: 'Name' as Kind.NAME, value: _alias } : undefined,\n name: { kind: 'Name' as Kind.NAME, value: match },\n arguments: _arguments,\n directives: _directives,\n selectionSet: _selectionSet,\n });\n }\n } else {\n throw error('SelectionSet');\n }\n } while (input.charCodeAt(idx) !== 125 /*'}'*/);\n idx++;\n ignored();\n return {\n kind: 'SelectionSet' as Kind.SELECTION_SET,\n selections,\n };\n}\n\nfunction variableDefinitions(): ast.VariableDefinitionNode[] | undefined {\n ignored();\n if (input.charCodeAt(idx) === 40 /*'('*/) {\n const vars: ast.VariableDefinitionNode[] = [];\n idx++;\n ignored();\n let _name: string | undefined;\n do {\n if (input.charCodeAt(idx++) !== 36 /*'$'*/) throw error('Variable');\n if ((_name = advance(nameRe)) == null) throw error('Variable');\n ignored();\n if (input.charCodeAt(idx++) !== 58 /*':'*/) throw error('VariableDefinition');\n ignored();\n const _type = type();\n let _defaultValue: ast.ConstValueNode | undefined;\n if (input.charCodeAt(idx) === 61 /*'='*/) {\n idx++;\n ignored();\n _defaultValue = value(true);\n }\n ignored();\n vars.push({\n kind: 'VariableDefinition' as Kind.VARIABLE_DEFINITION,\n variable: {\n kind: 'Variable' as Kind.VARIABLE,\n name: { kind: 'Name' as Kind.NAME, value: _name },\n },\n type: _type,\n defaultValue: _defaultValue,\n directives: directives(true),\n });\n } while (input.charCodeAt(idx) !== 41 /*')'*/);\n idx++;\n ignored();\n return vars;\n }\n}\n\nfunction fragmentDefinition(): ast.FragmentDefinitionNode {\n let _name: string | undefined;\n let _condition: string | undefined;\n if ((_name = advance(nameRe)) == null) throw error('FragmentDefinition');\n ignored();\n if (advance(nameRe) !== 'on') throw error('FragmentDefinition');\n ignored();\n if ((_condition = advance(nameRe)) == null) throw error('FragmentDefinition');\n ignored();\n const _directives = directives(false);\n if (input.charCodeAt(idx++) !== 123 /*'{'*/) throw error('FragmentDefinition');\n ignored();\n return {\n kind: 'FragmentDefinition' as Kind.FRAGMENT_DEFINITION,\n name: { kind: 'Name' as Kind.NAME, value: _name },\n typeCondition: {\n kind: 'NamedType' as Kind.NAMED_TYPE,\n name: { kind: 'Name' as Kind.NAME, value: _condition },\n },\n directives: _directives,\n selectionSet: selectionSet(),\n };\n}\n\nconst definitionRe = /(?:query|mutation|subscription|fragment)/y;\n\nfunction operationDefinition(\n operation: OperationTypeNode | undefined\n): ast.OperationDefinitionNode | undefined {\n let _name: string | undefined;\n let _variableDefinitions: ast.VariableDefinitionNode[] | undefined;\n let _directives: ast.DirectiveNode[] | undefined;\n if (operation) {\n ignored();\n _name = advance(nameRe);\n _variableDefinitions = variableDefinitions();\n _directives = directives(false);\n }\n if (input.charCodeAt(idx) === 123 /*'{'*/) {\n idx++;\n ignored();\n return {\n kind: 'OperationDefinition' as Kind.OPERATION_DEFINITION,\n operation: operation || ('query' as OperationTypeNode.QUERY),\n name: _name ? { kind: 'Name' as Kind.NAME, value: _name } : undefined,\n variableDefinitions: _variableDefinitions,\n directives: _directives,\n selectionSet: selectionSet(),\n };\n }\n}\n\nfunction document(input: string, noLoc: boolean): ast.DocumentNode {\n let match: string | undefined;\n let definition: ast.OperationDefinitionNode | undefined;\n ignored();\n const definitions: ast.ExecutableDefinitionNode[] = [];\n do {\n if ((match = advance(definitionRe)) === 'fragment') {\n ignored();\n definitions.push(fragmentDefinition());\n } else if ((definition = operationDefinition(match as OperationTypeNode)) != null) {\n definitions.push(definition);\n } else {\n throw error('Document');\n }\n } while (idx < input.length);\n\n if (!noLoc) {\n let loc: Location | undefined;\n return {\n kind: 'Document' as Kind.DOCUMENT,\n definitions,\n /* v8 ignore start */\n set loc(_loc: Location) {\n loc = _loc;\n },\n /* v8 ignore stop */\n // @ts-ignore\n get loc() {\n if (!loc) {\n loc = {\n start: 0,\n end: input.length,\n startToken: undefined,\n endToken: undefined,\n source: {\n body: input,\n name: 'graphql.web',\n locationOffset: { line: 1, column: 1 },\n },\n };\n }\n return loc;\n },\n };\n }\n\n return {\n kind: 'Document' as Kind.DOCUMENT,\n definitions,\n };\n}\n\ntype ParseOptions = {\n [option: string]: any;\n};\n\nexport function parse(\n string: string | Source,\n options?: ParseOptions | undefined\n): ast.DocumentNode {\n input = typeof string.body === 'string' ? string.body : string;\n idx = 0;\n return document(input, options && options.noLocation);\n}\n\nexport function parseValue(\n string: string | Source,\n _options?: ParseOptions | undefined\n): ast.ValueNode {\n input = typeof string.body === 'string' ? string.body : string;\n idx = 0;\n ignored();\n return value(false);\n}\n\nexport function parseType(\n string: string | Source,\n _options?: ParseOptions | undefined\n): ast.TypeNode {\n input = typeof string.body === 'string' ? string.body : string;\n idx = 0;\n return type();\n}\n","import type { ASTNode } from './ast';\n\nexport const BREAK = {};\n\nexport function visit<N extends ASTNode>(root: N, visitor: ASTVisitor): N;\nexport function visit<R>(root: ASTNode, visitor: ASTReducer<R>): R;\n\nexport function visit(node: ASTNode, visitor: ASTVisitor | ASTReducer<any>) {\n const ancestors: Array<ASTNode | ReadonlyArray<ASTNode>> = [];\n const path: Array<string | number> = [];\n\n function traverse(\n node: ASTNode,\n key?: string | number | undefined,\n parent?: ASTNode | ReadonlyArray<ASTNode> | undefined\n ) {\n let hasEdited = false;\n\n const enter =\n (visitor[node.kind] && visitor[node.kind].enter) ||\n visitor[node.kind] ||\n (visitor as EnterLeaveVisitor<ASTNode>).enter;\n const resultEnter = enter && enter.call(visitor, node, key, parent, path, ancestors);\n if (resultEnter === false) {\n return node;\n } else if (resultEnter === null) {\n return null;\n } else if (resultEnter === BREAK) {\n throw BREAK;\n } else if (resultEnter && typeof resultEnter.kind === 'string') {\n hasEdited = resultEnter !== node;\n node = resultEnter;\n }\n\n if (parent) ancestors.push(parent);\n\n let result: any;\n const copy = { ...node };\n for (const nodeKey in node) {\n path.push(nodeKey);\n let value = node[nodeKey];\n if (Array.isArray(value)) {\n const newValue: any[] = [];\n for (let index = 0; index < value.length; index++) {\n if (value[index] != null && typeof value[index].kind === 'string') {\n ancestors.push(node);\n path.push(index);\n result = traverse(value[index], index, value);\n path.pop();\n ancestors.pop();\n if (result == null) {\n hasEdited = true;\n } else {\n hasEdited = hasEdited || result !== value[index];\n newValue.push(result);\n }\n }\n }\n value = newValue;\n } else if (value != null && typeof value.kind === 'string') {\n result = traverse(value, nodeKey, node);\n if (result !== undefined) {\n hasEdited = hasEdited || value !== result;\n value = result;\n }\n }\n\n path.pop();\n if (hasEdited) copy[nodeKey] = value;\n }\n\n if (parent) ancestors.pop();\n const leave =\n (visitor[node.kind] && visitor[node.kind].leave) ||\n (visitor as EnterLeaveVisitor<ASTNode>).leave;\n const resultLeave = leave && leave.call(visitor, node, key, parent, path, ancestors);\n if (resultLeave === BREAK) {\n throw BREAK;\n } else if (resultLeave !== undefined) {\n return resultLeave;\n } else if (resultEnter !== undefined) {\n return hasEdited ? copy : resultEnter;\n } else {\n return hasEdited ? copy : node;\n }\n }\n\n try {\n const result = traverse(node);\n return result !== undefined && result !== false ? result : node;\n } catch (error) {\n if (error !== BREAK) throw error;\n return node;\n }\n}\n\nexport type ASTVisitor = EnterLeaveVisitor<ASTNode> | KindVisitor;\n\ntype KindVisitor = {\n readonly [NodeT in ASTNode as NodeT['kind']]?: ASTVisitFn<NodeT> | EnterLeaveVisitor<NodeT>;\n};\n\ninterface EnterLeaveVisitor<TVisitedNode extends ASTNode> {\n readonly enter?: ASTVisitFn<TVisitedNode> | undefined;\n readonly leave?: ASTVisitFn<TVisitedNode> | undefined;\n}\n\nexport type ASTVisitFn<Node extends ASTNode> = (\n node: Node,\n key: string | number | undefined,\n parent: ASTNode | ReadonlyArray<ASTNode> | undefined,\n path: ReadonlyArray<string | number>,\n ancestors: ReadonlyArray<ASTNode | ReadonlyArray<ASTNode>>\n) => any;\n\nexport type ASTReducer<R> = {\n readonly [NodeT in ASTNode as NodeT['kind']]?: {\n readonly enter?: ASTVisitFn<NodeT>;\n readonly leave: ASTReducerFn<NodeT, R>;\n };\n};\n\ntype ASTReducerFn<TReducedNode extends ASTNode, R> = (\n node: { [K in keyof TReducedNode]: ReducedField<TReducedNode[K], R> },\n key: string | number | undefined,\n parent: ASTNode | ReadonlyArray<ASTNode> | undefined,\n path: ReadonlyArray<string | number>,\n ancestors: ReadonlyArray<ASTNode | ReadonlyArray<ASTNode>>\n) => R;\n\ntype ReducedField<T, R> = T extends null | undefined\n ? T\n : T extends ReadonlyArray<any>\n ? ReadonlyArray<R>\n : R;\n","import type {\n ASTNode,\n NameNode,\n DocumentNode,\n VariableNode,\n SelectionSetNode,\n FieldNode,\n ArgumentNode,\n FragmentSpreadNode,\n InlineFragmentNode,\n VariableDefinitionNode,\n OperationDefinitionNode,\n FragmentDefinitionNode,\n IntValueNode,\n FloatValueNode,\n StringValueNode,\n BooleanValueNode,\n NullValueNode,\n EnumValueNode,\n ListValueNode,\n ObjectValueNode,\n ObjectFieldNode,\n DirectiveNode,\n NamedTypeNode,\n ListTypeNode,\n NonNullTypeNode,\n} from './ast';\n\nfunction mapJoin<T>(value: readonly T[], joiner: string, mapper: (value: T) => string): string {\n let out = '';\n for (let index = 0; index < value.length; index++) {\n if (index) out += joiner;\n out += mapper(value[index]);\n }\n return out;\n}\n\nfunction printString(string: string): string {\n return JSON.stringify(string);\n}\n\nfunction printBlockString(string: string): string {\n return '\"\"\"\\n' + string.replace(/\"\"\"/g, '\\\\\"\"\"') + '\\n\"\"\"';\n}\n\nconst MAX_LINE_LENGTH = 80;\n\nlet LF = '\\n';\n\nconst nodes = {\n OperationDefinition(node: OperationDefinitionNode): string {\n let out: string = node.operation;\n if (node.name) out += ' ' + node.name.value;\n if (node.variableDefinitions && node.variableDefinitions.length) {\n if (!node.name) out += ' ';\n out += '(' + mapJoin(node.variableDefinitions, ', ', nodes.VariableDefinition) + ')';\n }\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n return out !== 'query'\n ? out + ' ' + nodes.SelectionSet(node.selectionSet)\n : nodes.SelectionSet(node.selectionSet);\n },\n VariableDefinition(node: VariableDefinitionNode): string {\n let out = nodes.Variable!(node.variable) + ': ' + _print(node.type);\n if (node.defaultValue) out += ' = ' + _print(node.defaultValue);\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n return out;\n },\n Field(node: FieldNode): string {\n let out = node.alias ? node.alias.value + ': ' + node.name.value : node.name.value;\n if (node.arguments && node.arguments.length) {\n const args = mapJoin(node.arguments, ', ', nodes.Argument);\n if (out.length + args.length + 2 > MAX_LINE_LENGTH) {\n out +=\n '(' +\n (LF += ' ') +\n mapJoin(node.arguments, LF, nodes.Argument) +\n (LF = LF.slice(0, -2)) +\n ')';\n } else {\n out += '(' + args + ')';\n }\n }\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n if (node.selectionSet) out += ' ' + nodes.SelectionSet(node.selectionSet);\n return out;\n },\n StringValue(node: StringValueNode): string {\n if (node.block) {\n return printBlockString(node.value).replace(/\\n/g, LF);\n } else {\n return printString(node.value);\n }\n },\n BooleanValue(node: BooleanValueNode): string {\n return '' + node.value;\n },\n NullValue(_node: NullValueNode): string {\n return 'null';\n },\n IntValue(node: IntValueNode): string {\n return node.value;\n },\n FloatValue(node: FloatValueNode): string {\n return node.value;\n },\n EnumValue(node: EnumValueNode): string {\n return node.value;\n },\n Name(node: NameNode): string {\n return node.value;\n },\n Variable(node: VariableNode): string {\n return '$' + node.name.value;\n },\n ListValue(node: ListValueNode): string {\n return '[' + mapJoin(node.values, ', ', _print) + ']';\n },\n ObjectValue(node: ObjectValueNode): string {\n return '{' + mapJoin(node.fields, ', ', nodes.ObjectField) + '}';\n },\n ObjectField(node: ObjectFieldNode): string {\n return node.name.value + ': ' + _print(node.value);\n },\n Document(node: DocumentNode): string {\n if (!node.definitions || !node.definitions.length) return '';\n return mapJoin(node.definitions, '\\n\\n', _print);\n },\n SelectionSet(node: SelectionSetNode): string {\n return '{' + (LF += ' ') + mapJoin(node.selections, LF, _print) + (LF = LF.slice(0, -2)) + '}';\n },\n Argument(node: ArgumentNode): string {\n return node.name.value + ': ' + _print(node.value);\n },\n FragmentSpread(node: FragmentSpreadNode): string {\n let out = '...' + node.name.value;\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n return out;\n },\n InlineFragment(node: InlineFragmentNode): string {\n let out = '...';\n if (node.typeCondition) out += ' on ' + node.typeCondition.name.value;\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n out += ' ' + nodes.SelectionSet(node.selectionSet);\n return out;\n },\n FragmentDefinition(node: FragmentDefinitionNode): string {\n let out = 'fragment ' + node.name.value;\n out += ' on ' + node.typeCondition.name.value;\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n return out + ' ' + nodes.SelectionSet(node.selectionSet);\n },\n Directive(node: DirectiveNode): string {\n let out = '@' + node.name.value;\n if (node.arguments && node.arguments.length)\n out += '(' + mapJoin(node.arguments, ', ', nodes.Argument) + ')';\n return out;\n },\n NamedType(node: NamedTypeNode): string {\n return node.name.value;\n },\n ListType(node: ListTypeNode): string {\n return '[' + _print(node.type) + ']';\n },\n NonNullType(node: NonNullTypeNode): string {\n return _print(node.type) + '!';\n },\n} as const;\n\nconst _print = (node: ASTNode): string => nodes[node.kind](node);\n\nfunction print(node: ASTNode): string {\n LF = '\\n';\n return nodes[node.kind] ? nodes[node.kind](node) : '';\n}\n\nexport { print, printString, printBlockString };\n","import type { TypeNode, ValueNode } from './ast';\nimport type { Maybe } from './types';\n\nexport function valueFromASTUntyped(\n node: ValueNode,\n variables?: Maybe<Record<string, any>>\n): unknown {\n switch (node.kind) {\n case 'NullValue':\n return null;\n case 'IntValue':\n return parseInt(node.value, 10);\n case 'FloatValue':\n return parseFloat(node.value);\n case 'StringValue':\n case 'EnumValue':\n case 'BooleanValue':\n return node.value;\n case 'ListValue': {\n const values: unknown[] = [];\n for (let i = 0, l = node.values.length; i < l; i++)\n values.push(valueFromASTUntyped(node.values[i], variables));\n return values;\n }\n case 'ObjectValue': {\n const obj = Object.create(null);\n for (let i = 0, l = node.fields.length; i < l; i++) {\n const field = node.fields[i];\n obj[field.name.value] = valueFromASTUntyped(field.value, variables);\n }\n return obj;\n }\n case 'Variable':\n return variables && variables[node.name.value];\n }\n}\n\nexport function valueFromTypeNode(\n node: ValueNode,\n type: TypeNode,\n variables?: Maybe<Record<string, any>>\n): unknown {\n if (node.kind === 'Variable') {\n const variableName = node.name.value;\n return variables ? valueFromTypeNode(variables[variableName], type, variables) : undefined;\n } else if (type.kind === 'NonNullType') {\n return node.kind !== 'NullValue' ? valueFromTypeNode(node, type, variables) : undefined;\n } else if (node.kind === 'NullValue') {\n return null;\n } else if (type.kind === 'ListType') {\n if (node.kind === 'ListValue') {\n const values: unknown[] = [];\n for (let i = 0, l = node.values.length; i < l; i++) {\n const value = node.values[i];\n const coerced = valueFromTypeNode(value, type.type, variables);\n if (coerced === undefined) {\n return undefined;\n } else {\n values.push(coerced);\n }\n }\n return values;\n }\n } else if (type.kind === 'NamedType') {\n switch (type.name.value) {\n case 'Int':\n case 'Float':\n case 'String':\n case 'Bool':\n return type.name.value + 'Value' === node.kind\n ? valueFromASTUntyped(node, variables)\n : undefined;\n default:\n return valueFromASTUntyped(node, variables);\n }\n }\n}\n","export const Kind = {\n NAME: 'Name',\n DOCUMENT: 'Document',\n OPERATION_DEFINITION: 'OperationDefinition',\n VARIABLE_DEFINITION: 'VariableDefinition',\n SELECTION_SET: 'SelectionSet',\n FIELD: 'Field',\n ARGUMENT: 'Argument',\n FRAGMENT_SPREAD: 'FragmentSpread',\n INLINE_FRAGMENT: 'InlineFragment',\n FRAGMENT_DEFINITION: 'FragmentDefinition',\n VARIABLE: 'Variable',\n INT: 'IntValue',\n FLOAT: 'FloatValue',\n STRING: 'StringValue',\n BOOLEAN: 'BooleanValue',\n NULL: 'NullValue',\n ENUM: 'EnumValue',\n LIST: 'ListValue',\n OBJECT: 'ObjectValue',\n OBJECT_FIELD: 'ObjectField',\n DIRECTIVE: 'Directive',\n NAMED_TYPE: 'NamedType',\n LIST_TYPE: 'ListType',\n NON_NULL_TYPE: 'NonNullType',\n\n /*\n SCHEMA_DEFINITION: 'SchemaDefinition',\n OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',\n SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',\n OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',\n FIELD_DEFINITION: 'FieldDefinition',\n INPUT_VALUE_DEFINITION: 'InputValueDefinition',\n INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',\n UNION_TYPE_DEFINITION: 'UnionTypeDefinition',\n ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',\n ENUM_VALUE_DEFINITION: 'EnumValueDefinition',\n INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',\n DIRECTIVE_DEFINITION: 'DirectiveDefinition',\n SCHEMA_EXTENSION: 'SchemaExtension',\n SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',\n OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',\n INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',\n UNION_TYPE_EXTENSION: 'UnionTypeExtension',\n ENUM_TYPE_EXTENSION: 'EnumTypeExtension',\n INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension',\n */\n};\n\nexport const OperationTypeNode = {\n QUERY: 'query',\n MUTATION: 'mutation',\n SUBSCRIPTION: 'subscription',\n};\n","import type { Location, Source as _Source } from './types';\nimport type { ASTNode, SelectionNode } from './ast';\n\nexport function isSelectionNode(node: ASTNode): node is SelectionNode {\n return node.kind === 'Field' || node.kind === 'FragmentSpread' || node.kind === 'InlineFragment';\n}\n\nexport function Source(body: string, name?: string, locationOffset?: Location): _Source {\n return {\n body,\n name,\n locationOffset: locationOffset || { line: 1, column: 1 },\n };\n}\n"],"names":["GraphQLError","Error","constructor","message","nodes","source","positions","path","originalError","extensions","super","this","name","Array","isArray","_extensions","originalExtensions","toJSON","toString","Symbol","toStringTag","input","idx","error","kind","advance","pattern","lastIndex","test","slice","leadingRe","blockString","string","lines","split","out","commonIndent","firstNonEmptyLine","lastNonEmptyLine","length","i","replace","ignored","char","charCodeAt","nameRe","valueRe","RegExp","ValueGroup","complexStringRe","value","constant","match","exec","values","push","fields","Const","Var","Int","floatPart","Float","BlockString","block","String","JSON","parse","Enum","arguments_","args","_name","directives","arguments","type","lists","selectionRe","SelectionGroup","selectionSet","selections","Spread","_directives","typeCondition","undefined","Name","_alias","_arguments","_selectionSet","alias","fragmentDefinition","_condition","definitionRe","operationDefinition","operation","_variableDefinitions","variableDefinitions","vars","_type","_defaultValue","variable","defaultValue","BREAK","mapJoin","joiner","mapper","index","printString","stringify","printBlockString","LF","OperationDefinition","node","VariableDefinition","Directive","SelectionSet","Variable","_print","Field","Argument","StringValue","BooleanValue","NullValue","_node","IntValue","FloatValue","EnumValue","ListValue","ObjectValue","ObjectField","Document","definitions","FragmentSpread","InlineFragment","FragmentDefinition","NamedType","ListType","NonNullType","valueFromASTUntyped","variables","parseInt","parseFloat","l","obj","Object","create","field","NAME","DOCUMENT","OPERATION_DEFINITION","VARIABLE_DEFINITION","SELECTION_SET","FIELD","ARGUMENT","FRAGMENT_SPREAD","INLINE_FRAGMENT","FRAGMENT_DEFINITION","VARIABLE","INT","FLOAT","STRING","BOOLEAN","NULL","ENUM","LIST","OBJECT","OBJECT_FIELD","DIRECTIVE","NAMED_TYPE","LIST_TYPE","NON_NULL_TYPE","QUERY","MUTATION","SUBSCRIPTION","Source","body","locationOffset","line","column","isSelectionNode","options","document","noLoc","definition","loc","_loc","start","end","startToken","endToken","noLocation","parseType","_options","parseValue","print","valueFromTypeNode","coerced","visit","visitor","ancestors","result","traverse","key","parent","hasEdited","enter","resultEnter","call","copy","nodeKey","newValue","pop","leave","resultLeave"],"mappings":"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"}
1
+ {"version":3,"file":"graphql.web.js","sources":["../src/error.ts","../src/parser.ts","../src/visitor.ts","../src/printer.ts","../src/values.ts","../src/kind.js","../src/helpers.ts"],"sourcesContent":["import type { Maybe, Extensions, Source } from './types';\nimport type { ASTNode } from './ast';\n\nexport class GraphQLError extends Error {\n readonly locations: ReadonlyArray<any> | undefined;\n readonly path: ReadonlyArray<string | number> | undefined;\n readonly nodes: ReadonlyArray<any> | undefined;\n readonly source: Source | undefined;\n readonly positions: ReadonlyArray<number> | undefined;\n readonly originalError: Error | undefined;\n readonly extensions: Extensions;\n\n constructor(\n message: string,\n nodes?: ReadonlyArray<ASTNode> | ASTNode | null,\n source?: Maybe<Source>,\n positions?: Maybe<ReadonlyArray<number>>,\n path?: Maybe<ReadonlyArray<string | number>>,\n originalError?: Maybe<Error>,\n extensions?: Maybe<Extensions>\n ) {\n super(message);\n\n this.name = 'GraphQLError';\n this.message = message;\n\n if (path) this.path = path;\n if (nodes) this.nodes = (Array.isArray(nodes) ? nodes : [nodes]) as ASTNode[];\n if (source) this.source = source;\n if (positions) this.positions = positions;\n if (originalError) this.originalError = originalError;\n\n let _extensions = extensions;\n if (!_extensions && originalError) {\n const originalExtensions = (originalError as any).extensions;\n if (originalExtensions && typeof originalExtensions === 'object') {\n _extensions = originalExtensions;\n }\n }\n\n this.extensions = _extensions || {};\n }\n\n toJSON(): any {\n return { ...this, message: this.message };\n }\n\n toString(): string {\n return this.message;\n }\n\n get [Symbol.toStringTag](): string {\n return 'GraphQLError';\n }\n}\n","/**\n * This is a spec-compliant implementation of a GraphQL query language parser,\n * up-to-date with the October 2021 Edition. Unlike the reference implementation\n * in graphql.js it will only parse the query language, but not the schema\n * language.\n */\nimport type { Kind, OperationTypeNode } from './kind';\nimport { GraphQLError } from './error';\nimport type { Location, Source } from './types';\nimport type * as ast from './ast';\n\nlet input: string;\nlet idx: number;\n\nfunction error(kind: string) {\n return new GraphQLError(`Syntax Error: Unexpected token at ${idx} in ${kind}`);\n}\n\nfunction advance(pattern: RegExp) {\n pattern.lastIndex = idx;\n if (pattern.test(input)) {\n const match = input.slice(idx, (idx = pattern.lastIndex));\n return match;\n }\n}\n\nconst leadingRe = / +(?=[^\\s])/y;\nfunction blockString(string: string) {\n const lines = string.split('\\n');\n let out = '';\n let commonIndent = 0;\n let firstNonEmptyLine = 0;\n let lastNonEmptyLine = lines.length - 1;\n for (let i = 0; i < lines.length; i++) {\n leadingRe.lastIndex = 0;\n if (leadingRe.test(lines[i])) {\n if (i && (!commonIndent || leadingRe.lastIndex < commonIndent))\n commonIndent = leadingRe.lastIndex;\n firstNonEmptyLine = firstNonEmptyLine || i;\n lastNonEmptyLine = i;\n }\n }\n for (let i = firstNonEmptyLine; i <= lastNonEmptyLine; i++) {\n if (i !== firstNonEmptyLine) out += '\\n';\n out += lines[i].slice(commonIndent).replace(/\\\\\"\"\"/g, '\"\"\"');\n }\n return out;\n}\n\n// Note: This is equivalent to: /(?:[\\s,]*|#[^\\n\\r]*)*/y\nfunction ignored() {\n for (\n let char = input.charCodeAt(idx++) | 0;\n char === 9 /*'\\t'*/ ||\n char === 10 /*'\\n'*/ ||\n char === 13 /*'\\r'*/ ||\n char === 32 /*' '*/ ||\n char === 35 /*'#'*/ ||\n char === 44 /*','*/ ||\n char === 65279 /*'\\ufeff'*/;\n char = input.charCodeAt(idx++) | 0\n ) {\n if (char === 35 /*'#'*/) while ((char = input.charCodeAt(idx++)) !== 10 && char !== 13);\n }\n idx--;\n}\n\nconst nameRe = /[_A-Za-z]\\w*/y;\n\n// NOTE: This should be compressed by our build step\n// This merges all possible value parsing into one regular expression\nconst valueRe = new RegExp(\n '(?:' +\n // `null`, `true`, and `false` literals (BooleanValue & NullValue)\n '(null|true|false)|' +\n // Variables starting with `$` then having a name (VariableNode)\n '\\\\$(' +\n nameRe.source +\n ')|' +\n // Numbers, starting with int then optionally following with a float part (IntValue and FloatValue)\n '(-?\\\\d+)((?:\\\\.\\\\d+)?[eE][+-]?\\\\d+|\\\\.\\\\d+)?|' +\n // Block strings starting with `\"\"\"` until the next unescaped `\"\"\"` (StringValue)\n '(\"\"\"(?:\"\"\"|(?:[\\\\s\\\\S]*?[^\\\\\\\\])\"\"\"))|' +\n // Strings starting with `\"` must be on one line (StringValue)\n '(\"(?:\"|[^\\\\r\\\\n]*?[^\\\\\\\\]\"))|' + // string\n // Enums are simply names except for our literals (EnumValue)\n '(' +\n nameRe.source +\n '))',\n 'y'\n);\n\n// NOTE: Each of the groups above end up in the RegExpExecArray at the specified indices (starting with 1)\nconst enum ValueGroup {\n Const = 1,\n Var,\n Int,\n Float,\n BlockString,\n String,\n Enum,\n}\n\ntype ValueExec = RegExpExecArray & {\n [Prop in ValueGroup]: string | undefined;\n};\n\nconst complexStringRe = /\\\\/;\n\nfunction value(constant: true): ast.ConstValueNode;\nfunction value(constant: boolean): ast.ValueNode;\n\nfunction value(constant: boolean): ast.ValueNode {\n let match: string | undefined;\n let exec: ValueExec | null;\n valueRe.lastIndex = idx;\n if (input.charCodeAt(idx) === 91 /*'['*/) {\n // Lists are checked ahead of time with `[` chars\n idx++;\n ignored();\n const values: ast.ValueNode[] = [];\n while (input.charCodeAt(idx) !== 93 /*']'*/) values.push(value(constant));\n idx++;\n ignored();\n return {\n kind: 'ListValue' as Kind.LIST,\n values,\n };\n } else if (input.charCodeAt(idx) === 123 /*'{'*/) {\n // Objects are checked ahead of time with `{` chars\n idx++;\n ignored();\n const fields: ast.ObjectFieldNode[] = [];\n while (input.charCodeAt(idx) !== 125 /*'}'*/) {\n if ((match = advance(nameRe)) == null) throw error('ObjectField');\n ignored();\n if (input.charCodeAt(idx++) !== 58 /*':'*/) throw error('ObjectField');\n ignored();\n fields.push({\n kind: 'ObjectField' as Kind.OBJECT_FIELD,\n name: { kind: 'Name' as Kind.NAME, value: match },\n value: value(constant),\n });\n }\n idx++;\n ignored();\n return {\n kind: 'ObjectValue' as Kind.OBJECT,\n fields,\n };\n } else if ((exec = valueRe.exec(input) as ValueExec) != null) {\n // Starting from here, the merged `valueRe` is used\n idx = valueRe.lastIndex;\n ignored();\n if ((match = exec[ValueGroup.Const]) != null) {\n return match === 'null'\n ? { kind: 'NullValue' as Kind.NULL }\n : {\n kind: 'BooleanValue' as Kind.BOOLEAN,\n value: match === 'true',\n };\n } else if ((match = exec[ValueGroup.Var]) != null) {\n if (constant) {\n throw error('Variable');\n } else {\n return {\n kind: 'Variable' as Kind.VARIABLE,\n name: {\n kind: 'Name' as Kind.NAME,\n value: match,\n },\n };\n }\n } else if ((match = exec[ValueGroup.Int]) != null) {\n let floatPart: string | undefined;\n if ((floatPart = exec[ValueGroup.Float]) != null) {\n return {\n kind: 'FloatValue' as Kind.FLOAT,\n value: match + floatPart,\n };\n } else {\n return {\n kind: 'IntValue' as Kind.INT,\n value: match,\n };\n }\n } else if ((match = exec[ValueGroup.BlockString]) != null) {\n return {\n kind: 'StringValue' as Kind.STRING,\n value: blockString(match.slice(3, -3)),\n block: true,\n };\n } else if ((match = exec[ValueGroup.String]) != null) {\n return {\n kind: 'StringValue' as Kind.STRING,\n // When strings don't contain escape codes, a simple slice will be enough, otherwise\n // `JSON.parse` matches GraphQL's string parsing perfectly\n value: complexStringRe.test(match) ? (JSON.parse(match) as string) : match.slice(1, -1),\n block: false,\n };\n } else if ((match = exec[ValueGroup.Enum]) != null) {\n return {\n kind: 'EnumValue' as Kind.ENUM,\n value: match,\n };\n }\n }\n\n throw error('Value');\n}\n\nfunction arguments_(constant: boolean): ast.ArgumentNode[] | undefined {\n if (input.charCodeAt(idx) === 40 /*'('*/) {\n const args: ast.ArgumentNode[] = [];\n idx++;\n ignored();\n let _name: string | undefined;\n do {\n if ((_name = advance(nameRe)) == null) throw error('Argument');\n ignored();\n if (input.charCodeAt(idx++) !== 58 /*':'*/) throw error('Argument');\n ignored();\n args.push({\n kind: 'Argument' as Kind.ARGUMENT,\n name: { kind: 'Name' as Kind.NAME, value: _name },\n value: value(constant),\n });\n } while (input.charCodeAt(idx) !== 41 /*')'*/);\n idx++;\n ignored();\n return args;\n }\n}\n\nfunction directives(constant: true): ast.ConstDirectiveNode[] | undefined;\nfunction directives(constant: boolean): ast.DirectiveNode[] | undefined;\n\nfunction directives(constant: boolean): ast.DirectiveNode[] | undefined {\n if (input.charCodeAt(idx) === 64 /*'@'*/) {\n const directives: ast.DirectiveNode[] = [];\n let _name: string | undefined;\n do {\n idx++;\n if ((_name = advance(nameRe)) == null) throw error('Directive');\n ignored();\n directives.push({\n kind: 'Directive' as Kind.DIRECTIVE,\n name: { kind: 'Name' as Kind.NAME, value: _name },\n arguments: arguments_(constant),\n });\n } while (input.charCodeAt(idx) === 64 /*'@'*/);\n return directives;\n }\n}\n\nfunction type(): ast.TypeNode {\n let match: string | undefined;\n let lists = 0;\n while (input.charCodeAt(idx) === 91 /*'['*/) {\n lists++;\n idx++;\n ignored();\n }\n if ((match = advance(nameRe)) == null) throw error('NamedType');\n ignored();\n let type: ast.TypeNode = {\n kind: 'NamedType' as Kind.NAMED_TYPE,\n name: { kind: 'Name' as Kind.NAME, value: match },\n };\n do {\n if (input.charCodeAt(idx) === 33 /*'!'*/) {\n idx++;\n ignored();\n type = {\n kind: 'NonNullType' as Kind.NON_NULL_TYPE,\n type: type as ast.NamedTypeNode | ast.ListTypeNode,\n } satisfies ast.NonNullTypeNode;\n }\n if (lists) {\n if (input.charCodeAt(idx++) !== 93 /*']'*/) throw error('NamedType');\n ignored();\n type = {\n kind: 'ListType' as Kind.LIST_TYPE,\n type: type as ast.NamedTypeNode | ast.ListTypeNode,\n } satisfies ast.ListTypeNode;\n }\n } while (lists--);\n return type;\n}\n\n// NOTE: This should be compressed by our build step\n// This merges the two possible selection parsing branches into one regular expression\nconst selectionRe = new RegExp(\n '(?:' +\n // fragment spreads (FragmentSpread or InlineFragment nodes)\n '(\\\\.{3})|' +\n // field aliases or names (FieldNode)\n '(' +\n nameRe.source +\n '))',\n 'y'\n);\n\n// NOTE: Each of the groups above end up in the RegExpExecArray at the indices 1&2\nconst enum SelectionGroup {\n Spread = 1,\n Name,\n}\n\ntype SelectionExec = RegExpExecArray & {\n [Prop in SelectionGroup]: string | undefined;\n};\n\nfunction selectionSet(): ast.SelectionSetNode {\n const selections: ast.SelectionNode[] = [];\n let match: string | undefined;\n let exec: SelectionExec | null;\n do {\n selectionRe.lastIndex = idx;\n if ((exec = selectionRe.exec(input) as SelectionExec) != null) {\n idx = selectionRe.lastIndex;\n if (exec[SelectionGroup.Spread] != null) {\n ignored();\n let match = advance(nameRe);\n if (match != null && match !== 'on') {\n // A simple `...Name` spread with optional directives\n ignored();\n selections.push({\n kind: 'FragmentSpread' as Kind.FRAGMENT_SPREAD,\n name: { kind: 'Name' as Kind.NAME, value: match },\n directives: directives(false),\n });\n } else {\n ignored();\n if (match === 'on') {\n // An inline `... on Name` spread; if this doesn't match, the type condition has been omitted\n if ((match = advance(nameRe)) == null) throw error('NamedType');\n ignored();\n }\n const _directives = directives(false);\n if (input.charCodeAt(idx++) !== 123 /*'{'*/) throw error('InlineFragment');\n ignored();\n selections.push({\n kind: 'InlineFragment' as Kind.INLINE_FRAGMENT,\n typeCondition: match\n ? {\n kind: 'NamedType' as Kind.NAMED_TYPE,\n name: { kind: 'Name' as Kind.NAME, value: match },\n }\n : undefined,\n directives: _directives,\n selectionSet: selectionSet(),\n });\n }\n } else if ((match = exec[SelectionGroup.Name]) != null) {\n let _alias: string | undefined;\n ignored();\n // Parse the optional alias, by reassigning and then getting the name\n if (input.charCodeAt(idx) === 58 /*':'*/) {\n idx++;\n ignored();\n _alias = match;\n if ((match = advance(nameRe)) == null) throw error('Field');\n ignored();\n }\n const _arguments = arguments_(false);\n ignored();\n const _directives = directives(false);\n let _selectionSet: ast.SelectionSetNode | undefined;\n if (input.charCodeAt(idx) === 123 /*'{'*/) {\n idx++;\n ignored();\n _selectionSet = selectionSet();\n }\n selections.push({\n kind: 'Field' as Kind.FIELD,\n alias: _alias ? { kind: 'Name' as Kind.NAME, value: _alias } : undefined,\n name: { kind: 'Name' as Kind.NAME, value: match },\n arguments: _arguments,\n directives: _directives,\n selectionSet: _selectionSet,\n });\n }\n } else {\n throw error('SelectionSet');\n }\n } while (input.charCodeAt(idx) !== 125 /*'}'*/);\n idx++;\n ignored();\n return {\n kind: 'SelectionSet' as Kind.SELECTION_SET,\n selections,\n };\n}\n\nfunction variableDefinitions(): ast.VariableDefinitionNode[] | undefined {\n ignored();\n if (input.charCodeAt(idx) === 40 /*'('*/) {\n const vars: ast.VariableDefinitionNode[] = [];\n idx++;\n ignored();\n let _name: string | undefined;\n do {\n if (input.charCodeAt(idx++) !== 36 /*'$'*/) throw error('Variable');\n if ((_name = advance(nameRe)) == null) throw error('Variable');\n ignored();\n if (input.charCodeAt(idx++) !== 58 /*':'*/) throw error('VariableDefinition');\n ignored();\n const _type = type();\n let _defaultValue: ast.ConstValueNode | undefined;\n if (input.charCodeAt(idx) === 61 /*'='*/) {\n idx++;\n ignored();\n _defaultValue = value(true);\n }\n ignored();\n vars.push({\n kind: 'VariableDefinition' as Kind.VARIABLE_DEFINITION,\n variable: {\n kind: 'Variable' as Kind.VARIABLE,\n name: { kind: 'Name' as Kind.NAME, value: _name },\n },\n type: _type,\n defaultValue: _defaultValue,\n directives: directives(true),\n });\n } while (input.charCodeAt(idx) !== 41 /*')'*/);\n idx++;\n ignored();\n return vars;\n }\n}\n\nfunction fragmentDefinition(): ast.FragmentDefinitionNode {\n let _name: string | undefined;\n let _condition: string | undefined;\n if ((_name = advance(nameRe)) == null) throw error('FragmentDefinition');\n ignored();\n if (advance(nameRe) !== 'on') throw error('FragmentDefinition');\n ignored();\n if ((_condition = advance(nameRe)) == null) throw error('FragmentDefinition');\n ignored();\n const _directives = directives(false);\n if (input.charCodeAt(idx++) !== 123 /*'{'*/) throw error('FragmentDefinition');\n ignored();\n return {\n kind: 'FragmentDefinition' as Kind.FRAGMENT_DEFINITION,\n name: { kind: 'Name' as Kind.NAME, value: _name },\n typeCondition: {\n kind: 'NamedType' as Kind.NAMED_TYPE,\n name: { kind: 'Name' as Kind.NAME, value: _condition },\n },\n directives: _directives,\n selectionSet: selectionSet(),\n };\n}\n\nconst definitionRe = /(?:query|mutation|subscription|fragment)/y;\n\nfunction operationDefinition(\n operation: OperationTypeNode | undefined\n): ast.OperationDefinitionNode | undefined {\n let _name: string | undefined;\n let _variableDefinitions: ast.VariableDefinitionNode[] | undefined;\n let _directives: ast.DirectiveNode[] | undefined;\n if (operation) {\n ignored();\n _name = advance(nameRe);\n _variableDefinitions = variableDefinitions();\n _directives = directives(false);\n }\n if (input.charCodeAt(idx) === 123 /*'{'*/) {\n idx++;\n ignored();\n return {\n kind: 'OperationDefinition' as Kind.OPERATION_DEFINITION,\n operation: operation || ('query' as OperationTypeNode.QUERY),\n name: _name ? { kind: 'Name' as Kind.NAME, value: _name } : undefined,\n variableDefinitions: _variableDefinitions,\n directives: _directives,\n selectionSet: selectionSet(),\n };\n }\n}\n\nfunction document(input: string, noLoc: boolean): ast.DocumentNode {\n let match: string | undefined;\n let definition: ast.OperationDefinitionNode | undefined;\n ignored();\n const definitions: ast.ExecutableDefinitionNode[] = [];\n do {\n if ((match = advance(definitionRe)) === 'fragment') {\n ignored();\n definitions.push(fragmentDefinition());\n } else if ((definition = operationDefinition(match as OperationTypeNode)) != null) {\n definitions.push(definition);\n } else {\n throw error('Document');\n }\n } while (idx < input.length);\n\n if (!noLoc) {\n let loc: Location | undefined;\n return {\n kind: 'Document' as Kind.DOCUMENT,\n definitions,\n /* v8 ignore start */\n set loc(_loc: Location) {\n loc = _loc;\n },\n /* v8 ignore stop */\n // @ts-ignore\n get loc() {\n if (!loc) {\n loc = {\n start: 0,\n end: input.length,\n startToken: undefined,\n endToken: undefined,\n source: {\n body: input,\n name: 'graphql.web',\n locationOffset: { line: 1, column: 1 },\n },\n };\n }\n return loc;\n },\n };\n }\n\n return {\n kind: 'Document' as Kind.DOCUMENT,\n definitions,\n };\n}\n\ntype ParseOptions = {\n [option: string]: any;\n};\n\nexport function parse(\n string: string | Source,\n options?: ParseOptions | undefined\n): ast.DocumentNode {\n input = typeof string.body === 'string' ? string.body : string;\n idx = 0;\n return document(input, options && options.noLocation);\n}\n\nexport function parseValue(\n string: string | Source,\n _options?: ParseOptions | undefined\n): ast.ValueNode {\n input = typeof string.body === 'string' ? string.body : string;\n idx = 0;\n ignored();\n return value(false);\n}\n\nexport function parseType(\n string: string | Source,\n _options?: ParseOptions | undefined\n): ast.TypeNode {\n input = typeof string.body === 'string' ? string.body : string;\n idx = 0;\n return type();\n}\n","import type { ASTNode } from './ast';\n\nexport const BREAK = {};\n\nexport function visit<N extends ASTNode>(root: N, visitor: ASTVisitor): N;\nexport function visit<R>(root: ASTNode, visitor: ASTReducer<R>): R;\n\nexport function visit(node: ASTNode, visitor: ASTVisitor | ASTReducer<any>) {\n const ancestors: Array<ASTNode | ReadonlyArray<ASTNode>> = [];\n const path: Array<string | number> = [];\n\n function traverse(\n node: ASTNode,\n key?: string | number | undefined,\n parent?: ASTNode | ReadonlyArray<ASTNode> | undefined\n ) {\n let hasEdited = false;\n\n const enter =\n (visitor[node.kind] && visitor[node.kind].enter) ||\n visitor[node.kind] ||\n (visitor as EnterLeaveVisitor<ASTNode>).enter;\n const resultEnter = enter && enter.call(visitor, node, key, parent, path, ancestors);\n if (resultEnter === false) {\n return node;\n } else if (resultEnter === null) {\n return null;\n } else if (resultEnter === BREAK) {\n throw BREAK;\n } else if (resultEnter && typeof resultEnter.kind === 'string') {\n hasEdited = resultEnter !== node;\n node = resultEnter;\n }\n\n if (parent) ancestors.push(parent);\n\n let result: any;\n const copy = { ...node };\n for (const nodeKey in node) {\n path.push(nodeKey);\n let value = node[nodeKey];\n if (Array.isArray(value)) {\n const newValue: any[] = [];\n for (let index = 0; index < value.length; index++) {\n if (value[index] != null && typeof value[index].kind === 'string') {\n ancestors.push(node);\n path.push(index);\n result = traverse(value[index], index, value);\n path.pop();\n ancestors.pop();\n if (result == null) {\n hasEdited = true;\n } else {\n hasEdited = hasEdited || result !== value[index];\n newValue.push(result);\n }\n }\n }\n value = newValue;\n } else if (value != null && typeof value.kind === 'string') {\n result = traverse(value, nodeKey, node);\n if (result !== undefined) {\n hasEdited = hasEdited || value !== result;\n value = result;\n }\n }\n\n path.pop();\n if (hasEdited) copy[nodeKey] = value;\n }\n\n if (parent) ancestors.pop();\n const leave =\n (visitor[node.kind] && visitor[node.kind].leave) ||\n (visitor as EnterLeaveVisitor<ASTNode>).leave;\n const resultLeave = leave && leave.call(visitor, node, key, parent, path, ancestors);\n if (resultLeave === BREAK) {\n throw BREAK;\n } else if (resultLeave !== undefined) {\n return resultLeave;\n } else if (resultEnter !== undefined) {\n return hasEdited ? copy : resultEnter;\n } else {\n return hasEdited ? copy : node;\n }\n }\n\n try {\n const result = traverse(node);\n return result !== undefined && result !== false ? result : node;\n } catch (error) {\n if (error !== BREAK) throw error;\n return node;\n }\n}\n\nexport type ASTVisitor = EnterLeaveVisitor<ASTNode> | KindVisitor;\n\ntype KindVisitor = {\n readonly [NodeT in ASTNode as NodeT['kind']]?: ASTVisitFn<NodeT> | EnterLeaveVisitor<NodeT>;\n};\n\ninterface EnterLeaveVisitor<TVisitedNode extends ASTNode> {\n readonly enter?: ASTVisitFn<TVisitedNode> | undefined;\n readonly leave?: ASTVisitFn<TVisitedNode> | undefined;\n}\n\nexport type ASTVisitFn<Node extends ASTNode> = (\n node: Node,\n key: string | number | undefined,\n parent: ASTNode | ReadonlyArray<ASTNode> | undefined,\n path: ReadonlyArray<string | number>,\n ancestors: ReadonlyArray<ASTNode | ReadonlyArray<ASTNode>>\n) => any;\n\nexport type ASTReducer<R> = {\n readonly [NodeT in ASTNode as NodeT['kind']]?: {\n readonly enter?: ASTVisitFn<NodeT>;\n readonly leave: ASTReducerFn<NodeT, R>;\n };\n};\n\ntype ASTReducerFn<TReducedNode extends ASTNode, R> = (\n node: { [K in keyof TReducedNode]: ReducedField<TReducedNode[K], R> },\n key: string | number | undefined,\n parent: ASTNode | ReadonlyArray<ASTNode> | undefined,\n path: ReadonlyArray<string | number>,\n ancestors: ReadonlyArray<ASTNode | ReadonlyArray<ASTNode>>\n) => R;\n\ntype ReducedField<T, R> = T extends null | undefined\n ? T\n : T extends ReadonlyArray<any>\n ? ReadonlyArray<R>\n : R;\n","import type {\n ASTNode,\n NameNode,\n DocumentNode,\n VariableNode,\n SelectionSetNode,\n FieldNode,\n ArgumentNode,\n FragmentSpreadNode,\n InlineFragmentNode,\n VariableDefinitionNode,\n OperationDefinitionNode,\n FragmentDefinitionNode,\n IntValueNode,\n FloatValueNode,\n StringValueNode,\n BooleanValueNode,\n NullValueNode,\n EnumValueNode,\n ListValueNode,\n ObjectValueNode,\n ObjectFieldNode,\n DirectiveNode,\n NamedTypeNode,\n ListTypeNode,\n NonNullTypeNode,\n} from './ast';\n\nfunction mapJoin<T>(value: readonly T[], joiner: string, mapper: (value: T) => string): string {\n let out = '';\n for (let index = 0; index < value.length; index++) {\n if (index) out += joiner;\n out += mapper(value[index]);\n }\n return out;\n}\n\nfunction printString(string: string): string {\n return JSON.stringify(string);\n}\n\nfunction printBlockString(string: string): string {\n return '\"\"\"\\n' + string.replace(/\"\"\"/g, '\\\\\"\"\"') + '\\n\"\"\"';\n}\n\nconst MAX_LINE_LENGTH = 80;\n\nlet LF = '\\n';\n\nconst nodes = {\n OperationDefinition(node: OperationDefinitionNode): string {\n let out: string = node.operation;\n if (node.name) out += ' ' + node.name.value;\n if (node.variableDefinitions && node.variableDefinitions.length) {\n if (!node.name) out += ' ';\n out += '(' + mapJoin(node.variableDefinitions, ', ', nodes.VariableDefinition) + ')';\n }\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n return out !== 'query'\n ? out + ' ' + nodes.SelectionSet(node.selectionSet)\n : nodes.SelectionSet(node.selectionSet);\n },\n VariableDefinition(node: VariableDefinitionNode): string {\n let out = nodes.Variable!(node.variable) + ': ' + _print(node.type);\n if (node.defaultValue) out += ' = ' + _print(node.defaultValue);\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n return out;\n },\n Field(node: FieldNode): string {\n let out = node.alias ? node.alias.value + ': ' + node.name.value : node.name.value;\n if (node.arguments && node.arguments.length) {\n const args = mapJoin(node.arguments, ', ', nodes.Argument);\n if (out.length + args.length + 2 > MAX_LINE_LENGTH) {\n out +=\n '(' +\n (LF += ' ') +\n mapJoin(node.arguments, LF, nodes.Argument) +\n (LF = LF.slice(0, -2)) +\n ')';\n } else {\n out += '(' + args + ')';\n }\n }\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n if (node.selectionSet && node.selectionSet.selections.length) {\n out += ' ' + nodes.SelectionSet(node.selectionSet);\n }\n return out;\n },\n StringValue(node: StringValueNode): string {\n if (node.block) {\n return printBlockString(node.value).replace(/\\n/g, LF);\n } else {\n return printString(node.value);\n }\n },\n BooleanValue(node: BooleanValueNode): string {\n return '' + node.value;\n },\n NullValue(_node: NullValueNode): string {\n return 'null';\n },\n IntValue(node: IntValueNode): string {\n return node.value;\n },\n FloatValue(node: FloatValueNode): string {\n return node.value;\n },\n EnumValue(node: EnumValueNode): string {\n return node.value;\n },\n Name(node: NameNode): string {\n return node.value;\n },\n Variable(node: VariableNode): string {\n return '$' + node.name.value;\n },\n ListValue(node: ListValueNode): string {\n return '[' + mapJoin(node.values, ', ', _print) + ']';\n },\n ObjectValue(node: ObjectValueNode): string {\n return '{' + mapJoin(node.fields, ', ', nodes.ObjectField) + '}';\n },\n ObjectField(node: ObjectFieldNode): string {\n return node.name.value + ': ' + _print(node.value);\n },\n Document(node: DocumentNode): string {\n if (!node.definitions || !node.definitions.length) return '';\n return mapJoin(node.definitions, '\\n\\n', _print);\n },\n SelectionSet(node: SelectionSetNode): string {\n return '{' + (LF += ' ') + mapJoin(node.selections, LF, _print) + (LF = LF.slice(0, -2)) + '}';\n },\n Argument(node: ArgumentNode): string {\n return node.name.value + ': ' + _print(node.value);\n },\n FragmentSpread(node: FragmentSpreadNode): string {\n let out = '...' + node.name.value;\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n return out;\n },\n InlineFragment(node: InlineFragmentNode): string {\n let out = '...';\n if (node.typeCondition) out += ' on ' + node.typeCondition.name.value;\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n out += ' ' + nodes.SelectionSet(node.selectionSet);\n return out;\n },\n FragmentDefinition(node: FragmentDefinitionNode): string {\n let out = 'fragment ' + node.name.value;\n out += ' on ' + node.typeCondition.name.value;\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n return out + ' ' + nodes.SelectionSet(node.selectionSet);\n },\n Directive(node: DirectiveNode): string {\n let out = '@' + node.name.value;\n if (node.arguments && node.arguments.length)\n out += '(' + mapJoin(node.arguments, ', ', nodes.Argument) + ')';\n return out;\n },\n NamedType(node: NamedTypeNode): string {\n return node.name.value;\n },\n ListType(node: ListTypeNode): string {\n return '[' + _print(node.type) + ']';\n },\n NonNullType(node: NonNullTypeNode): string {\n return _print(node.type) + '!';\n },\n} as const;\n\nconst _print = (node: ASTNode): string => nodes[node.kind](node);\n\nfunction print(node: ASTNode): string {\n LF = '\\n';\n return nodes[node.kind] ? nodes[node.kind](node) : '';\n}\n\nexport { print, printString, printBlockString };\n","import type { TypeNode, ValueNode } from './ast';\nimport type { Maybe } from './types';\n\nexport function valueFromASTUntyped(\n node: ValueNode,\n variables?: Maybe<Record<string, any>>\n): unknown {\n switch (node.kind) {\n case 'NullValue':\n return null;\n case 'IntValue':\n return parseInt(node.value, 10);\n case 'FloatValue':\n return parseFloat(node.value);\n case 'StringValue':\n case 'EnumValue':\n case 'BooleanValue':\n return node.value;\n case 'ListValue': {\n const values: unknown[] = [];\n for (let i = 0, l = node.values.length; i < l; i++)\n values.push(valueFromASTUntyped(node.values[i], variables));\n return values;\n }\n case 'ObjectValue': {\n const obj = Object.create(null);\n for (let i = 0, l = node.fields.length; i < l; i++) {\n const field = node.fields[i];\n obj[field.name.value] = valueFromASTUntyped(field.value, variables);\n }\n return obj;\n }\n case 'Variable':\n return variables && variables[node.name.value];\n }\n}\n\nexport function valueFromTypeNode(\n node: ValueNode,\n type: TypeNode,\n variables?: Maybe<Record<string, any>>\n): unknown {\n if (node.kind === 'Variable') {\n const variableName = node.name.value;\n return variables ? valueFromTypeNode(variables[variableName], type, variables) : undefined;\n } else if (type.kind === 'NonNullType') {\n return node.kind !== 'NullValue' ? valueFromTypeNode(node, type, variables) : undefined;\n } else if (node.kind === 'NullValue') {\n return null;\n } else if (type.kind === 'ListType') {\n if (node.kind === 'ListValue') {\n const values: unknown[] = [];\n for (let i = 0, l = node.values.length; i < l; i++) {\n const value = node.values[i];\n const coerced = valueFromTypeNode(value, type.type, variables);\n if (coerced === undefined) {\n return undefined;\n } else {\n values.push(coerced);\n }\n }\n return values;\n }\n } else if (type.kind === 'NamedType') {\n switch (type.name.value) {\n case 'Int':\n case 'Float':\n case 'String':\n case 'Bool':\n return type.name.value + 'Value' === node.kind\n ? valueFromASTUntyped(node, variables)\n : undefined;\n default:\n return valueFromASTUntyped(node, variables);\n }\n }\n}\n","export const Kind = {\n NAME: 'Name',\n DOCUMENT: 'Document',\n OPERATION_DEFINITION: 'OperationDefinition',\n VARIABLE_DEFINITION: 'VariableDefinition',\n SELECTION_SET: 'SelectionSet',\n FIELD: 'Field',\n ARGUMENT: 'Argument',\n FRAGMENT_SPREAD: 'FragmentSpread',\n INLINE_FRAGMENT: 'InlineFragment',\n FRAGMENT_DEFINITION: 'FragmentDefinition',\n VARIABLE: 'Variable',\n INT: 'IntValue',\n FLOAT: 'FloatValue',\n STRING: 'StringValue',\n BOOLEAN: 'BooleanValue',\n NULL: 'NullValue',\n ENUM: 'EnumValue',\n LIST: 'ListValue',\n OBJECT: 'ObjectValue',\n OBJECT_FIELD: 'ObjectField',\n DIRECTIVE: 'Directive',\n NAMED_TYPE: 'NamedType',\n LIST_TYPE: 'ListType',\n NON_NULL_TYPE: 'NonNullType',\n\n /*\n SCHEMA_DEFINITION: 'SchemaDefinition',\n OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',\n SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',\n OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',\n FIELD_DEFINITION: 'FieldDefinition',\n INPUT_VALUE_DEFINITION: 'InputValueDefinition',\n INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',\n UNION_TYPE_DEFINITION: 'UnionTypeDefinition',\n ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',\n ENUM_VALUE_DEFINITION: 'EnumValueDefinition',\n INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',\n DIRECTIVE_DEFINITION: 'DirectiveDefinition',\n SCHEMA_EXTENSION: 'SchemaExtension',\n SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',\n OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',\n INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',\n UNION_TYPE_EXTENSION: 'UnionTypeExtension',\n ENUM_TYPE_EXTENSION: 'EnumTypeExtension',\n INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension',\n */\n};\n\nexport const OperationTypeNode = {\n QUERY: 'query',\n MUTATION: 'mutation',\n SUBSCRIPTION: 'subscription',\n};\n","import type { Location, Source as _Source } from './types';\nimport type { ASTNode, SelectionNode } from './ast';\n\nexport function isSelectionNode(node: ASTNode): node is SelectionNode {\n return node.kind === 'Field' || node.kind === 'FragmentSpread' || node.kind === 'InlineFragment';\n}\n\nexport function Source(body: string, name?: string, locationOffset?: Location): _Source {\n return {\n body,\n name,\n locationOffset: locationOffset || { line: 1, column: 1 },\n };\n}\n"],"names":["GraphQLError","Error","constructor","message","nodes","source","positions","path","originalError","extensions","super","this","name","Array","isArray","_extensions","originalExtensions","toJSON","toString","Symbol","toStringTag","input","idx","error","kind","advance","pattern","lastIndex","test","slice","leadingRe","blockString","string","lines","split","out","commonIndent","firstNonEmptyLine","lastNonEmptyLine","length","i","replace","ignored","char","charCodeAt","nameRe","valueRe","RegExp","ValueGroup","complexStringRe","value","constant","match","exec","values","push","fields","Const","Var","Int","floatPart","Float","BlockString","block","String","JSON","parse","Enum","arguments_","args","_name","directives","arguments","type","lists","selectionRe","SelectionGroup","selectionSet","selections","Spread","_directives","typeCondition","undefined","Name","_alias","_arguments","_selectionSet","alias","fragmentDefinition","_condition","definitionRe","operationDefinition","operation","_variableDefinitions","variableDefinitions","vars","_type","_defaultValue","variable","defaultValue","BREAK","mapJoin","joiner","mapper","index","printString","stringify","printBlockString","LF","OperationDefinition","node","VariableDefinition","Directive","SelectionSet","Variable","_print","Field","Argument","StringValue","BooleanValue","NullValue","_node","IntValue","FloatValue","EnumValue","ListValue","ObjectValue","ObjectField","Document","definitions","FragmentSpread","InlineFragment","FragmentDefinition","NamedType","ListType","NonNullType","valueFromASTUntyped","variables","parseInt","parseFloat","l","obj","Object","create","field","NAME","DOCUMENT","OPERATION_DEFINITION","VARIABLE_DEFINITION","SELECTION_SET","FIELD","ARGUMENT","FRAGMENT_SPREAD","INLINE_FRAGMENT","FRAGMENT_DEFINITION","VARIABLE","INT","FLOAT","STRING","BOOLEAN","NULL","ENUM","LIST","OBJECT","OBJECT_FIELD","DIRECTIVE","NAMED_TYPE","LIST_TYPE","NON_NULL_TYPE","QUERY","MUTATION","SUBSCRIPTION","Source","body","locationOffset","line","column","isSelectionNode","options","document","noLoc","definition","loc","_loc","start","end","startToken","endToken","noLocation","parseType","_options","parseValue","print","valueFromTypeNode","coerced","visit","visitor","ancestors","result","traverse","key","parent","hasEdited","enter","resultEnter","call","copy","nodeKey","newValue","pop","leave","resultLeave"],"mappings":"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"}
@@ -162,7 +162,7 @@ function value(e) {
162
162
  } else if (123 === n.charCodeAt(i)) {
163
163
  i++;
164
164
  ignored();
165
- var v = [];
165
+ var s = [];
166
166
  while (125 !== n.charCodeAt(i)) {
167
167
  if (null == (r = advance(a))) {
168
168
  throw error("ObjectField");
@@ -172,7 +172,7 @@ function value(e) {
172
172
  throw error("ObjectField");
173
173
  }
174
174
  ignored();
175
- v.push({
175
+ s.push({
176
176
  kind: "ObjectField",
177
177
  name: {
178
178
  kind: "Name",
@@ -185,7 +185,7 @@ function value(e) {
185
185
  ignored();
186
186
  return {
187
187
  kind: "ObjectValue",
188
- fields: v
188
+ fields: s
189
189
  };
190
190
  } else if (null != (t = l.exec(n))) {
191
191
  i = l.lastIndex;
@@ -210,11 +210,11 @@ function value(e) {
210
210
  };
211
211
  }
212
212
  } else if (null != (r = t[o.Int])) {
213
- var s;
214
- if (null != (s = t[o.Float])) {
213
+ var v;
214
+ if (null != (v = t[o.Float])) {
215
215
  return {
216
216
  kind: "FloatValue",
217
- value: r + s
217
+ value: r + v
218
218
  };
219
219
  } else {
220
220
  return {
@@ -341,11 +341,11 @@ function type() {
341
341
 
342
342
  var d = new RegExp("(?:(\\.{3})|(" + a.source + "))", "y");
343
343
 
344
- var v = function(e) {
344
+ var s = function(e) {
345
345
  e[e.Spread = 1] = "Spread";
346
346
  e[e.Name = 2] = "Name";
347
347
  return e;
348
- }(v || {});
348
+ }(s || {});
349
349
 
350
350
  function selectionSet() {
351
351
  var e = [];
@@ -355,7 +355,7 @@ function selectionSet() {
355
355
  d.lastIndex = i;
356
356
  if (null != (t = d.exec(n))) {
357
357
  i = d.lastIndex;
358
- if (null != t[v.Spread]) {
358
+ if (null != t[s.Spread]) {
359
359
  ignored();
360
360
  var l = advance(a);
361
361
  if (null != l && "on" !== l) {
@@ -394,7 +394,7 @@ function selectionSet() {
394
394
  selectionSet: selectionSet()
395
395
  });
396
396
  }
397
- } else if (null != (r = t[v.Name])) {
397
+ } else if (null != (r = t[s.Name])) {
398
398
  var u = void 0;
399
399
  ignored();
400
400
  if (58 === n.charCodeAt(i)) {
@@ -406,7 +406,7 @@ function selectionSet() {
406
406
  }
407
407
  ignored();
408
408
  }
409
- var s = arguments_(!1);
409
+ var v = arguments_(!1);
410
410
  ignored();
411
411
  var c = directives(!1);
412
412
  var f = void 0;
@@ -425,7 +425,7 @@ function selectionSet() {
425
425
  kind: "Name",
426
426
  value: r
427
427
  },
428
- arguments: s,
428
+ arguments: v,
429
429
  directives: c,
430
430
  selectionSet: f
431
431
  });
@@ -480,7 +480,7 @@ function fragmentDefinition() {
480
480
  };
481
481
  }
482
482
 
483
- var s = /(?:query|mutation|subscription|fragment)/y;
483
+ var v = /(?:query|mutation|subscription|fragment)/y;
484
484
 
485
485
  function operationDefinition(e) {
486
486
  var r;
@@ -562,7 +562,7 @@ function parse(e, r) {
562
562
  ignored();
563
563
  var a = [];
564
564
  do {
565
- if ("fragment" === (n = advance(s))) {
565
+ if ("fragment" === (n = advance(v))) {
566
566
  ignored();
567
567
  a.push(fragmentDefinition());
568
568
  } else if (null != (t = operationDefinition(n))) {
@@ -644,39 +644,39 @@ function visit(e, r) {
644
644
  n.push(a);
645
645
  }
646
646
  var d;
647
- var v = {
647
+ var s = {
648
648
  ...e
649
649
  };
650
- for (var s in e) {
651
- i.push(s);
652
- var f = e[s];
650
+ for (var v in e) {
651
+ i.push(v);
652
+ var f = e[v];
653
653
  if (Array.isArray(f)) {
654
- var m = [];
655
- for (var g = 0; g < f.length; g++) {
656
- if (null != f[g] && "string" == typeof f[g].kind) {
654
+ var g = [];
655
+ for (var m = 0; m < f.length; m++) {
656
+ if (null != f[m] && "string" == typeof f[m].kind) {
657
657
  n.push(e);
658
- i.push(g);
659
- d = traverse(f[g], g, f);
658
+ i.push(m);
659
+ d = traverse(f[m], m, f);
660
660
  i.pop();
661
661
  n.pop();
662
662
  if (null == d) {
663
663
  l = !0;
664
664
  } else {
665
- l = l || d !== f[g];
666
- m.push(d);
665
+ l = l || d !== f[m];
666
+ g.push(d);
667
667
  }
668
668
  }
669
669
  }
670
- f = m;
670
+ f = g;
671
671
  } else if (null != f && "string" == typeof f.kind) {
672
- if (void 0 !== (d = traverse(f, s, e))) {
672
+ if (void 0 !== (d = traverse(f, v, e))) {
673
673
  l = l || f !== d;
674
674
  f = d;
675
675
  }
676
676
  }
677
677
  i.pop();
678
678
  if (l) {
679
- v[s] = f;
679
+ s[v] = f;
680
680
  }
681
681
  }
682
682
  if (a) {
@@ -689,9 +689,9 @@ function visit(e, r) {
689
689
  } else if (void 0 !== h) {
690
690
  return h;
691
691
  } else if (void 0 !== u) {
692
- return l ? v : u;
692
+ return l ? s : u;
693
693
  } else {
694
- return l ? v : e;
694
+ return l ? s : e;
695
695
  }
696
696
  }(e);
697
697
  return void 0 !== t && !1 !== t ? t : e;
@@ -724,7 +724,7 @@ function printBlockString(e) {
724
724
 
725
725
  var f = "\n";
726
726
 
727
- var m = {
727
+ var g = {
728
728
  OperationDefinition(e) {
729
729
  var r = e.operation;
730
730
  if (e.name) {
@@ -734,38 +734,38 @@ var m = {
734
734
  if (!e.name) {
735
735
  r += " ";
736
736
  }
737
- r += "(" + mapJoin(e.variableDefinitions, ", ", m.VariableDefinition) + ")";
737
+ r += "(" + mapJoin(e.variableDefinitions, ", ", g.VariableDefinition) + ")";
738
738
  }
739
739
  if (e.directives && e.directives.length) {
740
- r += " " + mapJoin(e.directives, " ", m.Directive);
740
+ r += " " + mapJoin(e.directives, " ", g.Directive);
741
741
  }
742
- return "query" !== r ? r + " " + m.SelectionSet(e.selectionSet) : m.SelectionSet(e.selectionSet);
742
+ return "query" !== r ? r + " " + g.SelectionSet(e.selectionSet) : g.SelectionSet(e.selectionSet);
743
743
  },
744
744
  VariableDefinition(e) {
745
- var r = m.Variable(e.variable) + ": " + _print(e.type);
745
+ var r = g.Variable(e.variable) + ": " + _print(e.type);
746
746
  if (e.defaultValue) {
747
747
  r += " = " + _print(e.defaultValue);
748
748
  }
749
749
  if (e.directives && e.directives.length) {
750
- r += " " + mapJoin(e.directives, " ", m.Directive);
750
+ r += " " + mapJoin(e.directives, " ", g.Directive);
751
751
  }
752
752
  return r;
753
753
  },
754
754
  Field(e) {
755
755
  var r = e.alias ? e.alias.value + ": " + e.name.value : e.name.value;
756
756
  if (e.arguments && e.arguments.length) {
757
- var n = mapJoin(e.arguments, ", ", m.Argument);
757
+ var n = mapJoin(e.arguments, ", ", g.Argument);
758
758
  if (r.length + n.length + 2 > 80) {
759
- r += "(" + (f += " ") + mapJoin(e.arguments, f, m.Argument) + (f = f.slice(0, -2)) + ")";
759
+ r += "(" + (f += " ") + mapJoin(e.arguments, f, g.Argument) + (f = f.slice(0, -2)) + ")";
760
760
  } else {
761
761
  r += "(" + n + ")";
762
762
  }
763
763
  }
764
764
  if (e.directives && e.directives.length) {
765
- r += " " + mapJoin(e.directives, " ", m.Directive);
765
+ r += " " + mapJoin(e.directives, " ", g.Directive);
766
766
  }
767
- if (e.selectionSet) {
768
- r += " " + m.SelectionSet(e.selectionSet);
767
+ if (e.selectionSet && e.selectionSet.selections.length) {
768
+ r += " " + g.SelectionSet(e.selectionSet);
769
769
  }
770
770
  return r;
771
771
  },
@@ -784,7 +784,7 @@ var m = {
784
784
  Name: e => e.value,
785
785
  Variable: e => "$" + e.name.value,
786
786
  ListValue: e => "[" + mapJoin(e.values, ", ", _print) + "]",
787
- ObjectValue: e => "{" + mapJoin(e.fields, ", ", m.ObjectField) + "}",
787
+ ObjectValue: e => "{" + mapJoin(e.fields, ", ", g.ObjectField) + "}",
788
788
  ObjectField: e => e.name.value + ": " + _print(e.value),
789
789
  Document(e) {
790
790
  if (!e.definitions || !e.definitions.length) {
@@ -797,7 +797,7 @@ var m = {
797
797
  FragmentSpread(e) {
798
798
  var r = "..." + e.name.value;
799
799
  if (e.directives && e.directives.length) {
800
- r += " " + mapJoin(e.directives, " ", m.Directive);
800
+ r += " " + mapJoin(e.directives, " ", g.Directive);
801
801
  }
802
802
  return r;
803
803
  },
@@ -807,22 +807,22 @@ var m = {
807
807
  r += " on " + e.typeCondition.name.value;
808
808
  }
809
809
  if (e.directives && e.directives.length) {
810
- r += " " + mapJoin(e.directives, " ", m.Directive);
810
+ r += " " + mapJoin(e.directives, " ", g.Directive);
811
811
  }
812
- return r += " " + m.SelectionSet(e.selectionSet);
812
+ return r += " " + g.SelectionSet(e.selectionSet);
813
813
  },
814
814
  FragmentDefinition(e) {
815
815
  var r = "fragment " + e.name.value;
816
816
  r += " on " + e.typeCondition.name.value;
817
817
  if (e.directives && e.directives.length) {
818
- r += " " + mapJoin(e.directives, " ", m.Directive);
818
+ r += " " + mapJoin(e.directives, " ", g.Directive);
819
819
  }
820
- return r + " " + m.SelectionSet(e.selectionSet);
820
+ return r + " " + g.SelectionSet(e.selectionSet);
821
821
  },
822
822
  Directive(e) {
823
823
  var r = "@" + e.name.value;
824
824
  if (e.arguments && e.arguments.length) {
825
- r += "(" + mapJoin(e.arguments, ", ", m.Argument) + ")";
825
+ r += "(" + mapJoin(e.arguments, ", ", g.Argument) + ")";
826
826
  }
827
827
  return r;
828
828
  },
@@ -831,11 +831,11 @@ var m = {
831
831
  NonNullType: e => _print(e.type) + "!"
832
832
  };
833
833
 
834
- var _print = e => m[e.kind](e);
834
+ var _print = e => g[e.kind](e);
835
835
 
836
836
  function print(e) {
837
837
  f = "\n";
838
- return m[e.kind] ? m[e.kind](e) : "";
838
+ return g[e.kind] ? g[e.kind](e) : "";
839
839
  }
840
840
 
841
841
  function valueFromASTUntyped(e, r) {
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.web.mjs","sources":["../src/kind.js","../src/error.ts","../src/parser.ts","../src/visitor.ts","../src/printer.ts","../src/values.ts","../src/helpers.ts"],"sourcesContent":["export const Kind = {\n NAME: 'Name',\n DOCUMENT: 'Document',\n OPERATION_DEFINITION: 'OperationDefinition',\n VARIABLE_DEFINITION: 'VariableDefinition',\n SELECTION_SET: 'SelectionSet',\n FIELD: 'Field',\n ARGUMENT: 'Argument',\n FRAGMENT_SPREAD: 'FragmentSpread',\n INLINE_FRAGMENT: 'InlineFragment',\n FRAGMENT_DEFINITION: 'FragmentDefinition',\n VARIABLE: 'Variable',\n INT: 'IntValue',\n FLOAT: 'FloatValue',\n STRING: 'StringValue',\n BOOLEAN: 'BooleanValue',\n NULL: 'NullValue',\n ENUM: 'EnumValue',\n LIST: 'ListValue',\n OBJECT: 'ObjectValue',\n OBJECT_FIELD: 'ObjectField',\n DIRECTIVE: 'Directive',\n NAMED_TYPE: 'NamedType',\n LIST_TYPE: 'ListType',\n NON_NULL_TYPE: 'NonNullType',\n\n /*\n SCHEMA_DEFINITION: 'SchemaDefinition',\n OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',\n SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',\n OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',\n FIELD_DEFINITION: 'FieldDefinition',\n INPUT_VALUE_DEFINITION: 'InputValueDefinition',\n INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',\n UNION_TYPE_DEFINITION: 'UnionTypeDefinition',\n ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',\n ENUM_VALUE_DEFINITION: 'EnumValueDefinition',\n INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',\n DIRECTIVE_DEFINITION: 'DirectiveDefinition',\n SCHEMA_EXTENSION: 'SchemaExtension',\n SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',\n OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',\n INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',\n UNION_TYPE_EXTENSION: 'UnionTypeExtension',\n ENUM_TYPE_EXTENSION: 'EnumTypeExtension',\n INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension',\n */\n};\n\nexport const OperationTypeNode = {\n QUERY: 'query',\n MUTATION: 'mutation',\n SUBSCRIPTION: 'subscription',\n};\n","import type { Maybe, Extensions, Source } from './types';\nimport type { ASTNode } from './ast';\n\nexport class GraphQLError extends Error {\n readonly locations: ReadonlyArray<any> | undefined;\n readonly path: ReadonlyArray<string | number> | undefined;\n readonly nodes: ReadonlyArray<any> | undefined;\n readonly source: Source | undefined;\n readonly positions: ReadonlyArray<number> | undefined;\n readonly originalError: Error | undefined;\n readonly extensions: Extensions;\n\n constructor(\n message: string,\n nodes?: ReadonlyArray<ASTNode> | ASTNode | null,\n source?: Maybe<Source>,\n positions?: Maybe<ReadonlyArray<number>>,\n path?: Maybe<ReadonlyArray<string | number>>,\n originalError?: Maybe<Error>,\n extensions?: Maybe<Extensions>\n ) {\n super(message);\n\n this.name = 'GraphQLError';\n this.message = message;\n\n if (path) this.path = path;\n if (nodes) this.nodes = (Array.isArray(nodes) ? nodes : [nodes]) as ASTNode[];\n if (source) this.source = source;\n if (positions) this.positions = positions;\n if (originalError) this.originalError = originalError;\n\n let _extensions = extensions;\n if (!_extensions && originalError) {\n const originalExtensions = (originalError as any).extensions;\n if (originalExtensions && typeof originalExtensions === 'object') {\n _extensions = originalExtensions;\n }\n }\n\n this.extensions = _extensions || {};\n }\n\n toJSON(): any {\n return { ...this, message: this.message };\n }\n\n toString(): string {\n return this.message;\n }\n\n get [Symbol.toStringTag](): string {\n return 'GraphQLError';\n }\n}\n","/**\n * This is a spec-compliant implementation of a GraphQL query language parser,\n * up-to-date with the October 2021 Edition. Unlike the reference implementation\n * in graphql.js it will only parse the query language, but not the schema\n * language.\n */\nimport type { Kind, OperationTypeNode } from './kind';\nimport { GraphQLError } from './error';\nimport type { Location, Source } from './types';\nimport type * as ast from './ast';\n\nlet input: string;\nlet idx: number;\n\nfunction error(kind: string) {\n return new GraphQLError(`Syntax Error: Unexpected token at ${idx} in ${kind}`);\n}\n\nfunction advance(pattern: RegExp) {\n pattern.lastIndex = idx;\n if (pattern.test(input)) {\n const match = input.slice(idx, (idx = pattern.lastIndex));\n return match;\n }\n}\n\nconst leadingRe = / +(?=[^\\s])/y;\nfunction blockString(string: string) {\n const lines = string.split('\\n');\n let out = '';\n let commonIndent = 0;\n let firstNonEmptyLine = 0;\n let lastNonEmptyLine = lines.length - 1;\n for (let i = 0; i < lines.length; i++) {\n leadingRe.lastIndex = 0;\n if (leadingRe.test(lines[i])) {\n if (i && (!commonIndent || leadingRe.lastIndex < commonIndent))\n commonIndent = leadingRe.lastIndex;\n firstNonEmptyLine = firstNonEmptyLine || i;\n lastNonEmptyLine = i;\n }\n }\n for (let i = firstNonEmptyLine; i <= lastNonEmptyLine; i++) {\n if (i !== firstNonEmptyLine) out += '\\n';\n out += lines[i].slice(commonIndent).replace(/\\\\\"\"\"/g, '\"\"\"');\n }\n return out;\n}\n\n// Note: This is equivalent to: /(?:[\\s,]*|#[^\\n\\r]*)*/y\nfunction ignored() {\n for (\n let char = input.charCodeAt(idx++) | 0;\n char === 9 /*'\\t'*/ ||\n char === 10 /*'\\n'*/ ||\n char === 13 /*'\\r'*/ ||\n char === 32 /*' '*/ ||\n char === 35 /*'#'*/ ||\n char === 44 /*','*/ ||\n char === 65279 /*'\\ufeff'*/;\n char = input.charCodeAt(idx++) | 0\n ) {\n if (char === 35 /*'#'*/) while ((char = input.charCodeAt(idx++)) !== 10 && char !== 13);\n }\n idx--;\n}\n\nconst nameRe = /[_A-Za-z]\\w*/y;\n\n// NOTE: This should be compressed by our build step\n// This merges all possible value parsing into one regular expression\nconst valueRe = new RegExp(\n '(?:' +\n // `null`, `true`, and `false` literals (BooleanValue & NullValue)\n '(null|true|false)|' +\n // Variables starting with `$` then having a name (VariableNode)\n '\\\\$(' +\n nameRe.source +\n ')|' +\n // Numbers, starting with int then optionally following with a float part (IntValue and FloatValue)\n '(-?\\\\d+)((?:\\\\.\\\\d+)?[eE][+-]?\\\\d+|\\\\.\\\\d+)?|' +\n // Block strings starting with `\"\"\"` until the next unescaped `\"\"\"` (StringValue)\n '(\"\"\"(?:\"\"\"|(?:[\\\\s\\\\S]*?[^\\\\\\\\])\"\"\"))|' +\n // Strings starting with `\"` must be on one line (StringValue)\n '(\"(?:\"|[^\\\\r\\\\n]*?[^\\\\\\\\]\"))|' + // string\n // Enums are simply names except for our literals (EnumValue)\n '(' +\n nameRe.source +\n '))',\n 'y'\n);\n\n// NOTE: Each of the groups above end up in the RegExpExecArray at the specified indices (starting with 1)\nconst enum ValueGroup {\n Const = 1,\n Var,\n Int,\n Float,\n BlockString,\n String,\n Enum,\n}\n\ntype ValueExec = RegExpExecArray & {\n [Prop in ValueGroup]: string | undefined;\n};\n\nconst complexStringRe = /\\\\/;\n\nfunction value(constant: true): ast.ConstValueNode;\nfunction value(constant: boolean): ast.ValueNode;\n\nfunction value(constant: boolean): ast.ValueNode {\n let match: string | undefined;\n let exec: ValueExec | null;\n valueRe.lastIndex = idx;\n if (input.charCodeAt(idx) === 91 /*'['*/) {\n // Lists are checked ahead of time with `[` chars\n idx++;\n ignored();\n const values: ast.ValueNode[] = [];\n while (input.charCodeAt(idx) !== 93 /*']'*/) values.push(value(constant));\n idx++;\n ignored();\n return {\n kind: 'ListValue' as Kind.LIST,\n values,\n };\n } else if (input.charCodeAt(idx) === 123 /*'{'*/) {\n // Objects are checked ahead of time with `{` chars\n idx++;\n ignored();\n const fields: ast.ObjectFieldNode[] = [];\n while (input.charCodeAt(idx) !== 125 /*'}'*/) {\n if ((match = advance(nameRe)) == null) throw error('ObjectField');\n ignored();\n if (input.charCodeAt(idx++) !== 58 /*':'*/) throw error('ObjectField');\n ignored();\n fields.push({\n kind: 'ObjectField' as Kind.OBJECT_FIELD,\n name: { kind: 'Name' as Kind.NAME, value: match },\n value: value(constant),\n });\n }\n idx++;\n ignored();\n return {\n kind: 'ObjectValue' as Kind.OBJECT,\n fields,\n };\n } else if ((exec = valueRe.exec(input) as ValueExec) != null) {\n // Starting from here, the merged `valueRe` is used\n idx = valueRe.lastIndex;\n ignored();\n if ((match = exec[ValueGroup.Const]) != null) {\n return match === 'null'\n ? { kind: 'NullValue' as Kind.NULL }\n : {\n kind: 'BooleanValue' as Kind.BOOLEAN,\n value: match === 'true',\n };\n } else if ((match = exec[ValueGroup.Var]) != null) {\n if (constant) {\n throw error('Variable');\n } else {\n return {\n kind: 'Variable' as Kind.VARIABLE,\n name: {\n kind: 'Name' as Kind.NAME,\n value: match,\n },\n };\n }\n } else if ((match = exec[ValueGroup.Int]) != null) {\n let floatPart: string | undefined;\n if ((floatPart = exec[ValueGroup.Float]) != null) {\n return {\n kind: 'FloatValue' as Kind.FLOAT,\n value: match + floatPart,\n };\n } else {\n return {\n kind: 'IntValue' as Kind.INT,\n value: match,\n };\n }\n } else if ((match = exec[ValueGroup.BlockString]) != null) {\n return {\n kind: 'StringValue' as Kind.STRING,\n value: blockString(match.slice(3, -3)),\n block: true,\n };\n } else if ((match = exec[ValueGroup.String]) != null) {\n return {\n kind: 'StringValue' as Kind.STRING,\n // When strings don't contain escape codes, a simple slice will be enough, otherwise\n // `JSON.parse` matches GraphQL's string parsing perfectly\n value: complexStringRe.test(match) ? (JSON.parse(match) as string) : match.slice(1, -1),\n block: false,\n };\n } else if ((match = exec[ValueGroup.Enum]) != null) {\n return {\n kind: 'EnumValue' as Kind.ENUM,\n value: match,\n };\n }\n }\n\n throw error('Value');\n}\n\nfunction arguments_(constant: boolean): ast.ArgumentNode[] | undefined {\n if (input.charCodeAt(idx) === 40 /*'('*/) {\n const args: ast.ArgumentNode[] = [];\n idx++;\n ignored();\n let _name: string | undefined;\n do {\n if ((_name = advance(nameRe)) == null) throw error('Argument');\n ignored();\n if (input.charCodeAt(idx++) !== 58 /*':'*/) throw error('Argument');\n ignored();\n args.push({\n kind: 'Argument' as Kind.ARGUMENT,\n name: { kind: 'Name' as Kind.NAME, value: _name },\n value: value(constant),\n });\n } while (input.charCodeAt(idx) !== 41 /*')'*/);\n idx++;\n ignored();\n return args;\n }\n}\n\nfunction directives(constant: true): ast.ConstDirectiveNode[] | undefined;\nfunction directives(constant: boolean): ast.DirectiveNode[] | undefined;\n\nfunction directives(constant: boolean): ast.DirectiveNode[] | undefined {\n if (input.charCodeAt(idx) === 64 /*'@'*/) {\n const directives: ast.DirectiveNode[] = [];\n let _name: string | undefined;\n do {\n idx++;\n if ((_name = advance(nameRe)) == null) throw error('Directive');\n ignored();\n directives.push({\n kind: 'Directive' as Kind.DIRECTIVE,\n name: { kind: 'Name' as Kind.NAME, value: _name },\n arguments: arguments_(constant),\n });\n } while (input.charCodeAt(idx) === 64 /*'@'*/);\n return directives;\n }\n}\n\nfunction type(): ast.TypeNode {\n let match: string | undefined;\n let lists = 0;\n while (input.charCodeAt(idx) === 91 /*'['*/) {\n lists++;\n idx++;\n ignored();\n }\n if ((match = advance(nameRe)) == null) throw error('NamedType');\n ignored();\n let type: ast.TypeNode = {\n kind: 'NamedType' as Kind.NAMED_TYPE,\n name: { kind: 'Name' as Kind.NAME, value: match },\n };\n do {\n if (input.charCodeAt(idx) === 33 /*'!'*/) {\n idx++;\n ignored();\n type = {\n kind: 'NonNullType' as Kind.NON_NULL_TYPE,\n type: type as ast.NamedTypeNode | ast.ListTypeNode,\n } satisfies ast.NonNullTypeNode;\n }\n if (lists) {\n if (input.charCodeAt(idx++) !== 93 /*']'*/) throw error('NamedType');\n ignored();\n type = {\n kind: 'ListType' as Kind.LIST_TYPE,\n type: type as ast.NamedTypeNode | ast.ListTypeNode,\n } satisfies ast.ListTypeNode;\n }\n } while (lists--);\n return type;\n}\n\n// NOTE: This should be compressed by our build step\n// This merges the two possible selection parsing branches into one regular expression\nconst selectionRe = new RegExp(\n '(?:' +\n // fragment spreads (FragmentSpread or InlineFragment nodes)\n '(\\\\.{3})|' +\n // field aliases or names (FieldNode)\n '(' +\n nameRe.source +\n '))',\n 'y'\n);\n\n// NOTE: Each of the groups above end up in the RegExpExecArray at the indices 1&2\nconst enum SelectionGroup {\n Spread = 1,\n Name,\n}\n\ntype SelectionExec = RegExpExecArray & {\n [Prop in SelectionGroup]: string | undefined;\n};\n\nfunction selectionSet(): ast.SelectionSetNode {\n const selections: ast.SelectionNode[] = [];\n let match: string | undefined;\n let exec: SelectionExec | null;\n do {\n selectionRe.lastIndex = idx;\n if ((exec = selectionRe.exec(input) as SelectionExec) != null) {\n idx = selectionRe.lastIndex;\n if (exec[SelectionGroup.Spread] != null) {\n ignored();\n let match = advance(nameRe);\n if (match != null && match !== 'on') {\n // A simple `...Name` spread with optional directives\n ignored();\n selections.push({\n kind: 'FragmentSpread' as Kind.FRAGMENT_SPREAD,\n name: { kind: 'Name' as Kind.NAME, value: match },\n directives: directives(false),\n });\n } else {\n ignored();\n if (match === 'on') {\n // An inline `... on Name` spread; if this doesn't match, the type condition has been omitted\n if ((match = advance(nameRe)) == null) throw error('NamedType');\n ignored();\n }\n const _directives = directives(false);\n if (input.charCodeAt(idx++) !== 123 /*'{'*/) throw error('InlineFragment');\n ignored();\n selections.push({\n kind: 'InlineFragment' as Kind.INLINE_FRAGMENT,\n typeCondition: match\n ? {\n kind: 'NamedType' as Kind.NAMED_TYPE,\n name: { kind: 'Name' as Kind.NAME, value: match },\n }\n : undefined,\n directives: _directives,\n selectionSet: selectionSet(),\n });\n }\n } else if ((match = exec[SelectionGroup.Name]) != null) {\n let _alias: string | undefined;\n ignored();\n // Parse the optional alias, by reassigning and then getting the name\n if (input.charCodeAt(idx) === 58 /*':'*/) {\n idx++;\n ignored();\n _alias = match;\n if ((match = advance(nameRe)) == null) throw error('Field');\n ignored();\n }\n const _arguments = arguments_(false);\n ignored();\n const _directives = directives(false);\n let _selectionSet: ast.SelectionSetNode | undefined;\n if (input.charCodeAt(idx) === 123 /*'{'*/) {\n idx++;\n ignored();\n _selectionSet = selectionSet();\n }\n selections.push({\n kind: 'Field' as Kind.FIELD,\n alias: _alias ? { kind: 'Name' as Kind.NAME, value: _alias } : undefined,\n name: { kind: 'Name' as Kind.NAME, value: match },\n arguments: _arguments,\n directives: _directives,\n selectionSet: _selectionSet,\n });\n }\n } else {\n throw error('SelectionSet');\n }\n } while (input.charCodeAt(idx) !== 125 /*'}'*/);\n idx++;\n ignored();\n return {\n kind: 'SelectionSet' as Kind.SELECTION_SET,\n selections,\n };\n}\n\nfunction variableDefinitions(): ast.VariableDefinitionNode[] | undefined {\n ignored();\n if (input.charCodeAt(idx) === 40 /*'('*/) {\n const vars: ast.VariableDefinitionNode[] = [];\n idx++;\n ignored();\n let _name: string | undefined;\n do {\n if (input.charCodeAt(idx++) !== 36 /*'$'*/) throw error('Variable');\n if ((_name = advance(nameRe)) == null) throw error('Variable');\n ignored();\n if (input.charCodeAt(idx++) !== 58 /*':'*/) throw error('VariableDefinition');\n ignored();\n const _type = type();\n let _defaultValue: ast.ConstValueNode | undefined;\n if (input.charCodeAt(idx) === 61 /*'='*/) {\n idx++;\n ignored();\n _defaultValue = value(true);\n }\n ignored();\n vars.push({\n kind: 'VariableDefinition' as Kind.VARIABLE_DEFINITION,\n variable: {\n kind: 'Variable' as Kind.VARIABLE,\n name: { kind: 'Name' as Kind.NAME, value: _name },\n },\n type: _type,\n defaultValue: _defaultValue,\n directives: directives(true),\n });\n } while (input.charCodeAt(idx) !== 41 /*')'*/);\n idx++;\n ignored();\n return vars;\n }\n}\n\nfunction fragmentDefinition(): ast.FragmentDefinitionNode {\n let _name: string | undefined;\n let _condition: string | undefined;\n if ((_name = advance(nameRe)) == null) throw error('FragmentDefinition');\n ignored();\n if (advance(nameRe) !== 'on') throw error('FragmentDefinition');\n ignored();\n if ((_condition = advance(nameRe)) == null) throw error('FragmentDefinition');\n ignored();\n const _directives = directives(false);\n if (input.charCodeAt(idx++) !== 123 /*'{'*/) throw error('FragmentDefinition');\n ignored();\n return {\n kind: 'FragmentDefinition' as Kind.FRAGMENT_DEFINITION,\n name: { kind: 'Name' as Kind.NAME, value: _name },\n typeCondition: {\n kind: 'NamedType' as Kind.NAMED_TYPE,\n name: { kind: 'Name' as Kind.NAME, value: _condition },\n },\n directives: _directives,\n selectionSet: selectionSet(),\n };\n}\n\nconst definitionRe = /(?:query|mutation|subscription|fragment)/y;\n\nfunction operationDefinition(\n operation: OperationTypeNode | undefined\n): ast.OperationDefinitionNode | undefined {\n let _name: string | undefined;\n let _variableDefinitions: ast.VariableDefinitionNode[] | undefined;\n let _directives: ast.DirectiveNode[] | undefined;\n if (operation) {\n ignored();\n _name = advance(nameRe);\n _variableDefinitions = variableDefinitions();\n _directives = directives(false);\n }\n if (input.charCodeAt(idx) === 123 /*'{'*/) {\n idx++;\n ignored();\n return {\n kind: 'OperationDefinition' as Kind.OPERATION_DEFINITION,\n operation: operation || ('query' as OperationTypeNode.QUERY),\n name: _name ? { kind: 'Name' as Kind.NAME, value: _name } : undefined,\n variableDefinitions: _variableDefinitions,\n directives: _directives,\n selectionSet: selectionSet(),\n };\n }\n}\n\nfunction document(input: string, noLoc: boolean): ast.DocumentNode {\n let match: string | undefined;\n let definition: ast.OperationDefinitionNode | undefined;\n ignored();\n const definitions: ast.ExecutableDefinitionNode[] = [];\n do {\n if ((match = advance(definitionRe)) === 'fragment') {\n ignored();\n definitions.push(fragmentDefinition());\n } else if ((definition = operationDefinition(match as OperationTypeNode)) != null) {\n definitions.push(definition);\n } else {\n throw error('Document');\n }\n } while (idx < input.length);\n\n if (!noLoc) {\n let loc: Location | undefined;\n return {\n kind: 'Document' as Kind.DOCUMENT,\n definitions,\n /* v8 ignore start */\n set loc(_loc: Location) {\n loc = _loc;\n },\n /* v8 ignore stop */\n // @ts-ignore\n get loc() {\n if (!loc) {\n loc = {\n start: 0,\n end: input.length,\n startToken: undefined,\n endToken: undefined,\n source: {\n body: input,\n name: 'graphql.web',\n locationOffset: { line: 1, column: 1 },\n },\n };\n }\n return loc;\n },\n };\n }\n\n return {\n kind: 'Document' as Kind.DOCUMENT,\n definitions,\n };\n}\n\ntype ParseOptions = {\n [option: string]: any;\n};\n\nexport function parse(\n string: string | Source,\n options?: ParseOptions | undefined\n): ast.DocumentNode {\n input = typeof string.body === 'string' ? string.body : string;\n idx = 0;\n return document(input, options && options.noLocation);\n}\n\nexport function parseValue(\n string: string | Source,\n _options?: ParseOptions | undefined\n): ast.ValueNode {\n input = typeof string.body === 'string' ? string.body : string;\n idx = 0;\n ignored();\n return value(false);\n}\n\nexport function parseType(\n string: string | Source,\n _options?: ParseOptions | undefined\n): ast.TypeNode {\n input = typeof string.body === 'string' ? string.body : string;\n idx = 0;\n return type();\n}\n","import type { ASTNode } from './ast';\n\nexport const BREAK = {};\n\nexport function visit<N extends ASTNode>(root: N, visitor: ASTVisitor): N;\nexport function visit<R>(root: ASTNode, visitor: ASTReducer<R>): R;\n\nexport function visit(node: ASTNode, visitor: ASTVisitor | ASTReducer<any>) {\n const ancestors: Array<ASTNode | ReadonlyArray<ASTNode>> = [];\n const path: Array<string | number> = [];\n\n function traverse(\n node: ASTNode,\n key?: string | number | undefined,\n parent?: ASTNode | ReadonlyArray<ASTNode> | undefined\n ) {\n let hasEdited = false;\n\n const enter =\n (visitor[node.kind] && visitor[node.kind].enter) ||\n visitor[node.kind] ||\n (visitor as EnterLeaveVisitor<ASTNode>).enter;\n const resultEnter = enter && enter.call(visitor, node, key, parent, path, ancestors);\n if (resultEnter === false) {\n return node;\n } else if (resultEnter === null) {\n return null;\n } else if (resultEnter === BREAK) {\n throw BREAK;\n } else if (resultEnter && typeof resultEnter.kind === 'string') {\n hasEdited = resultEnter !== node;\n node = resultEnter;\n }\n\n if (parent) ancestors.push(parent);\n\n let result: any;\n const copy = { ...node };\n for (const nodeKey in node) {\n path.push(nodeKey);\n let value = node[nodeKey];\n if (Array.isArray(value)) {\n const newValue: any[] = [];\n for (let index = 0; index < value.length; index++) {\n if (value[index] != null && typeof value[index].kind === 'string') {\n ancestors.push(node);\n path.push(index);\n result = traverse(value[index], index, value);\n path.pop();\n ancestors.pop();\n if (result == null) {\n hasEdited = true;\n } else {\n hasEdited = hasEdited || result !== value[index];\n newValue.push(result);\n }\n }\n }\n value = newValue;\n } else if (value != null && typeof value.kind === 'string') {\n result = traverse(value, nodeKey, node);\n if (result !== undefined) {\n hasEdited = hasEdited || value !== result;\n value = result;\n }\n }\n\n path.pop();\n if (hasEdited) copy[nodeKey] = value;\n }\n\n if (parent) ancestors.pop();\n const leave =\n (visitor[node.kind] && visitor[node.kind].leave) ||\n (visitor as EnterLeaveVisitor<ASTNode>).leave;\n const resultLeave = leave && leave.call(visitor, node, key, parent, path, ancestors);\n if (resultLeave === BREAK) {\n throw BREAK;\n } else if (resultLeave !== undefined) {\n return resultLeave;\n } else if (resultEnter !== undefined) {\n return hasEdited ? copy : resultEnter;\n } else {\n return hasEdited ? copy : node;\n }\n }\n\n try {\n const result = traverse(node);\n return result !== undefined && result !== false ? result : node;\n } catch (error) {\n if (error !== BREAK) throw error;\n return node;\n }\n}\n\nexport type ASTVisitor = EnterLeaveVisitor<ASTNode> | KindVisitor;\n\ntype KindVisitor = {\n readonly [NodeT in ASTNode as NodeT['kind']]?: ASTVisitFn<NodeT> | EnterLeaveVisitor<NodeT>;\n};\n\ninterface EnterLeaveVisitor<TVisitedNode extends ASTNode> {\n readonly enter?: ASTVisitFn<TVisitedNode> | undefined;\n readonly leave?: ASTVisitFn<TVisitedNode> | undefined;\n}\n\nexport type ASTVisitFn<Node extends ASTNode> = (\n node: Node,\n key: string | number | undefined,\n parent: ASTNode | ReadonlyArray<ASTNode> | undefined,\n path: ReadonlyArray<string | number>,\n ancestors: ReadonlyArray<ASTNode | ReadonlyArray<ASTNode>>\n) => any;\n\nexport type ASTReducer<R> = {\n readonly [NodeT in ASTNode as NodeT['kind']]?: {\n readonly enter?: ASTVisitFn<NodeT>;\n readonly leave: ASTReducerFn<NodeT, R>;\n };\n};\n\ntype ASTReducerFn<TReducedNode extends ASTNode, R> = (\n node: { [K in keyof TReducedNode]: ReducedField<TReducedNode[K], R> },\n key: string | number | undefined,\n parent: ASTNode | ReadonlyArray<ASTNode> | undefined,\n path: ReadonlyArray<string | number>,\n ancestors: ReadonlyArray<ASTNode | ReadonlyArray<ASTNode>>\n) => R;\n\ntype ReducedField<T, R> = T extends null | undefined\n ? T\n : T extends ReadonlyArray<any>\n ? ReadonlyArray<R>\n : R;\n","import type {\n ASTNode,\n NameNode,\n DocumentNode,\n VariableNode,\n SelectionSetNode,\n FieldNode,\n ArgumentNode,\n FragmentSpreadNode,\n InlineFragmentNode,\n VariableDefinitionNode,\n OperationDefinitionNode,\n FragmentDefinitionNode,\n IntValueNode,\n FloatValueNode,\n StringValueNode,\n BooleanValueNode,\n NullValueNode,\n EnumValueNode,\n ListValueNode,\n ObjectValueNode,\n ObjectFieldNode,\n DirectiveNode,\n NamedTypeNode,\n ListTypeNode,\n NonNullTypeNode,\n} from './ast';\n\nfunction mapJoin<T>(value: readonly T[], joiner: string, mapper: (value: T) => string): string {\n let out = '';\n for (let index = 0; index < value.length; index++) {\n if (index) out += joiner;\n out += mapper(value[index]);\n }\n return out;\n}\n\nfunction printString(string: string): string {\n return JSON.stringify(string);\n}\n\nfunction printBlockString(string: string): string {\n return '\"\"\"\\n' + string.replace(/\"\"\"/g, '\\\\\"\"\"') + '\\n\"\"\"';\n}\n\nconst MAX_LINE_LENGTH = 80;\n\nlet LF = '\\n';\n\nconst nodes = {\n OperationDefinition(node: OperationDefinitionNode): string {\n let out: string = node.operation;\n if (node.name) out += ' ' + node.name.value;\n if (node.variableDefinitions && node.variableDefinitions.length) {\n if (!node.name) out += ' ';\n out += '(' + mapJoin(node.variableDefinitions, ', ', nodes.VariableDefinition) + ')';\n }\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n return out !== 'query'\n ? out + ' ' + nodes.SelectionSet(node.selectionSet)\n : nodes.SelectionSet(node.selectionSet);\n },\n VariableDefinition(node: VariableDefinitionNode): string {\n let out = nodes.Variable!(node.variable) + ': ' + _print(node.type);\n if (node.defaultValue) out += ' = ' + _print(node.defaultValue);\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n return out;\n },\n Field(node: FieldNode): string {\n let out = node.alias ? node.alias.value + ': ' + node.name.value : node.name.value;\n if (node.arguments && node.arguments.length) {\n const args = mapJoin(node.arguments, ', ', nodes.Argument);\n if (out.length + args.length + 2 > MAX_LINE_LENGTH) {\n out +=\n '(' +\n (LF += ' ') +\n mapJoin(node.arguments, LF, nodes.Argument) +\n (LF = LF.slice(0, -2)) +\n ')';\n } else {\n out += '(' + args + ')';\n }\n }\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n if (node.selectionSet) out += ' ' + nodes.SelectionSet(node.selectionSet);\n return out;\n },\n StringValue(node: StringValueNode): string {\n if (node.block) {\n return printBlockString(node.value).replace(/\\n/g, LF);\n } else {\n return printString(node.value);\n }\n },\n BooleanValue(node: BooleanValueNode): string {\n return '' + node.value;\n },\n NullValue(_node: NullValueNode): string {\n return 'null';\n },\n IntValue(node: IntValueNode): string {\n return node.value;\n },\n FloatValue(node: FloatValueNode): string {\n return node.value;\n },\n EnumValue(node: EnumValueNode): string {\n return node.value;\n },\n Name(node: NameNode): string {\n return node.value;\n },\n Variable(node: VariableNode): string {\n return '$' + node.name.value;\n },\n ListValue(node: ListValueNode): string {\n return '[' + mapJoin(node.values, ', ', _print) + ']';\n },\n ObjectValue(node: ObjectValueNode): string {\n return '{' + mapJoin(node.fields, ', ', nodes.ObjectField) + '}';\n },\n ObjectField(node: ObjectFieldNode): string {\n return node.name.value + ': ' + _print(node.value);\n },\n Document(node: DocumentNode): string {\n if (!node.definitions || !node.definitions.length) return '';\n return mapJoin(node.definitions, '\\n\\n', _print);\n },\n SelectionSet(node: SelectionSetNode): string {\n return '{' + (LF += ' ') + mapJoin(node.selections, LF, _print) + (LF = LF.slice(0, -2)) + '}';\n },\n Argument(node: ArgumentNode): string {\n return node.name.value + ': ' + _print(node.value);\n },\n FragmentSpread(node: FragmentSpreadNode): string {\n let out = '...' + node.name.value;\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n return out;\n },\n InlineFragment(node: InlineFragmentNode): string {\n let out = '...';\n if (node.typeCondition) out += ' on ' + node.typeCondition.name.value;\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n out += ' ' + nodes.SelectionSet(node.selectionSet);\n return out;\n },\n FragmentDefinition(node: FragmentDefinitionNode): string {\n let out = 'fragment ' + node.name.value;\n out += ' on ' + node.typeCondition.name.value;\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n return out + ' ' + nodes.SelectionSet(node.selectionSet);\n },\n Directive(node: DirectiveNode): string {\n let out = '@' + node.name.value;\n if (node.arguments && node.arguments.length)\n out += '(' + mapJoin(node.arguments, ', ', nodes.Argument) + ')';\n return out;\n },\n NamedType(node: NamedTypeNode): string {\n return node.name.value;\n },\n ListType(node: ListTypeNode): string {\n return '[' + _print(node.type) + ']';\n },\n NonNullType(node: NonNullTypeNode): string {\n return _print(node.type) + '!';\n },\n} as const;\n\nconst _print = (node: ASTNode): string => nodes[node.kind](node);\n\nfunction print(node: ASTNode): string {\n LF = '\\n';\n return nodes[node.kind] ? nodes[node.kind](node) : '';\n}\n\nexport { print, printString, printBlockString };\n","import type { TypeNode, ValueNode } from './ast';\nimport type { Maybe } from './types';\n\nexport function valueFromASTUntyped(\n node: ValueNode,\n variables?: Maybe<Record<string, any>>\n): unknown {\n switch (node.kind) {\n case 'NullValue':\n return null;\n case 'IntValue':\n return parseInt(node.value, 10);\n case 'FloatValue':\n return parseFloat(node.value);\n case 'StringValue':\n case 'EnumValue':\n case 'BooleanValue':\n return node.value;\n case 'ListValue': {\n const values: unknown[] = [];\n for (let i = 0, l = node.values.length; i < l; i++)\n values.push(valueFromASTUntyped(node.values[i], variables));\n return values;\n }\n case 'ObjectValue': {\n const obj = Object.create(null);\n for (let i = 0, l = node.fields.length; i < l; i++) {\n const field = node.fields[i];\n obj[field.name.value] = valueFromASTUntyped(field.value, variables);\n }\n return obj;\n }\n case 'Variable':\n return variables && variables[node.name.value];\n }\n}\n\nexport function valueFromTypeNode(\n node: ValueNode,\n type: TypeNode,\n variables?: Maybe<Record<string, any>>\n): unknown {\n if (node.kind === 'Variable') {\n const variableName = node.name.value;\n return variables ? valueFromTypeNode(variables[variableName], type, variables) : undefined;\n } else if (type.kind === 'NonNullType') {\n return node.kind !== 'NullValue' ? valueFromTypeNode(node, type, variables) : undefined;\n } else if (node.kind === 'NullValue') {\n return null;\n } else if (type.kind === 'ListType') {\n if (node.kind === 'ListValue') {\n const values: unknown[] = [];\n for (let i = 0, l = node.values.length; i < l; i++) {\n const value = node.values[i];\n const coerced = valueFromTypeNode(value, type.type, variables);\n if (coerced === undefined) {\n return undefined;\n } else {\n values.push(coerced);\n }\n }\n return values;\n }\n } else if (type.kind === 'NamedType') {\n switch (type.name.value) {\n case 'Int':\n case 'Float':\n case 'String':\n case 'Bool':\n return type.name.value + 'Value' === node.kind\n ? valueFromASTUntyped(node, variables)\n : undefined;\n default:\n return valueFromASTUntyped(node, variables);\n }\n }\n}\n","import type { Location, Source as _Source } from './types';\nimport type { ASTNode, SelectionNode } from './ast';\n\nexport function isSelectionNode(node: ASTNode): node is SelectionNode {\n return node.kind === 'Field' || node.kind === 'FragmentSpread' || node.kind === 'InlineFragment';\n}\n\nexport function Source(body: string, name?: string, locationOffset?: Location): _Source {\n return {\n body,\n name,\n locationOffset: locationOffset || { line: 1, column: 1 },\n };\n}\n"],"names":["Kind","NAME","DOCUMENT","OPERATION_DEFINITION","VARIABLE_DEFINITION","SELECTION_SET","FIELD","ARGUMENT","FRAGMENT_SPREAD","INLINE_FRAGMENT","FRAGMENT_DEFINITION","VARIABLE","INT","FLOAT","STRING","BOOLEAN","NULL","ENUM","LIST","OBJECT","OBJECT_FIELD","DIRECTIVE","NAMED_TYPE","LIST_TYPE","NON_NULL_TYPE","OperationTypeNode","QUERY","MUTATION","SUBSCRIPTION","GraphQLError","Error","constructor","message","nodes","source","positions","path","originalError","extensions","super","this","name","Array","isArray","_extensions","originalExtensions","toJSON","toString","Symbol","toStringTag","input","idx","error","kind","advance","pattern","lastIndex","test","slice","leadingRe","blockString","string","lines","split","out","commonIndent","firstNonEmptyLine","lastNonEmptyLine","length","i","replace","ignored","char","charCodeAt","nameRe","valueRe","RegExp","ValueGroup","complexStringRe","value","constant","match","exec","values","push","fields","Const","Var","Int","floatPart","Float","BlockString","block","String","JSON","parse","Enum","arguments_","args","_name","directives","arguments","type","lists","selectionRe","SelectionGroup","selectionSet","selections","Spread","_directives","typeCondition","undefined","Name","_alias","_arguments","_selectionSet","alias","fragmentDefinition","_condition","definitionRe","operationDefinition","operation","_variableDefinitions","variableDefinitions","vars","_type","_defaultValue","variable","defaultValue","options","document","noLoc","definition","definitions","loc","_loc","start","end","startToken","endToken","body","locationOffset","line","column","noLocation","parseValue","_options","parseType","BREAK","visit","node","visitor","ancestors","result","traverse","key","parent","hasEdited","enter","resultEnter","call","copy","nodeKey","newValue","index","pop","leave","resultLeave","mapJoin","joiner","mapper","printString","stringify","printBlockString","LF","OperationDefinition","VariableDefinition","Directive","SelectionSet","Variable","_print","Field","Argument","StringValue","BooleanValue","NullValue","_node","IntValue","FloatValue","EnumValue","ListValue","ObjectValue","ObjectField","Document","FragmentSpread","InlineFragment","FragmentDefinition","NamedType","ListType","NonNullType","print","valueFromASTUntyped","variables","parseInt","parseFloat","l","obj","Object","create","field","valueFromTypeNode","coerced","isSelectionNode","Source"],"mappings":"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"}
1
+ {"version":3,"file":"graphql.web.mjs","sources":["../src/kind.js","../src/error.ts","../src/parser.ts","../src/visitor.ts","../src/printer.ts","../src/values.ts","../src/helpers.ts"],"sourcesContent":["export const Kind = {\n NAME: 'Name',\n DOCUMENT: 'Document',\n OPERATION_DEFINITION: 'OperationDefinition',\n VARIABLE_DEFINITION: 'VariableDefinition',\n SELECTION_SET: 'SelectionSet',\n FIELD: 'Field',\n ARGUMENT: 'Argument',\n FRAGMENT_SPREAD: 'FragmentSpread',\n INLINE_FRAGMENT: 'InlineFragment',\n FRAGMENT_DEFINITION: 'FragmentDefinition',\n VARIABLE: 'Variable',\n INT: 'IntValue',\n FLOAT: 'FloatValue',\n STRING: 'StringValue',\n BOOLEAN: 'BooleanValue',\n NULL: 'NullValue',\n ENUM: 'EnumValue',\n LIST: 'ListValue',\n OBJECT: 'ObjectValue',\n OBJECT_FIELD: 'ObjectField',\n DIRECTIVE: 'Directive',\n NAMED_TYPE: 'NamedType',\n LIST_TYPE: 'ListType',\n NON_NULL_TYPE: 'NonNullType',\n\n /*\n SCHEMA_DEFINITION: 'SchemaDefinition',\n OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',\n SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',\n OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',\n FIELD_DEFINITION: 'FieldDefinition',\n INPUT_VALUE_DEFINITION: 'InputValueDefinition',\n INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',\n UNION_TYPE_DEFINITION: 'UnionTypeDefinition',\n ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',\n ENUM_VALUE_DEFINITION: 'EnumValueDefinition',\n INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',\n DIRECTIVE_DEFINITION: 'DirectiveDefinition',\n SCHEMA_EXTENSION: 'SchemaExtension',\n SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',\n OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',\n INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',\n UNION_TYPE_EXTENSION: 'UnionTypeExtension',\n ENUM_TYPE_EXTENSION: 'EnumTypeExtension',\n INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension',\n */\n};\n\nexport const OperationTypeNode = {\n QUERY: 'query',\n MUTATION: 'mutation',\n SUBSCRIPTION: 'subscription',\n};\n","import type { Maybe, Extensions, Source } from './types';\nimport type { ASTNode } from './ast';\n\nexport class GraphQLError extends Error {\n readonly locations: ReadonlyArray<any> | undefined;\n readonly path: ReadonlyArray<string | number> | undefined;\n readonly nodes: ReadonlyArray<any> | undefined;\n readonly source: Source | undefined;\n readonly positions: ReadonlyArray<number> | undefined;\n readonly originalError: Error | undefined;\n readonly extensions: Extensions;\n\n constructor(\n message: string,\n nodes?: ReadonlyArray<ASTNode> | ASTNode | null,\n source?: Maybe<Source>,\n positions?: Maybe<ReadonlyArray<number>>,\n path?: Maybe<ReadonlyArray<string | number>>,\n originalError?: Maybe<Error>,\n extensions?: Maybe<Extensions>\n ) {\n super(message);\n\n this.name = 'GraphQLError';\n this.message = message;\n\n if (path) this.path = path;\n if (nodes) this.nodes = (Array.isArray(nodes) ? nodes : [nodes]) as ASTNode[];\n if (source) this.source = source;\n if (positions) this.positions = positions;\n if (originalError) this.originalError = originalError;\n\n let _extensions = extensions;\n if (!_extensions && originalError) {\n const originalExtensions = (originalError as any).extensions;\n if (originalExtensions && typeof originalExtensions === 'object') {\n _extensions = originalExtensions;\n }\n }\n\n this.extensions = _extensions || {};\n }\n\n toJSON(): any {\n return { ...this, message: this.message };\n }\n\n toString(): string {\n return this.message;\n }\n\n get [Symbol.toStringTag](): string {\n return 'GraphQLError';\n }\n}\n","/**\n * This is a spec-compliant implementation of a GraphQL query language parser,\n * up-to-date with the October 2021 Edition. Unlike the reference implementation\n * in graphql.js it will only parse the query language, but not the schema\n * language.\n */\nimport type { Kind, OperationTypeNode } from './kind';\nimport { GraphQLError } from './error';\nimport type { Location, Source } from './types';\nimport type * as ast from './ast';\n\nlet input: string;\nlet idx: number;\n\nfunction error(kind: string) {\n return new GraphQLError(`Syntax Error: Unexpected token at ${idx} in ${kind}`);\n}\n\nfunction advance(pattern: RegExp) {\n pattern.lastIndex = idx;\n if (pattern.test(input)) {\n const match = input.slice(idx, (idx = pattern.lastIndex));\n return match;\n }\n}\n\nconst leadingRe = / +(?=[^\\s])/y;\nfunction blockString(string: string) {\n const lines = string.split('\\n');\n let out = '';\n let commonIndent = 0;\n let firstNonEmptyLine = 0;\n let lastNonEmptyLine = lines.length - 1;\n for (let i = 0; i < lines.length; i++) {\n leadingRe.lastIndex = 0;\n if (leadingRe.test(lines[i])) {\n if (i && (!commonIndent || leadingRe.lastIndex < commonIndent))\n commonIndent = leadingRe.lastIndex;\n firstNonEmptyLine = firstNonEmptyLine || i;\n lastNonEmptyLine = i;\n }\n }\n for (let i = firstNonEmptyLine; i <= lastNonEmptyLine; i++) {\n if (i !== firstNonEmptyLine) out += '\\n';\n out += lines[i].slice(commonIndent).replace(/\\\\\"\"\"/g, '\"\"\"');\n }\n return out;\n}\n\n// Note: This is equivalent to: /(?:[\\s,]*|#[^\\n\\r]*)*/y\nfunction ignored() {\n for (\n let char = input.charCodeAt(idx++) | 0;\n char === 9 /*'\\t'*/ ||\n char === 10 /*'\\n'*/ ||\n char === 13 /*'\\r'*/ ||\n char === 32 /*' '*/ ||\n char === 35 /*'#'*/ ||\n char === 44 /*','*/ ||\n char === 65279 /*'\\ufeff'*/;\n char = input.charCodeAt(idx++) | 0\n ) {\n if (char === 35 /*'#'*/) while ((char = input.charCodeAt(idx++)) !== 10 && char !== 13);\n }\n idx--;\n}\n\nconst nameRe = /[_A-Za-z]\\w*/y;\n\n// NOTE: This should be compressed by our build step\n// This merges all possible value parsing into one regular expression\nconst valueRe = new RegExp(\n '(?:' +\n // `null`, `true`, and `false` literals (BooleanValue & NullValue)\n '(null|true|false)|' +\n // Variables starting with `$` then having a name (VariableNode)\n '\\\\$(' +\n nameRe.source +\n ')|' +\n // Numbers, starting with int then optionally following with a float part (IntValue and FloatValue)\n '(-?\\\\d+)((?:\\\\.\\\\d+)?[eE][+-]?\\\\d+|\\\\.\\\\d+)?|' +\n // Block strings starting with `\"\"\"` until the next unescaped `\"\"\"` (StringValue)\n '(\"\"\"(?:\"\"\"|(?:[\\\\s\\\\S]*?[^\\\\\\\\])\"\"\"))|' +\n // Strings starting with `\"` must be on one line (StringValue)\n '(\"(?:\"|[^\\\\r\\\\n]*?[^\\\\\\\\]\"))|' + // string\n // Enums are simply names except for our literals (EnumValue)\n '(' +\n nameRe.source +\n '))',\n 'y'\n);\n\n// NOTE: Each of the groups above end up in the RegExpExecArray at the specified indices (starting with 1)\nconst enum ValueGroup {\n Const = 1,\n Var,\n Int,\n Float,\n BlockString,\n String,\n Enum,\n}\n\ntype ValueExec = RegExpExecArray & {\n [Prop in ValueGroup]: string | undefined;\n};\n\nconst complexStringRe = /\\\\/;\n\nfunction value(constant: true): ast.ConstValueNode;\nfunction value(constant: boolean): ast.ValueNode;\n\nfunction value(constant: boolean): ast.ValueNode {\n let match: string | undefined;\n let exec: ValueExec | null;\n valueRe.lastIndex = idx;\n if (input.charCodeAt(idx) === 91 /*'['*/) {\n // Lists are checked ahead of time with `[` chars\n idx++;\n ignored();\n const values: ast.ValueNode[] = [];\n while (input.charCodeAt(idx) !== 93 /*']'*/) values.push(value(constant));\n idx++;\n ignored();\n return {\n kind: 'ListValue' as Kind.LIST,\n values,\n };\n } else if (input.charCodeAt(idx) === 123 /*'{'*/) {\n // Objects are checked ahead of time with `{` chars\n idx++;\n ignored();\n const fields: ast.ObjectFieldNode[] = [];\n while (input.charCodeAt(idx) !== 125 /*'}'*/) {\n if ((match = advance(nameRe)) == null) throw error('ObjectField');\n ignored();\n if (input.charCodeAt(idx++) !== 58 /*':'*/) throw error('ObjectField');\n ignored();\n fields.push({\n kind: 'ObjectField' as Kind.OBJECT_FIELD,\n name: { kind: 'Name' as Kind.NAME, value: match },\n value: value(constant),\n });\n }\n idx++;\n ignored();\n return {\n kind: 'ObjectValue' as Kind.OBJECT,\n fields,\n };\n } else if ((exec = valueRe.exec(input) as ValueExec) != null) {\n // Starting from here, the merged `valueRe` is used\n idx = valueRe.lastIndex;\n ignored();\n if ((match = exec[ValueGroup.Const]) != null) {\n return match === 'null'\n ? { kind: 'NullValue' as Kind.NULL }\n : {\n kind: 'BooleanValue' as Kind.BOOLEAN,\n value: match === 'true',\n };\n } else if ((match = exec[ValueGroup.Var]) != null) {\n if (constant) {\n throw error('Variable');\n } else {\n return {\n kind: 'Variable' as Kind.VARIABLE,\n name: {\n kind: 'Name' as Kind.NAME,\n value: match,\n },\n };\n }\n } else if ((match = exec[ValueGroup.Int]) != null) {\n let floatPart: string | undefined;\n if ((floatPart = exec[ValueGroup.Float]) != null) {\n return {\n kind: 'FloatValue' as Kind.FLOAT,\n value: match + floatPart,\n };\n } else {\n return {\n kind: 'IntValue' as Kind.INT,\n value: match,\n };\n }\n } else if ((match = exec[ValueGroup.BlockString]) != null) {\n return {\n kind: 'StringValue' as Kind.STRING,\n value: blockString(match.slice(3, -3)),\n block: true,\n };\n } else if ((match = exec[ValueGroup.String]) != null) {\n return {\n kind: 'StringValue' as Kind.STRING,\n // When strings don't contain escape codes, a simple slice will be enough, otherwise\n // `JSON.parse` matches GraphQL's string parsing perfectly\n value: complexStringRe.test(match) ? (JSON.parse(match) as string) : match.slice(1, -1),\n block: false,\n };\n } else if ((match = exec[ValueGroup.Enum]) != null) {\n return {\n kind: 'EnumValue' as Kind.ENUM,\n value: match,\n };\n }\n }\n\n throw error('Value');\n}\n\nfunction arguments_(constant: boolean): ast.ArgumentNode[] | undefined {\n if (input.charCodeAt(idx) === 40 /*'('*/) {\n const args: ast.ArgumentNode[] = [];\n idx++;\n ignored();\n let _name: string | undefined;\n do {\n if ((_name = advance(nameRe)) == null) throw error('Argument');\n ignored();\n if (input.charCodeAt(idx++) !== 58 /*':'*/) throw error('Argument');\n ignored();\n args.push({\n kind: 'Argument' as Kind.ARGUMENT,\n name: { kind: 'Name' as Kind.NAME, value: _name },\n value: value(constant),\n });\n } while (input.charCodeAt(idx) !== 41 /*')'*/);\n idx++;\n ignored();\n return args;\n }\n}\n\nfunction directives(constant: true): ast.ConstDirectiveNode[] | undefined;\nfunction directives(constant: boolean): ast.DirectiveNode[] | undefined;\n\nfunction directives(constant: boolean): ast.DirectiveNode[] | undefined {\n if (input.charCodeAt(idx) === 64 /*'@'*/) {\n const directives: ast.DirectiveNode[] = [];\n let _name: string | undefined;\n do {\n idx++;\n if ((_name = advance(nameRe)) == null) throw error('Directive');\n ignored();\n directives.push({\n kind: 'Directive' as Kind.DIRECTIVE,\n name: { kind: 'Name' as Kind.NAME, value: _name },\n arguments: arguments_(constant),\n });\n } while (input.charCodeAt(idx) === 64 /*'@'*/);\n return directives;\n }\n}\n\nfunction type(): ast.TypeNode {\n let match: string | undefined;\n let lists = 0;\n while (input.charCodeAt(idx) === 91 /*'['*/) {\n lists++;\n idx++;\n ignored();\n }\n if ((match = advance(nameRe)) == null) throw error('NamedType');\n ignored();\n let type: ast.TypeNode = {\n kind: 'NamedType' as Kind.NAMED_TYPE,\n name: { kind: 'Name' as Kind.NAME, value: match },\n };\n do {\n if (input.charCodeAt(idx) === 33 /*'!'*/) {\n idx++;\n ignored();\n type = {\n kind: 'NonNullType' as Kind.NON_NULL_TYPE,\n type: type as ast.NamedTypeNode | ast.ListTypeNode,\n } satisfies ast.NonNullTypeNode;\n }\n if (lists) {\n if (input.charCodeAt(idx++) !== 93 /*']'*/) throw error('NamedType');\n ignored();\n type = {\n kind: 'ListType' as Kind.LIST_TYPE,\n type: type as ast.NamedTypeNode | ast.ListTypeNode,\n } satisfies ast.ListTypeNode;\n }\n } while (lists--);\n return type;\n}\n\n// NOTE: This should be compressed by our build step\n// This merges the two possible selection parsing branches into one regular expression\nconst selectionRe = new RegExp(\n '(?:' +\n // fragment spreads (FragmentSpread or InlineFragment nodes)\n '(\\\\.{3})|' +\n // field aliases or names (FieldNode)\n '(' +\n nameRe.source +\n '))',\n 'y'\n);\n\n// NOTE: Each of the groups above end up in the RegExpExecArray at the indices 1&2\nconst enum SelectionGroup {\n Spread = 1,\n Name,\n}\n\ntype SelectionExec = RegExpExecArray & {\n [Prop in SelectionGroup]: string | undefined;\n};\n\nfunction selectionSet(): ast.SelectionSetNode {\n const selections: ast.SelectionNode[] = [];\n let match: string | undefined;\n let exec: SelectionExec | null;\n do {\n selectionRe.lastIndex = idx;\n if ((exec = selectionRe.exec(input) as SelectionExec) != null) {\n idx = selectionRe.lastIndex;\n if (exec[SelectionGroup.Spread] != null) {\n ignored();\n let match = advance(nameRe);\n if (match != null && match !== 'on') {\n // A simple `...Name` spread with optional directives\n ignored();\n selections.push({\n kind: 'FragmentSpread' as Kind.FRAGMENT_SPREAD,\n name: { kind: 'Name' as Kind.NAME, value: match },\n directives: directives(false),\n });\n } else {\n ignored();\n if (match === 'on') {\n // An inline `... on Name` spread; if this doesn't match, the type condition has been omitted\n if ((match = advance(nameRe)) == null) throw error('NamedType');\n ignored();\n }\n const _directives = directives(false);\n if (input.charCodeAt(idx++) !== 123 /*'{'*/) throw error('InlineFragment');\n ignored();\n selections.push({\n kind: 'InlineFragment' as Kind.INLINE_FRAGMENT,\n typeCondition: match\n ? {\n kind: 'NamedType' as Kind.NAMED_TYPE,\n name: { kind: 'Name' as Kind.NAME, value: match },\n }\n : undefined,\n directives: _directives,\n selectionSet: selectionSet(),\n });\n }\n } else if ((match = exec[SelectionGroup.Name]) != null) {\n let _alias: string | undefined;\n ignored();\n // Parse the optional alias, by reassigning and then getting the name\n if (input.charCodeAt(idx) === 58 /*':'*/) {\n idx++;\n ignored();\n _alias = match;\n if ((match = advance(nameRe)) == null) throw error('Field');\n ignored();\n }\n const _arguments = arguments_(false);\n ignored();\n const _directives = directives(false);\n let _selectionSet: ast.SelectionSetNode | undefined;\n if (input.charCodeAt(idx) === 123 /*'{'*/) {\n idx++;\n ignored();\n _selectionSet = selectionSet();\n }\n selections.push({\n kind: 'Field' as Kind.FIELD,\n alias: _alias ? { kind: 'Name' as Kind.NAME, value: _alias } : undefined,\n name: { kind: 'Name' as Kind.NAME, value: match },\n arguments: _arguments,\n directives: _directives,\n selectionSet: _selectionSet,\n });\n }\n } else {\n throw error('SelectionSet');\n }\n } while (input.charCodeAt(idx) !== 125 /*'}'*/);\n idx++;\n ignored();\n return {\n kind: 'SelectionSet' as Kind.SELECTION_SET,\n selections,\n };\n}\n\nfunction variableDefinitions(): ast.VariableDefinitionNode[] | undefined {\n ignored();\n if (input.charCodeAt(idx) === 40 /*'('*/) {\n const vars: ast.VariableDefinitionNode[] = [];\n idx++;\n ignored();\n let _name: string | undefined;\n do {\n if (input.charCodeAt(idx++) !== 36 /*'$'*/) throw error('Variable');\n if ((_name = advance(nameRe)) == null) throw error('Variable');\n ignored();\n if (input.charCodeAt(idx++) !== 58 /*':'*/) throw error('VariableDefinition');\n ignored();\n const _type = type();\n let _defaultValue: ast.ConstValueNode | undefined;\n if (input.charCodeAt(idx) === 61 /*'='*/) {\n idx++;\n ignored();\n _defaultValue = value(true);\n }\n ignored();\n vars.push({\n kind: 'VariableDefinition' as Kind.VARIABLE_DEFINITION,\n variable: {\n kind: 'Variable' as Kind.VARIABLE,\n name: { kind: 'Name' as Kind.NAME, value: _name },\n },\n type: _type,\n defaultValue: _defaultValue,\n directives: directives(true),\n });\n } while (input.charCodeAt(idx) !== 41 /*')'*/);\n idx++;\n ignored();\n return vars;\n }\n}\n\nfunction fragmentDefinition(): ast.FragmentDefinitionNode {\n let _name: string | undefined;\n let _condition: string | undefined;\n if ((_name = advance(nameRe)) == null) throw error('FragmentDefinition');\n ignored();\n if (advance(nameRe) !== 'on') throw error('FragmentDefinition');\n ignored();\n if ((_condition = advance(nameRe)) == null) throw error('FragmentDefinition');\n ignored();\n const _directives = directives(false);\n if (input.charCodeAt(idx++) !== 123 /*'{'*/) throw error('FragmentDefinition');\n ignored();\n return {\n kind: 'FragmentDefinition' as Kind.FRAGMENT_DEFINITION,\n name: { kind: 'Name' as Kind.NAME, value: _name },\n typeCondition: {\n kind: 'NamedType' as Kind.NAMED_TYPE,\n name: { kind: 'Name' as Kind.NAME, value: _condition },\n },\n directives: _directives,\n selectionSet: selectionSet(),\n };\n}\n\nconst definitionRe = /(?:query|mutation|subscription|fragment)/y;\n\nfunction operationDefinition(\n operation: OperationTypeNode | undefined\n): ast.OperationDefinitionNode | undefined {\n let _name: string | undefined;\n let _variableDefinitions: ast.VariableDefinitionNode[] | undefined;\n let _directives: ast.DirectiveNode[] | undefined;\n if (operation) {\n ignored();\n _name = advance(nameRe);\n _variableDefinitions = variableDefinitions();\n _directives = directives(false);\n }\n if (input.charCodeAt(idx) === 123 /*'{'*/) {\n idx++;\n ignored();\n return {\n kind: 'OperationDefinition' as Kind.OPERATION_DEFINITION,\n operation: operation || ('query' as OperationTypeNode.QUERY),\n name: _name ? { kind: 'Name' as Kind.NAME, value: _name } : undefined,\n variableDefinitions: _variableDefinitions,\n directives: _directives,\n selectionSet: selectionSet(),\n };\n }\n}\n\nfunction document(input: string, noLoc: boolean): ast.DocumentNode {\n let match: string | undefined;\n let definition: ast.OperationDefinitionNode | undefined;\n ignored();\n const definitions: ast.ExecutableDefinitionNode[] = [];\n do {\n if ((match = advance(definitionRe)) === 'fragment') {\n ignored();\n definitions.push(fragmentDefinition());\n } else if ((definition = operationDefinition(match as OperationTypeNode)) != null) {\n definitions.push(definition);\n } else {\n throw error('Document');\n }\n } while (idx < input.length);\n\n if (!noLoc) {\n let loc: Location | undefined;\n return {\n kind: 'Document' as Kind.DOCUMENT,\n definitions,\n /* v8 ignore start */\n set loc(_loc: Location) {\n loc = _loc;\n },\n /* v8 ignore stop */\n // @ts-ignore\n get loc() {\n if (!loc) {\n loc = {\n start: 0,\n end: input.length,\n startToken: undefined,\n endToken: undefined,\n source: {\n body: input,\n name: 'graphql.web',\n locationOffset: { line: 1, column: 1 },\n },\n };\n }\n return loc;\n },\n };\n }\n\n return {\n kind: 'Document' as Kind.DOCUMENT,\n definitions,\n };\n}\n\ntype ParseOptions = {\n [option: string]: any;\n};\n\nexport function parse(\n string: string | Source,\n options?: ParseOptions | undefined\n): ast.DocumentNode {\n input = typeof string.body === 'string' ? string.body : string;\n idx = 0;\n return document(input, options && options.noLocation);\n}\n\nexport function parseValue(\n string: string | Source,\n _options?: ParseOptions | undefined\n): ast.ValueNode {\n input = typeof string.body === 'string' ? string.body : string;\n idx = 0;\n ignored();\n return value(false);\n}\n\nexport function parseType(\n string: string | Source,\n _options?: ParseOptions | undefined\n): ast.TypeNode {\n input = typeof string.body === 'string' ? string.body : string;\n idx = 0;\n return type();\n}\n","import type { ASTNode } from './ast';\n\nexport const BREAK = {};\n\nexport function visit<N extends ASTNode>(root: N, visitor: ASTVisitor): N;\nexport function visit<R>(root: ASTNode, visitor: ASTReducer<R>): R;\n\nexport function visit(node: ASTNode, visitor: ASTVisitor | ASTReducer<any>) {\n const ancestors: Array<ASTNode | ReadonlyArray<ASTNode>> = [];\n const path: Array<string | number> = [];\n\n function traverse(\n node: ASTNode,\n key?: string | number | undefined,\n parent?: ASTNode | ReadonlyArray<ASTNode> | undefined\n ) {\n let hasEdited = false;\n\n const enter =\n (visitor[node.kind] && visitor[node.kind].enter) ||\n visitor[node.kind] ||\n (visitor as EnterLeaveVisitor<ASTNode>).enter;\n const resultEnter = enter && enter.call(visitor, node, key, parent, path, ancestors);\n if (resultEnter === false) {\n return node;\n } else if (resultEnter === null) {\n return null;\n } else if (resultEnter === BREAK) {\n throw BREAK;\n } else if (resultEnter && typeof resultEnter.kind === 'string') {\n hasEdited = resultEnter !== node;\n node = resultEnter;\n }\n\n if (parent) ancestors.push(parent);\n\n let result: any;\n const copy = { ...node };\n for (const nodeKey in node) {\n path.push(nodeKey);\n let value = node[nodeKey];\n if (Array.isArray(value)) {\n const newValue: any[] = [];\n for (let index = 0; index < value.length; index++) {\n if (value[index] != null && typeof value[index].kind === 'string') {\n ancestors.push(node);\n path.push(index);\n result = traverse(value[index], index, value);\n path.pop();\n ancestors.pop();\n if (result == null) {\n hasEdited = true;\n } else {\n hasEdited = hasEdited || result !== value[index];\n newValue.push(result);\n }\n }\n }\n value = newValue;\n } else if (value != null && typeof value.kind === 'string') {\n result = traverse(value, nodeKey, node);\n if (result !== undefined) {\n hasEdited = hasEdited || value !== result;\n value = result;\n }\n }\n\n path.pop();\n if (hasEdited) copy[nodeKey] = value;\n }\n\n if (parent) ancestors.pop();\n const leave =\n (visitor[node.kind] && visitor[node.kind].leave) ||\n (visitor as EnterLeaveVisitor<ASTNode>).leave;\n const resultLeave = leave && leave.call(visitor, node, key, parent, path, ancestors);\n if (resultLeave === BREAK) {\n throw BREAK;\n } else if (resultLeave !== undefined) {\n return resultLeave;\n } else if (resultEnter !== undefined) {\n return hasEdited ? copy : resultEnter;\n } else {\n return hasEdited ? copy : node;\n }\n }\n\n try {\n const result = traverse(node);\n return result !== undefined && result !== false ? result : node;\n } catch (error) {\n if (error !== BREAK) throw error;\n return node;\n }\n}\n\nexport type ASTVisitor = EnterLeaveVisitor<ASTNode> | KindVisitor;\n\ntype KindVisitor = {\n readonly [NodeT in ASTNode as NodeT['kind']]?: ASTVisitFn<NodeT> | EnterLeaveVisitor<NodeT>;\n};\n\ninterface EnterLeaveVisitor<TVisitedNode extends ASTNode> {\n readonly enter?: ASTVisitFn<TVisitedNode> | undefined;\n readonly leave?: ASTVisitFn<TVisitedNode> | undefined;\n}\n\nexport type ASTVisitFn<Node extends ASTNode> = (\n node: Node,\n key: string | number | undefined,\n parent: ASTNode | ReadonlyArray<ASTNode> | undefined,\n path: ReadonlyArray<string | number>,\n ancestors: ReadonlyArray<ASTNode | ReadonlyArray<ASTNode>>\n) => any;\n\nexport type ASTReducer<R> = {\n readonly [NodeT in ASTNode as NodeT['kind']]?: {\n readonly enter?: ASTVisitFn<NodeT>;\n readonly leave: ASTReducerFn<NodeT, R>;\n };\n};\n\ntype ASTReducerFn<TReducedNode extends ASTNode, R> = (\n node: { [K in keyof TReducedNode]: ReducedField<TReducedNode[K], R> },\n key: string | number | undefined,\n parent: ASTNode | ReadonlyArray<ASTNode> | undefined,\n path: ReadonlyArray<string | number>,\n ancestors: ReadonlyArray<ASTNode | ReadonlyArray<ASTNode>>\n) => R;\n\ntype ReducedField<T, R> = T extends null | undefined\n ? T\n : T extends ReadonlyArray<any>\n ? ReadonlyArray<R>\n : R;\n","import type {\n ASTNode,\n NameNode,\n DocumentNode,\n VariableNode,\n SelectionSetNode,\n FieldNode,\n ArgumentNode,\n FragmentSpreadNode,\n InlineFragmentNode,\n VariableDefinitionNode,\n OperationDefinitionNode,\n FragmentDefinitionNode,\n IntValueNode,\n FloatValueNode,\n StringValueNode,\n BooleanValueNode,\n NullValueNode,\n EnumValueNode,\n ListValueNode,\n ObjectValueNode,\n ObjectFieldNode,\n DirectiveNode,\n NamedTypeNode,\n ListTypeNode,\n NonNullTypeNode,\n} from './ast';\n\nfunction mapJoin<T>(value: readonly T[], joiner: string, mapper: (value: T) => string): string {\n let out = '';\n for (let index = 0; index < value.length; index++) {\n if (index) out += joiner;\n out += mapper(value[index]);\n }\n return out;\n}\n\nfunction printString(string: string): string {\n return JSON.stringify(string);\n}\n\nfunction printBlockString(string: string): string {\n return '\"\"\"\\n' + string.replace(/\"\"\"/g, '\\\\\"\"\"') + '\\n\"\"\"';\n}\n\nconst MAX_LINE_LENGTH = 80;\n\nlet LF = '\\n';\n\nconst nodes = {\n OperationDefinition(node: OperationDefinitionNode): string {\n let out: string = node.operation;\n if (node.name) out += ' ' + node.name.value;\n if (node.variableDefinitions && node.variableDefinitions.length) {\n if (!node.name) out += ' ';\n out += '(' + mapJoin(node.variableDefinitions, ', ', nodes.VariableDefinition) + ')';\n }\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n return out !== 'query'\n ? out + ' ' + nodes.SelectionSet(node.selectionSet)\n : nodes.SelectionSet(node.selectionSet);\n },\n VariableDefinition(node: VariableDefinitionNode): string {\n let out = nodes.Variable!(node.variable) + ': ' + _print(node.type);\n if (node.defaultValue) out += ' = ' + _print(node.defaultValue);\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n return out;\n },\n Field(node: FieldNode): string {\n let out = node.alias ? node.alias.value + ': ' + node.name.value : node.name.value;\n if (node.arguments && node.arguments.length) {\n const args = mapJoin(node.arguments, ', ', nodes.Argument);\n if (out.length + args.length + 2 > MAX_LINE_LENGTH) {\n out +=\n '(' +\n (LF += ' ') +\n mapJoin(node.arguments, LF, nodes.Argument) +\n (LF = LF.slice(0, -2)) +\n ')';\n } else {\n out += '(' + args + ')';\n }\n }\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n if (node.selectionSet && node.selectionSet.selections.length) {\n out += ' ' + nodes.SelectionSet(node.selectionSet);\n }\n return out;\n },\n StringValue(node: StringValueNode): string {\n if (node.block) {\n return printBlockString(node.value).replace(/\\n/g, LF);\n } else {\n return printString(node.value);\n }\n },\n BooleanValue(node: BooleanValueNode): string {\n return '' + node.value;\n },\n NullValue(_node: NullValueNode): string {\n return 'null';\n },\n IntValue(node: IntValueNode): string {\n return node.value;\n },\n FloatValue(node: FloatValueNode): string {\n return node.value;\n },\n EnumValue(node: EnumValueNode): string {\n return node.value;\n },\n Name(node: NameNode): string {\n return node.value;\n },\n Variable(node: VariableNode): string {\n return '$' + node.name.value;\n },\n ListValue(node: ListValueNode): string {\n return '[' + mapJoin(node.values, ', ', _print) + ']';\n },\n ObjectValue(node: ObjectValueNode): string {\n return '{' + mapJoin(node.fields, ', ', nodes.ObjectField) + '}';\n },\n ObjectField(node: ObjectFieldNode): string {\n return node.name.value + ': ' + _print(node.value);\n },\n Document(node: DocumentNode): string {\n if (!node.definitions || !node.definitions.length) return '';\n return mapJoin(node.definitions, '\\n\\n', _print);\n },\n SelectionSet(node: SelectionSetNode): string {\n return '{' + (LF += ' ') + mapJoin(node.selections, LF, _print) + (LF = LF.slice(0, -2)) + '}';\n },\n Argument(node: ArgumentNode): string {\n return node.name.value + ': ' + _print(node.value);\n },\n FragmentSpread(node: FragmentSpreadNode): string {\n let out = '...' + node.name.value;\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n return out;\n },\n InlineFragment(node: InlineFragmentNode): string {\n let out = '...';\n if (node.typeCondition) out += ' on ' + node.typeCondition.name.value;\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n out += ' ' + nodes.SelectionSet(node.selectionSet);\n return out;\n },\n FragmentDefinition(node: FragmentDefinitionNode): string {\n let out = 'fragment ' + node.name.value;\n out += ' on ' + node.typeCondition.name.value;\n if (node.directives && node.directives.length)\n out += ' ' + mapJoin(node.directives, ' ', nodes.Directive);\n return out + ' ' + nodes.SelectionSet(node.selectionSet);\n },\n Directive(node: DirectiveNode): string {\n let out = '@' + node.name.value;\n if (node.arguments && node.arguments.length)\n out += '(' + mapJoin(node.arguments, ', ', nodes.Argument) + ')';\n return out;\n },\n NamedType(node: NamedTypeNode): string {\n return node.name.value;\n },\n ListType(node: ListTypeNode): string {\n return '[' + _print(node.type) + ']';\n },\n NonNullType(node: NonNullTypeNode): string {\n return _print(node.type) + '!';\n },\n} as const;\n\nconst _print = (node: ASTNode): string => nodes[node.kind](node);\n\nfunction print(node: ASTNode): string {\n LF = '\\n';\n return nodes[node.kind] ? nodes[node.kind](node) : '';\n}\n\nexport { print, printString, printBlockString };\n","import type { TypeNode, ValueNode } from './ast';\nimport type { Maybe } from './types';\n\nexport function valueFromASTUntyped(\n node: ValueNode,\n variables?: Maybe<Record<string, any>>\n): unknown {\n switch (node.kind) {\n case 'NullValue':\n return null;\n case 'IntValue':\n return parseInt(node.value, 10);\n case 'FloatValue':\n return parseFloat(node.value);\n case 'StringValue':\n case 'EnumValue':\n case 'BooleanValue':\n return node.value;\n case 'ListValue': {\n const values: unknown[] = [];\n for (let i = 0, l = node.values.length; i < l; i++)\n values.push(valueFromASTUntyped(node.values[i], variables));\n return values;\n }\n case 'ObjectValue': {\n const obj = Object.create(null);\n for (let i = 0, l = node.fields.length; i < l; i++) {\n const field = node.fields[i];\n obj[field.name.value] = valueFromASTUntyped(field.value, variables);\n }\n return obj;\n }\n case 'Variable':\n return variables && variables[node.name.value];\n }\n}\n\nexport function valueFromTypeNode(\n node: ValueNode,\n type: TypeNode,\n variables?: Maybe<Record<string, any>>\n): unknown {\n if (node.kind === 'Variable') {\n const variableName = node.name.value;\n return variables ? valueFromTypeNode(variables[variableName], type, variables) : undefined;\n } else if (type.kind === 'NonNullType') {\n return node.kind !== 'NullValue' ? valueFromTypeNode(node, type, variables) : undefined;\n } else if (node.kind === 'NullValue') {\n return null;\n } else if (type.kind === 'ListType') {\n if (node.kind === 'ListValue') {\n const values: unknown[] = [];\n for (let i = 0, l = node.values.length; i < l; i++) {\n const value = node.values[i];\n const coerced = valueFromTypeNode(value, type.type, variables);\n if (coerced === undefined) {\n return undefined;\n } else {\n values.push(coerced);\n }\n }\n return values;\n }\n } else if (type.kind === 'NamedType') {\n switch (type.name.value) {\n case 'Int':\n case 'Float':\n case 'String':\n case 'Bool':\n return type.name.value + 'Value' === node.kind\n ? valueFromASTUntyped(node, variables)\n : undefined;\n default:\n return valueFromASTUntyped(node, variables);\n }\n }\n}\n","import type { Location, Source as _Source } from './types';\nimport type { ASTNode, SelectionNode } from './ast';\n\nexport function isSelectionNode(node: ASTNode): node is SelectionNode {\n return node.kind === 'Field' || node.kind === 'FragmentSpread' || node.kind === 'InlineFragment';\n}\n\nexport function Source(body: string, name?: string, locationOffset?: Location): _Source {\n return {\n body,\n name,\n locationOffset: locationOffset || { line: 1, column: 1 },\n };\n}\n"],"names":["Kind","NAME","DOCUMENT","OPERATION_DEFINITION","VARIABLE_DEFINITION","SELECTION_SET","FIELD","ARGUMENT","FRAGMENT_SPREAD","INLINE_FRAGMENT","FRAGMENT_DEFINITION","VARIABLE","INT","FLOAT","STRING","BOOLEAN","NULL","ENUM","LIST","OBJECT","OBJECT_FIELD","DIRECTIVE","NAMED_TYPE","LIST_TYPE","NON_NULL_TYPE","OperationTypeNode","QUERY","MUTATION","SUBSCRIPTION","GraphQLError","Error","constructor","message","nodes","source","positions","path","originalError","extensions","super","this","name","Array","isArray","_extensions","originalExtensions","toJSON","toString","Symbol","toStringTag","input","idx","error","kind","advance","pattern","lastIndex","test","slice","leadingRe","blockString","string","lines","split","out","commonIndent","firstNonEmptyLine","lastNonEmptyLine","length","i","replace","ignored","char","charCodeAt","nameRe","valueRe","RegExp","ValueGroup","complexStringRe","value","constant","match","exec","values","push","fields","Const","Var","Int","floatPart","Float","BlockString","block","String","JSON","parse","Enum","arguments_","args","_name","directives","arguments","type","lists","selectionRe","SelectionGroup","selectionSet","selections","Spread","_directives","typeCondition","undefined","Name","_alias","_arguments","_selectionSet","alias","fragmentDefinition","_condition","definitionRe","operationDefinition","operation","_variableDefinitions","variableDefinitions","vars","_type","_defaultValue","variable","defaultValue","options","document","noLoc","definition","definitions","loc","_loc","start","end","startToken","endToken","body","locationOffset","line","column","noLocation","parseValue","_options","parseType","BREAK","visit","node","visitor","ancestors","result","traverse","key","parent","hasEdited","enter","resultEnter","call","copy","nodeKey","newValue","index","pop","leave","resultLeave","mapJoin","joiner","mapper","printString","stringify","printBlockString","LF","OperationDefinition","VariableDefinition","Directive","SelectionSet","Variable","_print","Field","Argument","StringValue","BooleanValue","NullValue","_node","IntValue","FloatValue","EnumValue","ListValue","ObjectValue","ObjectField","Document","FragmentSpread","InlineFragment","FragmentDefinition","NamedType","ListType","NonNullType","print","valueFromASTUntyped","variables","parseInt","parseFloat","l","obj","Object","create","field","valueFromTypeNode","coerced","isSelectionNode","Source"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@0no-co/graphql.web",
3
3
  "description": "A spec-compliant client-side GraphQL implementation",
4
- "version": "1.0.11",
4
+ "version": "1.0.12",
5
5
  "author": "0no.co <hi@0no.co>",
6
6
  "source": "./src/index.ts",
7
7
  "main": "./dist/graphql.web",