web-ggf 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/bin/init/index.cjs +16 -0
- package/dist/apollo-nextjs-client/index.cjs.js +2 -0
- package/dist/apollo-nextjs-client/index.cjs.js.map +1 -0
- package/dist/apollo-nextjs-client/index.esm.js +2 -0
- package/dist/apollo-nextjs-client/index.esm.js.map +1 -0
- package/dist/apollo-nextjs-wrapper/index.cjs.js +2 -0
- package/dist/apollo-nextjs-wrapper/index.cjs.js.map +1 -0
- package/dist/apollo-nextjs-wrapper/index.esm.js +2 -0
- package/dist/apollo-nextjs-wrapper/index.esm.js.map +1 -0
- package/dist/nextjs-middleware/index.cjs +2 -0
- package/dist/nextjs-middleware/index.cjs.map +1 -0
- package/dist/nextjs-middleware/index.mjs +2 -0
- package/dist/nextjs-middleware/index.mjs.map +1 -0
- package/dist/test/index.cjs.js +2 -0
- package/dist/test/index.cjs.js.map +1 -0
- package/dist/test/index.esm.js +2 -0
- package/dist/test/index.esm.js.map +1 -0
- package/dist/types/client/apollo-nextjs/client.d.ts +2 -0
- package/dist/types/client/apollo-nextjs/wrapper.d.ts +15 -0
- package/dist/types/client/test/index.d.ts +10 -0
- package/dist/types/server/index.d.ts +25 -0
- package/dist/types/server/is-protected.d.ts +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../node_modules/graphql/jsutils/devAssert.mjs","../../node_modules/graphql/language/ast.mjs","../../node_modules/graphql/language/kinds.mjs","../../node_modules/graphql/language/characterClasses.mjs","../../node_modules/graphql/jsutils/inspect.mjs","../../node_modules/graphql/language/printString.mjs","../../node_modules/graphql/language/visitor.mjs","../../node_modules/graphql/language/printer.mjs","../../node_modules/graphql/language/blockString.mjs","../../node_modules/@apollo/client/utilities/internal/globals/maybe.js","../../node_modules/@apollo/client/utilities/internal/globals/global.js","../../node_modules/@apollo/client/version.js","../../node_modules/@apollo/client/utilities/internal/makeUniqueId.js","../../node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js","../../node_modules/@apollo/client/utilities/invariant/index.js","../../node_modules/@apollo/client/utilities/caching/sizes.js","../../node_modules/@apollo/client/utilities/internal/getOperationName.js","../../node_modules/@wry/trie/lib/index.js","../../node_modules/@wry/caches/lib/weak.js","../../node_modules/@apollo/client/utilities/internal/caches.js","../../node_modules/@apollo/client/utilities/internal/checkDocument.js","../../node_modules/@apollo/client/utilities/internal/memoize.js","../../node_modules/@apollo/client/utilities/internal/isNonNullObject.js","../../node_modules/@apollo/client/utilities/internal/DeepMerger.js","../../node_modules/@apollo/client/utilities/internal/mergeDeep.js","../../node_modules/@apollo/client/utilities/internal/mergeDeepArray.js","../../node_modules/@apollo/client/link/core/ApolloLink.js","../../node_modules/@apollo/client/link/utils/createOperation.js","../../node_modules/@apollo/client/utilities/internal/getOperationDefinition.js","../../node_modules/@apollo/client/link/context/index.js","../../node_modules/@apollo/client/errors/utils.js","../../node_modules/@apollo/client/errors/CombinedProtocolErrors.js","../../node_modules/@apollo/client/errors/UnconventionalError.js","../../node_modules/@apollo/client/errors/CombinedGraphQLErrors.js","../../node_modules/@apollo/client/errors/ServerError.js","../../node_modules/@apollo/client/errors/ServerParseError.js","../../node_modules/@apollo/client/errors/index.js","../../node_modules/@apollo/client/errors/isErrorLike.js","../../node_modules/@apollo/client/link/error/index.js","../../node_modules/@apollo/client/utilities/graphql/print.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/@apollo/client/utilities/policies/pagination.js","../../node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js","../../node_modules/@apollo/client/link/http/selectHttpOptionsAndBody.js","../../node_modules/extract-files/extractFiles.mjs","../../node_modules/is-plain-obj/index.js","../../node_modules/rxjs/dist/esm5/internal/util/isFunction.js","../../node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","../../node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","../../node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","../../node_modules/rxjs/dist/esm5/internal/Subscription.js","../../node_modules/rxjs/dist/esm5/internal/config.js","../../node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","../../node_modules/rxjs/dist/esm5/internal/util/noop.js","../../node_modules/rxjs/dist/esm5/internal/Subscriber.js","../../node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","../../node_modules/rxjs/dist/esm5/internal/symbol/observable.js","../../node_modules/rxjs/dist/esm5/internal/util/identity.js","../../node_modules/rxjs/dist/esm5/internal/Observable.js","../../node_modules/rxjs/dist/esm5/internal/util/errorContext.js","../../node_modules/rxjs/dist/esm5/internal/util/pipe.js","../../node_modules/apollo-upload-client/formDataAppendFile.mjs","../../node_modules/extract-files/isExtractableFile.mjs","../../node_modules/apollo-upload-client/UploadHttpLink.mjs","../../node_modules/@apollo/client/link/utils/filterOperationVariables.js","../../node_modules/@apollo/client/link/http/selectURI.js","../../node_modules/@apollo/client/link/http/rewriteURIForGET.js","../../src/src/client/apollo-nextjs/wrapper.tsx"],"sourcesContent":["export function devAssert(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport class Location {\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The Token at which this Node begins.\n */\n\n /**\n * The Token at which this Node ends.\n */\n\n /**\n * The Source document the AST represents.\n */\n constructor(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n }\n\n get [Symbol.toStringTag]() {\n return 'Location';\n }\n\n toJSON() {\n return {\n start: this.start,\n end: this.end,\n };\n }\n}\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport class Token {\n /**\n * The kind of Token.\n */\n\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The 1-indexed line number on which this Token appears.\n */\n\n /**\n * The 1-indexed column number at which this Token begins.\n */\n\n /**\n * For non-punctuation tokens, represents the interpreted value of the token.\n *\n * Note: is undefined for punctuation tokens, but typed as string for\n * convenience in the parser.\n */\n\n /**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. <SOF> is always the first node and <EOF>\n * the last.\n */\n constructor(kind, start, end, line, column, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n this.value = value;\n this.prev = null;\n this.next = null;\n }\n\n get [Symbol.toStringTag]() {\n return 'Token';\n }\n\n toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column,\n };\n }\n}\n/**\n * The list of all possible AST node types.\n */\n\n/**\n * @internal\n */\nexport const QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: [\n 'description',\n 'name',\n 'variableDefinitions',\n 'directives',\n 'selectionSet',\n ],\n VariableDefinition: [\n 'description',\n 'variable',\n 'type',\n 'defaultValue',\n 'directives',\n ],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: [\n 'description',\n 'name', // Note: fragment variable definitions are deprecated and will removed in v17.0.0\n 'variableDefinitions',\n 'typeCondition',\n 'directives',\n 'selectionSet',\n ],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: [\n 'description',\n 'name',\n 'type',\n 'defaultValue',\n 'directives',\n ],\n InterfaceTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields'],\n TypeCoordinate: ['name'],\n MemberCoordinate: ['name', 'memberName'],\n ArgumentCoordinate: ['name', 'fieldName', 'argumentName'],\n DirectiveCoordinate: ['name'],\n DirectiveArgumentCoordinate: ['name', 'argumentName'],\n};\nconst kindValues = new Set(Object.keys(QueryDocumentKeys));\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n const maybeKind =\n maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind;\n return typeof maybeKind === 'string' && kindValues.has(maybeKind);\n}\n/** Name */\n\nvar OperationTypeNode;\n\n(function (OperationTypeNode) {\n OperationTypeNode['QUERY'] = 'query';\n OperationTypeNode['MUTATION'] = 'mutation';\n OperationTypeNode['SUBSCRIPTION'] = 'subscription';\n})(OperationTypeNode || (OperationTypeNode = {}));\n\nexport { OperationTypeNode };\n","/**\n * The set of allowed kind values for AST nodes.\n */\nvar Kind;\n\n(function (Kind) {\n Kind['NAME'] = 'Name';\n Kind['DOCUMENT'] = 'Document';\n Kind['OPERATION_DEFINITION'] = 'OperationDefinition';\n Kind['VARIABLE_DEFINITION'] = 'VariableDefinition';\n Kind['SELECTION_SET'] = 'SelectionSet';\n Kind['FIELD'] = 'Field';\n Kind['ARGUMENT'] = 'Argument';\n Kind['FRAGMENT_SPREAD'] = 'FragmentSpread';\n Kind['INLINE_FRAGMENT'] = 'InlineFragment';\n Kind['FRAGMENT_DEFINITION'] = 'FragmentDefinition';\n Kind['VARIABLE'] = 'Variable';\n Kind['INT'] = 'IntValue';\n Kind['FLOAT'] = 'FloatValue';\n Kind['STRING'] = 'StringValue';\n Kind['BOOLEAN'] = 'BooleanValue';\n Kind['NULL'] = 'NullValue';\n Kind['ENUM'] = 'EnumValue';\n Kind['LIST'] = 'ListValue';\n Kind['OBJECT'] = 'ObjectValue';\n Kind['OBJECT_FIELD'] = 'ObjectField';\n Kind['DIRECTIVE'] = 'Directive';\n Kind['NAMED_TYPE'] = 'NamedType';\n Kind['LIST_TYPE'] = 'ListType';\n Kind['NON_NULL_TYPE'] = 'NonNullType';\n Kind['SCHEMA_DEFINITION'] = 'SchemaDefinition';\n Kind['OPERATION_TYPE_DEFINITION'] = 'OperationTypeDefinition';\n Kind['SCALAR_TYPE_DEFINITION'] = 'ScalarTypeDefinition';\n Kind['OBJECT_TYPE_DEFINITION'] = 'ObjectTypeDefinition';\n Kind['FIELD_DEFINITION'] = 'FieldDefinition';\n Kind['INPUT_VALUE_DEFINITION'] = 'InputValueDefinition';\n Kind['INTERFACE_TYPE_DEFINITION'] = 'InterfaceTypeDefinition';\n Kind['UNION_TYPE_DEFINITION'] = 'UnionTypeDefinition';\n Kind['ENUM_TYPE_DEFINITION'] = 'EnumTypeDefinition';\n Kind['ENUM_VALUE_DEFINITION'] = 'EnumValueDefinition';\n Kind['INPUT_OBJECT_TYPE_DEFINITION'] = 'InputObjectTypeDefinition';\n Kind['DIRECTIVE_DEFINITION'] = 'DirectiveDefinition';\n Kind['SCHEMA_EXTENSION'] = 'SchemaExtension';\n Kind['SCALAR_TYPE_EXTENSION'] = 'ScalarTypeExtension';\n Kind['OBJECT_TYPE_EXTENSION'] = 'ObjectTypeExtension';\n Kind['INTERFACE_TYPE_EXTENSION'] = 'InterfaceTypeExtension';\n Kind['UNION_TYPE_EXTENSION'] = 'UnionTypeExtension';\n Kind['ENUM_TYPE_EXTENSION'] = 'EnumTypeExtension';\n Kind['INPUT_OBJECT_TYPE_EXTENSION'] = 'InputObjectTypeExtension';\n Kind['TYPE_COORDINATE'] = 'TypeCoordinate';\n Kind['MEMBER_COORDINATE'] = 'MemberCoordinate';\n Kind['ARGUMENT_COORDINATE'] = 'ArgumentCoordinate';\n Kind['DIRECTIVE_COORDINATE'] = 'DirectiveCoordinate';\n Kind['DIRECTIVE_ARGUMENT_COORDINATE'] = 'DirectiveArgumentCoordinate';\n})(Kind || (Kind = {}));\n\nexport { Kind };\n/**\n * The enum type representing the possible kind values of AST nodes.\n *\n * @deprecated Please use `Kind`. Will be remove in v17.\n */\n","/**\n * ```\n * WhiteSpace ::\n * - \"Horizontal Tab (U+0009)\"\n * - \"Space (U+0020)\"\n * ```\n * @internal\n */\nexport function isWhiteSpace(code) {\n return code === 0x0009 || code === 0x0020;\n}\n/**\n * ```\n * Digit :: one of\n * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * ```\n * @internal\n */\n\nexport function isDigit(code) {\n return code >= 0x0030 && code <= 0x0039;\n}\n/**\n * ```\n * Letter :: one of\n * - `A` `B` `C` `D` `E` `F` `G` `H` `I` `J` `K` `L` `M`\n * - `N` `O` `P` `Q` `R` `S` `T` `U` `V` `W` `X` `Y` `Z`\n * - `a` `b` `c` `d` `e` `f` `g` `h` `i` `j` `k` `l` `m`\n * - `n` `o` `p` `q` `r` `s` `t` `u` `v` `w` `x` `y` `z`\n * ```\n * @internal\n */\n\nexport function isLetter(code) {\n return (\n (code >= 0x0061 && code <= 0x007a) || // A-Z\n (code >= 0x0041 && code <= 0x005a) // a-z\n );\n}\n/**\n * ```\n * NameStart ::\n * - Letter\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameStart(code) {\n return isLetter(code) || code === 0x005f;\n}\n/**\n * ```\n * NameContinue ::\n * - Letter\n * - Digit\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameContinue(code) {\n return isLetter(code) || isDigit(code) || code === 0x005f;\n}\n","const MAX_ARRAY_LENGTH = 10;\nconst MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (typeof value) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? `[function ${value.name}]` : '[function]';\n\n case 'object':\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (value === null) {\n return 'null';\n }\n\n if (previouslySeenValues.includes(value)) {\n return '[Circular]';\n }\n\n const seenValues = [...previouslySeenValues, value];\n\n if (isJSONable(value)) {\n const jsonValue = value.toJSON(); // check for infinite recursion\n\n if (jsonValue !== value) {\n return typeof jsonValue === 'string'\n ? jsonValue\n : formatValue(jsonValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction isJSONable(value) {\n return typeof value.toJSON === 'function';\n}\n\nfunction formatObject(object, seenValues) {\n const entries = Object.entries(object);\n\n if (entries.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n const properties = entries.map(\n ([key, value]) => key + ': ' + formatValue(value, seenValues),\n );\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n const len = Math.min(MAX_ARRAY_LENGTH, array.length);\n const remaining = array.length - len;\n const items = [];\n\n for (let i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(`... ${remaining} more items`);\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getObjectTag(object) {\n const tag = Object.prototype.toString\n .call(object)\n .replace(/^\\[object /, '')\n .replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n const name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","/**\n * Prints a string as a GraphQL StringValue literal. Replaces control characters\n * and excluded characters (\" U+0022 and \\\\ U+005C) with escape sequences.\n */\nexport function printString(str) {\n return `\"${str.replace(escapedRegExp, escapedReplacer)}\"`;\n} // eslint-disable-next-line no-control-regex\n\nconst escapedRegExp = /[\\x00-\\x1f\\x22\\x5c\\x7f-\\x9f]/g;\n\nfunction escapedReplacer(str) {\n return escapeSequences[str.charCodeAt(0)];\n} // prettier-ignore\n\nconst escapeSequences = [\n '\\\\u0000',\n '\\\\u0001',\n '\\\\u0002',\n '\\\\u0003',\n '\\\\u0004',\n '\\\\u0005',\n '\\\\u0006',\n '\\\\u0007',\n '\\\\b',\n '\\\\t',\n '\\\\n',\n '\\\\u000B',\n '\\\\f',\n '\\\\r',\n '\\\\u000E',\n '\\\\u000F',\n '\\\\u0010',\n '\\\\u0011',\n '\\\\u0012',\n '\\\\u0013',\n '\\\\u0014',\n '\\\\u0015',\n '\\\\u0016',\n '\\\\u0017',\n '\\\\u0018',\n '\\\\u0019',\n '\\\\u001A',\n '\\\\u001B',\n '\\\\u001C',\n '\\\\u001D',\n '\\\\u001E',\n '\\\\u001F',\n '',\n '',\n '\\\\\"',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 2F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 3F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 4F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\\\\\',\n '',\n '',\n '', // 5F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 6F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\u007F',\n '\\\\u0080',\n '\\\\u0081',\n '\\\\u0082',\n '\\\\u0083',\n '\\\\u0084',\n '\\\\u0085',\n '\\\\u0086',\n '\\\\u0087',\n '\\\\u0088',\n '\\\\u0089',\n '\\\\u008A',\n '\\\\u008B',\n '\\\\u008C',\n '\\\\u008D',\n '\\\\u008E',\n '\\\\u008F',\n '\\\\u0090',\n '\\\\u0091',\n '\\\\u0092',\n '\\\\u0093',\n '\\\\u0094',\n '\\\\u0095',\n '\\\\u0096',\n '\\\\u0097',\n '\\\\u0098',\n '\\\\u0099',\n '\\\\u009A',\n '\\\\u009B',\n '\\\\u009C',\n '\\\\u009D',\n '\\\\u009E',\n '\\\\u009F',\n];\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { isNode, QueryDocumentKeys } from './ast.mjs';\nimport { Kind } from './kinds.mjs';\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport const BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * ```ts\n * const editedAST = visit(ast, {\n * enter(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: skip visiting this node\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * },\n * leave(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: no action\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * }\n * });\n * ```\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to three permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n * ```\n *\n * 2) Named visitors that trigger upon entering and leaving a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n * Kind: {\n * enter(node) {\n * // enter the \"Kind\" node\n * }\n * leave(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n * ```\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * ```ts\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n * ```\n */\n\nexport function visit(root, visitor, visitorKeys = QueryDocumentKeys) {\n const enterLeaveMap = new Map();\n\n for (const kind of Object.values(Kind)) {\n enterLeaveMap.set(kind, getEnterLeaveForKind(visitor, kind));\n }\n /* eslint-disable no-undef-init */\n\n let stack = undefined;\n let inArray = Array.isArray(root);\n let keys = [root];\n let index = -1;\n let edits = [];\n let node = root;\n let key = undefined;\n let parent = undefined;\n const path = [];\n const ancestors = [];\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n const isLeaving = index === keys.length;\n const isEdited = isLeaving && edits.length !== 0;\n\n if (isLeaving) {\n key = ancestors.length === 0 ? undefined : path[path.length - 1];\n node = parent;\n parent = ancestors.pop();\n\n if (isEdited) {\n if (inArray) {\n node = node.slice();\n let editOffset = 0;\n\n for (const [editKey, editValue] of edits) {\n const arrayKey = editKey - editOffset;\n\n if (editValue === null) {\n node.splice(arrayKey, 1);\n editOffset++;\n } else {\n node[arrayKey] = editValue;\n }\n }\n } else {\n node = { ...node };\n\n for (const [editKey, editValue] of edits) {\n node[editKey] = editValue;\n }\n }\n }\n\n index = stack.index;\n keys = stack.keys;\n edits = stack.edits;\n inArray = stack.inArray;\n stack = stack.prev;\n } else if (parent) {\n key = inArray ? index : keys[index];\n node = parent[key];\n\n if (node === null || node === undefined) {\n continue;\n }\n\n path.push(key);\n }\n\n let result;\n\n if (!Array.isArray(node)) {\n var _enterLeaveMap$get, _enterLeaveMap$get2;\n\n isNode(node) || devAssert(false, `Invalid AST Node: ${inspect(node)}.`);\n const visitFn = isLeaving\n ? (_enterLeaveMap$get = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get === void 0\n ? void 0\n : _enterLeaveMap$get.leave\n : (_enterLeaveMap$get2 = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get2 === void 0\n ? void 0\n : _enterLeaveMap$get2.enter;\n result =\n visitFn === null || visitFn === void 0\n ? void 0\n : visitFn.call(visitor, node, key, parent, path, ancestors);\n\n if (result === BREAK) {\n break;\n }\n\n if (result === false) {\n if (!isLeaving) {\n path.pop();\n continue;\n }\n } else if (result !== undefined) {\n edits.push([key, result]);\n\n if (!isLeaving) {\n if (isNode(result)) {\n node = result;\n } else {\n path.pop();\n continue;\n }\n }\n }\n }\n\n if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _node$kind;\n\n stack = {\n inArray,\n index,\n keys,\n edits,\n prev: stack,\n };\n inArray = Array.isArray(node);\n keys = inArray\n ? node\n : (_node$kind = visitorKeys[node.kind]) !== null &&\n _node$kind !== void 0\n ? _node$kind\n : [];\n index = -1;\n edits = [];\n\n if (parent) {\n ancestors.push(parent);\n }\n\n parent = node;\n }\n } while (stack !== undefined);\n\n if (edits.length !== 0) {\n // New root\n return edits[edits.length - 1][1];\n }\n\n return root;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n const skipping = new Array(visitors.length).fill(null);\n const mergedVisitor = Object.create(null);\n\n for (const kind of Object.values(Kind)) {\n let hasVisitor = false;\n const enterList = new Array(visitors.length).fill(undefined);\n const leaveList = new Array(visitors.length).fill(undefined);\n\n for (let i = 0; i < visitors.length; ++i) {\n const { enter, leave } = getEnterLeaveForKind(visitors[i], kind);\n hasVisitor || (hasVisitor = enter != null || leave != null);\n enterList[i] = enter;\n leaveList[i] = leave;\n }\n\n if (!hasVisitor) {\n continue;\n }\n\n const mergedEnterLeave = {\n enter(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _enterList$i;\n\n const result =\n (_enterList$i = enterList[i]) === null || _enterList$i === void 0\n ? void 0\n : _enterList$i.apply(visitors[i], args);\n\n if (result === false) {\n skipping[i] = node;\n } else if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined) {\n return result;\n }\n }\n }\n },\n\n leave(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _leaveList$i;\n\n const result =\n (_leaveList$i = leaveList[i]) === null || _leaveList$i === void 0\n ? void 0\n : _leaveList$i.apply(visitors[i], args);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n },\n };\n mergedVisitor[kind] = mergedEnterLeave;\n }\n\n return mergedVisitor;\n}\n/**\n * Given a visitor instance and a node kind, return EnterLeaveVisitor for that kind.\n */\n\nexport function getEnterLeaveForKind(visitor, kind) {\n const kindVisitor = visitor[kind];\n\n if (typeof kindVisitor === 'object') {\n // { Kind: { enter() {}, leave() {} } }\n return kindVisitor;\n } else if (typeof kindVisitor === 'function') {\n // { Kind() {} }\n return {\n enter: kindVisitor,\n leave: undefined,\n };\n } // { enter() {}, leave() {} }\n\n return {\n enter: visitor.enter,\n leave: visitor.leave,\n };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n *\n * @deprecated Please use `getEnterLeaveForKind` instead. Will be removed in v17\n */\n\n/* c8 ignore next 8 */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n const { enter, leave } = getEnterLeaveForKind(visitor, kind);\n return isLeaving ? leave : enter;\n}\n","import { printBlockString } from './blockString.mjs';\nimport { printString } from './printString.mjs';\nimport { visit } from './visitor.mjs';\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n return visit(ast, printDocASTReducer);\n}\nconst MAX_LINE_LENGTH = 80;\nconst printDocASTReducer = {\n Name: {\n leave: (node) => node.value,\n },\n Variable: {\n leave: (node) => '$' + node.name,\n },\n // Document\n Document: {\n leave: (node) => join(node.definitions, '\\n\\n'),\n },\n OperationDefinition: {\n leave(node) {\n const varDefs = hasMultilineItems(node.variableDefinitions)\n ? wrap('(\\n', join(node.variableDefinitions, '\\n'), '\\n)')\n : wrap('(', join(node.variableDefinitions, ', '), ')');\n const prefix =\n wrap('', node.description, '\\n') +\n join(\n [\n node.operation,\n join([node.name, varDefs]),\n join(node.directives, ' '),\n ],\n ' ',\n ); // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return (prefix === 'query' ? '' : prefix + ' ') + node.selectionSet;\n },\n },\n VariableDefinition: {\n leave: ({ variable, type, defaultValue, directives, description }) =>\n wrap('', description, '\\n') +\n variable +\n ': ' +\n type +\n wrap(' = ', defaultValue) +\n wrap(' ', join(directives, ' ')),\n },\n SelectionSet: {\n leave: ({ selections }) => block(selections),\n },\n Field: {\n leave({ alias, name, arguments: args, directives, selectionSet }) {\n const prefix = wrap('', alias, ': ') + name;\n let argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n if (argsLine.length > MAX_LINE_LENGTH) {\n argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n }\n\n return join([argsLine, join(directives, ' '), selectionSet], ' ');\n },\n },\n Argument: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Fragments\n FragmentSpread: {\n leave: ({ name, directives }) =>\n '...' + name + wrap(' ', join(directives, ' ')),\n },\n InlineFragment: {\n leave: ({ typeCondition, directives, selectionSet }) =>\n join(\n [\n '...',\n wrap('on ', typeCondition),\n join(directives, ' '),\n selectionSet,\n ],\n ' ',\n ),\n },\n FragmentDefinition: {\n leave: ({\n name,\n typeCondition,\n variableDefinitions,\n directives,\n selectionSet,\n description,\n }) =>\n wrap('', description, '\\n') + // Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n `fragment ${name}${wrap('(', join(variableDefinitions, ', '), ')')} ` +\n `on ${typeCondition} ${wrap('', join(directives, ' '), ' ')}` +\n selectionSet,\n },\n // Value\n IntValue: {\n leave: ({ value }) => value,\n },\n FloatValue: {\n leave: ({ value }) => value,\n },\n StringValue: {\n leave: ({ value, block: isBlockString }) =>\n isBlockString ? printBlockString(value) : printString(value),\n },\n BooleanValue: {\n leave: ({ value }) => (value ? 'true' : 'false'),\n },\n NullValue: {\n leave: () => 'null',\n },\n EnumValue: {\n leave: ({ value }) => value,\n },\n ListValue: {\n leave: ({ values }) => '[' + join(values, ', ') + ']',\n },\n ObjectValue: {\n leave: ({ fields }) => '{' + join(fields, ', ') + '}',\n },\n ObjectField: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Directive\n Directive: {\n leave: ({ name, arguments: args }) =>\n '@' + name + wrap('(', join(args, ', '), ')'),\n },\n // Type\n NamedType: {\n leave: ({ name }) => name,\n },\n ListType: {\n leave: ({ type }) => '[' + type + ']',\n },\n NonNullType: {\n leave: ({ type }) => type + '!',\n },\n // Type System Definitions\n SchemaDefinition: {\n leave: ({ description, directives, operationTypes }) =>\n wrap('', description, '\\n') +\n join(['schema', join(directives, ' '), block(operationTypes)], ' '),\n },\n OperationTypeDefinition: {\n leave: ({ operation, type }) => operation + ': ' + type,\n },\n ScalarTypeDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') +\n join(['scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n FieldDefinition: {\n leave: ({ description, name, arguments: args, type, directives }) =>\n wrap('', description, '\\n') +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n ': ' +\n type +\n wrap(' ', join(directives, ' ')),\n },\n InputValueDefinition: {\n leave: ({ description, name, type, defaultValue, directives }) =>\n wrap('', description, '\\n') +\n join(\n [name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')],\n ' ',\n ),\n },\n InterfaceTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeDefinition: {\n leave: ({ description, name, directives, types }) =>\n wrap('', description, '\\n') +\n join(\n ['union', name, join(directives, ' '), wrap('= ', join(types, ' | '))],\n ' ',\n ),\n },\n EnumTypeDefinition: {\n leave: ({ description, name, directives, values }) =>\n wrap('', description, '\\n') +\n join(['enum', name, join(directives, ' '), block(values)], ' '),\n },\n EnumValueDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') + join([name, join(directives, ' ')], ' '),\n },\n InputObjectTypeDefinition: {\n leave: ({ description, name, directives, fields }) =>\n wrap('', description, '\\n') +\n join(['input', name, join(directives, ' '), block(fields)], ' '),\n },\n DirectiveDefinition: {\n leave: ({ description, name, arguments: args, repeatable, locations }) =>\n wrap('', description, '\\n') +\n 'directive @' +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n (repeatable ? ' repeatable' : '') +\n ' on ' +\n join(locations, ' | '),\n },\n SchemaExtension: {\n leave: ({ directives, operationTypes }) =>\n join(\n ['extend schema', join(directives, ' '), block(operationTypes)],\n ' ',\n ),\n },\n ScalarTypeExtension: {\n leave: ({ name, directives }) =>\n join(['extend scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n InterfaceTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeExtension: {\n leave: ({ name, directives, types }) =>\n join(\n [\n 'extend union',\n name,\n join(directives, ' '),\n wrap('= ', join(types, ' | ')),\n ],\n ' ',\n ),\n },\n EnumTypeExtension: {\n leave: ({ name, directives, values }) =>\n join(['extend enum', name, join(directives, ' '), block(values)], ' '),\n },\n InputObjectTypeExtension: {\n leave: ({ name, directives, fields }) =>\n join(['extend input', name, join(directives, ' '), block(fields)], ' '),\n },\n // Schema Coordinates\n TypeCoordinate: {\n leave: ({ name }) => name,\n },\n MemberCoordinate: {\n leave: ({ name, memberName }) => join([name, wrap('.', memberName)]),\n },\n ArgumentCoordinate: {\n leave: ({ name, fieldName, argumentName }) =>\n join([name, wrap('.', fieldName), wrap('(', argumentName, ':)')]),\n },\n DirectiveCoordinate: {\n leave: ({ name }) => join(['@', name]),\n },\n DirectiveArgumentCoordinate: {\n leave: ({ name, argumentName }) =>\n join(['@', name, wrap('(', argumentName, ':)')]),\n },\n};\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\nfunction join(maybeArray, separator = '') {\n var _maybeArray$filter$jo;\n\n return (_maybeArray$filter$jo =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.filter((x) => x).join(separator)) !== null &&\n _maybeArray$filter$jo !== void 0\n ? _maybeArray$filter$jo\n : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an indented `{ }` block.\n */\n\nfunction block(array) {\n return wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.\n */\n\nfunction wrap(start, maybeString, end = '') {\n return maybeString != null && maybeString !== ''\n ? start + maybeString + end\n : '';\n}\n\nfunction indent(str) {\n return wrap(' ', str.replace(/\\n/g, '\\n '));\n}\n\nfunction hasMultilineItems(maybeArray) {\n var _maybeArray$some;\n\n // FIXME: https://github.com/graphql/graphql-js/issues/2203\n\n /* c8 ignore next */\n return (_maybeArray$some =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.some((str) => str.includes('\\n'))) !== null &&\n _maybeArray$some !== void 0\n ? _maybeArray$some\n : false;\n}\n","import { isWhiteSpace } from './characterClasses.mjs';\n/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\n\nexport function dedentBlockStringLines(lines) {\n var _firstNonEmptyLine2;\n\n let commonIndent = Number.MAX_SAFE_INTEGER;\n let firstNonEmptyLine = null;\n let lastNonEmptyLine = -1;\n\n for (let i = 0; i < lines.length; ++i) {\n var _firstNonEmptyLine;\n\n const line = lines[i];\n const indent = leadingWhitespace(line);\n\n if (indent === line.length) {\n continue; // skip empty lines\n }\n\n firstNonEmptyLine =\n (_firstNonEmptyLine = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine !== void 0\n ? _firstNonEmptyLine\n : i;\n lastNonEmptyLine = i;\n\n if (i !== 0 && indent < commonIndent) {\n commonIndent = indent;\n }\n }\n\n return lines // Remove common indentation from all lines but first.\n .map((line, i) => (i === 0 ? line : line.slice(commonIndent))) // Remove leading and trailing blank lines.\n .slice(\n (_firstNonEmptyLine2 = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine2 !== void 0\n ? _firstNonEmptyLine2\n : 0,\n lastNonEmptyLine + 1,\n );\n}\n\nfunction leadingWhitespace(str) {\n let i = 0;\n\n while (i < str.length && isWhiteSpace(str.charCodeAt(i))) {\n ++i;\n }\n\n return i;\n}\n/**\n * @internal\n */\n\nexport function isPrintableAsBlockString(value) {\n if (value === '') {\n return true; // empty string is printable\n }\n\n let isEmptyLine = true;\n let hasIndent = false;\n let hasCommonIndent = true;\n let seenNonEmptyLine = false;\n\n for (let i = 0; i < value.length; ++i) {\n switch (value.codePointAt(i)) {\n case 0x0000:\n case 0x0001:\n case 0x0002:\n case 0x0003:\n case 0x0004:\n case 0x0005:\n case 0x0006:\n case 0x0007:\n case 0x0008:\n case 0x000b:\n case 0x000c:\n case 0x000e:\n case 0x000f:\n return false;\n // Has non-printable characters\n\n case 0x000d:\n // \\r\n return false;\n // Has \\r or \\r\\n which will be replaced as \\n\n\n case 10:\n // \\n\n if (isEmptyLine && !seenNonEmptyLine) {\n return false; // Has leading new line\n }\n\n seenNonEmptyLine = true;\n isEmptyLine = true;\n hasIndent = false;\n break;\n\n case 9: // \\t\n\n case 32:\n // <space>\n hasIndent || (hasIndent = isEmptyLine);\n break;\n\n default:\n hasCommonIndent && (hasCommonIndent = hasIndent);\n isEmptyLine = false;\n }\n }\n\n if (isEmptyLine) {\n return false; // Has trailing empty lines\n }\n\n if (hasCommonIndent && seenNonEmptyLine) {\n return false; // Has internal indent\n }\n\n return true;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value, options) {\n const escapedValue = value.replace(/\"\"\"/g, '\\\\\"\"\"'); // Expand a block string's raw value into independent lines.\n\n const lines = escapedValue.split(/\\r\\n|[\\n\\r]/g);\n const isSingleLine = lines.length === 1; // If common indentation is found we can fix some of those cases by adding leading new line\n\n const forceLeadingNewLine =\n lines.length > 1 &&\n lines\n .slice(1)\n .every((line) => line.length === 0 || isWhiteSpace(line.charCodeAt(0))); // Trailing triple quotes just looks confusing but doesn't force trailing new line\n\n const hasTrailingTripleQuotes = escapedValue.endsWith('\\\\\"\"\"'); // Trailing quote (single or double) or slash forces trailing new line\n\n const hasTrailingQuote = value.endsWith('\"') && !hasTrailingTripleQuotes;\n const hasTrailingSlash = value.endsWith('\\\\');\n const forceTrailingNewline = hasTrailingQuote || hasTrailingSlash;\n const printAsMultipleLines =\n !(options !== null && options !== void 0 && options.minimize) && // add leading and trailing new lines only if it improves readability\n (!isSingleLine ||\n value.length > 70 ||\n forceTrailingNewline ||\n forceLeadingNewLine ||\n hasTrailingTripleQuotes);\n let result = ''; // Format a multi-line block quote to account for leading space.\n\n const skipLeadingNewLine = isSingleLine && isWhiteSpace(value.charCodeAt(0));\n\n if ((printAsMultipleLines && !skipLeadingNewLine) || forceLeadingNewLine) {\n result += '\\n';\n }\n\n result += escapedValue;\n\n if (printAsMultipleLines || forceTrailingNewline) {\n result += '\\n';\n }\n\n return '\"\"\"' + result + '\"\"\"';\n}\n","export function maybe(thunk) {\n try {\n return thunk();\n }\n catch { }\n}\n//# sourceMappingURL=maybe.js.map","import { maybe } from \"./maybe.js\";\nexport default (// We don't expect the Function constructor ever to be invoked at runtime, as\n// long as at least one of globalThis, window, self, or global is defined, so\n// we are under no obligation to make it easy for static analysis tools to\n// detect syntactic usage of the Function constructor. If you think you can\nmaybe(() => globalThis) ||\n maybe(() => window) ||\n maybe(() => self) ||\n maybe(() => global) || // improve your static analysis to detect this obfuscation, think again. This\n// is an arms race you cannot win, at least not in JavaScript.\nmaybe(function () {\n return maybe.constructor(\"return this\")();\n}));\n//# sourceMappingURL=global.js.map\n","export const version = \"4.1.6\";\nexport const build = \"esm\";\n//# sourceMappingURL=version.js.map\n","const prefixCounts = new Map();\n/**\n* These IDs won't be globally unique, but they will be unique within this\n* process, thanks to the counter, and unguessable thanks to the random suffix.\n*\n* @internal\n* \n* @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.\n*/\nexport function makeUniqueId(prefix) {\n const count = prefixCounts.get(prefix) || 1;\n prefixCounts.set(prefix, count + 1);\n return `${prefix}:${count}:${Math.random().toString(36).slice(2)}`;\n}\n//# sourceMappingURL=makeUniqueId.js.map\n","import { makeUniqueId } from \"./makeUniqueId.js\";\n/**\n* @internal\n* \n* @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.\n*/\nexport function stringifyForDisplay(value, space = 0) {\n const undefId = makeUniqueId(\"stringifyForDisplay\");\n return JSON.stringify(value, (_, value) => {\n return value === void 0 ? undefId : value;\n }, space)\n .split(JSON.stringify(undefId))\n .join(\"<undefined>\");\n}\n//# sourceMappingURL=stringifyForDisplay.js.map\n","import { __DEV__ } from \"@apollo/client/utilities/environment\";\nimport { global } from \"@apollo/client/utilities/internal/globals\";\nimport { version } from \"../../version.js\";\n// eslint-disable-next-line local-rules/import-from-inside-other-export\nimport { stringifyForDisplay } from \"../internal/stringifyForDisplay.js\";\nconst genericMessage = \"Invariant Violation\";\nexport class InvariantError extends Error {\n constructor(message = genericMessage) {\n super(message);\n this.name = genericMessage;\n Object.setPrototypeOf(this, InvariantError.prototype);\n }\n}\nconst verbosityLevels = [\"debug\", \"log\", \"warn\", \"error\", \"silent\"];\nlet verbosityLevel = verbosityLevels.indexOf(__DEV__ ? \"log\" : \"silent\");\nexport function invariant(condition, ...args) {\n if (!condition) {\n throw newInvariantError(...args);\n }\n}\nfunction wrapConsoleMethod(name) {\n return function (message, ...args) {\n if (verbosityLevels.indexOf(name) >= verbosityLevel) {\n // Default to console.log if this host environment happens not to provide\n // all the console.* methods we need.\n const method = console[name] || console.log;\n if (typeof message === \"number\") {\n const arg0 = message;\n message = getHandledErrorMsg(arg0);\n if (!message) {\n message = getFallbackErrorMsg(arg0, args);\n args = [];\n }\n }\n method(message, ...args);\n }\n };\n}\ninvariant.debug = wrapConsoleMethod(\"debug\");\ninvariant.log = wrapConsoleMethod(\"log\");\ninvariant.warn = wrapConsoleMethod(\"warn\");\ninvariant.error = wrapConsoleMethod(\"error\");\nexport function setVerbosity(level) {\n const old = verbosityLevels[verbosityLevel];\n verbosityLevel = Math.max(0, verbosityLevels.indexOf(level));\n return old;\n}\n/**\n * Returns an InvariantError.\n *\n * `message` can only be a string, a concatenation of strings, or a ternary statement\n * that results in a string. This will be enforced on build, where the message will\n * be replaced with a message number.\n * String substitutions with %s are supported and will also return\n * pretty-stringified objects.\n * Excess `optionalParams` will be swallowed.\n */\nexport function newInvariantError(message, ...optionalParams) {\n return new InvariantError(getHandledErrorMsg(message, optionalParams) ||\n getFallbackErrorMsg(message, optionalParams));\n}\n// This is duplicated between `@apollo/client/dev` and `@apollo/client/utilities/invariant` to prevent circular references.\nexport const ApolloErrorMessageHandler = Symbol.for(\"ApolloErrorMessageHandler_\" + version);\nfunction stringify(arg) {\n if (typeof arg == \"string\") {\n return arg;\n }\n try {\n return stringifyForDisplay(arg, 2).slice(0, 1000);\n }\n catch {\n return \"<non-serializable>\";\n }\n}\nfunction getHandledErrorMsg(message, messageArgs = []) {\n if (!message)\n return;\n return (global[ApolloErrorMessageHandler] &&\n global[ApolloErrorMessageHandler](message, messageArgs.map(stringify)));\n}\nfunction getFallbackErrorMsg(message, messageArgs = []) {\n if (!message)\n return;\n if (typeof message === \"string\") {\n return messageArgs.reduce((msg, arg) => msg.replace(/%[sdfo]/, stringify(arg)), message);\n }\n return `An error occurred! For more details, see the full error text at https://go.apollo.dev/c/err#${encodeURIComponent(JSON.stringify({\n version,\n message,\n args: messageArgs.map(stringify),\n }))}`;\n}\n//# sourceMappingURL=index.js.map","import { global } from \"@apollo/client/utilities/internal/globals\";\nconst cacheSizeSymbol = Symbol.for(\"apollo.cacheSize\");\n/**\n * The global cache size configuration for Apollo Client.\n *\n * @remarks\n *\n * You can directly modify this object, but any modification will\n * only have an effect on caches that are created after the modification.\n *\n * So for global caches, such as `canonicalStringify` and `print`,\n * you might need to call `.reset` on them, which will essentially re-create them.\n *\n * Alternatively, you can set `globalThis[Symbol.for(\"apollo.cacheSize\")]` before\n * you load the Apollo Client package:\n *\n * @example\n *\n * ```ts\n * globalThis[Symbol.for(\"apollo.cacheSize\")] = {\n * print: 100,\n * } satisfies Partial<CacheSizes>; // the `satisfies` is optional if using TypeScript\n * ```\n */\nexport const cacheSizes = { ...global[cacheSizeSymbol] };\n//# sourceMappingURL=sizes.js.map","/**\n* @internal\n* \n* @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.\n*/\nexport function getOperationName(doc, fallback) {\n return (doc.definitions.find((definition) => definition.kind === \"OperationDefinition\" && !!definition.name)?.name.value ?? fallback);\n}\n//# sourceMappingURL=getOperationName.js.map\n","// A [trie](https://en.wikipedia.org/wiki/Trie) data structure that holds\n// object keys weakly, yet can also hold non-object keys, unlike the\n// native `WeakMap`.\n// If no makeData function is supplied, the looked-up data will be an empty,\n// null-prototype Object.\nconst defaultMakeData = () => Object.create(null);\n// Useful for processing arguments objects as well as arrays.\nconst { forEach, slice } = Array.prototype;\nconst { hasOwnProperty } = Object.prototype;\nexport class Trie {\n constructor(weakness = true, makeData = defaultMakeData) {\n this.weakness = weakness;\n this.makeData = makeData;\n }\n lookup() {\n return this.lookupArray(arguments);\n }\n lookupArray(array) {\n let node = this;\n forEach.call(array, key => node = node.getChildTrie(key));\n return hasOwnProperty.call(node, \"data\")\n ? node.data\n : node.data = this.makeData(slice.call(array));\n }\n peek() {\n return this.peekArray(arguments);\n }\n peekArray(array) {\n let node = this;\n for (let i = 0, len = array.length; node && i < len; ++i) {\n const map = node.mapFor(array[i], false);\n node = map && map.get(array[i]);\n }\n return node && node.data;\n }\n remove() {\n return this.removeArray(arguments);\n }\n removeArray(array) {\n let data;\n if (array.length) {\n const head = array[0];\n const map = this.mapFor(head, false);\n const child = map && map.get(head);\n if (child) {\n data = child.removeArray(slice.call(array, 1));\n if (!child.data && !child.weak && !(child.strong && child.strong.size)) {\n map.delete(head);\n }\n }\n }\n else {\n data = this.data;\n delete this.data;\n }\n return data;\n }\n getChildTrie(key) {\n const map = this.mapFor(key, true);\n let child = map.get(key);\n if (!child)\n map.set(key, child = new Trie(this.weakness, this.makeData));\n return child;\n }\n mapFor(key, create) {\n return this.weakness && isObjRef(key)\n ? this.weak || (create ? this.weak = new WeakMap : void 0)\n : this.strong || (create ? this.strong = new Map : void 0);\n }\n}\nfunction isObjRef(value) {\n switch (typeof value) {\n case \"object\":\n if (value === null)\n break;\n // Fall through to return true...\n case \"function\":\n return true;\n }\n return false;\n}\n//# sourceMappingURL=index.js.map","function noop() { }\nconst defaultDispose = noop;\nconst _WeakRef = typeof WeakRef !== \"undefined\"\n ? WeakRef\n : function (value) {\n return { deref: () => value };\n };\nconst _WeakMap = typeof WeakMap !== \"undefined\" ? WeakMap : Map;\nconst _FinalizationRegistry = typeof FinalizationRegistry !== \"undefined\"\n ? FinalizationRegistry\n : function () {\n return {\n register: noop,\n unregister: noop,\n };\n };\nconst finalizationBatchSize = 10024;\nexport class WeakCache {\n constructor(max = Infinity, dispose = defaultDispose) {\n this.max = max;\n this.dispose = dispose;\n this.map = new _WeakMap();\n this.newest = null;\n this.oldest = null;\n this.unfinalizedNodes = new Set();\n this.finalizationScheduled = false;\n this.size = 0;\n this.finalize = () => {\n const iterator = this.unfinalizedNodes.values();\n for (let i = 0; i < finalizationBatchSize; i++) {\n const node = iterator.next().value;\n if (!node)\n break;\n this.unfinalizedNodes.delete(node);\n const key = node.key;\n delete node.key;\n node.keyRef = new _WeakRef(key);\n this.registry.register(key, node, node);\n }\n if (this.unfinalizedNodes.size > 0) {\n queueMicrotask(this.finalize);\n }\n else {\n this.finalizationScheduled = false;\n }\n };\n this.registry = new _FinalizationRegistry(this.deleteNode.bind(this));\n }\n has(key) {\n return this.map.has(key);\n }\n get(key) {\n const node = this.getNode(key);\n return node && node.value;\n }\n getNode(key) {\n const node = this.map.get(key);\n if (node && node !== this.newest) {\n const { older, newer } = node;\n if (newer) {\n newer.older = older;\n }\n if (older) {\n older.newer = newer;\n }\n node.older = this.newest;\n node.older.newer = node;\n node.newer = null;\n this.newest = node;\n if (node === this.oldest) {\n this.oldest = newer;\n }\n }\n return node;\n }\n set(key, value) {\n let node = this.getNode(key);\n if (node) {\n return (node.value = value);\n }\n node = {\n key,\n value,\n newer: null,\n older: this.newest,\n };\n if (this.newest) {\n this.newest.newer = node;\n }\n this.newest = node;\n this.oldest = this.oldest || node;\n this.scheduleFinalization(node);\n this.map.set(key, node);\n this.size++;\n return node.value;\n }\n clean() {\n while (this.oldest && this.size > this.max) {\n this.deleteNode(this.oldest);\n }\n }\n deleteNode(node) {\n if (node === this.newest) {\n this.newest = node.older;\n }\n if (node === this.oldest) {\n this.oldest = node.newer;\n }\n if (node.newer) {\n node.newer.older = node.older;\n }\n if (node.older) {\n node.older.newer = node.newer;\n }\n this.size--;\n const key = node.key || (node.keyRef && node.keyRef.deref());\n this.dispose(node.value, key);\n if (!node.keyRef) {\n this.unfinalizedNodes.delete(node);\n }\n else {\n this.registry.unregister(node);\n }\n if (key)\n this.map.delete(key);\n }\n delete(key) {\n const node = this.map.get(key);\n if (node) {\n this.deleteNode(node);\n return true;\n }\n return false;\n }\n scheduleFinalization(node) {\n this.unfinalizedNodes.add(node);\n if (!this.finalizationScheduled) {\n this.finalizationScheduled = true;\n queueMicrotask(this.finalize);\n }\n }\n}\n//# sourceMappingURL=weak.js.map","import { StrongCache, WeakCache } from \"@wry/caches\";\nconst scheduledCleanup = new WeakSet();\nfunction schedule(cache) {\n if (cache.size <= (cache.max || -1)) {\n return;\n }\n if (!scheduledCleanup.has(cache)) {\n scheduledCleanup.add(cache);\n setTimeout(() => {\n cache.clean();\n scheduledCleanup.delete(cache);\n }, 100);\n }\n}\n/**\n* @internal\n* A version of WeakCache that will auto-schedule a cleanup of the cache when\n* a new item is added and the cache reached maximum size.\n* Throttled to once per 100ms.\n*\n* @privateRemarks\n* Should be used throughout the rest of the codebase instead of WeakCache,\n* with the notable exception of usage in `wrap` from `optimism` - that one\n* already handles cleanup and should remain a `WeakCache`.\n* \n* @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.\n*/\nexport const AutoCleanedWeakCache = function (max, dispose) {\n /*\n Some builds of `WeakCache` are function prototypes, some are classes.\n This library still builds with an ES5 target, so we can't extend the\n real classes.\n Instead, we have to use this workaround until we switch to a newer build\n target.\n */\n const cache = new WeakCache(max, dispose);\n cache.set = function (key, value) {\n const ret = WeakCache.prototype.set.call(this, key, value);\n schedule(this);\n return ret;\n };\n return cache;\n};\n/**\n* @internal\n* A version of StrongCache that will auto-schedule a cleanup of the cache when\n* a new item is added and the cache reached maximum size.\n* Throttled to once per 100ms.\n*\n* @privateRemarks\n* Should be used throughout the rest of the codebase instead of StrongCache,\n* with the notable exception of usage in `wrap` from `optimism` - that one\n* already handles cleanup and should remain a `StrongCache`.\n* \n* @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.\n*/\nexport const AutoCleanedStrongCache = function (max, dispose) {\n /*\n Some builds of `StrongCache` are function prototypes, some are classes.\n This library still builds with an ES5 target, so we can't extend the\n real classes.\n Instead, we have to use this workaround until we switch to a newer build\n target.\n */\n const cache = new StrongCache(max, dispose);\n cache.set = function (key, value) {\n const ret = StrongCache.prototype.set.call(this, key, value);\n schedule(this);\n return ret;\n };\n return cache;\n};\n//# sourceMappingURL=caches.js.map\n","// Checks the document for errors and throws an exception if there is an error.\nimport { Kind, visit } from \"graphql\";\nimport { __DEV__ } from \"@apollo/client/utilities/environment\";\nimport { invariant, newInvariantError, } from \"@apollo/client/utilities/invariant\";\nimport { cacheSizes } from \"../caching/sizes.js\";\nimport { getOperationName } from \"./getOperationName.js\";\nimport { memoize } from \"./memoize.js\";\n/**\n* Checks the document for errors and throws an exception if there is an error.\n*\n* @internal\n* \n* @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.\n*/\nexport const checkDocument = memoize((doc, expectedType) => {\n invariant(doc && doc.kind === \"Document\", 1);\n const operations = doc.definitions.filter((d) => d.kind === \"OperationDefinition\");\n if (__DEV__) {\n doc.definitions.forEach((definition) => {\n if (definition.kind !== \"OperationDefinition\" &&\n definition.kind !== \"FragmentDefinition\") {\n throw newInvariantError(2, definition.kind);\n }\n });\n invariant(operations.length <= 1, 3, operations.length);\n }\n if (expectedType) {\n invariant(\n operations.length == 1 && operations[0].operation === expectedType,\n 4,\n expectedType,\n expectedType,\n operations[0].operation\n );\n }\n visit(doc, {\n Field(field, _, __, path) {\n if (field.alias &&\n (field.alias.value === \"__typename\" ||\n field.alias.value.startsWith(\"__ac_\")) &&\n field.alias.value !== field.name.value) {\n // not using `invariant` so path calculation only happens in error case\n let current = doc, fieldPath = [];\n for (const key of path) {\n current = current[key];\n if (current.kind === Kind.FIELD) {\n fieldPath.push(current.alias?.value || current.name.value);\n }\n }\n fieldPath.splice(-1, 1, field.name.value);\n throw newInvariantError(\n 5,\n field.alias.value,\n fieldPath.join(\".\"),\n operations[0].operation,\n getOperationName(doc, \"(anonymous)\")\n );\n }\n },\n });\n}, {\n max: cacheSizes[\"checkDocument\"] || 2000 /* defaultCacheSizes[\"checkDocument\"] */,\n});\n//# sourceMappingURL=checkDocument.js.map\n","import { Trie } from \"@wry/trie\";\nimport { AutoCleanedWeakCache } from \"./caches.js\";\n/**\n * Naive alternative to `wrap` without any dependency tracking, potentially avoiding resulting memory leaks.\n */\nexport function memoize(fn, { max, makeCacheKey = (args) => args, }) {\n const keys = new Trie(true);\n const cache = new AutoCleanedWeakCache(max);\n return (...args) => {\n const cacheKey = keys.lookupArray(makeCacheKey(args));\n const cached = cache.get(cacheKey);\n if (cached) {\n if (cached.error) {\n throw cached.error;\n }\n return cached.result;\n }\n const entry = cache.set(cacheKey, {});\n try {\n return (entry.result = fn(...args));\n }\n catch (error) {\n entry.error = error;\n throw error;\n }\n };\n}\n//# sourceMappingURL=memoize.js.map","/**\n* @internal\n* \n* @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.\n*/\nexport function isNonNullObject(obj) {\n return obj !== null && typeof obj === \"object\";\n}\n//# sourceMappingURL=isNonNullObject.js.map\n","import { isNonNullObject } from \"./isNonNullObject.js\";\nconst { hasOwnProperty } = Object.prototype;\nconst defaultReconciler = function (target, source, property) {\n return this.merge(target[property], source[property]);\n};\nconst objForKey = (key) => {\n return isNaN(+key) ? {} : [];\n};\n/**\n* @internal\n* \n* @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.\n*/\nexport class DeepMerger {\n options;\n reconciler;\n constructor(options = {}) {\n this.options = options;\n this.reconciler = options.reconciler || defaultReconciler;\n }\n merge(target, source, mergeOptions = {}) {\n const atPath = mergeOptions.atPath;\n if (atPath?.length) {\n const [head, ...tail] = atPath;\n if (target === undefined) {\n target = objForKey(head);\n }\n let nestedTarget = target[head];\n if (nestedTarget === undefined && tail.length) {\n nestedTarget = objForKey(tail[0]);\n }\n const nestedSource = this.merge(nestedTarget, source, {\n ...mergeOptions,\n atPath: tail,\n });\n if (nestedTarget !== nestedSource) {\n target = this.shallowCopyForMerge(target);\n target[head] = nestedSource;\n }\n return target;\n }\n if (Array.isArray(target) &&\n Array.isArray(source) &&\n this.options.arrayMerge === \"truncate\" &&\n target.length > source.length) {\n target = target.slice(0, source.length);\n this.pastCopies.add(target);\n }\n if (isNonNullObject(source) && isNonNullObject(target)) {\n Object.keys(source).forEach((sourceKey) => {\n if (hasOwnProperty.call(target, sourceKey)) {\n const targetValue = target[sourceKey];\n if (source[sourceKey] !== targetValue) {\n const result = this.reconciler(target, source, sourceKey);\n // A well-implemented reconciler may return targetValue to indicate\n // the merge changed nothing about the structure of the target.\n if (result !== targetValue) {\n target = this.shallowCopyForMerge(target);\n target[sourceKey] = result;\n }\n }\n }\n else {\n // If there is no collision, the target can safely share memory with\n // the source, and the recursion can terminate here.\n target = this.shallowCopyForMerge(target);\n target[sourceKey] = source[sourceKey];\n }\n });\n return target;\n }\n // If source (or target) is not an object, let source replace target.\n return source;\n }\n isObject = isNonNullObject;\n pastCopies = new Set();\n shallowCopyForMerge(value) {\n if (isNonNullObject(value)) {\n if (!this.pastCopies.has(value)) {\n if (Array.isArray(value)) {\n value = value.slice(0);\n }\n else {\n value = {\n __proto__: Object.getPrototypeOf(value),\n ...value,\n };\n }\n this.pastCopies.add(value);\n }\n }\n return value;\n }\n}\n//# sourceMappingURL=DeepMerger.js.map\n","import { mergeDeepArray } from \"./mergeDeepArray.js\";\n// These mergeDeep and mergeDeepArray utilities merge any number of objects\n// together, sharing as much memory as possible with the source objects, while\n// remaining careful to avoid modifying any source objects.\n// Logically, the return type of mergeDeep should be the intersection of\n// all the argument types. The binary call signature is by far the most\n// common, but we support 0- through 5-ary as well. After that, the\n// resulting type is just the inferred array element type. Note to nerds:\n// there is a more clever way of doing this that converts the tuple type\n// first to a union type (easy enough: T[number]) and then converts the\n// union to an intersection type using distributive conditional type\n// inference, but that approach has several fatal flaws (boolean becomes\n// true & false, and the inferred type ends up as unknown in many cases),\n// in addition to being nearly impossible to explain/understand.\n/**\n* @internal\n* \n* @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.\n*/\nexport function mergeDeep(...sources) {\n return mergeDeepArray(sources);\n}\n//# sourceMappingURL=mergeDeep.js.map\n","import { DeepMerger } from \"./DeepMerger.js\";\n// In almost any situation where you could succeed in getting the\n// TypeScript compiler to infer a tuple type for the sources array, you\n// could just use mergeDeep instead of mergeDeepArray, so instead of\n// trying to convert T[] to an intersection type we just infer the array\n// element type, which works perfectly when the sources array has a\n// consistent element type.\n/**\n* @internal\n* \n* @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.\n*/\nexport function mergeDeepArray(sources) {\n let target = sources[0] || {};\n const count = sources.length;\n if (count > 1) {\n const merger = new DeepMerger();\n for (let i = 1; i < count; ++i) {\n target = merger.merge(target, sources[i]);\n }\n }\n return target;\n}\n//# sourceMappingURL=mergeDeepArray.js.map\n","import { EMPTY } from \"rxjs\";\nimport { createOperation } from \"@apollo/client/link/utils\";\nimport { __DEV__ } from \"@apollo/client/utilities/environment\";\nimport { invariant, newInvariantError, } from \"@apollo/client/utilities/invariant\";\n/**\n * The base class for all links in Apollo Client. A link represents either a\n * self-contained modification to a GraphQL operation or a side effect (such as\n * logging).\n *\n * @remarks\n *\n * Links enable you to customize Apollo Client's request flow by composing\n * together different pieces of functionality into a chain of links. Each\n * link represents a specific capability, such as adding authentication headers,\n * retrying failed requests, batching operations, or sending requests to a\n * GraphQL server.\n *\n * Every link must define a request handler via its constructor or by extending\n * this class and implementing the `request` method.\n *\n * @example\n *\n * ```ts\n * import { ApolloLink } from \"@apollo/client\";\n *\n * const link = new ApolloLink((operation, forward) => {\n * console.log(\"Operation:\", operation.operationName);\n * return forward(operation);\n * });\n * ```\n */\nexport class ApolloLink {\n /**\n * Creates a link that completes immediately and does not emit a result.\n *\n * @example\n *\n * ```ts\n * const link = ApolloLink.empty();\n * ```\n */\n static empty() {\n return new ApolloLink(() => EMPTY);\n }\n /**\n * Composes multiple links into a single composed link that executes each\n * provided link in serial order.\n *\n * @example\n *\n * ```ts\n * import { from, HttpLink, ApolloLink } from \"@apollo/client\";\n * import { RetryLink } from \"@apollo/client/link/retry\";\n * import MyAuthLink from \"../auth\";\n *\n * const link = ApolloLink.from([\n * new RetryLink(),\n * new MyAuthLink(),\n * new HttpLink({ uri: \"http://localhost:4000/graphql\" }),\n * ]);\n * ```\n *\n * @param links - An array of `ApolloLink` instances or request handlers that\n * are executed in serial order.\n */\n static from(links) {\n if (links.length === 0)\n return ApolloLink.empty();\n const [first, ...rest] = links;\n return first.concat(...rest);\n }\n /**\n * Creates a link that conditionally routes a request to different links.\n *\n * @example\n *\n * ```ts\n * import { ApolloLink, HttpLink } from \"@apollo/client\";\n *\n * const link = ApolloLink.split(\n * (operation) => operation.getContext().version === 1,\n * new HttpLink({ uri: \"http://localhost:4000/v1/graphql\" }),\n * new HttpLink({ uri: \"http://localhost:4000/v2/graphql\" })\n * );\n * ```\n *\n * @param test - A predicate function that receives the current `operation`\n * and returns a boolean indicating which link to execute. Returning `true`\n * executes the `left` link. Returning `false` executes the `right` link.\n *\n * @param left - The link that executes when the `test` function returns\n * `true`.\n *\n * @param right - The link that executes when the `test` function returns\n * `false`. If the `right` link is not provided, the request is forwarded to\n * the next link in the chain.\n */\n static split(test, left, right = new ApolloLink((op, forward) => forward(op))) {\n const link = new ApolloLink((operation, forward) => {\n const result = test(operation);\n if (__DEV__) {\n if (typeof result !== \"boolean\") {\n __DEV__ && invariant.warn(63, result);\n }\n }\n return result ?\n left.request(operation, forward)\n : right.request(operation, forward);\n });\n return Object.assign(link, { left, right });\n }\n /**\n * Executes a GraphQL request against a link. The `execute` function begins\n * the request by calling the request handler of the link.\n *\n * @example\n *\n * ```ts\n * const observable = ApolloLink.execute(link, { query, variables }, { client });\n *\n * observable.subscribe({\n * next(value) {\n * console.log(\"Received\", value);\n * },\n * error(error) {\n * console.error(\"Oops got error\", error);\n * },\n * complete() {\n * console.log(\"Request complete\");\n * },\n * });\n * ```\n *\n * @param link - The `ApolloLink` instance to execute the request.\n *\n * @param request - The GraphQL request details, such as the `query` and\n * `variables`.\n *\n * @param context - The execution context for the request, such as the\n * `client` making the request.\n */\n static execute(link, request, context) {\n return link.request(createOperation(request, context), () => {\n if (__DEV__) {\n __DEV__ && invariant.warn(64);\n }\n return EMPTY;\n });\n }\n /**\n * Combines multiple links into a single composed link.\n *\n * @example\n *\n * ```ts\n * const link = ApolloLink.concat(firstLink, secondLink, thirdLink);\n * ```\n *\n * @param links - The links to concatenate into a single link. Each link will\n * execute in serial order.\n *\n * @deprecated Use `ApolloLink.from` instead. `ApolloLink.concat` will be\n * removed in a future major version.\n */\n static concat(...links) {\n return ApolloLink.from(links);\n }\n constructor(request) {\n if (request)\n this.request = request;\n }\n /**\n * Concatenates a link that conditionally routes a request to different links.\n *\n * @example\n *\n * ```ts\n * import { ApolloLink, HttpLink } from \"@apollo/client\";\n *\n * const previousLink = new ApolloLink((operation, forward) => {\n * // Handle the request\n *\n * return forward(operation);\n * });\n *\n * const link = previousLink.split(\n * (operation) => operation.getContext().version === 1,\n * new HttpLink({ uri: \"http://localhost:4000/v1/graphql\" }),\n * new HttpLink({ uri: \"http://localhost:4000/v2/graphql\" })\n * );\n * ```\n *\n * @param test - A predicate function that receives the current `operation`\n * and returns a boolean indicating which link to execute. Returning `true`\n * executes the `left` link. Returning `false` executes the `right` link.\n *\n * @param left - The link that executes when the `test` function returns\n * `true`.\n *\n * @param right - The link that executes when the `test` function returns\n * `false`. If the `right` link is not provided, the request is forwarded to\n * the next link in the chain.\n */\n split(test, left, right) {\n return this.concat(ApolloLink.split(test, left, right));\n }\n /**\n * Combines the link with other links into a single composed link.\n *\n * @example\n *\n * ```ts\n * import { ApolloLink, HttpLink } from \"@apollo/client\";\n *\n * const previousLink = new ApolloLink((operation, forward) => {\n * // Handle the request\n *\n * return forward(operation);\n * });\n *\n * const link = previousLink.concat(\n * link1,\n * link2,\n * new HttpLink({ uri: \"http://localhost:4000/graphql\" })\n * );\n * ```\n */\n concat(...links) {\n if (links.length === 0) {\n return this;\n }\n return links.reduce(this.combine.bind(this), this);\n }\n combine(left, right) {\n const link = new ApolloLink((operation, forward) => {\n return left.request(operation, (op) => right.request(op, forward));\n });\n return Object.assign(link, { left, right });\n }\n /**\n * Runs the request handler for the provided operation.\n *\n * > [!NOTE]\n * > This is called by the `ApolloLink.execute` function for you and should\n * > not be called directly. Prefer using `ApolloLink.execute` to make the\n * > request instead.\n */\n request(operation, forward) {\n throw newInvariantError(65);\n }\n /**\n * @internal\n * Used to iterate through all links that are concatenations or `split` links.\n * \n * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.\n */\n left;\n /**\n * @internal\n * Used to iterate through all links that are concatenations or `split` links.\n * \n * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.\n */\n right;\n}\n//# sourceMappingURL=ApolloLink.js.map\n","import { getOperationDefinition, getOperationName, } from \"@apollo/client/utilities/internal\";\nexport function createOperation(request, { client }) {\n const operation = {\n query: request.query,\n variables: request.variables || {},\n extensions: request.extensions || {},\n operationName: getOperationName(request.query),\n operationType: getOperationDefinition(request.query).operation,\n };\n let context = { ...request.context };\n const setContext = (next) => {\n if (typeof next === \"function\") {\n context = { ...context, ...next(getContext()) };\n }\n else {\n context = { ...context, ...next };\n }\n };\n const getContext = () => Object.freeze({ ...context });\n Object.defineProperty(operation, \"setContext\", {\n enumerable: false,\n value: setContext,\n });\n Object.defineProperty(operation, \"getContext\", {\n enumerable: false,\n value: getContext,\n });\n Object.defineProperty(operation, \"client\", {\n enumerable: false,\n value: client,\n });\n return operation;\n}\n//# sourceMappingURL=createOperation.js.map","import { checkDocument } from \"./checkDocument.js\";\n/**\n* @internal\n* \n* @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.\n*/\nexport function getOperationDefinition(doc) {\n checkDocument(doc);\n return doc.definitions.filter((definition) => definition.kind === \"OperationDefinition\")[0];\n}\n//# sourceMappingURL=getOperationDefinition.js.map\n","import { Observable } from \"rxjs\";\nimport { ApolloLink } from \"@apollo/client/link\";\n/**\n * @deprecated\n * Use `SetContextLink` from `@apollo/client/link/context` instead. Note you\n * will need to flip the arguments when using `SetContextLink` as `prevContext`\n * is the first argument.\n *\n * ```ts\n * new SetContextLink((prevContext, operation) => {\n * // ...\n * });\n * ```\n */\nexport function setContext(setter) {\n return new SetContextLink((prevContext, operation) => setter(operation, prevContext));\n}\n/**\n * `SetContextLink` is a non-terminating link that allows you to modify the\n * context of GraphQL operations before they're passed to the next link in the\n * chain. This is commonly used for authentication, adding headers, and other\n * request-time configuration.\n *\n * @example\n *\n * ```ts\n * import { SetContextLink } from \"@apollo/client/link/context\";\n *\n * const link = new SetContextLink((prevContext, operation) => {\n * return {\n * credentials: \"include\",\n * // ...\n * };\n * });\n * ```\n */\nexport class SetContextLink extends ApolloLink {\n constructor(setter) {\n super((operation, forward) => {\n const { ...request } = operation;\n Object.defineProperty(request, \"client\", {\n enumerable: false,\n value: operation.client,\n });\n return new Observable((observer) => {\n let closed = false;\n Promise.resolve(request)\n .then((req) => setter(operation.getContext(), req))\n .then(operation.setContext)\n .then(() => {\n if (!closed) {\n forward(operation).subscribe(observer);\n }\n })\n .catch(observer.error.bind(observer));\n return () => {\n closed = true;\n };\n });\n });\n }\n}\n//# sourceMappingURL=index.js.map","export function isBranded(error, name) {\n return (typeof error === \"object\" &&\n error !== null &&\n error[Symbol.for(\"apollo.error\")] === name);\n}\nexport function brand(error) {\n Object.defineProperty(error, Symbol.for(\"apollo.error\"), {\n value: error.name,\n enumerable: false,\n writable: false,\n configurable: false,\n });\n}\n//# sourceMappingURL=utils.js.map","import { brand, isBranded } from \"./utils.js\";\nfunction defaultFormatMessage(errors) {\n return errors.map((e) => e.message || \"Error message not found.\").join(\"\\n\");\n}\n/**\n * Fatal transport-level errors returned when executing a subscription using the\n * multipart HTTP subscription protocol. See the documentation on the\n * [multipart HTTP protocol for GraphQL Subscriptions](https://www.apollographql.com/docs/graphos/routing/operations/subscriptions/multipart-protocol) for more information on these errors.\n *\n * @remarks\n *\n * These errors indicate issues with the subscription transport itself, rather\n * than GraphQL-level errors. They typically occur when there are problems\n * communicating with subgraphs from the Apollo Router.\n *\n * @example\n *\n * ```ts\n * import { CombinedProtocolErrors } from \"@apollo/client/errors\";\n *\n * // Check if an error is a CombinedProtocolErrors instance\n * if (CombinedProtocolErrors.is(error)) {\n * // Access individual protocol errors\n * error.errors.forEach((protocolError) => {\n * console.log(protocolError.message);\n * console.log(protocolError.extensions);\n * });\n * }\n * ```\n */\nexport class CombinedProtocolErrors extends Error {\n /**\n * A method that determines whether an error is a `CombinedProtocolErrors`\n * object. This method enables TypeScript to narrow the error type.\n *\n * @example\n *\n * ```ts\n * if (CombinedProtocolErrors.is(error)) {\n * // TypeScript now knows `error` is a CombinedProtocolErrors object\n * console.log(error.errors);\n * }\n * ```\n */\n static is(error) {\n return isBranded(error, \"CombinedProtocolErrors\");\n }\n /**\n * A function that formats the error message used for the error's `message`\n * property. Override this method to provide your own formatting.\n * \n * @remarks\n * \n * The `formatMessage` function is called by the `CombinedProtocolErrors`\n * constructor to provide a formatted message as the `message` property of the\n * `CombinedProtocolErrors` object. Follow the [\"Providing a custom message\n * formatter\"](https://www.apollographql.com/docs/react/api/errors/CombinedProtocolErrors#providing-a-custom-message-formatter) guide to learn how to modify the message format.\n * \n * @param errors - The array of GraphQL errors returned from the server in the\n * `errors` field of the response.\n * @param options - Additional context that could be useful when formatting\n * the message.\n */\n static formatMessage = defaultFormatMessage;\n /**\n * The raw list of errors returned by the top-level `errors` field in the\n * multipart HTTP subscription response.\n */\n errors;\n constructor(protocolErrors) {\n super(CombinedProtocolErrors.formatMessage(protocolErrors, {\n defaultFormatMessage,\n }));\n this.name = \"CombinedProtocolErrors\";\n this.errors = protocolErrors;\n brand(this);\n Object.setPrototypeOf(this, CombinedProtocolErrors.prototype);\n }\n}\n//# sourceMappingURL=CombinedProtocolErrors.js.map\n","import { brand, isBranded } from \"./utils.js\";\n/**\n * A wrapper error type that represents a non-standard error thrown from a\n * A wrapper error type that represents a non-error value thrown from the\n * link chain, such as a symbol, primitive or plain object. Read the `cause` property to\n * determine the source of the error.\n *\n * @remarks\n *\n * This error is used to standardize error handling when non-Error values are\n * thrown in the Apollo Client link chain or other parts of the system.\n * JavaScript allows throwing any value (not just Error instances), and this\n * wrapper ensures that all thrown values can be handled consistently as\n * Error-like objects while preserving the original thrown value.\n *\n * > [!NOTE]\n * > Plain strings thrown as errors are wrapped in regular [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) objects instead of `UnconventionalError` objects since strings can be safely used as the error's `message`.\n *\n * @example\n *\n * ```ts\n * import { UnconventionalError } from \"@apollo/client/errors\";\n *\n * // Check if an error is an UnconventionalError instance\n * if (UnconventionalError.is(error)) {\n * console.log(\"Non-standard error thrown:\", error.cause);\n *\n * // Check the type of the original thrown value\n * if (typeof error.cause === \"symbol\") {\n * console.log(\"A symbol was thrown:\", error.cause.toString());\n * } else if (typeof error.cause === \"object\") {\n * console.log(\"An object was thrown:\", error.cause);\n * } else {\n * console.log(\"Unexpected value thrown:\", error.cause);\n * }\n * }\n * ```\n */\nexport class UnconventionalError extends Error {\n /**\n * A method that determines whether an error is an `UnconventionalError`\n * object. This method enables TypeScript to narrow the error type.\n *\n * @example\n *\n * ```ts\n * if (UnconventionalError.is(error)) {\n * // TypeScript now knows `error` is a UnconventionalError object\n * console.log(\"What caused this?\", error.cause);\n * }\n * ```\n */\n static is(error) {\n return isBranded(error, \"UnconventionalError\");\n }\n constructor(errorType) {\n super(\"An error of unexpected shape occurred.\", { cause: errorType });\n this.name = \"UnconventionalError\";\n brand(this);\n Object.setPrototypeOf(this, UnconventionalError.prototype);\n }\n}\n//# sourceMappingURL=UnconventionalError.js.map","import { brand, isBranded } from \"./utils.js\";\nfunction defaultFormatMessage(errors) {\n return (errors\n // Handle non-spec-compliant servers: See #1185\n .filter((e) => e)\n .map((e) => e.message || \"Error message not found.\")\n .join(\"\\n\"));\n}\n/**\n * Represents the combined list of GraphQL errors returned from the server in a\n * GraphQL response. This error type is used when your GraphQL operation returns\n * errors in the `errors` field of the response.\n *\n * @remarks\n *\n * When your GraphQL operation encounters errors on the server side (such as\n * resolver errors, validation errors, or syntax errors), the server returns\n * these errors in the `errors` array of the GraphQL response. Apollo Client\n * wraps these errors in a `CombinedGraphQLErrors` object, which provides access\n * to the individual errors while maintaining additional context about the\n * response.\n *\n * @example\n *\n * ```ts\n * import { CombinedGraphQLErrors } from \"@apollo/client/errors\";\n *\n * // Check if an error is a CombinedGraphQLErrors object\n * if (CombinedGraphQLErrors.is(error)) {\n * // Access individual GraphQL errors\n * error.errors.forEach((graphQLError) => {\n * console.log(graphQLError.message);\n * console.log(graphQLError.path);\n * console.log(graphQLError.locations);\n * });\n *\n * // Access the original GraphQL result\n * console.log(error.result);\n * }\n * ```\n */\nexport class CombinedGraphQLErrors extends Error {\n /**\n * A method that determines whether an error is a `CombinedGraphQLErrors`\n * object. This method enables TypeScript to narrow the error type.\n * \n * @example\n * \n * ```ts\n * if (CombinedGraphQLErrors.is(error)) {\n * // TypeScript now knows `error` is a `CombinedGraphQLErrors` object\n * console.log(error.errors);\n * }\n * ```\n */\n static is(error) {\n return isBranded(error, \"CombinedGraphQLErrors\");\n }\n /**\n * A function that formats the error message used for the error's `message`\n * property. Override this method to provide your own formatting.\n * \n * @remarks\n * \n * The `formatMessage` function is called by the `CombinedGraphQLErrors`\n * constructor to provide a formatted message as the `message` property of the\n * `CombinedGraphQLErrors` object. Follow the [\"Providing a custom message\n * formatter\"](https://www.apollographql.com/docs/react/api/errors/CombinedGraphQLErrors#providing-a-custom-message-formatter) guide to learn how to modify the message format.\n * \n * @param errors - The array of GraphQL errors returned from the server in\n * the `errors` field of the response.\n * @param options - Additional context that could be useful when formatting\n * the message.\n */\n static formatMessage = defaultFormatMessage;\n /**\n * The raw list of GraphQL errors returned by the `errors` field in the GraphQL response.\n */\n errors;\n /**\n * Partial data returned in the `data` field of the GraphQL response.\n */\n data;\n /**\n * Extensions returned by the `extensions` field in the GraphQL response.\n */\n extensions;\n constructor(result, errors = result.errors || []) {\n super(CombinedGraphQLErrors.formatMessage(errors, {\n result,\n defaultFormatMessage,\n }));\n this.errors = errors;\n this.data = result.data;\n this.extensions = result.extensions;\n this.name = \"CombinedGraphQLErrors\";\n brand(this);\n Object.setPrototypeOf(this, CombinedGraphQLErrors.prototype);\n }\n}\n//# sourceMappingURL=CombinedGraphQLErrors.js.map\n","import { brand, isBranded } from \"./utils.js\";\n/**\n * Represents an error when a non-200 HTTP status code is returned from the\n * server according to the [GraphQL Over HTTP specification](https://graphql.github.io/graphql-over-http/draft/). This error\n * contains the full server response, including status code and body text.\n *\n * @remarks\n *\n * This error occurs when your GraphQL server responds with an HTTP status code\n * other than 200 (such as 4xx or 5xx status codes) with any media type other\n * than [`application/graphql-response+json`](https://graphql.github.io/graphql-over-http/draft/#sec-application-graphql-response-json).\n *\n * Servers that return non-200 status codes with other media types are not\n * guaranteed to contain a well-formed GraphQL response and may indicate issues\n * at the HTTP level, such as authentication failures, server unavailability,\n * or other HTTP-level problems.\n *\n * @example\n *\n * ```ts\n * import { ServerError } from \"@apollo/client/errors\";\n *\n * // Check if an error is a ServerError instance\n * if (ServerError.is(error)) {\n * console.log(`Server returned status: ${error.statusCode}`);\n * console.log(`Response body: ${error.bodyText}`);\n *\n * // Handle specific status codes\n * if (error.statusCode === 401) {\n * // Handle unauthorized access\n * }\n * }\n * ```\n */\nexport class ServerError extends Error {\n /**\n * A method that determines whether an error is a `ServerError` object. This\n * method enables TypeScript to narrow the error type.\n *\n * @example\n *\n * ```ts\n * if (ServerError.is(error)) {\n * // TypeScript now knows `error` is a ServerError object\n * console.log(error.errors);\n * }\n * ```\n */\n static is(error) {\n return isBranded(error, \"ServerError\");\n }\n /**\n * The raw [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response) object provided by the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n */\n response;\n /**\n * The status code returned by the server in the response. This is provided as\n * a shortcut for `response.status`.\n */\n statusCode;\n /**\n * The raw response body text.\n */\n bodyText;\n constructor(message, options) {\n super(message);\n this.name = \"ServerError\";\n this.response = options.response;\n this.statusCode = options.response.status;\n this.bodyText = options.bodyText;\n brand(this);\n Object.setPrototypeOf(this, ServerError.prototype);\n }\n}\n//# sourceMappingURL=ServerError.js.map\n","import { brand, isBranded } from \"./utils.js\";\n/**\n * Represents a failure to parse the response as JSON from the server. This\n * error helps debug issues where the server returns malformed JSON or non-JSON\n * content.\n *\n * @remarks\n *\n * This error occurs when Apollo Client receives a response from the server but\n * cannot parse it as valid JSON. This typically happens when the server returns\n * HTML error pages, plain text responses, or malformed JSON instead of the\n * expected GraphQL JSON response format.\n *\n * @example\n *\n * ```ts\n * import { ServerParseError } from \"@apollo/client/errors\";\n *\n * // Check if an error is a ServerParseError instance\n * if (ServerParseError.is(error)) {\n * console.log(`Failed to parse response from ${error.response.url}`);\n * console.log(`Raw response: ${error.bodyText}`);\n * console.log(`Status code: ${error.statusCode}`);\n *\n * // Access the original parse error\n * console.log(`Parse error: ${error.cause}`);\n * }\n * ```\n */\nexport class ServerParseError extends Error {\n /**\n * A method that determines whether an error is a `ServerParseError`\n * object. This method enables TypeScript to narrow the error type.\n *\n * @example\n *\n * ```ts\n * if (ServerParseError.is(error)) {\n * // TypeScript now knows `error` is a ServerParseError object\n * console.log(error.statusCode);\n * }\n * ```\n */\n static is(error) {\n return isBranded(error, \"ServerParseError\");\n }\n /**\n * The raw [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response) object provided by the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n */\n response;\n /**\n * The status code returned by the server in the response. This is provided\n * as a shortcut for `response.status`.\n */\n statusCode;\n /**\n * The raw response body text.\n */\n bodyText;\n constructor(originalParseError, options) {\n super(originalParseError instanceof Error ?\n originalParseError.message\n : \"Could not parse server response\", { cause: originalParseError });\n this.name = \"ServerParseError\";\n this.response = options.response;\n this.statusCode = options.response.status;\n this.bodyText = options.bodyText;\n brand(this);\n Object.setPrototypeOf(this, ServerParseError.prototype);\n }\n}\n//# sourceMappingURL=ServerParseError.js.map\n","import { CombinedProtocolErrors } from \"./CombinedProtocolErrors.js\";\nimport { isErrorLike } from \"./isErrorLike.js\";\nimport { UnconventionalError } from \"./UnconventionalError.js\";\n// This Symbol allows us to pass transport-specific errors from the link chain\n// into QueryManager/client internals without risking a naming collision within\n// extensions (which implementers can use as they see fit).\nexport const PROTOCOL_ERRORS_SYMBOL = Symbol();\nexport function graphQLResultHasProtocolErrors(result) {\n if (\"extensions\" in result) {\n return CombinedProtocolErrors.is(result.extensions[PROTOCOL_ERRORS_SYMBOL]);\n }\n return false;\n}\nexport function toErrorLike(error) {\n if (isErrorLike(error)) {\n return error;\n }\n if (typeof error === \"string\") {\n return new Error(error, { cause: error });\n }\n return new UnconventionalError(error);\n}\nexport { CombinedGraphQLErrors } from \"./CombinedGraphQLErrors.js\";\nexport { CombinedProtocolErrors } from \"./CombinedProtocolErrors.js\";\nexport { isErrorLike } from \"./isErrorLike.js\";\nexport { LinkError, registerLinkError } from \"./LinkError.js\";\nexport { LocalStateError } from \"./LocalStateError.js\";\nexport { ServerError } from \"./ServerError.js\";\nexport { ServerParseError } from \"./ServerParseError.js\";\nexport { UnconventionalError } from \"./UnconventionalError.js\";\n//# sourceMappingURL=index.js.map","export function isErrorLike(error) {\n return (error !== null &&\n typeof error === \"object\" &&\n typeof error.message === \"string\" &&\n typeof error.name === \"string\" &&\n (typeof error.stack === \"string\" ||\n typeof error.stack === \"undefined\"));\n}\n//# sourceMappingURL=isErrorLike.js.map","import { Observable } from \"rxjs\";\nimport { CombinedGraphQLErrors, graphQLResultHasProtocolErrors, PROTOCOL_ERRORS_SYMBOL, toErrorLike, } from \"@apollo/client/errors\";\nimport { ApolloLink } from \"@apollo/client/link\";\n/**\n * @deprecated\n * Use `ErrorLink` from `@apollo/client/link/error` instead.\n */\nexport function onError(errorHandler) {\n return new ErrorLink(errorHandler);\n}\n/**\n * Use the `ErrorLink` to perform custom logic when a [GraphQL or network error](https://apollographql.com/docs/react/data/error-handling)\n * occurs.\n *\n * @remarks\n *\n * This link is used after the GraphQL operation completes and execution is\n * moving back up your [link chain](https://apollographql.com/docs/react/api/link/introduction#handling-a-response). The `errorHandler` function should\n * not return a value unless you want to [retry the operation](https://apollographql.com/docs/react/data/error-handling#retrying-operations).\n *\n * For more information on the types of errors that might be encountered, see\n * the guide on [error handling](https://apollographql.com/docs/react/data/error-handling).\n *\n * @example\n *\n * ```ts\n * import { ErrorLink } from \"@apollo/client/link/error\";\n * import {\n * CombinedGraphQLErrors,\n * CombinedProtocolErrors,\n * } from \"@apollo/client/errors\";\n *\n * // Log any GraphQL errors, protocol errors, or network error that occurred\n * const errorLink = new ErrorLink(({ error, operation }) => {\n * if (CombinedGraphQLErrors.is(error)) {\n * error.errors.forEach(({ message, locations, path }) =>\n * console.log(\n * `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`\n * )\n * );\n * } else if (CombinedProtocolErrors.is(error)) {\n * error.errors.forEach(({ message, extensions }) =>\n * console.log(\n * `[Protocol error]: Message: ${message}, Extensions: ${JSON.stringify(\n * extensions\n * )}`\n * )\n * );\n * } else {\n * console.error(`[Network error]: ${error}`);\n * }\n * });\n * ```\n */\nexport class ErrorLink extends ApolloLink {\n constructor(errorHandler) {\n super((operation, forward) => {\n return new Observable((observer) => {\n let sub;\n let retriedSub;\n let retriedResult;\n try {\n sub = forward(operation).subscribe({\n next: (result) => {\n const handler = operation.client[\"queryManager\"].incrementalHandler;\n const errors = handler.isIncrementalResult(result) ?\n handler.extractErrors(result)\n : result.errors;\n if (errors) {\n retriedResult = errorHandler({\n error: new CombinedGraphQLErrors(result, errors),\n result,\n operation,\n forward,\n });\n }\n else if (graphQLResultHasProtocolErrors(result)) {\n retriedResult = errorHandler({\n error: result.extensions[PROTOCOL_ERRORS_SYMBOL],\n result,\n operation,\n forward,\n });\n }\n retriedSub = retriedResult?.subscribe(observer);\n if (!retriedSub) {\n observer.next(result);\n }\n },\n error: (error) => {\n retriedResult = errorHandler({\n operation,\n error: toErrorLike(error),\n forward,\n });\n retriedSub = retriedResult?.subscribe(observer);\n if (!retriedSub) {\n observer.error(error);\n }\n },\n complete: () => {\n // disable the previous sub from calling complete on observable\n // if retry is in flight.\n if (!retriedResult) {\n observer.complete();\n }\n },\n });\n }\n catch (e) {\n errorHandler({ error: toErrorLike(e), operation, forward });\n observer.error(e);\n }\n return () => {\n if (sub)\n sub.unsubscribe();\n if (retriedSub)\n retriedSub.unsubscribe();\n };\n });\n });\n }\n}\n//# sourceMappingURL=index.js.map","import { print as origPrint } from \"graphql\";\nimport { __DEV__ } from \"@apollo/client/utilities/environment\";\nimport { AutoCleanedWeakCache, registerGlobalCache, } from \"@apollo/client/utilities/internal\";\nimport { cacheSizes } from \"../caching/index.js\";\nlet printCache;\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n *\n * @remarks This is the same function as the GraphQL.js `print` function but\n * with an added cache to avoid recomputation when encountering the same\n * `ASTNode` more than once.\n */\nexport const print = Object.assign((ast) => {\n let result = printCache.get(ast);\n if (!result) {\n result = origPrint(ast);\n printCache.set(ast, result);\n }\n return result;\n}, {\n reset() {\n printCache = new AutoCleanedWeakCache(cacheSizes.print || 2000 /* defaultCacheSizes.print */);\n },\n});\nprint.reset();\nif (__DEV__) {\n registerGlobalCache(\"print\", () => (printCache ? printCache.size : 0));\n}\n//# sourceMappingURL=print.js.map","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { __rest } from \"tslib\";\nimport { mergeDeep } from \"@apollo/client/utilities/internal\";\n/**\n * A basic pagination field policy that always concatenates new\n * results onto the existing array, without examining options.args.\n *\n * @param keyArgs - `keyArgs` that should be applied to the field policy\n * @returns The field policy that handles concatenating field results.\n */\nexport function concatPagination(keyArgs = false) {\n return {\n keyArgs,\n merge(existing, incoming) {\n return existing ? [...existing, ...incoming] : incoming;\n },\n };\n}\n/**\n * A basic field policy that uses `options.args.{offset,limit}` to splice\n * the incoming data into the existing array. If your arguments are called\n * something different (like `args.{start,count}`), feel free to copy/paste\n * this implementation and make the appropriate changes.\n *\n * @param keyArgs - `keyArgs` that should be applied to the field policy\n * @returns The field policy that handles offset/limit pagination\n */\nexport function offsetLimitPagination(keyArgs = false) {\n return {\n keyArgs,\n merge(existing, incoming, { args }) {\n const merged = existing ? existing.slice(0) : [];\n if (incoming) {\n if (args) {\n // Assume an offset of 0 if args.offset omitted.\n const { offset = 0 } = args;\n for (let i = 0; i < incoming.length; ++i) {\n merged[offset + i] = incoming[i];\n }\n }\n else {\n // It's unusual (probably a mistake) for a paginated field not\n // to receive any arguments, so you might prefer to throw an\n // exception here, instead of recovering by appending incoming\n // onto the existing array.\n merged.push(...incoming);\n }\n }\n return merged;\n },\n };\n}\n// As proof of the flexibility of field policies, this function generates\n// one that handles Relay-style pagination, without Apollo Client knowing\n// anything about connections, edges, cursors, or pageInfo objects.\n/**\n * A field policy that attempts to handle pagination for fields that adhere to\n * the [Relay Connections Spec](https://relay.dev/graphql/connections.htm).\n *\n * @param keyArgs - `keyArgs` that should be applied to the field policy\n * @returns The field policy that handles Relay pagination\n */\nexport function relayStylePagination(keyArgs = false) {\n return {\n keyArgs,\n read(existing, { canRead, readField }) {\n if (!existing)\n return existing;\n const edges = [];\n let firstEdgeCursor = \"\";\n let lastEdgeCursor = \"\";\n existing.edges.forEach((edge) => {\n // Edges themselves could be Reference objects, so it's important\n // to use readField to access the edge.edge.node property.\n if (canRead(readField(\"node\", edge))) {\n edges.push(edge);\n if (edge.cursor) {\n firstEdgeCursor = firstEdgeCursor || edge.cursor || \"\";\n lastEdgeCursor = edge.cursor || lastEdgeCursor;\n }\n }\n });\n if (edges.length > 1 && firstEdgeCursor === lastEdgeCursor) {\n firstEdgeCursor = \"\";\n }\n const { startCursor, endCursor } = existing.pageInfo || {};\n return {\n // Some implementations return additional Connection fields, such\n // as existing.totalCount. These fields are saved by the merge\n // function, so the read function should also preserve them.\n ...getExtras(existing),\n edges,\n pageInfo: {\n ...existing.pageInfo,\n // If existing.pageInfo.{start,end}Cursor are undefined or \"\", default\n // to firstEdgeCursor and/or lastEdgeCursor.\n startCursor: startCursor || firstEdgeCursor,\n endCursor: endCursor || lastEdgeCursor,\n },\n };\n },\n merge(existing, incoming, { args, isReference, readField }) {\n if (!existing) {\n existing = makeEmptyData();\n }\n if (!incoming) {\n return existing;\n }\n const incomingEdges = incoming.edges ?\n incoming.edges.map((edge) => {\n if (isReference((edge = { ...edge }))) {\n // In case edge is a Reference, we read out its cursor field and\n // store it as an extra property of the Reference object.\n edge.cursor = readField(\"cursor\", edge);\n }\n return edge;\n })\n : [];\n if (incoming.pageInfo) {\n const { pageInfo } = incoming;\n const { startCursor, endCursor } = pageInfo;\n const firstEdge = incomingEdges[0];\n const lastEdge = incomingEdges[incomingEdges.length - 1];\n // In case we did not request the cursor field for edges in this\n // query, we can still infer cursors from pageInfo.\n if (firstEdge && startCursor) {\n firstEdge.cursor = startCursor;\n }\n if (lastEdge && endCursor) {\n lastEdge.cursor = endCursor;\n }\n // Cursors can also come from edges, so we default\n // pageInfo.{start,end}Cursor to {first,last}Edge.cursor.\n const firstCursor = firstEdge && firstEdge.cursor;\n if (firstCursor && !startCursor) {\n incoming = mergeDeep(incoming, {\n pageInfo: {\n startCursor: firstCursor,\n },\n });\n }\n const lastCursor = lastEdge && lastEdge.cursor;\n if (lastCursor && !endCursor) {\n incoming = mergeDeep(incoming, {\n pageInfo: {\n endCursor: lastCursor,\n },\n });\n }\n }\n let prefix = existing.edges;\n let suffix = [];\n if (args && args.after) {\n // This comparison does not need to use readField(\"cursor\", edge),\n // because we stored the cursor field of any Reference edges as an\n // extra property of the Reference object.\n const index = prefix.findIndex((edge) => edge.cursor === args.after);\n if (index >= 0) {\n prefix = prefix.slice(0, index + 1);\n // suffix = []; // already true\n }\n }\n else if (args && args.before) {\n const index = prefix.findIndex((edge) => edge.cursor === args.before);\n suffix = index < 0 ? prefix : prefix.slice(index);\n prefix = [];\n }\n else if (incoming.edges) {\n // If we have neither args.after nor args.before, the incoming\n // edges cannot be spliced into the existing edges, so they must\n // replace the existing edges. See #6592 for a motivating example.\n prefix = [];\n }\n const edges = [...prefix, ...incomingEdges, ...suffix];\n const pageInfo = {\n // The ordering of these two ...spreads may be surprising, but it\n // makes sense because we want to combine PageInfo properties with a\n // preference for existing values, *unless* the existing values are\n // overridden by the logic below, which is permitted only when the\n // incoming page falls at the beginning or end of the data.\n ...incoming.pageInfo,\n ...existing.pageInfo,\n };\n if (incoming.pageInfo) {\n const { hasPreviousPage, hasNextPage, startCursor, endCursor, ...extras } = incoming.pageInfo;\n // If incoming.pageInfo had any extra non-standard properties,\n // assume they should take precedence over any existing properties\n // of the same name, regardless of where this page falls with\n // respect to the existing data.\n Object.assign(pageInfo, extras);\n // Keep existing.pageInfo.has{Previous,Next}Page unless the\n // placement of the incoming edges means incoming.hasPreviousPage\n // or incoming.hasNextPage should become the new values for those\n // properties in existing.pageInfo. Note that these updates are\n // only permitted when the beginning or end of the incoming page\n // coincides with the beginning or end of the existing data, as\n // determined using prefix.length and suffix.length.\n if (!prefix.length) {\n if (void 0 !== hasPreviousPage)\n pageInfo.hasPreviousPage = hasPreviousPage;\n if (void 0 !== startCursor)\n pageInfo.startCursor = startCursor;\n }\n if (!suffix.length) {\n if (void 0 !== hasNextPage)\n pageInfo.hasNextPage = hasNextPage;\n if (void 0 !== endCursor)\n pageInfo.endCursor = endCursor;\n }\n }\n return {\n ...getExtras(existing),\n ...getExtras(incoming),\n edges,\n pageInfo,\n };\n },\n };\n}\n// Returns any unrecognized properties of the given object.\nconst getExtras = (obj) => __rest(obj, notExtras);\nconst notExtras = [\"edges\", \"pageInfo\"];\nfunction makeEmptyData() {\n return {\n edges: [],\n pageInfo: {\n hasPreviousPage: false,\n hasNextPage: true,\n startCursor: \"\",\n endCursor: \"\",\n },\n };\n}\n//# sourceMappingURL=pagination.js.map","import { CombinedProtocolErrors, PROTOCOL_ERRORS_SYMBOL, ServerError, ServerParseError, } from \"@apollo/client/errors\";\nimport { isNonNullObject } from \"@apollo/client/utilities/internal\";\nimport { invariant } from \"@apollo/client/utilities/invariant\";\nconst { hasOwnProperty } = Object.prototype;\n/**\n * This function detects an Apollo payload result before it is transformed\n * into a FetchResult via HttpLink; it cannot detect an ApolloPayloadResult\n * once it leaves the link chain.\n */\nfunction isApolloPayloadResult(value) {\n return isNonNullObject(value) && \"payload\" in value;\n}\nasync function* consumeMultipartBody(response) {\n const decoder = new TextDecoder(\"utf-8\");\n const contentType = response.headers?.get(\"content-type\");\n // parse boundary value and ignore any subsequent name/value pairs after ;\n // https://www.rfc-editor.org/rfc/rfc9110.html#name-parameters\n // e.g. multipart/mixed;boundary=\"graphql\";deferSpec=20220824\n // if no boundary is specified, default to -\n const match = contentType?.match(\n /*\n ;\\s*boundary= # Match the boundary parameter\n (?: # either\n '([^']*)' # a string starting with ' doesn't contain ', ends with '\n | # or\n \"([^\"]*)\" # a string starting with \" doesn't contain \", ends with \"\n | # or\n ([^\"'].*?) # a string that doesn't start with ' or \", parsed non-greedily\n ) # end of the group\n \\s* # optional whitespace\n (?:;|$) # match a semicolon or end of string\n */\n /;\\s*boundary=(?:'([^']+)'|\"([^\"]+)\"|([^\"'].+?))\\s*(?:;|$)/i);\n const boundary = \"\\r\\n--\" + (match ? match[1] ?? match[2] ?? match[3] ?? \"-\" : \"-\");\n let buffer = \"\";\n invariant(response.body && typeof response.body.getReader === \"function\", 62);\n const stream = response.body;\n const reader = stream.getReader();\n let done = false;\n let encounteredBoundary = false;\n let value;\n // check to see if we received the final boundary, which is a normal boundary followed by \"--\"\n // as described in https://www.rfc-editor.org/rfc/rfc2046#section-5.1.1\n const passedFinalBoundary = () => encounteredBoundary && buffer[0] == \"-\" && buffer[1] == \"-\";\n try {\n while (!done) {\n ({ value, done } = await reader.read());\n const chunk = typeof value === \"string\" ? value : decoder.decode(value);\n const searchFrom = buffer.length - boundary.length + 1;\n buffer += chunk;\n let bi = buffer.indexOf(boundary, searchFrom);\n while (bi > -1 && !passedFinalBoundary()) {\n encounteredBoundary = true;\n let message;\n [message, buffer] = [\n buffer.slice(0, bi),\n buffer.slice(bi + boundary.length),\n ];\n const i = message.indexOf(\"\\r\\n\\r\\n\");\n const headers = parseHeaders(message.slice(0, i));\n const contentType = headers[\"content-type\"];\n if (contentType &&\n contentType.toLowerCase().indexOf(\"application/json\") === -1) {\n throw new Error(\"Unsupported patch content type: application/json is required.\");\n }\n // nb: Technically you'd want to slice off the beginning \"\\r\\n\" but since\n // this is going to be `JSON.parse`d there is no need.\n const body = message.slice(i);\n if (body) {\n yield body;\n }\n bi = buffer.indexOf(boundary);\n }\n if (passedFinalBoundary()) {\n return;\n }\n }\n throw new Error(\"premature end of multipart body\");\n }\n finally {\n reader.cancel();\n }\n}\nexport async function readMultipartBody(response, nextValue) {\n for await (const body of consumeMultipartBody(response)) {\n const result = parseJsonEncoding(response, body);\n if (Object.keys(result).length == 0)\n continue;\n if (isApolloPayloadResult(result)) {\n if (Object.keys(result).length === 1 && result.payload === null) {\n return;\n }\n let next = { ...result.payload };\n if (\"errors\" in result) {\n next.extensions = {\n ...next.extensions,\n [PROTOCOL_ERRORS_SYMBOL]: new CombinedProtocolErrors(result.errors ?? []),\n };\n }\n nextValue(next);\n }\n else {\n nextValue(result);\n }\n }\n}\nfunction parseHeaders(headerText) {\n const headersInit = {};\n headerText.split(\"\\n\").forEach((line) => {\n const i = line.indexOf(\":\");\n if (i > -1) {\n // normalize headers to lowercase\n const name = line.slice(0, i).trim().toLowerCase();\n const value = line.slice(i + 1).trim();\n headersInit[name] = value;\n }\n });\n return headersInit;\n}\nfunction parseJsonEncoding(response, bodyText) {\n if (response.status >= 300) {\n throw new ServerError(`Response not successful: Received status code ${response.status}`, { response, bodyText });\n }\n try {\n return JSON.parse(bodyText);\n }\n catch (err) {\n throw new ServerParseError(err, { response, bodyText });\n }\n}\nfunction parseGraphQLResponseJsonEncoding(response, bodyText) {\n try {\n return JSON.parse(bodyText);\n }\n catch (err) {\n throw new ServerParseError(err, { response, bodyText });\n }\n}\nfunction parseResponse(response, bodyText) {\n const contentType = response.headers.get(\"content-type\");\n if (contentType?.includes(\"application/graphql-response+json\")) {\n return parseGraphQLResponseJsonEncoding(response, bodyText);\n }\n return parseJsonEncoding(response, bodyText);\n}\nexport function parseAndCheckHttpResponse(operations) {\n return (response) => response.text().then((bodyText) => {\n const result = parseResponse(response, bodyText);\n if (!Array.isArray(result) &&\n !hasOwnProperty.call(result, \"data\") &&\n !hasOwnProperty.call(result, \"errors\")) {\n throw new ServerError(`Server response was malformed for query '${Array.isArray(operations) ?\n operations.map((op) => op.operationName)\n : operations.operationName}'.`, { response, bodyText });\n }\n return result;\n });\n}\n//# sourceMappingURL=parseAndCheckHttpResponse.js.map\n","import { print } from \"@apollo/client/utilities\";\nconst defaultHttpOptions = {\n includeQuery: true,\n includeExtensions: true,\n preserveHeaderCase: false,\n};\nconst defaultHeaders = {\n // headers are case insensitive (https://stackoverflow.com/a/5259004)\n accept: \"application/graphql-response+json,application/json;q=0.9\",\n // The content-type header describes the type of the body of the request, and\n // so it typically only is sent with requests that actually have bodies. One\n // could imagine that Apollo Client would remove this header when constructing\n // a GET request (which has no body), but we historically have not done that.\n // This means that browsers will preflight all Apollo Client requests (even\n // GET requests). Apollo Server's CSRF prevention feature (introduced in\n // AS3.7) takes advantage of this fact and does not block requests with this\n // header. If you want to drop this header from GET requests, then you should\n // probably replace it with a `apollo-require-preflight` header, or servers\n // with CSRF prevention enabled might block your GET request. See\n // https://www.apollographql.com/docs/apollo-server/security/cors/#preventing-cross-site-request-forgery-csrf\n // for more details.\n \"content-type\": \"application/json\",\n};\nconst defaultOptions = {\n method: \"POST\",\n};\nexport const fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\nexport const defaultPrinter = (ast, printer) => printer(ast);\nexport function selectHttpOptionsAndBody(operation, fallbackConfig, ...configs) {\n configs.unshift(fallbackConfig);\n return selectHttpOptionsAndBodyInternal(operation, defaultPrinter, ...configs);\n}\nexport function selectHttpOptionsAndBodyInternal(operation, printer, ...configs) {\n let options = {};\n let http = {};\n configs.forEach((config) => {\n options = {\n ...options,\n ...config.options,\n headers: {\n ...options.headers,\n ...config.headers,\n },\n };\n if (config.credentials) {\n options.credentials = config.credentials;\n }\n options.headers.accept = (config.http?.accept || [])\n .concat(options.headers.accept)\n .join(\",\");\n http = {\n ...http,\n ...config.http,\n };\n });\n options.headers = removeDuplicateHeaders(options.headers, http.preserveHeaderCase);\n //The body depends on the http options\n const { operationName, extensions, variables, query } = operation;\n const body = { operationName, variables };\n if (http.includeExtensions && Object.keys(extensions || {}).length)\n body.extensions = extensions;\n // not sending the query (i.e persisted queries)\n if (http.includeQuery)\n body.query = printer(query, print);\n return {\n options,\n body,\n };\n}\n// Remove potential duplicate header names, preserving last (by insertion order).\n// This is done to prevent unintentionally duplicating a header instead of\n// overwriting it (See #8447 and #8449).\nfunction removeDuplicateHeaders(headers, preserveHeaderCase) {\n // If we're not preserving the case, just remove duplicates w/ normalization.\n if (!preserveHeaderCase) {\n const normalizedHeaders = {};\n Object.keys(Object(headers)).forEach((name) => {\n normalizedHeaders[name.toLowerCase()] = headers[name];\n });\n return normalizedHeaders;\n }\n // If we are preserving the case, remove duplicates w/ normalization,\n // preserving the original name.\n // This allows for non-http-spec-compliant servers that expect intentionally\n // capitalized header names (See #6741).\n const headerData = {};\n Object.keys(Object(headers)).forEach((name) => {\n headerData[name.toLowerCase()] = {\n originalName: name,\n value: headers[name],\n };\n });\n const normalizedHeaders = {};\n Object.keys(headerData).forEach((name) => {\n normalizedHeaders[headerData[name].originalName] = headerData[name].value;\n });\n return normalizedHeaders;\n}\n//# sourceMappingURL=selectHttpOptionsAndBody.js.map","// @ts-check\n\n// @deno-types=\"is-plain-obj/index.d.ts\"\nimport isPlainObject from \"is-plain-obj\";\n\n/** @typedef {import(\"./isExtractableFile.mjs\").default} isExtractableFile */\n\n/**\n * Recursively extracts files and their {@link ObjectPath object paths} within a\n * value, replacing them with `null` in a deep clone without mutating the\n * original value.\n * [`FileList`](https://developer.mozilla.org/en-US/docs/Web/API/Filelist)\n * instances are treated as\n * [`File`](https://developer.mozilla.org/en-US/docs/Web/API/File) instance\n * arrays.\n * @template Extractable Extractable file type.\n * @param {unknown} value Value to extract files from. Typically an object tree.\n * @param {(value: unknown) => value is Extractable} isExtractable Matches\n * extractable files. Typically {@linkcode isExtractableFile}.\n * @param {ObjectPath} [path] Prefix for object paths for extracted files.\n * Defaults to `\"\"`.\n * @returns {Extraction<Extractable>} Extraction result.\n * @example\n * Extracting files from an object.\n *\n * For the following:\n *\n * ```js\n * import extractFiles from \"extract-files/extractFiles.mjs\";\n * import isExtractableFile from \"extract-files/isExtractableFile.mjs\";\n *\n * const file1 = new File([\"1\"], \"1.txt\", { type: \"text/plain\" });\n * const file2 = new File([\"2\"], \"2.txt\", { type: \"text/plain\" });\n * const value = {\n * a: file1,\n * b: [file1, file2],\n * };\n *\n * const { clone, files } = extractFiles(value, isExtractableFile, \"prefix\");\n * ```\n *\n * `value` remains the same.\n *\n * `clone` is:\n *\n * ```json\n * {\n * \"a\": null,\n * \"b\": [null, null]\n * }\n * ```\n *\n * `files` is a\n * [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map)\n * instance containing:\n *\n * | Key | Value |\n * | :------ | :--------------------------- |\n * | `file1` | `[\"prefix.a\", \"prefix.b.0\"]` |\n * | `file2` | `[\"prefix.b.1\"]` |\n */\nexport default function extractFiles(value, isExtractable, path = \"\") {\n if (!arguments.length) throw new TypeError(\"Argument 1 `value` is required.\");\n\n if (typeof isExtractable !== \"function\")\n throw new TypeError(\"Argument 2 `isExtractable` must be a function.\");\n\n if (typeof path !== \"string\")\n throw new TypeError(\"Argument 3 `path` must be a string.\");\n\n /**\n * Deeply clonable value.\n * @typedef {Array<unknown> | FileList | {\n * [key: PropertyKey]: unknown\n * }} Cloneable\n */\n\n /**\n * Clone of a {@link Cloneable deeply cloneable value}.\n * @typedef {Exclude<Cloneable, FileList>} Clone\n */\n\n /**\n * Map of values recursed within the input value and their clones, for reusing\n * clones of values that are referenced multiple times within the input value.\n * @type {Map<Cloneable, Clone>}\n */\n const clones = new Map();\n\n /**\n * Extracted files and their object paths within the input value.\n * @type {Extraction<Extractable>[\"files\"]}\n */\n const files = new Map();\n\n /**\n * Recursively clones the value, extracting files.\n * @param {unknown} value Value to extract files from.\n * @param {ObjectPath} path Prefix for object paths for extracted files.\n * @param {Set<Cloneable>} recursed Recursed values for avoiding infinite\n * recursion of circular references within the input value.\n * @returns {unknown} Clone of the value with files replaced with `null`.\n */\n function recurse(value, path, recursed) {\n if (isExtractable(value)) {\n const filePaths = files.get(value);\n\n filePaths ? filePaths.push(path) : files.set(value, [path]);\n\n return null;\n }\n\n const valueIsList =\n Array.isArray(value) ||\n (typeof FileList !== \"undefined\" && value instanceof FileList);\n const valueIsPlainObject = isPlainObject(value);\n\n if (valueIsList || valueIsPlainObject) {\n let clone = clones.get(value);\n\n const uncloned = !clone;\n\n if (uncloned) {\n clone = valueIsList\n ? []\n : // Replicate if the plain object is an `Object` instance.\n value instanceof /** @type {any} */ (Object)\n ? {}\n : Object.create(null);\n\n clones.set(value, /** @type {Clone} */ (clone));\n }\n\n if (!recursed.has(value)) {\n const pathPrefix = path ? `${path}.` : \"\";\n const recursedDeeper = new Set(recursed).add(value);\n\n if (valueIsList) {\n let index = 0;\n\n for (const item of value) {\n const itemClone = recurse(\n item,\n pathPrefix + index++,\n recursedDeeper\n );\n\n if (uncloned) /** @type {Array<unknown>} */ (clone).push(itemClone);\n }\n } else\n for (const key in value) {\n const propertyClone = recurse(\n value[key],\n pathPrefix + key,\n recursedDeeper\n );\n\n if (uncloned)\n /** @type {{ [key: PropertyKey]: unknown }} */ (clone)[key] =\n propertyClone;\n }\n }\n\n return clone;\n }\n\n return value;\n }\n\n return {\n clone: recurse(value, path, new Set()),\n files,\n };\n}\n\n/**\n * An extraction result.\n * @template [Extractable=unknown] Extractable file type.\n * @typedef {object} Extraction\n * @prop {unknown} clone Clone of the original value with extracted files\n * recursively replaced with `null`.\n * @prop {Map<Extractable, Array<ObjectPath>>} files Extracted files and their\n * object paths within the original value.\n */\n\n/**\n * String notation for the path to a node in an object tree.\n * @typedef {string} ObjectPath\n * @see [`object-path` on npm](https://npm.im/object-path).\n * @example\n * An object path for object property `a`, array index `0`, object property `b`:\n *\n * ```\n * a.0.b\n * ```\n */\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._teardowns = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialTeardown = this.initialTeardown;\n if (isFunction(initialTeardown)) {\n try {\n initialTeardown();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _teardowns = this._teardowns;\n if (_teardowns) {\n this._teardowns = null;\n try {\n for (var _teardowns_1 = __values(_teardowns), _teardowns_1_1 = _teardowns_1.next(); !_teardowns_1_1.done; _teardowns_1_1 = _teardowns_1.next()) {\n var teardown_1 = _teardowns_1_1.value;\n try {\n execTeardown(teardown_1);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_teardowns_1_1 && !_teardowns_1_1.done && (_b = _teardowns_1.return)) _b.call(_teardowns_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execTeardown(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._teardowns = (_a = this._teardowns) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _teardowns = this._teardowns;\n _teardowns && arrRemove(_teardowns, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execTeardown(teardown) {\n if (isFunction(teardown)) {\n teardown();\n }\n else {\n teardown.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) || setTimeout).apply(void 0, __spreadArray([], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { __extends, __read, __spreadArray } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var next;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n (next = observerOrNext.next, error = observerOrNext.error, complete = observerOrNext.complete);\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n }\n else {\n context_1 = observerOrNext;\n }\n next = next === null || next === void 0 ? void 0 : next.bind(context_1);\n error = error === null || error === void 0 ? void 0 : error.bind(context_1);\n complete = complete === null || complete === void 0 ? void 0 : complete.bind(context_1);\n }\n _this.destination = {\n next: next ? wrapForErrorHandling(next, _this) : noop,\n error: wrapForErrorHandling(error !== null && error !== void 0 ? error : defaultErrorHandler, _this),\n complete: complete ? wrapForErrorHandling(complete, _this) : noop,\n };\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction wrapForErrorHandling(handler, instance) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n try {\n handler.apply(void 0, __spreadArray([], __read(args)));\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(err);\n }\n else {\n reportUnhandledError(err);\n }\n }\n };\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscription === null || subscription === void 0 ? void 0 : subscription.unsubscribe();\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","// @ts-check\n\n/** @import { ExtractableFile } from \"./isExtractableFile.mjs\" */\n\n/**\n * The default implementation for the class `UploadHttpLink` constructor option\n * `formDataAppendFile` that uses the standard {@linkcode FormData.append}\n * method.\n * @param {FormData} formData Form data to append the specified file to.\n * @param {string} fieldName Field name for the file.\n * @param {ExtractableFile} file File to append.\n */\nexport default function formDataAppendFile(formData, fieldName, file) {\n \"name\" in file\n ? formData.append(fieldName, file, file.name)\n : formData.append(fieldName, file);\n}\n","// @ts-check\n\n/**\n * Checks if a value is an {@link ExtractableFile extractable file}.\n * @param {unknown} value Value to check.\n * @returns {value is ExtractableFile} Is the value an\n * {@link ExtractableFile extractable file}.\n */\nexport default function isExtractableFile(value) {\n return (\n (typeof File !== \"undefined\" && value instanceof File) ||\n (typeof Blob !== \"undefined\" && value instanceof Blob)\n );\n}\n\n/**\n * An extractable file.\n * @typedef {File | Blob} ExtractableFile\n */\n","// @ts-check\n\n/** @import { BaseHttpLink } from \"@apollo/client/link/http\" */\n\nimport { ApolloLink } from \"@apollo/client/link\";\nimport {\n defaultPrinter,\n fallbackHttpConfig,\n parseAndCheckHttpResponse,\n rewriteURIForGET,\n selectHttpOptionsAndBodyInternal,\n selectURI,\n} from \"@apollo/client/link/http\";\nimport { filterOperationVariables } from \"@apollo/client/link/utils\";\nimport extractFiles from \"extract-files/extractFiles.mjs\";\nimport { Observable } from \"rxjs/internal/Observable\";\n\nimport formDataAppendFile from \"./formDataAppendFile.mjs\";\nimport isExtractableFile from \"./isExtractableFile.mjs\";\n\n/**\n * A\n * [terminating Apollo Link](https://www.apollographql.com/docs/react/api/link/introduction#the-terminating-link)\n * for [Apollo Client](https://www.apollographql.com/docs/react) that fetches a\n * [GraphQL multipart request](https://github.com/jaydenseric/graphql-multipart-request-spec)\n * if the GraphQL variables contain files (by default\n * [`FileList`](https://developer.mozilla.org/en-US/docs/Web/API/FileList),\n * [`File`](https://developer.mozilla.org/en-US/docs/Web/API/File), or\n * [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) instances),\n * or else fetches a regular\n * [GraphQL POST or GET request](https://www.apollographql.com/docs/apollo-server/workflow/requests)\n * (depending on the config and GraphQL operation).\n *\n * Some of the options are similar to the\n * [`BaseHttpLink` options](https://www.apollographql.com/docs/react/api/link/apollo-link-base-http#basehttplinkoptions).\n * @see [GraphQL multipart request spec](https://github.com/jaydenseric/graphql-multipart-request-spec).\n * @example\n * A basic Apollo Client setup:\n *\n * ```js\n * import { InMemoryCache } from \"@apollo/client/cache\";\n * import { ApolloClient } from \"@apollo/client/core\";\n * import UploadHttpLink from \"apollo-upload-client/UploadHttpLink.mjs\";\n *\n * const client = new ApolloClient({\n * cache: new InMemoryCache(),\n * link: new UploadHttpLink(),\n * });\n * ```\n */\nexport default class UploadHttpLink extends ApolloLink {\n /**\n * @param {object} options Options.\n * @param {Parameters<typeof selectURI>[1]} [options.uri] GraphQL endpoint\n * URI. Defaults to `\"/graphql\"`.\n * @param {boolean} [options.useGETForQueries] Should GET be used to fetch\n * queries, if there are no files to upload.\n * @param {ExtractableFileMatcher} [options.isExtractableFile] Matches\n * extractable files in the GraphQL operation. Defaults to\n * {@linkcode isExtractableFile}.\n * @param {typeof FormData} [options.FormData]\n * [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData)\n * class. Defaults to the {@linkcode FormData} global.\n * @param {FormDataFileAppender} [options.formDataAppendFile]\n * Customizes how extracted files are appended to the\n * [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData)\n * instance. Defaults to {@linkcode formDataAppendFile}.\n * @param {BaseHttpLink.Printer} [options.print] Prints the GraphQL query or\n * mutation AST to a string for transport. Defaults to\n * {@linkcode defaultPrinter}.\n * @param {typeof fetch} [options.fetch]\n * [`fetch`](https://fetch.spec.whatwg.org) implementation. Defaults to the\n * {@linkcode fetch} global.\n * @param {RequestInit} [options.fetchOptions] `fetch` options; overridden by\n * upload requirements.\n * @param {string} [options.credentials] Overrides\n * {@linkcode RequestInit.credentials credentials} in\n * {@linkcode fetchOptions}.\n * @param {{ [headerName: string]: string }} [options.headers] Merges with and\n * overrides {@linkcode RequestInit.headers headers} in\n * {@linkcode fetchOptions}.\n * @param {boolean} [options.includeExtensions] Toggles sending `extensions`\n * fields to the GraphQL server. Defaults to `false`.\n * @param {boolean} [options.includeUnusedVariables] Toggles including unused\n * GraphQL variables in the request. Defaults to `false`.\n */\n constructor({\n uri: fetchUri = \"/graphql\",\n useGETForQueries,\n isExtractableFile: customIsExtractableFile = isExtractableFile,\n FormData: CustomFormData,\n formDataAppendFile: customFormDataAppendFile = formDataAppendFile,\n print = defaultPrinter,\n fetch: customFetch,\n fetchOptions,\n credentials,\n headers,\n includeExtensions,\n includeUnusedVariables = false,\n } = {}) {\n super(\n (operation) =>\n new Observable((observer) => {\n const context = operation.getContext();\n const { options, body } = selectHttpOptionsAndBodyInternal(\n operation,\n print,\n fallbackHttpConfig,\n {\n http: {\n includeExtensions,\n },\n options: fetchOptions,\n credentials,\n headers,\n },\n {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: context.headers,\n },\n );\n\n if (body.variables && !includeUnusedVariables)\n body.variables = filterOperationVariables(\n body.variables,\n operation.query,\n );\n\n const { clone, files } = extractFiles(\n body,\n customIsExtractableFile,\n \"\",\n );\n\n /**\n * URI for the GraphQL request.\n * @type {string}\n */\n let uri = selectURI(operation, fetchUri);\n\n if (files.size) {\n if (options.headers)\n // Automatically set by `fetch` when the `body` is a `FormData`\n // instance.\n delete options.headers[\"content-type\"];\n\n // GraphQL multipart request spec:\n // https://github.com/jaydenseric/graphql-multipart-request-spec\n\n const RuntimeFormData = CustomFormData || FormData;\n\n const form = new RuntimeFormData();\n\n form.append(\"operations\", JSON.stringify(clone));\n\n /** @type {{ [key: string]: Array<string> }} */\n const map = {};\n\n let i = 0;\n files.forEach((paths) => {\n map[++i] = paths;\n });\n form.append(\"map\", JSON.stringify(map));\n\n i = 0;\n files.forEach((_paths, file) => {\n customFormDataAppendFile(form, String(++i), file);\n });\n\n options.body = form;\n } else {\n if (\n useGETForQueries &&\n // If the operation contains some mutations GET shouldn’t be used.\n !operation.query.definitions.some(\n (definition) =>\n definition.kind === \"OperationDefinition\" &&\n definition.operation === \"mutation\",\n )\n )\n options.method = \"GET\";\n\n if (options.method === \"GET\") {\n const result =\n /** @type {{ newURI: string } | { parseError: unknown }} */ (\n // The return type is incorrect; `newURI` and `parseError`\n // will never both be present.\n rewriteURIForGET(uri, body)\n );\n\n if (\"parseError\" in result) throw result.parseError;\n\n uri = result.newURI;\n } else options.body = JSON.stringify(clone);\n }\n\n /**\n * Abort controller for the GraphQL request.\n * @type {AbortController}\n */\n let controller;\n\n if (typeof AbortController !== \"undefined\") {\n controller = new AbortController();\n\n if (options.signal)\n // Respect the user configured abort controller signal.\n options.signal.aborted\n ? // Signal already aborted, so immediately abort.\n controller.abort()\n : // Signal not already aborted, so setup a listener to abort\n // when it does.\n options.signal.addEventListener(\n \"abort\",\n () => {\n controller.abort();\n },\n {\n // Prevent a memory leak if the user configured abort\n // controller is long lasting, or controls multiple\n // things.\n once: true,\n },\n );\n\n options.signal = controller.signal;\n }\n\n /**\n * Fetcher for the GraphQL request. Determined when fetching instead\n * of when constructing the link to allow more time for instrumenting\n * the global `fetch`.\n * @see https://github.com/apollographql/apollo-client/issues/7832\n */\n const runtimeFetch = customFetch || fetch;\n\n /**\n * Is the observable being cleaned up.\n * @type {boolean}\n */\n let cleaningUp;\n\n runtimeFetch(uri, options)\n .then((response) => {\n // Forward the response on the context.\n operation.setContext({ response });\n return response;\n })\n .then(parseAndCheckHttpResponse(operation))\n .then((result) => {\n observer.next(result);\n observer.complete();\n })\n .catch((error) => {\n // If the observable is being cleaned up, there is no need to call\n // next or error because there are no more subscribers. An error\n // after cleanup begins is likely from the cleanup function\n // aborting the fetch.\n if (!cleaningUp) observer.error(error);\n });\n\n // Cleanup function.\n return () => {\n cleaningUp = true;\n\n // Abort fetch. It’s ok to signal an abort even when not fetching.\n if (controller) controller.abort();\n };\n }),\n );\n }\n}\n\n/**\n * Checks if a value is an extractable file.\n * @template [ExtractableFile=any] Extractable file.\n * @callback ExtractableFileMatcher\n * @param {unknown} value Value to check.\n * @returns {value is ExtractableFile} Is the value an extractable file.\n * @example\n * How to check for the default exactable files, as well as a custom type of\n * file:\n *\n * ```js\n * import isExtractableFile from \"apollo-upload-client/isExtractableFile.mjs\";\n *\n * const isExtractableFileEnhanced = (value) =>\n * isExtractableFile(value) ||\n * (typeof CustomFile !== \"undefined\" && value instanceof CustomFile);\n * ```\n */\n\n/**\n * Appends a file extracted from the GraphQL operation to the\n * [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData)\n * instance used as the\n * [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch)\n * `options.body` for the\n * [GraphQL multipart request](https://github.com/jaydenseric/graphql-multipart-request-spec).\n * @template [ExtractableFile=any] Extractable file.\n * @callback FormDataFileAppender\n * @param {FormData} formData\n * [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData)\n * instance to append the specified file to.\n * @param {string} fieldName Form data field name to append the file with.\n * @param {ExtractableFile} file File to append. The file type depends on what\n * the extractable file matcher extracts.\n */\n","import { visit } from \"graphql\";\nexport function filterOperationVariables(variables, query) {\n const result = { ...variables };\n const unusedNames = new Set(Object.keys(variables));\n visit(query, {\n Variable(node, _key, parent) {\n // A variable type definition at the top level of a query is not\n // enough to silence server-side errors about the variable being\n // unused, so variable definitions do not count as usage.\n // https://spec.graphql.org/draft/#sec-All-Variables-Used\n if (parent &&\n parent.kind !== \"VariableDefinition\") {\n unusedNames.delete(node.name.value);\n }\n },\n });\n unusedNames.forEach((name) => {\n delete result[name];\n });\n return result;\n}\n//# sourceMappingURL=filterOperationVariables.js.map","export const selectURI = (operation, fallbackURI) => {\n const context = operation.getContext();\n const contextURI = context.uri;\n if (contextURI) {\n return contextURI;\n }\n else if (typeof fallbackURI === \"function\") {\n return fallbackURI(operation);\n }\n else {\n return fallbackURI || \"/graphql\";\n }\n};\n//# sourceMappingURL=selectURI.js.map","// For GET operations, returns the given URI rewritten with parameters, or a\n// parse error.\nexport function rewriteURIForGET(chosenURI, body) {\n // Implement the standard HTTP GET serialization, plus 'extensions'. Note\n // the extra level of JSON serialization!\n const queryParams = [];\n const addQueryParam = (key, value) => {\n queryParams.push(`${key}=${encodeURIComponent(value)}`);\n };\n if (\"query\" in body) {\n addQueryParam(\"query\", body.query);\n }\n if (body.operationName) {\n addQueryParam(\"operationName\", body.operationName);\n }\n if (body.variables) {\n let serializedVariables;\n try {\n serializedVariables = JSON.stringify(body.variables);\n }\n catch (parseError) {\n return { parseError };\n }\n addQueryParam(\"variables\", serializedVariables);\n }\n if (body.extensions) {\n let serializedExtensions;\n try {\n serializedExtensions = JSON.stringify(body.extensions);\n }\n catch (parseError) {\n return { parseError };\n }\n addQueryParam(\"extensions\", serializedExtensions);\n }\n // Reconstruct the URI with added query params.\n // XXX This assumes that the URI is well-formed and that it doesn't\n // already contain any of these query params. We could instead use the\n // URL API and take a polyfill (whatwg-url@6) for older browsers that\n // don't support URLSearchParams. Note that some browsers (and\n // versions of whatwg-url) support URL but not URLSearchParams!\n let fragment = \"\", preFragment = chosenURI;\n const fragmentStart = chosenURI.indexOf(\"#\");\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n const queryParamsPrefix = preFragment.indexOf(\"?\") === -1 ? \"?\" : \"&\";\n const newURI = preFragment + queryParamsPrefix + queryParams.join(\"&\") + fragment;\n return { newURI };\n}\n//# sourceMappingURL=rewriteURIForGET.js.map","import React, { type PropsWithChildren } from 'react';\n\nimport { ApolloLink, HttpLink, ServerError } from '@apollo/client';\nimport { SetContextLink } from '@apollo/client/link/context';\nimport { ErrorLink } from '@apollo/client/link/error';\nimport { relayStylePagination } from '@apollo/client/utilities';\nimport { ApolloClient, ApolloNextAppProvider, InMemoryCache } from '@apollo/client-integration-nextjs';\nimport UploadHttpLink from 'apollo-upload-client/UploadHttpLink.mjs';\n\nexport function ApolloWrapper({ children, makeClient }: PropsWithChildren<{ makeClient: () => ApolloClient }>) {\n return (\n <ApolloNextAppProvider makeClient={makeClient}>\n <>{children}</>\n </ApolloNextAppProvider>\n );\n}\n\nexport class GenerateMakeClient extends ApolloClient {\n constructor(config: GenerateMakeClientProps) {\n const authLink = new SetContextLink(async (prevContext) => ({\n credentials: 'include',\n headers: { 'Accept-Language': 'mn', authorization: `Bearer ${config.getToken()}`, ...prevContext.headers },\n }));\n\n const errorLink = new ErrorLink(({ error }) => {\n if (ServerError.is(error) && error.statusCode === 401) {\n }\n });\n const httpLink = new HttpLink({ uri: `${config.host}/graphql`, fetchOptions: {} });\n const uploadLink = new UploadHttpLink({ uri: `${config.host}/graphql`, headers: { 'Apollo-Require-Preflight': 'true' } });\n\n super({\n cache: config.cache || cache,\n link: ApolloLink.from([uploadLink, httpLink, authLink, config.error || errorLink]),\n });\n }\n}\n\nconst cache = new InMemoryCache({\n typePolicies: {\n Website: {\n fields: { orders: relayStylePagination(['filter', 'sort', 'status']), lineItems: relayStylePagination(['filter', 'sort']) },\n },\n Query: { fields: { products: relayStylePagination(['filter', 'sort']), orders: relayStylePagination(['filter', 'sort']) } },\n },\n});\n\nexport interface GenerateMakeClientProps {\n host: string;\n cache?: InMemoryCache;\n error?: ErrorLink;\n getToken(): string;\n}\n"],"names":["devAssert","condition","message","Boolean","Error","QueryDocumentKeys","Name","Document","OperationDefinition","VariableDefinition","Variable","SelectionSet","Field","Argument","FragmentSpread","InlineFragment","FragmentDefinition","IntValue","FloatValue","StringValue","BooleanValue","NullValue","EnumValue","ListValue","ObjectValue","ObjectField","Directive","NamedType","ListType","NonNullType","SchemaDefinition","OperationTypeDefinition","ScalarTypeDefinition","ObjectTypeDefinition","FieldDefinition","InputValueDefinition","InterfaceTypeDefinition","UnionTypeDefinition","EnumTypeDefinition","EnumValueDefinition","InputObjectTypeDefinition","DirectiveDefinition","SchemaExtension","ScalarTypeExtension","ObjectTypeExtension","InterfaceTypeExtension","UnionTypeExtension","EnumTypeExtension","InputObjectTypeExtension","TypeCoordinate","MemberCoordinate","ArgumentCoordinate","DirectiveCoordinate","DirectiveArgumentCoordinate","kindValues","Set","Object","keys","isNode","maybeNode","maybeKind","kind","has","OperationTypeNode","Kind","isWhiteSpace","code","inspect","value","formatValue","seenValues","JSON","stringify","name","previouslySeenValues","includes","toJSON","isJSONable","jsonValue","Array","isArray","array","length","len","Math","min","remaining","items","i","push","join","formatArray","object","entries","tag","prototype","toString","call","replace","constructor","getObjectTag","properties","map","key","formatObject","formatObjectValue","String","escapedRegExp","escapedReplacer","str","escapeSequences","charCodeAt","BREAK","freeze","visit","root","visitor","visitorKeys","enterLeaveMap","Map","values","set","getEnterLeaveForKind","stack","parent","inArray","index","edits","node","path","ancestors","isLeaving","isEdited","undefined","pop","slice","editOffset","editKey","editValue","arrayKey","splice","prev","result","_enterLeaveMap$get","_enterLeaveMap$get2","visitFn","get","leave","enter","_node$kind","kindVisitor","printDocASTReducer","definitions","varDefs","hasMultilineItems","variableDefinitions","wrap","prefix","description","operation","directives","selectionSet","variable","type","defaultValue","selections","block","alias","arguments","args","argsLine","indent","typeCondition","isBlockString","escapedValue","lines","split","isSingleLine","forceLeadingNewLine","every","line","hasTrailingTripleQuotes","endsWith","hasTrailingQuote","hasTrailingSlash","forceTrailingNewline","printAsMultipleLines","skipLeadingNewLine","printBlockString","fields","operationTypes","interfaces","types","repeatable","locations","memberName","fieldName","argumentName","maybeArray","separator","_maybeArray$filter$jo","filter","x","start","maybeString","end","_maybeArray$some","some","maybe","thunk","global$1","globalThis","window","self","global","version","prefixCounts","stringifyForDisplay","space","undefId","count","random","makeUniqueId","_","genericMessage","InvariantError","super","this","setPrototypeOf","verbosityLevels","verbosityLevel","indexOf","invariant","newInvariantError","wrapConsoleMethod","method","console","log","arg0","getHandledErrorMsg","getFallbackErrorMsg","optionalParams","debug","warn","error","ApolloErrorMessageHandler","Symbol","for","arg","messageArgs","reduce","msg","encodeURIComponent","cacheSizeSymbol","cacheSizes","getOperationName","doc","fallback","find","definition","defaultMakeData","create","forEach","hasOwnProperty","Trie","weakness","makeData","lookup","lookupArray","getChildTrie","data","peek","peekArray","mapFor","remove","removeArray","head","child","weak","strong","size","delete","isObjRef","WeakMap","noop","defaultDispose","_WeakRef","WeakRef","deref","_WeakMap","_FinalizationRegistry","FinalizationRegistry","register","unregister","WeakCache","max","Infinity","dispose","newest","oldest","unfinalizedNodes","finalizationScheduled","finalize","iterator","next","keyRef","registry","queueMicrotask","deleteNode","bind","getNode","older","newer","scheduleFinalization","clean","add","scheduledCleanup","WeakSet","AutoCleanedWeakCache","cache","ret","setTimeout","schedule","checkDocument","fn","makeCacheKey","cacheKey","cached","entry","memoize","expectedType","operations","d","field","__","startsWith","current","fieldPath","FIELD","isNonNullObject","obj","defaultReconciler","target","source","property","merge","objForKey","isNaN","DeepMerger","options","reconciler","mergeOptions","atPath","tail","nestedTarget","nestedSource","shallowCopyForMerge","arrayMerge","pastCopies","sourceKey","targetValue","isObject","__proto__","getPrototypeOf","mergeDeep","sources","merger","mergeDeepArray","ApolloLink","empty","EMPTY","from","links","first","rest","concat","test","left","right","op","forward","link","request","assign","execute","context","client","query","variables","extensions","operationName","operationType","getContext","defineProperty","enumerable","createOperation","combine","SetContextLink","setter","Observable","observer","closed","Promise","resolve","then","req","setContext","subscribe","catch","isBranded","brand","writable","configurable","defaultFormatMessage","errors","e","CombinedProtocolErrors","is","static","protocolErrors","formatMessage","UnconventionalError","errorType","cause","CombinedGraphQLErrors","ServerError","response","statusCode","bodyText","status","ServerParseError","originalParseError","PROTOCOL_ERRORS_SYMBOL","toErrorLike","isErrorLike","ErrorLink","errorHandler","sub","retriedSub","retriedResult","handler","incrementalHandler","isIncrementalResult","extractErrors","graphQLResultHasProtocolErrors","complete","unsubscribe","printCache","print","ast","origPrint","reset","extendStatics","b","p","__extends","TypeError","__values","o","s","m","done","__read","n","r","ar","__spreadArray","to","pack","l","relayStylePagination","keyArgs","read","existing","canRead","readField","edges","firstEdgeCursor","lastEdgeCursor","edge","cursor","startCursor","endCursor","pageInfo","getExtras","incoming","isReference","hasPreviousPage","hasNextPage","incomingEdges","firstEdge","lastEdge","firstCursor","lastCursor","suffix","after","findIndex","before","extras","SuppressedError","t","getOwnPropertySymbols","propertyIsEnumerable","__rest","notExtras","parseResponse","contentType","headers","parse","err","parseGraphQLResponseJsonEncoding","parseJsonEncoding","fallbackHttpConfig","http","includeQuery","includeExtensions","preserveHeaderCase","accept","defaultPrinter","printer","selectHttpOptionsAndBodyInternal","configs","config","credentials","normalizedHeaders","toLowerCase","headerData","originalName","removeDuplicateHeaders","body","extractFiles","isExtractable","clones","files","clone","recurse","recursed","filePaths","valueIsList","FileList","valueIsPlainObject","toStringTag","isPlainObject","uncloned","pathPrefix","recursedDeeper","item","itemClone","propertyClone","isFunction","ctorFunc","UnsubscriptionError","_super","createImpl","instance","arrRemove","arr","Subscription","initialTeardown","_parentage","_teardowns","e_1","_a","e_2","_b","_parentage_1","_parentage_1_1","e_1_1","return","_teardowns_1","_teardowns_1_1","teardown_1","execTeardown","e_2_1","teardown","_hasParent","_addParent","_removeParent","isSubscription","timeoutProvider","_i","apply","Subscriber","destination","_this","isStopped","EMPTY_OBSERVER","SafeSubscriber","_next","_error","_complete","observerOrNext","context_1","wrapForErrorHandling","defaultErrorHandler","reportUnhandledError","observable","identity","_subscribe","lift","operator","subscriber","isObserver","_trySubscribe","cb","sink","promiseCtor","getPromiseCtor","reject","subscription","Symbol_observable","pipe","fns","input","toPromise","formDataAppendFile","formData","file","append","isExtractableFile","File","Blob","UploadHttpLink","uri","fetchUri","useGETForQueries","customIsExtractableFile","FormData","CustomFormData","customFormDataAppendFile","fetch","customFetch","fetchOptions","includeUnusedVariables","unusedNames","_key","filterOperationVariables","controller","fallbackURI","contextURI","selectURI","form","paths","_paths","chosenURI","queryParams","addQueryParam","serializedVariables","parseError","serializedExtensions","fragment","preFragment","fragmentStart","substr","queryParamsPrefix","newURI","AbortController","signal","aborted","abort","addEventListener","once","cleaningUp","text","GenerateMakeClient","ApolloClient","authLink","async","prevContext","authorization","getToken","errorLink","httpLink","HttpLink","host","uploadLink","InMemoryCache","typePolicies","Website","orders","lineItems","Query","products","children","makeClient","React","createElement","ApolloNextAppProvider","Fragment"],"mappings":"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,QAAQ,aAAc,IACtBA,QAAQ,KAAM,IAEjB,GAAY,WAARJ,GAAkD,mBAAvBF,EAAOO,YAA4B,CAChE,MAAM1B,EAAOmB,EAAOO,YAAY1B,KAEhC,GAAoB,iBAATA,GAA8B,KAATA,EAC9B,OAAOA,CAEX,CAEA,OAAOqB,CACT,CAlDiBM,CAAaR,GAAU,IAGtC,MAAMS,EAAaR,EAAQS,IACzB,EAAEC,EAAKnC,KAAWmC,EAAM,KAAOlC,EAAYD,EAAOE,IAEpD,MAAO,KAAO+B,EAAWX,KAAK,MAAQ,IACxC,CAtBSc,CAAapC,EAAOE,EAC7B,CA/BamC,CAAkBrC,EAAOE,GAElC,QACE,OAAOoC,OAAOtC,GAEpB,CChBA,MAAMuC,EAAgB,gCAEtB,SAASC,EAAgBC,GACvB,OAAOC,EAAgBD,EAAIE,WAAW,GACxC,CAEA,MAAMD,EAAkB,CACtB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,MACA,MACA,MACA,UACA,MACA,MACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,GACA,GACA,MACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,U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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66]}
|