{"version":3,"sources":["jsdelivr-header.js","/npm/@graphql-tools/executor-http@3.1.0/dist/index.js"],"names":[],"mappings":"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","file":"/npm/@graphql-tools/executor-http@3.1.0/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@graphql-tools/executor-http@3.1.0/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { abortSignalAny } from '@graphql-hive/signal';\nimport { defaultPrintFn, serializeExecutionRequest } from '@graphql-tools/executor-common';\nimport { isAsyncIterable, createGraphQLError, inspect, mapAsyncIterator, mergeIncrementalResult, memoize1, getOperationASTFromRequest } from '@graphql-tools/utils';\nimport { DisposableSymbols } from '@whatwg-node/disposablestack';\nimport { FormData, File as File$1, TextEncoder, crypto, TextDecoder, fetch } from '@whatwg-node/fetch';\nimport { isPromise, handleMaybePromise } from '@whatwg-node/promise-helpers';\nimport { Repeater } from '@repeaterjs/repeater';\nimport { GraphQLError } from 'graphql';\nimport { meros as meros$1 } from 'meros/browser';\nimport { meros } from 'meros/node';\n\nfunction 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\n// @ts-check\n\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 */\nfunction 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\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 */\nfunction 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\nfunction isGraphQLUpload(upload) {\n  return typeof upload.createReadStream === \"function\";\n}\n\nfunction collectAsyncIterableValues(asyncIterable) {\n  const values = [];\n  const iterator = asyncIterable[Symbol.asyncIterator]();\n  function iterate() {\n    return handleMaybePromise(\n      () => iterator.next(),\n      ({ value, done }) => {\n        if (value != null) {\n          values.push(value);\n        }\n        if (done) {\n          return values;\n        }\n        return iterate();\n      }\n    );\n  }\n  return iterate();\n}\nfunction createFormDataFromVariables(body, {\n  File: FileCtor = File$1,\n  FormData: FormDataCtor = FormData\n}) {\n  if (!body.variables) {\n    return JSON.stringify(body);\n  }\n  const vars = Object.assign({}, body.variables);\n  const { clone, files } = extractFiles(\n    vars,\n    (v) => isExtractableFile(v) || v?.promise || isAsyncIterable(v) || v?.then || typeof v?.arrayBuffer === \"function\",\n    \"variables\"\n  );\n  if (files.size === 0) {\n    return JSON.stringify(body);\n  }\n  const map = {};\n  const uploads = [];\n  let currIndex = 0;\n  for (const [file, curr] of files) {\n    map[currIndex] = curr;\n    uploads[currIndex] = file;\n    currIndex++;\n  }\n  const form = new FormDataCtor();\n  form.append(\n    \"operations\",\n    JSON.stringify({\n      ...body,\n      variables: clone\n    })\n  );\n  form.append(\"map\", JSON.stringify(map));\n  function handleUpload(upload, i) {\n    const indexStr = i.toString();\n    if (upload != null) {\n      return handleMaybePromise(\n        () => upload?.promise || upload,\n        (upload2) => {\n          const filename = upload2.filename || upload2.name || upload2.path || `blob-${indexStr}`;\n          if (isBlob(upload2)) {\n            form.append(indexStr, upload2, filename);\n          } else if (isAsyncIterable(upload2)) {\n            return handleMaybePromise(\n              () => collectAsyncIterableValues(upload2),\n              (chunks) => {\n                const blobPart = new Uint8Array(chunks);\n                form.append(\n                  indexStr,\n                  new FileCtor([blobPart], filename),\n                  filename\n                );\n              }\n            );\n          } else if (isGraphQLUpload(upload2)) {\n            return handleMaybePromise(\n              () => collectAsyncIterableValues(upload2.createReadStream()),\n              (chunks) => {\n                const blobPart = new Uint8Array(chunks);\n                form.append(\n                  indexStr,\n                  new FileCtor([blobPart], filename, { type: upload2.mimetype }),\n                  filename\n                );\n              }\n            );\n          } else {\n            form.append(indexStr, new FileCtor([upload2], filename), filename);\n          }\n        }\n      );\n    }\n  }\n  const jobs = [];\n  for (const i in uploads) {\n    const upload = uploads[i];\n    const job = handleUpload(upload, Number(i));\n    if (isPromise(job)) {\n      jobs.push(job);\n    }\n  }\n  if (jobs.length > 0) {\n    return Promise.all(jobs).then(() => form);\n  }\n  return form;\n}\nfunction isBlob(obj) {\n  return typeof obj.arrayBuffer === \"function\";\n}\n\nfunction createGraphQLErrorForAbort(reason, extensions) {\n  if (reason instanceof GraphQLError) {\n    return reason;\n  }\n  if (reason?.name === \"TimeoutError\") {\n    return createGraphQLError(reason.message, {\n      extensions: {\n        http: {\n          status: 504,\n          ...extensions?.[\"http\"] || {}\n        },\n        code: \"TIMEOUT_ERROR\",\n        ...extensions || {}\n      },\n      originalError: reason\n    });\n  }\n  return createGraphQLError(reason.message, {\n    extensions,\n    originalError: reason\n  });\n}\nfunction createResultForAbort(reason, extensions) {\n  return {\n    errors: [createGraphQLErrorForAbort(reason, extensions)]\n  };\n}\nfunction hashSHA256(str) {\n  const textEncoder = new TextEncoder();\n  const utf8 = textEncoder.encode(str);\n  return handleMaybePromise(\n    () => crypto.subtle.digest(\"SHA-256\", utf8),\n    (hashBuffer) => {\n      let hashHex = \"\";\n      for (const bytes of new Uint8Array(hashBuffer)) {\n        hashHex += bytes.toString(16).padStart(2, \"0\");\n      }\n      return hashHex;\n    }\n  );\n}\n\nconst DELIM = \"\\n\\n\";\nfunction isReadableStream(value) {\n  return value && typeof value.getReader === \"function\";\n}\nfunction handleEventStreamResponse(response, subscriptionCtrl, signal) {\n  const body = response.body;\n  if (!isReadableStream(body)) {\n    throw new Error(\n      \"Response body is expected to be a readable stream but got; \" + inspect(body)\n    );\n  }\n  return new Repeater((push, stop) => {\n    const decoder = new TextDecoder();\n    const reader = body.getReader();\n    let closed = false;\n    reader.closed.then(() => closed = true).catch((reason) => closed = reason);\n    stop.then(() => {\n      subscriptionCtrl?.abort();\n      if (body.locked) {\n        reader.releaseLock();\n      }\n    }).catch((err) => {\n      reader.cancel(err);\n    });\n    let currChunk = \"\";\n    async function pump() {\n      if (signal?.aborted) {\n        await push(createResultForAbort(signal.reason));\n        return stop();\n      }\n      if (!body?.locked) {\n        return stop();\n      }\n      let done, chunk;\n      try {\n        const result = await reader.read();\n        done = result.done;\n        chunk = result.value;\n      } catch (err) {\n        if (signal?.aborted) {\n          await push(createResultForAbort(signal.reason));\n          return stop();\n        }\n        const errErr = err instanceof Error ? err : new Error(String(err));\n        await push({\n          errors: [\n            createGraphQLError(errErr.message, { originalError: errErr })\n          ]\n        });\n        return stop();\n      }\n      if (done) {\n        return stop();\n      }\n      currChunk += typeof chunk === \"string\" ? chunk : decoder.decode(chunk);\n      for (; ; ) {\n        const delimIndex = currChunk.indexOf(DELIM);\n        if (delimIndex === -1) {\n          break;\n        }\n        const msg = currChunk.slice(0, delimIndex);\n        currChunk = currChunk.slice(delimIndex + DELIM.length);\n        const dataStr = msg.split(\"data:\")[1]?.trim();\n        if (dataStr) {\n          const data = JSON.parse(dataStr);\n          await push(data.payload || data);\n        }\n        const event = msg.split(\"event:\")[1]?.trim().split(\"\\n\")[0]?.trim();\n        if (event === \"complete\") {\n          return stop();\n        }\n      }\n      if (closed) {\n        return stop();\n      }\n      return pump();\n    }\n    return pump();\n  });\n}\n\nfunction isIncomingMessage(body) {\n  return body != null && typeof body === \"object\" && \"pipe\" in body;\n}\nasync function handleMultipartMixedResponse(response) {\n  const body = response.body;\n  const contentType = response.headers.get(\"content-type\") || \"\";\n  let asyncIterator;\n  if (isIncomingMessage(body)) {\n    body.headers = {\n      \"content-type\": contentType\n    };\n    const result = await meros(body);\n    if (\"next\" in result) {\n      asyncIterator = result;\n    }\n  } else {\n    const result = await meros$1(response);\n    if (\"next\" in result) {\n      asyncIterator = result;\n    }\n  }\n  const executionResult = {};\n  if (asyncIterator == null) {\n    return executionResult;\n  }\n  const resultStream = mapAsyncIterator(asyncIterator, (part) => {\n    if (part.json) {\n      const incrementalResult = part.body;\n      mergeIncrementalResult({\n        incrementalResult,\n        executionResult\n      });\n    }\n    return executionResult;\n  });\n  return resultStream;\n}\n\nconst isLiveQueryOperationDefinitionNode = memoize1(\n  function isLiveQueryOperationDefinitionNode2(node) {\n    return node.operation === \"query\" && node.directives?.some((directive) => directive.name.value === \"live\");\n  }\n);\n\nfunction prepareGETUrl({\n  baseUrl = \"\",\n  body\n}) {\n  const dummyHostname = \"https://dummyhostname.com\";\n  const validUrl = baseUrl.startsWith(\"http\") ? baseUrl : baseUrl?.startsWith(\"/\") ? `${dummyHostname}${baseUrl}` : `${dummyHostname}/${baseUrl}`;\n  const urlObj = new URL(validUrl);\n  if (body.query) {\n    urlObj.searchParams.set(\"query\", body.query);\n  }\n  if (body.variables && Object.keys(body.variables).length > 0) {\n    urlObj.searchParams.set(\"variables\", JSON.stringify(body.variables));\n  }\n  if (body.operationName) {\n    urlObj.searchParams.set(\"operationName\", body.operationName);\n  }\n  if (body.extensions) {\n    urlObj.searchParams.set(\"extensions\", JSON.stringify(body.extensions));\n  }\n  const finalUrl = urlObj.toString().replace(dummyHostname, \"\");\n  return finalUrl;\n}\n\nconst inflightRequests = /* @__PURE__ */ new Map();\nfunction buildHTTPExecutor(options) {\n  const printFn = options?.print ?? defaultPrintFn;\n  let disposeCtrl;\n  const baseExecutor = (request, excludeQuery) => {\n    if (!request.context?.request?.cf) {\n      disposeCtrl ||= new AbortController();\n    }\n    if (disposeCtrl?.signal.aborted) {\n      return createResultForAbort(disposeCtrl.signal.reason);\n    }\n    const fetchFn = request.extensions?.fetch ?? options?.fetch ?? fetch;\n    let method = request.extensions?.method || options?.method;\n    const operationAst = getOperationASTFromRequest(request);\n    const operationType = operationAst.operation;\n    if ((options?.useGETForQueries || request.extensions?.useGETForQueries) && operationType === \"query\") {\n      method = \"GET\";\n    }\n    let accept = \"application/graphql-response+json, application/json, multipart/mixed\";\n    let subscriptionCtrl;\n    if (operationType === \"subscription\" || isLiveQueryOperationDefinitionNode(operationAst)) {\n      method ||= \"GET\";\n      accept = \"text/event-stream\";\n      subscriptionCtrl = new AbortController();\n    } else {\n      method ||= \"POST\";\n    }\n    let endpoint;\n    if (request.extensions?.endpoint) {\n      if (typeof request.extensions.endpoint === \"string\") {\n        endpoint = request.extensions.endpoint;\n      }\n      if (typeof request.extensions.endpoint === \"function\") {\n        endpoint = request.extensions.endpoint(request);\n      }\n    }\n    if (!endpoint) {\n      if (typeof options?.endpoint === \"string\") {\n        endpoint = options.endpoint;\n      }\n      if (typeof options?.endpoint === \"function\") {\n        endpoint = options.endpoint(request);\n      }\n    }\n    if (!endpoint) {\n      endpoint = \"/graphql\";\n    }\n    let isCustomHeader = false;\n    const headers = { accept };\n    if (options?.headers) {\n      isCustomHeader = true;\n      Object.assign(\n        headers,\n        typeof options?.headers === \"function\" ? options.headers(request) : options?.headers\n      );\n    }\n    if (request.extensions?.headers) {\n      isCustomHeader = true;\n      const { headers: headersFromExtensions, ...restExtensions } = request.extensions;\n      Object.assign(headers, headersFromExtensions);\n      request.extensions = restExtensions;\n    }\n    const signals = [];\n    if (disposeCtrl?.signal) {\n      signals.push(disposeCtrl.signal);\n    }\n    const signalFromRequest = request.signal || request.info?.signal;\n    if (signalFromRequest) {\n      if (signalFromRequest.aborted) {\n        return createResultForAbort(signalFromRequest.reason);\n      }\n      signals.push(signalFromRequest);\n    }\n    if (options?.timeout) {\n      const timeout = typeof options.timeout === \"number\" ? options.timeout : options.timeout(request);\n      if (timeout) {\n        signals.push(AbortSignal.timeout(timeout));\n      }\n    }\n    if (subscriptionCtrl) {\n      signals.push(subscriptionCtrl.signal);\n    }\n    const signal = signals.length ? abortSignalAny(signals) : void 0;\n    const upstreamErrorExtensions = {\n      request: {\n        method\n      }\n    };\n    const query = printFn(request.document);\n    let serializeFn = function serialize() {\n      return serializeExecutionRequest({\n        executionRequest: request,\n        excludeQuery,\n        printFn\n      });\n    };\n    if (options?.apq) {\n      serializeFn = function serializeWithAPQ() {\n        return handleMaybePromise(\n          () => hashSHA256(query),\n          (sha256Hash) => {\n            const extensions = request.extensions || {};\n            extensions[\"persistedQuery\"] = {\n              version: 1,\n              sha256Hash\n            };\n            return serializeExecutionRequest({\n              executionRequest: {\n                ...request,\n                extensions\n              },\n              excludeQuery,\n              printFn\n            });\n          }\n        );\n      };\n    }\n    function handleError(e) {\n      upstreamErrorExtensions.code = \"SUBREQUEST_HTTP_ERROR\";\n      if (e.name === \"AggregateError\") {\n        return {\n          errors: e.errors.map(\n            (e2) => coerceFetchError(e2, {\n              signal,\n              endpoint,\n              upstreamErrorExtensions\n            })\n          )\n        };\n      }\n      return {\n        errors: [\n          coerceFetchError(e, {\n            signal,\n            endpoint,\n            upstreamErrorExtensions\n          })\n        ]\n      };\n    }\n    function handleInflightRequest(inflightRequestOptions, context, info) {\n      if (options?.deduplicateInflightRequests === false) {\n        return runInflightRequest();\n      }\n      function runInflightRequest() {\n        return handleMaybePromise(\n          () => fetchFn(\n            inflightRequestOptions.url,\n            {\n              method: inflightRequestOptions.method,\n              headers: inflightRequestOptions.headers,\n              body: inflightRequestOptions.body,\n              credentials: inflightRequestOptions.credentials,\n              signal: inflightRequestOptions.signal\n            },\n            context,\n            info\n          ),\n          (fetchResult) => handleMaybePromise(\n            () => {\n              upstreamErrorExtensions.response ||= {};\n              upstreamErrorExtensions.response.status = fetchResult.status;\n              upstreamErrorExtensions.response.statusText = fetchResult.statusText;\n              Object.defineProperty(\n                upstreamErrorExtensions.response,\n                \"headers\",\n                {\n                  get() {\n                    return Object.fromEntries(fetchResult.headers.entries());\n                  }\n                }\n              );\n              if (options?.retry != null && !fetchResult.status.toString().startsWith(\"2\")) {\n                throw new Error(\n                  fetchResult.statusText || `Upstream HTTP Error: ${fetchResult.status}`\n                );\n              }\n              const contentType = fetchResult.headers.get(\"content-type\");\n              if (contentType?.includes(\"text/event-stream\")) {\n                return handleEventStreamResponse(\n                  fetchResult,\n                  subscriptionCtrl,\n                  signal\n                );\n              } else if (contentType?.includes(\"multipart/mixed\")) {\n                return handleMultipartMixedResponse(fetchResult);\n              }\n              return fetchResult.text();\n            },\n            (result) => {\n              if (typeof result === \"string\") {\n                upstreamErrorExtensions.response ||= {};\n                upstreamErrorExtensions.response.body = result;\n                if (result) {\n                  try {\n                    const parsedResult = JSON.parse(result);\n                    upstreamErrorExtensions.response.body = parsedResult;\n                    if (parsedResult.data == null && (parsedResult.errors == null || parsedResult.errors.length === 0)) {\n                      const message = `Unexpected empty \"data\" and \"errors\" fields in result: ${result}`;\n                      upstreamErrorExtensions.code = \"RESPONSE_VALIDATION_FAILED\";\n                      return {\n                        errors: [\n                          createGraphQLError(message, {\n                            originalError: new Error(message),\n                            extensions: upstreamErrorExtensions\n                          })\n                        ]\n                      };\n                    }\n                    if (Array.isArray(parsedResult.errors)) {\n                      return {\n                        ...parsedResult,\n                        errors: parsedResult.errors.map(\n                          ({\n                            message,\n                            ...options2\n                          }) => createGraphQLError(message, options2)\n                        )\n                      };\n                    }\n                    return parsedResult;\n                  } catch (e) {\n                    upstreamErrorExtensions.code = \"RESPONSE_VALIDATION_FAILED\";\n                    return {\n                      errors: [\n                        createGraphQLError(\n                          `Unexpected response: ${JSON.stringify(result)}`,\n                          {\n                            extensions: upstreamErrorExtensions,\n                            originalError: e\n                          }\n                        )\n                      ]\n                    };\n                  }\n                } else {\n                  const message = \"No response returned\";\n                  upstreamErrorExtensions.code = \"RESPONSE_VALIDATION_FAILED\";\n                  return {\n                    errors: [\n                      createGraphQLError(message, {\n                        extensions: upstreamErrorExtensions,\n                        originalError: new Error(message)\n                      })\n                    ]\n                  };\n                }\n              } else {\n                return result;\n              }\n            },\n            handleError\n          ),\n          handleError\n        );\n      }\n      if (typeof inflightRequestOptions.body === \"object\") {\n        return runInflightRequest();\n      }\n      let inflightRequestId = `${inflightRequestOptions.url}|${inflightRequestOptions.method}`;\n      if (inflightRequestOptions.body) {\n        inflightRequestId += `|${inflightRequestOptions.body}`;\n      }\n      if (isCustomHeader) {\n        inflightRequestId += `|${JSON.stringify(inflightRequestOptions.headers)}`;\n      }\n      let inflightRequest = inflightRequests.get(inflightRequestId);\n      if (!inflightRequest) {\n        inflightRequest = runInflightRequest();\n        if (isPromise(inflightRequest)) {\n          inflightRequests.set(inflightRequestId, inflightRequest);\n          inflightRequest.finally(() => {\n            inflightRequests.delete(inflightRequestId);\n          });\n        }\n      }\n      return inflightRequest;\n    }\n    return handleMaybePromise(\n      () => serializeFn(),\n      (body) => {\n        switch (method) {\n          case \"GET\": {\n            const finalUrl = prepareGETUrl({\n              baseUrl: endpoint,\n              body\n            });\n            const inflightRequestOptions = {\n              url: finalUrl,\n              method: \"GET\",\n              headers,\n              signal,\n              credentials: options?.credentials\n            };\n            upstreamErrorExtensions.request.url = finalUrl;\n            return handleInflightRequest(\n              inflightRequestOptions,\n              request.context,\n              request.info\n            );\n          }\n          case \"POST\": {\n            upstreamErrorExtensions.request.body = body;\n            return handleMaybePromise(\n              () => createFormDataFromVariables(body, {\n                File: options?.File,\n                FormData: options?.FormData\n              }),\n              (body2) => {\n                if (typeof body2 === \"string\" && !headers[\"content-type\"]) {\n                  upstreamErrorExtensions.request.body = body2;\n                  headers[\"content-type\"] = \"application/json\";\n                }\n                const inflightRequestOptions = {\n                  url: endpoint,\n                  method: \"POST\",\n                  body: body2,\n                  headers,\n                  credentials: options?.credentials,\n                  signal\n                };\n                return handleInflightRequest(\n                  inflightRequestOptions,\n                  request.context,\n                  request.info\n                );\n              },\n              handleError\n            );\n          }\n        }\n      },\n      handleError\n    );\n  };\n  let executor = baseExecutor;\n  if (options?.apq != null) {\n    executor = function apqExecutor(request) {\n      return handleMaybePromise(\n        () => baseExecutor(request, true),\n        (res) => {\n          if (res.errors?.some(\n            (error) => error.extensions[\"code\"] === \"PERSISTED_QUERY_NOT_FOUND\" || error.message === \"PersistedQueryNotFound\"\n          )) {\n            return baseExecutor(request, false);\n          }\n          return res;\n        }\n      );\n    };\n  }\n  if (options?.retry != null) {\n    const prevExecutor = executor;\n    executor = function retryExecutor(request) {\n      let result;\n      let attempt = 0;\n      function retryAttempt() {\n        if (disposeCtrl?.signal.aborted) {\n          return createResultForAbort(disposeCtrl.signal.reason);\n        }\n        attempt++;\n        if (attempt > options.retry) {\n          if (result != null) {\n            return result;\n          }\n          return {\n            errors: [createGraphQLError(\"No response returned from fetch\")]\n          };\n        }\n        return handleMaybePromise(\n          () => prevExecutor(request),\n          (res) => {\n            result = res;\n            if (result?.errors?.length) {\n              return retryAttempt();\n            }\n            return result;\n          }\n        );\n      }\n      return retryAttempt();\n    };\n  }\n  Object.defineProperties(executor, {\n    [DisposableSymbols.dispose]: {\n      get() {\n        return function dispose() {\n          disposeCtrl?.abort(options?.getDisposeReason?.());\n          disposeCtrl = void 0;\n        };\n      }\n    },\n    [DisposableSymbols.asyncDispose]: {\n      get() {\n        return function asyncDispose() {\n          disposeCtrl?.abort(options?.getDisposeReason?.());\n          disposeCtrl = void 0;\n        };\n      }\n    }\n  });\n  return executor;\n}\nfunction coerceFetchError(e, {\n  signal,\n  endpoint,\n  upstreamErrorExtensions\n}) {\n  if (typeof e === \"string\") {\n    return createGraphQLError(e, {\n      extensions: upstreamErrorExtensions\n    });\n  } else if (e.name === \"GraphQLError\") {\n    return e;\n  } else if (e.name === \"TypeError\" && e.message === \"fetch failed\") {\n    return createGraphQLError(`fetch failed to ${endpoint}`, {\n      extensions: upstreamErrorExtensions,\n      originalError: e\n    });\n  } else if (e.name === \"AbortError\") {\n    return createGraphQLErrorForAbort(\n      signal?.reason || e,\n      upstreamErrorExtensions\n    );\n  } else if (e.message) {\n    return createGraphQLError(e.message, {\n      extensions: upstreamErrorExtensions,\n      originalError: e\n    });\n  } else {\n    return createGraphQLError(\"Unknown error\", {\n      extensions: upstreamErrorExtensions,\n      originalError: e\n    });\n  }\n}\n\nexport { buildHTTPExecutor, isLiveQueryOperationDefinitionNode };\n"]}