PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@gql.tada/internal/dist

Просмотр файла: gql-tada-internal.mjs

import * as e from "node:path";

import r from "node:path";

import a from "typescript";

import { GraphQLSchema as n, GraphQLObjectType as t, GraphQLID as i, executeSync as o, buildClientSchema as s, buildSchema as u } from "graphql";

import { Kind as l, GraphQLError as c, parse as d, print as f, OperationTypeNode as p } from "@0no-co/graphql.web";

import * as m from "node:fs/promises";

import v from "node:fs/promises";

import { createRequire as y } from "node:module";

var teardownPlaceholder = () => {};

var h = teardownPlaceholder;

function start(e) {
  return {
    tag: 0,
    0: e
  };
}

function push(e) {
  return {
    tag: 1,
    0: e
  };
}

var asyncIteratorSymbol = () => "function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator";

var identity = e => e;

function filter(e) {
  return r => a => {
    var n = h;
    r((r => {
      if (0 === r) {
        a(0);
      } else if (0 === r.tag) {
        n = r[0];
        a(r);
      } else if (!e(r[0])) {
        n(0);
      } else {
        a(r);
      }
    }));
  };
}

function map(e) {
  return r => a => r((r => {
    if (0 === r || 0 === r.tag) {
      a(r);
    } else {
      a(push(e(r[0])));
    }
  }));
}

function mergeMap(e) {
  return r => a => {
    var n = [];
    var t = h;
    var i = !1;
    var o = !1;
    r((r => {
      if (o) {} else if (0 === r) {
        o = !0;
        if (!n.length) {
          a(0);
        }
      } else if (0 === r.tag) {
        t = r[0];
      } else {
        i = !1;
        !function applyInnerSource(e) {
          var r = h;
          e((e => {
            if (0 === e) {
              if (n.length) {
                var s = n.indexOf(r);
                if (s > -1) {
                  (n = n.slice()).splice(s, 1);
                }
                if (!n.length) {
                  if (o) {
                    a(0);
                  } else if (!i) {
                    i = !0;
                    t(0);
                  }
                }
              }
            } else if (0 === e.tag) {
              n.push(r = e[0]);
              r(0);
            } else if (n.length) {
              a(e);
              r(0);
            }
          }));
        }(e(r[0]));
        if (!i) {
          i = !0;
          t(0);
        }
      }
    }));
    a(start((e => {
      if (1 === e) {
        if (!o) {
          o = !0;
          t(1);
        }
        for (var r = 0, a = n, s = n.length; r < s; r++) {
          a[r](1);
        }
        n.length = 0;
      } else {
        if (!o && !i) {
          i = !0;
          t(0);
        } else {
          i = !1;
        }
        for (var u = 0, l = n, c = n.length; u < c; u++) {
          l[u](0);
        }
      }
    })));
  };
}

function merge(e) {
  return function mergeAll(e) {
    return mergeMap(identity)(e);
  }(E(e));
}

function onEnd(e) {
  return r => a => {
    var n = !1;
    r((r => {
      if (n) {} else if (0 === r) {
        n = !0;
        a(0);
        e();
      } else if (0 === r.tag) {
        var t = r[0];
        a(start((r => {
          if (1 === r) {
            n = !0;
            t(1);
            e();
          } else {
            t(r);
          }
        })));
      } else {
        a(r);
      }
    }));
  };
}

function onPush(e) {
  return r => a => {
    var n = !1;
    r((r => {
      if (n) {} else if (0 === r) {
        n = !0;
        a(0);
      } else if (0 === r.tag) {
        var t = r[0];
        a(start((e => {
          if (1 === e) {
            n = !0;
          }
          t(e);
        })));
      } else {
        e(r[0]);
        a(r);
      }
    }));
  };
}

function onStart(e) {
  return r => a => r((r => {
    if (0 === r) {
      a(0);
    } else if (0 === r.tag) {
      a(r);
      e();
    } else {
      a(r);
    }
  }));
}

function share(e) {
  var r = [];
  var a = h;
  var n = !1;
  return t => {
    r.push(t);
    if (1 === r.length) {
      e((e => {
        if (0 === e) {
          for (var t = 0, i = r, o = r.length; t < o; t++) {
            i[t](0);
          }
          r.length = 0;
        } else if (0 === e.tag) {
          a = e[0];
        } else {
          n = !1;
          for (var s = 0, u = r, l = r.length; s < l; s++) {
            u[s](e);
          }
        }
      }));
    }
    t(start((e => {
      if (1 === e) {
        var i = r.indexOf(t);
        if (i > -1) {
          (r = r.slice()).splice(i, 1);
        }
        if (!r.length) {
          a(1);
        }
      } else if (!n) {
        n = !0;
        a(0);
      }
    })));
  };
}

function switchMap(e) {
  return r => a => {
    var n = h;
    var t = h;
    var i = !1;
    var o = !1;
    var s = !1;
    var u = !1;
    r((r => {
      if (u) {} else if (0 === r) {
        u = !0;
        if (!s) {
          a(0);
        }
      } else if (0 === r.tag) {
        n = r[0];
      } else {
        if (s) {
          t(1);
          t = h;
        }
        if (!i) {
          i = !0;
          n(0);
        } else {
          i = !1;
        }
        !function applyInnerSource(e) {
          s = !0;
          e((e => {
            if (!s) {} else if (0 === e) {
              s = !1;
              if (u) {
                a(0);
              } else if (!i) {
                i = !0;
                n(0);
              }
            } else if (0 === e.tag) {
              o = !1;
              (t = e[0])(0);
            } else {
              a(e);
              if (!o) {
                t(0);
              } else {
                o = !1;
              }
            }
          }));
        }(e(r[0]));
      }
    }));
    a(start((e => {
      if (1 === e) {
        if (!u) {
          u = !0;
          n(1);
        }
        if (s) {
          s = !1;
          t(1);
        }
      } else {
        if (!u && !i) {
          i = !0;
          n(0);
        }
        if (s && !o) {
          o = !0;
          t(0);
        }
      }
    })));
  };
}

function take(e) {
  return r => a => {
    var n = h;
    var t = !1;
    var i = 0;
    r((r => {
      if (t) {} else if (0 === r) {
        t = !0;
        a(0);
      } else if (0 === r.tag) {
        n = r[0];
      } else if (i++ < e) {
        a(r);
        if (!t && i >= e) {
          t = !0;
          a(0);
          n(1);
        }
      } else {
        a(r);
      }
    }));
    a(start((r => {
      if (1 === r && !t) {
        t = !0;
        n(1);
      } else if (0 === r && !t && i < e) {
        n(0);
      }
    })));
  };
}

function takeUntil(e) {
  return r => a => {
    var n = h;
    var t = h;
    var i = !1;
    r((r => {
      if (i) {} else if (0 === r) {
        i = !0;
        t(1);
        a(0);
      } else if (0 === r.tag) {
        n = r[0];
        e((e => {
          if (0 === e) {} else if (0 === e.tag) {
            (t = e[0])(0);
          } else {
            i = !0;
            t(1);
            n(1);
            a(0);
          }
        }));
      } else {
        a(r);
      }
    }));
    a(start((e => {
      if (1 === e && !i) {
        i = !0;
        n(1);
        t(1);
      } else if (!i) {
        n(0);
      }
    })));
  };
}

function takeWhile(e, r) {
  return r => a => {
    var n = h;
    var t = !1;
    r((r => {
      if (t) {} else if (0 === r) {
        t = !0;
        a(0);
      } else if (0 === r.tag) {
        n = r[0];
        a(r);
      } else if (!e(r[0])) {
        t = !0;
        a(r);
        a(0);
        n(1);
      } else {
        a(r);
      }
    }));
  };
}

function fromAsyncIterable(e) {
  return r => {
    var a = e[asyncIteratorSymbol()] && e[asyncIteratorSymbol()]() || e;
    var n = !1;
    var t = !1;
    var i = !1;
    var o;
    r(start((async e => {
      if (1 === e) {
        n = !0;
        if (a.return) {
          a.return();
        }
      } else if (t) {
        i = !0;
      } else {
        for (i = t = !0; i && !n; ) {
          if ((o = await a.next()).done) {
            n = !0;
            if (a.return) {
              await a.return();
            }
            r(0);
          } else {
            try {
              i = !1;
              r(push(o.value));
            } catch (e) {
              if (a.throw) {
                if (n = !!(await a.throw(e)).done) {
                  r(0);
                }
              } else {
                throw e;
              }
            }
          }
        }
        t = !1;
      }
    })));
  };
}

var E = function fromIterable(e) {
  if (e[Symbol.asyncIterator]) {
    return fromAsyncIterable(e);
  }
  return r => {
    var a = e[Symbol.iterator]();
    var n = !1;
    var t = !1;
    var i = !1;
    var o;
    r(start((e => {
      if (1 === e) {
        n = !0;
        if (a.return) {
          a.return();
        }
      } else if (t) {
        i = !0;
      } else {
        for (i = t = !0; i && !n; ) {
          if ((o = a.next()).done) {
            n = !0;
            if (a.return) {
              a.return();
            }
            r(0);
          } else {
            try {
              i = !1;
              r(push(o.value));
            } catch (e) {
              if (a.throw) {
                if (n = !!a.throw(e).done) {
                  r(0);
                }
              } else {
                throw e;
              }
            }
          }
        }
        t = !1;
      }
    })));
  };
};

function fromValue(e) {
  return r => {
    var a = !1;
    r(start((n => {
      if (1 === n) {
        a = !0;
      } else if (!a) {
        a = !0;
        r(push(e));
        r(0);
      }
    })));
  };
}

function make(e) {
  return r => {
    var a = !1;
    var n = e({
      next(e) {
        if (!a) {
          r(push(e));
        }
      },
      complete() {
        if (!a) {
          a = !0;
          r(0);
        }
      }
    });
    r(start((e => {
      if (1 === e && !a) {
        a = !0;
        n();
      }
    })));
  };
}

function makeSubject() {
  var e;
  var r;
  return {
    source: share(make((a => {
      e = a.next;
      r = a.complete;
      return teardownPlaceholder;
    }))),
    next(r) {
      if (e) {
        e(r);
      }
    },
    complete() {
      if (r) {
        r();
      }
    }
  };
}

function subscribe(e) {
  return r => {
    var a = h;
    var n = !1;
    r((r => {
      if (0 === r) {
        n = !0;
      } else if (0 === r.tag) {
        (a = r[0])(0);
      } else if (!n) {
        e(r[0]);
        a(0);
      }
    }));
    return {
      unsubscribe() {
        if (!n) {
          n = !0;
          a(1);
        }
      }
    };
  };
}

function toPromise(e) {
  return new Promise((r => {
    var a = h;
    var n;
    e((e => {
      if (0 === e) {
        Promise.resolve(n).then(r);
      } else if (0 === e.tag) {
        (a = e[0])(0);
      } else {
        n = e[0];
        a(0);
      }
    }));
  }));
}

var rehydrateGraphQlError = e => {
  if (e && "string" == typeof e.message && (e.extensions || "GraphQLError" === e.name)) {
    return e;
  } else if ("object" == typeof e && "string" == typeof e.message) {
    return new c(e.message, e.nodes, e.source, e.positions, e.path, e, e.extensions || {});
  } else {
    return new c(e);
  }
};

class CombinedError extends Error {
  constructor(e) {
    var r = (e.graphQLErrors || []).map(rehydrateGraphQlError);
    var a = ((e, r) => {
      var a = "";
      if (e) {
        return `[Network] ${e.message}`;
      }
      if (r) {
        for (var n of r) {
          if (a) {
            a += "\n";
          }
          a += `[GraphQL] ${n.message}`;
        }
      }
      return a;
    })(e.networkError, r);
    super(a);
    this.name = "CombinedError";
    this.message = a;
    this.graphQLErrors = r;
    this.networkError = e.networkError;
    this.response = e.response;
  }
  toString() {
    return this.message;
  }
}

var phash = (e, r) => {
  var a = 0 | (r || 5381);
  for (var n = 0, t = 0 | e.length; n < t; n++) {
    a = (a << 5) + a + e.charCodeAt(n);
  }
  return a;
};

var k = new Set;

var g = new WeakMap;

var stringify = (e, r) => {
  if (null === e || k.has(e)) {
    return "null";
  } else if ("object" != typeof e) {
    return JSON.stringify(e) || "";
  } else if (e.toJSON) {
    return stringify(e.toJSON(), r);
  } else if (Array.isArray(e)) {
    var a = "[";
    for (var n of e) {
      if (a.length > 1) {
        a += ",";
      }
      a += stringify(n, r) || "null";
    }
    return a + "]";
  } else if (!r && (N !== NoopConstructor && e instanceof N || T !== NoopConstructor && e instanceof T)) {
    return "null";
  }
  var t = Object.keys(e).sort();
  if (!t.length && e.constructor && Object.getPrototypeOf(e).constructor !== Object.prototype.constructor) {
    var i = g.get(e) || Math.random().toString(36).slice(2);
    g.set(e, i);
    return stringify({
      __key: i
    }, r);
  }
  k.add(e);
  var o = "{";
  for (var s of t) {
    var u = stringify(e[s], r);
    if (u) {
      if (o.length > 1) {
        o += ",";
      }
      o += stringify(s, r) + ":" + u;
    }
  }
  k.delete(e);
  return o + "}";
};

var extract = (e, r, a) => {
  if (null == a || "object" != typeof a || a.toJSON || k.has(a)) {} else if (Array.isArray(a)) {
    for (var n = 0, t = a.length; n < t; n++) {
      extract(e, `${r}.${n}`, a[n]);
    }
  } else if (a instanceof N || a instanceof T) {
    e.set(r, a);
  } else {
    k.add(a);
    for (var i of Object.keys(a)) {
      extract(e, `${r}.${i}`, a[i]);
    }
  }
};

var stringifyVariables = (e, r) => {
  k.clear();
  return stringify(e, r || !1);
};

class NoopConstructor {}

var N = "undefined" != typeof File ? File : NoopConstructor;

var T = "undefined" != typeof Blob ? Blob : NoopConstructor;

var w = /("{3}[\s\S]*"{3}|"(?:\\.|[^"])*")/g;

var O = /(?:#[^\n\r]+)?(?:[\r\n]+|$)/g;

var replaceOutsideStrings = (e, r) => r % 2 == 0 ? e.replace(O, "\n") : e;

var sanitizeDocument = e => e.split(w).map(replaceOutsideStrings).join("").trim();

var I = new Map;

var A = new Map;

var stringifyDocument = e => {
  var r;
  if ("string" == typeof e) {
    r = sanitizeDocument(e);
  } else if (e.loc && A.get(e.__key) === e) {
    r = e.loc.source.body;
  } else {
    r = I.get(e) || sanitizeDocument(f(e));
    I.set(e, r);
  }
  if ("string" != typeof e && !e.loc) {
    e.loc = {
      start: 0,
      end: r.length,
      source: {
        body: r,
        name: "gql",
        locationOffset: {
          line: 1,
          column: 1
        }
      }
    };
  }
  return r;
};

var hashDocument = e => {
  var r;
  if (e.documentId) {
    r = phash(e.documentId);
  } else {
    r = phash(stringifyDocument(e));
    if (e.definitions) {
      var a = getOperationName(e);
      if (a) {
        r = phash(`\n# ${a}`, r);
      }
    }
  }
  return r;
};

var createRequest = (e, r, a) => {
  var n = r || {};
  var t = (e => {
    var r;
    var a;
    if ("string" == typeof e) {
      r = hashDocument(e);
      a = A.get(r) || d(e, {
        noLocation: !0
      });
    } else {
      r = e.__key || hashDocument(e);
      a = A.get(r) || e;
    }
    if (!a.loc) {
      stringifyDocument(a);
    }
    a.__key = r;
    A.set(r, a);
    return a;
  })(e);
  var i = stringifyVariables(n, !0);
  var o = t.__key;
  if ("{}" !== i) {
    o = phash(i, o);
  }
  return {
    key: o,
    query: t,
    variables: n,
    extensions: a
  };
};

var getOperationName = e => {
  for (var r of e.definitions) {
    if (r.kind === l.OPERATION_DEFINITION) {
      return r.name ? r.name.value : void 0;
    }
  }
};

var makeResult = (e, r, a) => {
  if (!("data" in r || "errors" in r && Array.isArray(r.errors))) {
    throw new Error("No Content");
  }
  var n = "subscription" === e.kind;
  return {
    operation: e,
    data: r.data,
    error: Array.isArray(r.errors) ? new CombinedError({
      graphQLErrors: r.errors,
      response: a
    }) : void 0,
    extensions: r.extensions ? {
      ...r.extensions
    } : void 0,
    hasNext: null == r.hasNext ? n : r.hasNext,
    stale: !1
  };
};

var deepMerge = (e, r) => {
  if ("object" == typeof e && null != e) {
    if (!e.constructor || e.constructor === Object || Array.isArray(e)) {
      e = Array.isArray(e) ? [ ...e ] : {
        ...e
      };
      for (var a of Object.keys(r)) {
        e[a] = deepMerge(e[a], r[a]);
      }
      return e;
    }
  }
  return r;
};

var mergeResultPatch = (e, r, a, n) => {
  var t = e.error ? e.error.graphQLErrors : [];
  var i = !!e.extensions || !!(r.payload || r).extensions;
  var o = {
    ...e.extensions,
    ...(r.payload || r).extensions
  };
  var s = r.incremental;
  if ("path" in r) {
    s = [ r ];
  }
  var u = {
    data: e.data
  };
  if (s) {
    var _loop = function(e) {
      if (Array.isArray(e.errors)) {
        t.push(...e.errors);
      }
      if (e.extensions) {
        Object.assign(o, e.extensions);
        i = !0;
      }
      var r = "data";
      var a = u;
      var s = [];
      if (e.path) {
        s = e.path;
      } else if (n) {
        var l = n.find((r => r.id === e.id));
        if (e.subPath) {
          s = [ ...l.path, ...e.subPath ];
        } else {
          s = l.path;
        }
      }
      for (var c = 0, d = s.length; c < d; r = s[c++]) {
        a = a[r] = Array.isArray(a[r]) ? [ ...a[r] ] : {
          ...a[r]
        };
      }
      if (e.items) {
        var f = +r >= 0 ? r : 0;
        for (var p = 0, m = e.items.length; p < m; p++) {
          a[f + p] = deepMerge(a[f + p], e.items[p]);
        }
      } else if (void 0 !== e.data) {
        a[r] = deepMerge(a[r], e.data);
      }
    };
    for (var l of s) {
      _loop(l);
    }
  } else {
    u.data = (r.payload || r).data || e.data;
    t = r.errors || r.payload && r.payload.errors || t;
  }
  return {
    operation: e.operation,
    data: u.data,
    error: t.length ? new CombinedError({
      graphQLErrors: t,
      response: a
    }) : void 0,
    extensions: i ? o : void 0,
    hasNext: null != r.hasNext ? r.hasNext : e.hasNext,
    stale: !1
  };
};

var makeErrorResult = (e, r, a) => ({
  operation: e,
  data: void 0,
  error: new CombinedError({
    networkError: r,
    response: a
  }),
  extensions: void 0,
  hasNext: !1,
  stale: !1
});

var splitOutSearchParams = e => {
  var r = e.indexOf("?");
  return r > -1 ? [ e.slice(0, r), new URLSearchParams(e.slice(r + 1)) ] : [ e, new URLSearchParams ];
};

var makeFetchOptions = (e, r) => {
  var a = {
    accept: "subscription" === e.kind ? "text/event-stream, multipart/mixed" : "application/graphql-response+json, application/graphql+json, application/json, text/event-stream, multipart/mixed"
  };
  var n = ("function" == typeof e.context.fetchOptions ? e.context.fetchOptions() : e.context.fetchOptions) || {};
  if (n.headers) {
    if ((e => "has" in e && !Object.keys(e).length)(n.headers)) {
      n.headers.forEach(((e, r) => {
        a[r] = e;
      }));
    } else if (Array.isArray(n.headers)) {
      n.headers.forEach(((e, r) => {
        if (Array.isArray(e)) {
          if (a[e[0]]) {
            a[e[0]] = `${a[e[0]]},${e[1]}`;
          } else {
            a[e[0]] = e[1];
          }
        } else {
          a[r] = e;
        }
      }));
    } else {
      for (var t in n.headers) {
        a[t.toLowerCase()] = n.headers[t];
      }
    }
  }
  var i = ((e, r) => {
    if (r && ("query" !== e.kind || !e.context.preferGetMethod)) {
      var a = stringifyVariables(r);
      var n = (e => {
        var r = new Map;
        if (N !== NoopConstructor || T !== NoopConstructor) {
          k.clear();
          extract(r, "variables", e);
        }
        return r;
      })(r.variables);
      if (n.size) {
        var t = new FormData;
        t.append("operations", a);
        t.append("map", stringifyVariables({
          ...[ ...n.keys() ].map((e => [ e ]))
        }));
        var i = 0;
        for (var o of n.values()) {
          t.append("" + i++, o);
        }
        return t;
      }
      return a;
    }
  })(e, r);
  if ("string" == typeof i && !a["content-type"]) {
    a["content-type"] = "application/json";
  }
  return {
    ...n,
    method: i ? "POST" : "GET",
    body: i,
    headers: a
  };
};

var b = "undefined" != typeof TextDecoder ? new TextDecoder : null;

var L = /boundary="?([^=";]+)"?/i;

var S = /data: ?([^\n]+)/;

var toString = e => "Buffer" === e.constructor.name ? e.toString() : b.decode(e);

async function* streamBody(e) {
  if (e.body[Symbol.asyncIterator]) {
    for await (var r of e.body) {
      yield toString(r);
    }
  } else {
    var a = e.body.getReader();
    var n;
    try {
      while (!(n = await a.read()).done) {
        yield toString(n.value);
      }
    } finally {
      a.cancel();
    }
  }
}

async function* split(e, r) {
  var a = "";
  var n;
  for await (var t of e) {
    a += t;
    while ((n = a.indexOf(r)) > -1) {
      yield a.slice(0, n);
      a = a.slice(n + r.length);
    }
  }
}

function makeFetchSource(e, r, a) {
  var n;
  if ("undefined" != typeof AbortController) {
    a.signal = (n = new AbortController).signal;
  }
  return onEnd((() => {
    if (n) {
      n.abort();
    }
  }))(filter((e => !!e))(fromAsyncIterable(async function* fetchOperation(e, r, a) {
    var n = !0;
    var t = null;
    var i;
    try {
      yield await Promise.resolve();
      var o = (i = await (e.context.fetch || fetch)(r, a)).headers.get("Content-Type") || "";
      var s;
      if (/multipart\/mixed/i.test(o)) {
        s = async function* parseMultipartMixed(e, r) {
          var a = e.match(L);
          var n = "--" + (a ? a[1] : "-");
          var t = !0;
          var i;
          for await (var o of split(streamBody(r), "\r\n" + n)) {
            if (t) {
              t = !1;
              var s = o.indexOf(n);
              if (s > -1) {
                o = o.slice(s + n.length);
              } else {
                continue;
              }
            }
            try {
              yield i = JSON.parse(o.slice(o.indexOf("\r\n\r\n") + 4));
            } catch (e) {
              if (!i) {
                throw e;
              }
            }
            if (i && !1 === i.hasNext) {
              break;
            }
          }
          if (i && !1 !== i.hasNext) {
            yield {
              hasNext: !1
            };
          }
        }(o, i);
      } else if (/text\/event-stream/i.test(o)) {
        s = async function* parseEventStream(e) {
          var r;
          for await (var a of split(streamBody(e), "\n\n")) {
            var n = a.match(S);
            if (n) {
              var t = n[1];
              try {
                yield r = JSON.parse(t);
              } catch (e) {
                if (!r) {
                  throw e;
                }
              }
              if (r && !1 === r.hasNext) {
                break;
              }
            }
          }
          if (r && !1 !== r.hasNext) {
            yield {
              hasNext: !1
            };
          }
        }(i);
      } else if (!/text\//i.test(o)) {
        s = async function* parseJSON(e) {
          yield JSON.parse(await e.text());
        }(i);
      } else {
        s = async function* parseMaybeJSON(e) {
          var r = await e.text();
          try {
            var a = JSON.parse(r);
            if ("production" !== process.env.NODE_ENV) {
              console.warn('Found response with content-type "text/plain" but it had a valid "application/json" response.');
            }
            yield a;
          } catch (e) {
            throw new Error(r);
          }
        }(i);
      }
      var u;
      for await (var l of s) {
        if (l.pending && !t) {
          u = l.pending;
        } else if (l.pending) {
          u = [ ...u, ...l.pending ];
        }
        t = t ? mergeResultPatch(t, l, i, u) : makeResult(e, l, i);
        n = !1;
        yield t;
        n = !0;
      }
      if (!t) {
        yield t = makeResult(e, {}, i);
      }
    } catch (r) {
      if (!n) {
        throw r;
      }
      yield makeErrorResult(e, i && (i.status < 200 || i.status >= 300) && i.statusText ? new Error(i.statusText) : r, i);
    }
  }(e, r, a))));
}

function withPromise(e) {
  var source$ = r => e(r);
  source$.toPromise = () => toPromise(take(1)(filter((e => !e.stale && !e.hasNext))(source$)));
  source$.then = (e, r) => source$.toPromise().then(e, r);
  source$.subscribe = e => subscribe(e)(source$);
  return source$;
}

function makeOperation(e, r, a) {
  return {
    ...r,
    kind: e,
    context: r.context ? {
      ...r.context,
      ...a
    } : a || r.context
  };
}

var noop = () => {};

var fetchExchange = ({forward: e, dispatchDebug: r}) => a => {
  var n = mergeMap((e => {
    var n = function makeFetchBody(e) {
      var r = {
        query: void 0,
        documentId: void 0,
        operationName: getOperationName(e.query),
        variables: e.variables || void 0,
        extensions: e.extensions
      };
      if ("documentId" in e.query && e.query.documentId && (!e.query.definitions || !e.query.definitions.length)) {
        r.documentId = e.query.documentId;
      } else if (!e.extensions || !e.extensions.persistedQuery || e.extensions.persistedQuery.miss) {
        r.query = stringifyDocument(e.query);
      }
      return r;
    }(e);
    var t = ((e, r) => {
      var a = "query" === e.kind && e.context.preferGetMethod;
      if (!a || !r) {
        return e.context.url;
      }
      var n = splitOutSearchParams(e.context.url);
      for (var t in r) {
        var i = r[t];
        if (i) {
          n[1].set(t, "object" == typeof i ? stringifyVariables(i) : i);
        }
      }
      var o = n.join("?");
      if (o.length > 2047 && "force" !== a) {
        e.context.preferGetMethod = !1;
        return e.context.url;
      }
      return o;
    })(e, n);
    var i = makeFetchOptions(e, n);
    "production" !== process.env.NODE_ENV && r({
      type: "fetchRequest",
      message: "A fetch request is being executed.",
      operation: e,
      data: {
        url: t,
        fetchOptions: i
      },
      source: "fetchExchange"
    });
    var o = takeUntil(filter((r => "teardown" === r.kind && r.key === e.key))(a))(makeFetchSource(e, t, i));
    if ("production" !== process.env.NODE_ENV) {
      return onPush((a => {
        var n = !a.data ? a.error : void 0;
        "production" !== process.env.NODE_ENV && r({
          type: n ? "fetchError" : "fetchSuccess",
          message: `A ${n ? "failed" : "successful"} fetch response has been returned.`,
          operation: e,
          data: {
            url: t,
            fetchOptions: i,
            value: n || a
          },
          source: "fetchExchange"
        });
      }))(o);
    }
    return o;
  }))(filter((e => "teardown" !== e.kind && ("subscription" !== e.kind || !!e.context.fetchSubscriptions)))(a));
  return merge([ n, e(filter((e => "teardown" === e.kind || "subscription" === e.kind && !e.context.fetchSubscriptions))(a)) ]);
};

var fallbackExchange = ({dispatchDebug: e}) => r => {
  if ("production" !== process.env.NODE_ENV) {
    r = onPush((r => {
      if ("teardown" !== r.kind && "production" !== process.env.NODE_ENV) {
        var a = `No exchange has handled operations of kind "${r.kind}". Check whether you've added an exchange responsible for these operations.`;
        "production" !== process.env.NODE_ENV && e({
          type: "fallbackCatch",
          message: a,
          operation: r,
          source: "fallbackExchange"
        });
        console.warn(a);
      }
    }))(r);
  }
  return filter((e => !1))(r);
};

var x = function Client(e) {
  if ("production" !== process.env.NODE_ENV && !e.url) {
    throw new Error("You are creating an urql-client without a url.");
  }
  var r = 0;
  var a = new Map;
  var n = new Map;
  var t = new Set;
  var i = [];
  var o = {
    url: e.url,
    fetchSubscriptions: e.fetchSubscriptions,
    fetchOptions: e.fetchOptions,
    fetch: e.fetch,
    preferGetMethod: e.preferGetMethod,
    requestPolicy: e.requestPolicy || "cache-first"
  };
  var s = makeSubject();
  function nextOperation(e) {
    if ("mutation" === e.kind || "teardown" === e.kind || !t.has(e.key)) {
      if ("teardown" === e.kind) {
        t.delete(e.key);
      } else if ("mutation" !== e.kind) {
        t.add(e.key);
      }
      s.next(e);
    }
  }
  var u = !1;
  function dispatchOperation(e) {
    if (e) {
      nextOperation(e);
    }
    if (!u) {
      u = !0;
      while (u && (e = i.shift())) {
        nextOperation(e);
      }
      u = !1;
    }
  }
  var makeResultSource = e => {
    var r = takeUntil(filter((r => "teardown" === r.kind && r.key === e.key))(s.source))(filter((r => r.operation.kind === e.kind && r.operation.key === e.key && (!r.operation.context._instance || r.operation.context._instance === e.context._instance)))(y));
    if ("query" !== e.kind) {
      r = takeWhile((e => !!e.hasNext))(r);
    } else {
      r = switchMap((r => {
        var a = fromValue(r);
        return r.stale || r.hasNext ? a : merge([ a, map((() => {
          r.stale = !0;
          return r;
        }))(take(1)(filter((r => r.key === e.key))(s.source))) ]);
      }))(r);
    }
    if ("mutation" !== e.kind) {
      r = onEnd((() => {
        t.delete(e.key);
        a.delete(e.key);
        n.delete(e.key);
        u = !1;
        for (var r = i.length - 1; r >= 0; r--) {
          if (i[r].key === e.key) {
            i.splice(r, 1);
          }
        }
        nextOperation(makeOperation("teardown", e, e.context));
      }))(onPush((r => {
        if (r.stale) {
          if (!r.hasNext) {
            t.delete(e.key);
          } else {
            for (var n of i) {
              if (n.key === r.operation.key) {
                t.delete(n.key);
                break;
              }
            }
          }
        } else if (!r.hasNext) {
          t.delete(e.key);
        }
        a.set(e.key, r);
      }))(r));
    } else {
      r = onStart((() => {
        nextOperation(e);
      }))(r);
    }
    return share(r);
  };
  var c = this instanceof Client ? this : Object.create(Client.prototype);
  var d = Object.assign(c, {
    suspense: !!e.suspense,
    operations$: s.source,
    reexecuteOperation(e) {
      if ("teardown" === e.kind) {
        dispatchOperation(e);
      } else if ("mutation" === e.kind) {
        i.push(e);
        Promise.resolve().then(dispatchOperation);
      } else if (n.has(e.key)) {
        var r = !1;
        for (var a = 0; a < i.length; a++) {
          if (i[a].key === e.key) {
            i[a] = e;
            r = !0;
          }
        }
        if (!(r || t.has(e.key) && "network-only" !== e.context.requestPolicy)) {
          i.push(e);
          Promise.resolve().then(dispatchOperation);
        } else {
          t.delete(e.key);
          Promise.resolve().then(dispatchOperation);
        }
      }
    },
    createRequestOperation(e, a, n) {
      if (!n) {
        n = {};
      }
      var t;
      if ("production" !== process.env.NODE_ENV && "teardown" !== e && (t = (e => {
        for (var r of e.definitions) {
          if (r.kind === l.OPERATION_DEFINITION) {
            return r.operation;
          }
        }
      })(a.query)) !== e) {
        throw new Error(`Expected operation of type "${e}" but found "${t}"`);
      }
      return makeOperation(e, a, {
        _instance: "mutation" === e ? r = r + 1 | 0 : void 0,
        ...o,
        ...n,
        requestPolicy: n.requestPolicy || o.requestPolicy,
        suspense: n.suspense || !1 !== n.suspense && d.suspense
      });
    },
    executeRequestOperation(e) {
      if ("mutation" === e.kind) {
        return withPromise(makeResultSource(e));
      }
      return withPromise(function lazy(e) {
        return r => e()(r);
      }((() => {
        var r = n.get(e.key);
        if (!r) {
          n.set(e.key, r = makeResultSource(e));
        }
        r = onStart((() => {
          dispatchOperation(e);
        }))(r);
        var t = a.get(e.key);
        if ("query" === e.kind && t && (t.stale || t.hasNext)) {
          return switchMap(fromValue)(merge([ r, filter((r => r === a.get(e.key)))(fromValue(t)) ]));
        } else {
          return r;
        }
      })));
    },
    executeQuery(e, r) {
      var a = d.createRequestOperation("query", e, r);
      return d.executeRequestOperation(a);
    },
    executeSubscription(e, r) {
      var a = d.createRequestOperation("subscription", e, r);
      return d.executeRequestOperation(a);
    },
    executeMutation(e, r) {
      var a = d.createRequestOperation("mutation", e, r);
      return d.executeRequestOperation(a);
    },
    readQuery(e, r, a) {
      var n = null;
      subscribe((e => {
        n = e;
      }))(d.query(e, r, a)).unsubscribe();
      return n;
    },
    query: (e, r, a) => d.executeQuery(createRequest(e, r), a),
    subscription: (e, r, a) => d.executeSubscription(createRequest(e, r), a),
    mutation: (e, r, a) => d.executeMutation(createRequest(e, r), a)
  });
  var f = noop;
  if ("production" !== process.env.NODE_ENV) {
    var {next: p, source: m} = makeSubject();
    d.subscribeToDebugTarget = e => subscribe(e)(m);
    f = p;
  }
  var v = (e => ({client: r, forward: a, dispatchDebug: n}) => e.reduceRight(((e, a) => {
    var t = !1;
    return a({
      client: r,
      forward(r) {
        if ("production" !== process.env.NODE_ENV) {
          if (t) {
            throw new Error("forward() must only be called once in each Exchange.");
          }
          t = !0;
        }
        return share(e(share(r)));
      },
      dispatchDebug(e) {
        "production" !== process.env.NODE_ENV && n({
          timestamp: Date.now(),
          source: a.name,
          ...e
        });
      }
    });
  }), a))(e.exchanges);
  var y = share(v({
    client: d,
    dispatchDebug: f,
    forward: fallbackExchange({
      dispatchDebug: f
    })
  })(s.source));
  !function publish(e) {
    subscribe((e => {}))(e);
  }(y);
  return d;
};

var _hasField = (e, r) => !!e && !!e.fields && e.fields.some((e => e.name === r));

var _supportsDeprecatedArgumentsArg = e => {
  var r = e && e.fields && e.fields.find((e => "args" === e.name));
  return !!(r && r.args && r.args.find((e => "includeDeprecated" === e.name)));
};

var _ = {
  directiveIsRepeatable: !1,
  specifiedByURL: !1,
  inputValueDeprecation: !1,
  directiveArgumentsIsDeprecated: !1,
  fieldArgumentsIsDeprecated: !1,
  inputOneOf: !1
};

var toSupportedFeatures = e => ({
  directiveIsRepeatable: _hasField(e.directive, "isRepeatable"),
  specifiedByURL: _hasField(e.type, "specifiedByURL"),
  inputOneOf: _hasField(e.type, "isOneOf"),
  inputValueDeprecation: _hasField(e.inputValue, "isDeprecated"),
  directiveArgumentsIsDeprecated: _supportsDeprecatedArgumentsArg(e.directive),
  fieldArgumentsIsDeprecated: _supportsDeprecatedArgumentsArg(e.field)
});

var introspectionToSupportedFeatures = e => {
  var r = e.__schema.types.find((e => "__Directive" === e.name));
  var a = e.__schema.types.find((e => "__Type" === e.name));
  var n = e.__schema.types.find((e => "__InputValue" === e.name));
  var t = e.__schema.types.find((e => "__Field" === e.name));
  if (r && a && n && t) {
    return {
      directiveIsRepeatable: _hasField(r, "isRepeatable"),
      specifiedByURL: _hasField(a, "specifiedByURL"),
      inputOneOf: _hasField(a, "isOneOf"),
      inputValueDeprecation: _hasField(n, "isDeprecated"),
      directiveArgumentsIsDeprecated: _supportsDeprecatedArgumentsArg(r),
      fieldArgumentsIsDeprecated: _supportsDeprecatedArgumentsArg(t)
    };
  } else {
    return _;
  }
};

var D;

var getPeerSupportedFeatures = () => {
  if (!D) {
    var e = new n({
      query: new t({
        name: "Query",
        fields: {
          _noop: {
            type: i
          }
        }
      })
    });
    var r = o({
      schema: e,
      document: makeIntrospectSupportQuery()
    });
    return D = r.data ? toSupportedFeatures(r.data) : _;
  }
  return D;
};

var M;

var F;

var makeIntrospectionQuery = e => {
  if (M && F === e) {
    return M;
  } else {
    return M = _makeIntrospectionQuery(F = e);
  }
};

var _makeIntrospectionQuery = e => ({
  kind: l.DOCUMENT,
  definitions: [ {
    kind: l.OPERATION_DEFINITION,
    name: {
      kind: l.NAME,
      value: "IntrospectionQuery"
    },
    operation: p.QUERY,
    selectionSet: {
      kind: l.SELECTION_SET,
      selections: [ {
        kind: l.FIELD,
        name: {
          kind: l.NAME,
          value: "__schema"
        },
        selectionSet: _makeSchemaSelection(e)
      } ]
    }
  }, _makeSchemaFullTypeFragment(e), _makeSchemaInputValueFragment(e), _makeTypeRefFragment() ]
});

var makeIntrospectSupportQuery = () => ({
  kind: l.DOCUMENT,
  definitions: [ {
    kind: l.OPERATION_DEFINITION,
    name: {
      kind: l.NAME,
      value: "IntrospectSupportQuery"
    },
    operation: p.QUERY,
    selectionSet: {
      kind: l.SELECTION_SET,
      selections: [ {
        kind: l.FIELD,
        alias: {
          kind: l.NAME,
          value: "directive"
        },
        name: {
          kind: l.NAME,
          value: "__type"
        },
        arguments: [ {
          kind: l.ARGUMENT,
          name: {
            kind: l.NAME,
            value: "name"
          },
          value: {
            kind: l.STRING,
            value: "__Directive"
          }
        } ],
        selectionSet: _makeFieldNamesSelection({
          includeArgs: !0
        })
      }, {
        kind: l.FIELD,
        alias: {
          kind: l.NAME,
          value: "field"
        },
        name: {
          kind: l.NAME,
          value: "__type"
        },
        arguments: [ {
          kind: l.ARGUMENT,
          name: {
            kind: l.NAME,
            value: "name"
          },
          value: {
            kind: l.STRING,
            value: "__Field"
          }
        } ],
        selectionSet: _makeFieldNamesSelection({
          includeArgs: !0
        })
      }, {
        kind: l.FIELD,
        alias: {
          kind: l.NAME,
          value: "type"
        },
        name: {
          kind: l.NAME,
          value: "__type"
        },
        arguments: [ {
          kind: l.ARGUMENT,
          name: {
            kind: l.NAME,
            value: "name"
          },
          value: {
            kind: l.STRING,
            value: "__Type"
          }
        } ],
        selectionSet: _makeFieldNamesSelection({
          includeArgs: !1
        })
      }, {
        kind: l.FIELD,
        alias: {
          kind: l.NAME,
          value: "inputValue"
        },
        name: {
          kind: l.NAME,
          value: "__type"
        },
        arguments: [ {
          kind: l.ARGUMENT,
          name: {
            kind: l.NAME,
            value: "name"
          },
          value: {
            kind: l.STRING,
            value: "__InputValue"
          }
        } ],
        selectionSet: _makeFieldNamesSelection({
          includeArgs: !1
        })
      } ]
    }
  } ]
});

var _makeFieldNamesSelection = e => ({
  kind: l.SELECTION_SET,
  selections: [ {
    kind: l.FIELD,
    name: {
      kind: l.NAME,
      value: "fields"
    },
    selectionSet: {
      kind: l.SELECTION_SET,
      selections: [ {
        kind: l.FIELD,
        name: {
          kind: l.NAME,
          value: "name"
        }
      }, ...e.includeArgs ? [ {
        kind: l.FIELD,
        name: {
          kind: l.NAME,
          value: "args"
        },
        selectionSet: {
          kind: l.SELECTION_SET,
          selections: [ {
            kind: l.FIELD,
            name: {
              kind: l.NAME,
              value: "name"
            }
          } ]
        }
      } ] : [] ]
    }
  } ]
});

var _makeSchemaSelection = e => ({
  kind: l.SELECTION_SET,
  selections: [ {
    kind: l.FIELD,
    name: {
      kind: l.NAME,
      value: "queryType"
    },
    selectionSet: {
      kind: l.SELECTION_SET,
      selections: [ {
        kind: l.FIELD,
        name: {
          kind: l.NAME,
          value: "name"
        }
      } ]
    }
  }, {
    kind: l.FIELD,
    name: {
      kind: l.NAME,
      value: "mutationType"
    },
    selectionSet: {
      kind: l.SELECTION_SET,
      selections: [ {
        kind: l.FIELD,
        name: {
          kind: l.NAME,
          value: "name"
        }
      } ]
    }
  }, {
    kind: l.FIELD,
    name: {
      kind: l.NAME,
      value: "subscriptionType"
    },
    selectionSet: {
      kind: l.SELECTION_SET,
      selections: [ {
        kind: l.FIELD,
        name: {
          kind: l.NAME,
          value: "name"
        }
      } ]
    }
  }, {
    kind: l.FIELD,
    name: {
      kind: l.NAME,
      value: "types"
    },
    selectionSet: {
      kind: l.SELECTION_SET,
      selections: [ {
        kind: l.FRAGMENT_SPREAD,
        name: {
          kind: l.NAME,
          value: "FullType"
        }
      } ]
    }
  }, {
    kind: l.FIELD,
    name: {
      kind: l.NAME,
      value: "directives"
    },
    selectionSet: {
      kind: l.SELECTION_SET,
      selections: [ {
        kind: l.FIELD,
        name: {
          kind: l.NAME,
          value: "name"
        }
      }, {
        kind: l.FIELD,
        name: {
          kind: l.NAME,
          value: "description"
        }
      }, {
        kind: l.FIELD,
        name: {
          kind: l.NAME,
          value: "locations"
        }
      }, _makeSchemaArgsField(e.directiveArgumentsIsDeprecated), ...e.directiveIsRepeatable ? [ {
        kind: l.FIELD,
        name: {
          kind: l.NAME,
          value: "isRepeatable"
        }
      } ] : [] ]
    }
  } ]
});

var _makeSchemaFullTypeFragment = e => ({
  kind: l.FRAGMENT_DEFINITION,
  name: {
    kind: l.NAME,
    value: "FullType"
  },
  typeCondition: {
    kind: l.NAMED_TYPE,
    name: {
      kind: l.NAME,
      value: "__Type"
    }
  },
  selectionSet: {
    kind: l.SELECTION_SET,
    selections: [ {
      kind: l.FIELD,
      name: {
        kind: l.NAME,
        value: "kind"
      }
    }, {
      kind: l.FIELD,
      name: {
        kind: l.NAME,
        value: "name"
      }
    }, {
      kind: l.FIELD,
      name: {
        kind: l.NAME,
        value: "description"
      }
    }, ...e.inputOneOf ? [ {
      kind: l.FIELD,
      name: {
        kind: l.NAME,
        value: "isOneOf"
      }
    } ] : [], ...e.specifiedByURL ? [ {
      kind: l.FIELD,
      name: {
        kind: l.NAME,
        value: "specifiedByURL"
      }
    } ] : [], {
      kind: l.FIELD,
      name: {
        kind: l.NAME,
        value: "fields"
      },
      arguments: [ {
        kind: l.ARGUMENT,
        name: {
          kind: l.NAME,
          value: "includeDeprecated"
        },
        value: {
          kind: l.BOOLEAN,
          value: !0
        }
      } ],
      selectionSet: {
        kind: l.SELECTION_SET,
        selections: [ {
          kind: l.FIELD,
          name: {
            kind: l.NAME,
            value: "name"
          }
        }, {
          kind: l.FIELD,
          name: {
            kind: l.NAME,
            value: "description"
          }
        }, {
          kind: l.FIELD,
          name: {
            kind: l.NAME,
            value: "isDeprecated"
          }
        }, {
          kind: l.FIELD,
          name: {
            kind: l.NAME,
            value: "deprecationReason"
          }
        }, _makeSchemaArgsField(e.fieldArgumentsIsDeprecated), {
          kind: l.FIELD,
          name: {
            kind: l.NAME,
            value: "type"
          },
          selectionSet: {
            kind: l.SELECTION_SET,
            selections: [ {
              kind: l.FRAGMENT_SPREAD,
              name: {
                kind: l.NAME,
                value: "TypeRef"
              }
            } ]
          }
        } ]
      }
    }, {
      kind: l.FIELD,
      name: {
        kind: l.NAME,
        value: "interfaces"
      },
      selectionSet: {
        kind: l.SELECTION_SET,
        selections: [ {
          kind: l.FRAGMENT_SPREAD,
          name: {
            kind: l.NAME,
            value: "TypeRef"
          }
        } ]
      }
    }, {
      kind: l.FIELD,
      name: {
        kind: l.NAME,
        value: "possibleTypes"
      },
      selectionSet: {
        kind: l.SELECTION_SET,
        selections: [ {
          kind: l.FRAGMENT_SPREAD,
          name: {
            kind: l.NAME,
            value: "TypeRef"
          }
        } ]
      }
    }, {
      kind: l.FIELD,
      name: {
        kind: l.NAME,
        value: "inputFields"
      },
      arguments: e.inputValueDeprecation ? [ {
        kind: l.ARGUMENT,
        name: {
          kind: l.NAME,
          value: "includeDeprecated"
        },
        value: {
          kind: l.BOOLEAN,
          value: !0
        }
      } ] : [],
      selectionSet: {
        kind: l.SELECTION_SET,
        selections: [ {
          kind: l.FRAGMENT_SPREAD,
          name: {
            kind: l.NAME,
            value: "InputValue"
          }
        } ]
      }
    }, {
      kind: l.FIELD,
      name: {
        kind: l.NAME,
        value: "enumValues"
      },
      arguments: [ {
        kind: l.ARGUMENT,
        name: {
          kind: l.NAME,
          value: "includeDeprecated"
        },
        value: {
          kind: l.BOOLEAN,
          value: !0
        }
      } ],
      selectionSet: {
        kind: l.SELECTION_SET,
        selections: [ {
          kind: l.FIELD,
          name: {
            kind: l.NAME,
            value: "name"
          }
        }, {
          kind: l.FIELD,
          name: {
            kind: l.NAME,
            value: "description"
          }
        }, {
          kind: l.FIELD,
          name: {
            kind: l.NAME,
            value: "isDeprecated"
          }
        }, {
          kind: l.FIELD,
          name: {
            kind: l.NAME,
            value: "deprecationReason"
          }
        } ]
      }
    } ]
  }
});

var _makeSchemaArgsField = e => ({
  kind: l.FIELD,
  name: {
    kind: l.NAME,
    value: "args"
  },
  arguments: e ? [ {
    kind: l.ARGUMENT,
    name: {
      kind: l.NAME,
      value: "includeDeprecated"
    },
    value: {
      kind: l.BOOLEAN,
      value: !0
    }
  } ] : [],
  selectionSet: {
    kind: l.SELECTION_SET,
    selections: [ {
      kind: l.FRAGMENT_SPREAD,
      name: {
        kind: l.NAME,
        value: "InputValue"
      }
    } ]
  }
});

var _makeSchemaInputValueFragment = e => ({
  kind: l.FRAGMENT_DEFINITION,
  name: {
    kind: l.NAME,
    value: "InputValue"
  },
  typeCondition: {
    kind: l.NAMED_TYPE,
    name: {
      kind: l.NAME,
      value: "__InputValue"
    }
  },
  selectionSet: {
    kind: l.SELECTION_SET,
    selections: [ {
      kind: l.FIELD,
      name: {
        kind: l.NAME,
        value: "name"
      }
    }, {
      kind: l.FIELD,
      name: {
        kind: l.NAME,
        value: "description"
      }
    }, {
      kind: l.FIELD,
      name: {
        kind: l.NAME,
        value: "defaultValue"
      }
    }, {
      kind: l.FIELD,
      name: {
        kind: l.NAME,
        value: "type"
      },
      selectionSet: {
        kind: l.SELECTION_SET,
        selections: [ {
          kind: l.FRAGMENT_SPREAD,
          name: {
            kind: l.NAME,
            value: "TypeRef"
          }
        } ]
      }
    }, ...e.inputValueDeprecation ? [ {
      kind: l.FIELD,
      name: {
        kind: l.NAME,
        value: "isDeprecated"
      }
    }, {
      kind: l.FIELD,
      name: {
        kind: l.NAME,
        value: "deprecationReason"
      }
    } ] : [] ]
  }
});

var _makeTypeRefFragment = () => ({
  kind: l.FRAGMENT_DEFINITION,
  name: {
    kind: l.NAME,
    value: "TypeRef"
  },
  typeCondition: {
    kind: l.NAMED_TYPE,
    name: {
      kind: l.NAME,
      value: "__Type"
    }
  },
  selectionSet: _makeTypeRefSelection(0)
});

var _makeTypeRefSelection = e => ({
  kind: l.SELECTION_SET,
  selections: e < 9 ? [ {
    kind: l.FIELD,
    name: {
      kind: l.NAME,
      value: "kind"
    }
  }, {
    kind: l.FIELD,
    name: {
      kind: l.NAME,
      value: "name"
    }
  }, {
    kind: l.FIELD,
    name: {
      kind: l.NAME,
      value: "ofType"
    },
    selectionSet: _makeTypeRefSelection(e + 1)
  } ] : [ {
    kind: l.FIELD,
    name: {
      kind: l.NAME,
      value: "kind"
    }
  }, {
    kind: l.FIELD,
    name: {
      kind: l.NAME,
      value: "name"
    }
  } ]
});

function loadFromSDL(e) {
  var n = new Set;
  var t = null;
  var i = null;
  var load = async () => {
    var a = r.extname(e.file);
    var n = await v.readFile(e.file, {
      encoding: "utf8"
    });
    if (".json" === a) {
      var t = JSON.parse(n);
      if (!t || !t.__schema) {
        throw new Error("Parsing JSON introspection data failed.\nThe JSON payload did not evaluate to an introspection schema.");
      }
      return {
        introspection: {
          ...t,
          name: e.name
        },
        schema: s(t, {
          assumeValid: !!e.assumeValid
        })
      };
    } else {
      var i = u(n, {
        assumeValidSDL: !!e.assumeValid
      });
      var l = makeIntrospectionQuery(getPeerSupportedFeatures());
      var c = o({
        schema: i,
        document: l
      });
      if (c.errors) {
        throw new CombinedError({
          graphQLErrors: c.errors
        });
      } else if (c.data) {
        return {
          introspection: {
            ...c.data,
            name: e.name
          },
          schema: i
        };
      } else {
        throw new Error("Executing introspection against SDL schema failed.\n`graphql` failed to return any schema data or error.");
      }
    }
  };
  return {
    get name() {
      return e.name;
    },
    load: async e => e || !i ? i = await load() : i,
    notifyOnUpdate(r) {
      if (!n.size) {
        (async () => {
          if (a.sys.watchFile) {
            var r = a.sys.watchFile(e.file, (async () => {
              try {
                if (i = await load()) {
                  for (var e of n) {
                    e(i);
                  }
                }
              } catch (e) {}
            }), 250, {
              watchFile: a.WatchFileKind.UseFsEventsOnParentDirectory,
              fallbackPolling: a.PollingWatchKind.PriorityInterval
            });
            t = () => r.close();
          } else {
            var o = new AbortController;
            t = () => o.abort();
            var s = v.watch(e.file, {
              signal: o.signal,
              persistent: !1
            });
            try {
              for await (var u of s) {
                if (i = await load()) {
                  for (var l of n) {
                    l(i);
                  }
                }
              }
            } catch (e) {
              if ("AbortError" !== e.name) {
                throw e;
              }
            } finally {
              t = null;
            }
          }
        })();
      }
      n.add(r);
      return () => {
        n.delete(r);
        if (!n.size && t) {
          t();
        }
      };
    },
    async loadIntrospection() {
      var e = await this.load();
      return e && e.introspection;
    },
    async loadSchema() {
      var e = await this.load();
      return e && e.schema;
    }
  };
}

var retryExchange = e => {
  var {retryIf: r, retryWith: a} = e;
  var n = e.initialDelayMs || 1e3;
  var t = e.maxDelayMs || 15e3;
  var i = e.maxNumberAttempts || 2;
  var o = null != e.randomDelay ? !!e.randomDelay : !0;
  return ({forward: e, dispatchDebug: s}) => u => {
    var {source: l, next: c} = makeSubject();
    var d = mergeMap((e => {
      var r = e.context.retry || {
        count: 0,
        delay: null
      };
      var a = ++r.count;
      var l = r.delay || n;
      var c = Math.random() + 1.5;
      if (o) {
        if (l * c < t) {
          l *= c;
        } else {
          l = t;
        }
      } else {
        l = Math.min(a * n, t);
      }
      r.delay = l;
      var d = filter((r => ("query" === r.kind || "teardown" === r.kind) && r.key === e.key))(u);
      "production" !== process.env.NODE_ENV && s({
        type: "retryAttempt",
        message: `The operation has failed and a retry has been triggered (${a} / ${i})`,
        operation: e,
        data: {
          retryCount: a,
          delayAmount: l
        },
        source: "retryExchange"
      });
      return takeUntil(d)(function debounce(e) {
        return r => a => {
          var n;
          var t = !1;
          var i = !1;
          r((r => {
            if (i) {} else if (0 === r) {
              i = !0;
              if (n) {
                t = !0;
              } else {
                a(0);
              }
            } else if (0 === r.tag) {
              var o = r[0];
              a(start((e => {
                if (1 === e && !i) {
                  i = !0;
                  t = !1;
                  if (n) {
                    clearTimeout(n);
                  }
                  o(1);
                } else if (!i) {
                  o(0);
                }
              })));
            } else {
              if (n) {
                clearTimeout(n);
              }
              n = setTimeout((() => {
                n = void 0;
                a(r);
                if (t) {
                  a(0);
                }
              }), e(r[0]));
            }
          }));
        };
      }((() => l))(fromValue(makeOperation(e.kind, e, {
        ...e.context,
        retry: r
      }))));
    }))(l);
    return filter((e => {
      var n = e.operation.context.retry;
      if (!e.error || !(r ? r(e.error, e.operation) : a || e.error.networkError)) {
        if (n) {
          n.count = 0;
          n.delay = null;
        }
        return !0;
      }
      if (!((n && n.count || 0) >= i - 1)) {
        var t = a ? a(e.error, e.operation) : e.operation;
        if (!t) {
          return !0;
        }
        c(t);
        return !1;
      }
      "production" !== process.env.NODE_ENV && s({
        type: "retryExhausted",
        message: "Maximum number of retries has been reached. No further retries will be performed.",
        operation: e.operation,
        source: "retryExchange"
      });
      return !0;
    }))(e(merge([ u, d ])));
  };
};

function loadFromURL(e) {
  var r = e.interval || 6e4;
  var a = new Set;
  var n = null;
  var t = null;
  var i = null;
  var o = new x({
    url: `${e.url}`,
    fetchOptions: {
      headers: e.headers
    },
    exchanges: [ retryExchange({
      initialDelayMs: 200,
      maxDelayMs: 1500,
      maxNumberAttempts: 3,
      retryWith(e, r) {
        if (e.networkError) {
          process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
        }
        return r;
      }
    }), fetchExchange ]
  });
  var introspect = async t => {
    var u = makeIntrospectionQuery(t);
    var l = await o.query(u, {});
    try {
      if (l.error) {
        throw l.error;
      } else if (l.data) {
        var c = l.data;
        return {
          introspection: {
            ...c,
            name: e.name
          },
          schema: s(c, {
            assumeValid: !0
          })
        };
      } else {
        throw new Error("Executing introspection against API failed.\nThe API failed to return any schema data or error.");
      }
    } finally {
      (() => {
        if (a.size && !n) {
          n = setTimeout((async () => {
            n = null;
            try {
              i = await load();
            } catch (e) {
              i = null;
            }
            if (i) {
              for (var e of a) {
                e(i);
              }
            }
          }), r);
        }
      })();
    }
  };
  var load = async () => {
    if (!t) {
      var e = makeIntrospectSupportQuery();
      var r = await o.query(e, {});
      if (r.error && r.error.graphQLErrors.length > 0) {
        try {
          var {introspection: a} = await introspect(_);
          t = introspectionToSupportedFeatures(a);
        } catch (e) {
          t = _;
        }
      } else if (r.data && !r.error) {
        t = toSupportedFeatures(r.data);
      } else if (r.error) {
        t = null;
        throw r.error;
      } else {
        t = _;
      }
    }
    return introspect(t);
  };
  return {
    get name() {
      return e.name;
    },
    load: async e => e || !i ? i = await load() : i,
    notifyOnUpdate(e) {
      a.add(e);
      return () => {
        a.delete(e);
        if (!a.size && n) {
          clearTimeout(n);
          n = null;
        }
      };
    },
    async loadIntrospection() {
      var e = await this.load();
      return e && e.introspection;
    },
    async loadSchema() {
      var e = await this.load();
      return e && e.schema;
    }
  };
}

var getURLConfig = e => {
  try {
    return e ? {
      url: new URL("object" == typeof e ? e.url : e),
      headers: "object" == typeof e ? e.headers : void 0
    } : null;
  } catch (e) {
    return null;
  }
};

function load(e) {
  var a = getURLConfig(e.origin);
  if (a) {
    return loadFromURL({
      ...a,
      interval: e.fetchInterval,
      name: e.name
    });
  } else if ("string" == typeof e.origin) {
    return loadFromSDL({
      file: e.rootPath ? r.resolve(e.rootPath, e.origin) : e.origin,
      assumeValid: null != e.assumeValid ? e.assumeValid : !0,
      name: e.name
    });
  } else {
    throw new Error('Configuration contains an invalid "schema" option');
  }
}

function loadRef(e) {
  var r = [];
  var a;
  var getLoaders = r => {
    if (!a) {
      a = ("schemas" in e && e.schemas || []).map((e => ({
        input: e,
        loader: load({
          ...r,
          origin: e.schema,
          name: e.name
        })
      })));
      if ("schema" in e && e.schema) {
        a.push({
          input: {
            ...e,
            name: void 0
          },
          loader: load({
            ...r,
            origin: e.schema
          })
        });
      }
    }
    return a;
  };
  var n = {
    version: 0,
    current: null,
    multi: ("schemas" in e && e.schemas || []).reduce(((e, {name: r}) => {
      if (r) {
        e[r] = null;
      }
      return e;
    }), {}),
    autoupdate(e, a) {
      var t = getLoaders(e);
      r.push(...t.map((({input: e, loader: r}) => {
        r.load().then((r => {
          n.version++;
          if (e.name) {
            n.multi[e.name] = {
              ...e,
              ...r
            };
          } else {
            n.current = {
              ...e,
              ...r
            };
          }
        })).catch((e => {}));
        return r.notifyOnUpdate((r => {
          n.version++;
          if (e.name) {
            n.multi[e.name] = {
              ...e,
              ...r
            };
          } else {
            n.current = {
              ...e,
              ...r
            };
          }
          a(n, e);
        }));
      })));
      return () => {
        var e;
        while (null != (e = r.pop())) {
          e();
        }
      };
    },
    async load(e) {
      var r = getLoaders(e);
      await Promise.all(r.map((async ({input: e, loader: r}) => {
        var a = await r.load();
        n.version++;
        if (e.name) {
          n.multi[e.name] = {
            ...e,
            ...a
          };
        } else {
          n.current = {
            ...e,
            ...a
          };
        }
      })));
      return n;
    }
  };
  return n;
}

var C = process.cwd();

var maybeRelative = r => {
  var a = e.relative(C, r);
  return !a.startsWith("..") ? a : r;
};

class TSError extends Error {
  constructor(e) {
    var r = "string" != typeof e.messageText ? e.messageText.messageText : e.messageText;
    if (e.file) {
      r += ` (${maybeRelative(e.file.fileName)})`;
    }
    super(r);
    this.name = "TSError";
    this.diagnostic = e;
  }
}

class TadaError extends Error {
  constructor(e) {
    super(e);
    this.name = "TadaError";
  }
}

var R = [ "name", "tadaOutputLocation", "tadaTurboLocation", "tadaPersistedLocation" ];

var parseSchemaConfig = (r, a) => {
  var resolveConfigDir = r => {
    if (!r) {
      return r;
    }
    return e.normalize(r.replace(/\${([^}]+)}/, ((e, r) => {
      if ("configDir" === r) {
        return a;
      } else {
        throw new TadaError(`Substitution "\${${r}}" is not recognized (did you mean 'configDir'?)`);
      }
    })));
  };
  if (null == r || "object" != typeof r) {
    throw new TadaError(`Schema is not configured properly (Received: ${r})`);
  }
  if ("schema" in r && r.schema && "object" == typeof r.schema) {
    var {schema: n} = r;
    if (!("url" in n)) {
      throw new TadaError("Configuration contains a `schema` object, but no `url` property");
    }
    if ("headers" in n && n.headers && "object" == typeof n.headers) {
      for (var t in n.headers) {
        if (n.headers[t] && "string" != typeof n.headers[t]) {
          throw new TadaError("Headers at `schema.headers` contain a non-string value at key: " + t);
        }
      }
    } else if ("headers" in n) {
      throw new TadaError("Configuration contains a `schema.headers` property, but it's not an object");
    }
  } else if (!("schema" in r) || "string" != typeof r.schema) {
    throw new TadaError("Configuration is missing a `schema` property");
  }
  if ("tadaOutputLocation" in r && r.tadaOutputLocation && "string" != typeof r.tadaOutputLocation) {
    throw new TadaError("Configuration contains a `tadaOutputLocation` property, but it's not a file path");
  }
  if ("tadaTurboLocation" in r && r.tadaTurboLocation && "string" != typeof r.tadaTurboLocation) {
    throw new TadaError("Configuration contains a `tadaTurboLocation` property, but it's not a file path");
  }
  if ("tadaPersistedLocation" in r && r.tadaPersistedLocation && "string" != typeof r.tadaPersistedLocation) {
    throw new TadaError("Configuration contains a `tadaPersistedLocation` property, but it's not a file path");
  }
  var i = r;
  var o = i.schema;
  if ("string" == typeof o) {
    if (!getURLConfig(o)) {
      o = resolveConfigDir(o) || o;
    }
  }
  return {
    ...i,
    schema: o,
    tadaOutputLocation: resolveConfigDir(i.tadaOutputLocation),
    tadaTurboLocation: resolveConfigDir(i.tadaTurboLocation),
    tadaPersistedLocation: resolveConfigDir(i.tadaPersistedLocation)
  };
};

var parseConfig = (e, r = process.cwd()) => {
  if (null == e || "object" != typeof e) {
    throw new TadaError(`Configuration is of an invalid type (Received: ${e})`);
  } else if ("template" in e && e.template && "string" != typeof e.template) {
    throw new TadaError("Configuration contains a `template` property, but it's not a string");
  } else if ("name" in e && e.name && "string" != typeof e.name) {
    throw new TadaError("Configuration contains a `name` property, but it's not a string");
  }
  if ("schemas" in e) {
    if (!Array.isArray(e.schemas)) {
      throw new TadaError("Configuration contains a `schema` property, but it's not an array");
    }
    if ("schema" in e) {
      throw new TadaError("If configuration contains a `schemas` property, it cannot contain a `schema` configuration.");
    } else if ("tadaOutputLocation" in e) {
      throw new TadaError("If configuration contains a `schemas` property, it cannot contain a 'tadaOutputLocation` configuration.");
    } else if ("tadaTurboLocation" in e) {
      throw new TadaError("If configuration contains a `schemas` property, it cannot contain a 'tadaTurboLocation` configuration.");
    } else if ("tadaPersistedLocation" in e) {
      throw new TadaError("If configuration contains a `schemas` property, it cannot contain a 'tadaPersistedLocation` configuration.");
    }
    var a = e.schemas.map((e => {
      if (!("name" in e) || !e.name || "string" != typeof e.name) {
        throw new TadaError("All `schemas` configurations must contain a `name` label.");
      }
      if (!("tadaOutputLocation" in e) || !e.tadaOutputLocation || "string" != typeof e.tadaOutputLocation) {
        throw new TadaError("All `schemas` configurations must contain a `tadaOutputLocation` path.");
      }
      return {
        ...parseSchemaConfig(e, r),
        name: e.name
      };
    }));
    var _loop = function(e) {
      var r = a.map((r => r[e])).filter(Boolean);
      var n = new Set(r);
      if (r.length !== n.size) {
        throw new TadaError(`All '${e}' values in \`schemas[]\` must be unique.`);
      }
    };
    for (var n of R) {
      _loop(n);
    }
    return {
      ...e,
      schemas: a
    };
  } else {
    return {
      ...e,
      ...parseSchemaConfig(e, r)
    };
  }
};

var getSchemaNamesFromConfig = e => new Set([ ..."schema" in e ? [ null ] : [], ..."schemas" in e ? e.schemas.map((e => e.name)) : [] ]);

var getSchemaConfigForName = (e, r) => {
  if (r && "name" in e && e.name === r) {
    return e;
  } else if (!r && !("schemas" in e)) {
    return e;
  } else if (r && "schemas" in e) {
    for (var a = 0; a < e.schemas.length; a++) {
      if (e.schemas[a].name === r) {
        return e.schemas[a];
      }
    }
    return null;
  } else {
    return null;
  }
};

var isFile = e => e.isFile();

var isDir = e => e.isDirectory();

var stat = (e, r = isFile) => m.stat(e).then(r).catch((() => !1));

var P = "undefined" != typeof require ? require.resolve.bind(require) : y(import.meta.url).resolve;

var resolveExtend = async (e, r) => {
  try {
    return toTSConfigPath(P(e, {
      paths: [ r ]
    }));
  } catch (e) {
    return null;
  }
};

var toTSConfigPath = r => ".json" !== e.extname(r) ? e.resolve(C, r, "tsconfig.json") : e.resolve(C, r);

var readTSConfigFile = async e => {
  var r = toTSConfigPath(e);
  var n = await m.readFile(r, "utf8");
  var t = a.parseConfigFileTextToJson(r, n);
  if (t.error) {
    throw new TSError(t.error);
  }
  return t.config || {};
};

var findTSConfigFile = async r => {
  var a = toTSConfigPath(r || C);
  var n = toTSConfigPath(e.resolve(a, "/"));
  while (a !== n) {
    if (await stat(a)) {
      return a;
    }
    var t = e.resolve(a, "..", ".git");
    if (await stat(t, isDir)) {
      return null;
    }
    var i = toTSConfigPath(e.resolve(a, "..", ".."));
    if (i === a) {
      break;
    }
    a = i;
  }
  return null;
};

var loadConfig = async r => {
  var a = await findTSConfigFile(r);
  if (!a) {
    throw new TadaError(r ? `No tsconfig.json found at or above: ${maybeRelative(r)}` : "No tsconfig.json found at or above current working directory");
  }
  var load = async r => {
    var n = await readTSConfigFile(r);
    var t = (e => e && e.compilerOptions && e.compilerOptions.plugins && e.compilerOptions.plugins.find((e => "@0no-co/graphqlsp" === e.name || "gql.tada/lsp" === e.name || "gql.tada/ts-plugin" === e.name)) || null)(n);
    if (t) {
      return {
        pluginConfig: t,
        configPath: r,
        rootPath: e.dirname(a)
      };
    }
    if (Array.isArray(n.extends)) {
      for (var i of n.extends) {
        if (".json" !== e.extname(i)) {
          i += ".json";
        }
        try {
          var o = await resolveExtend(i, e.dirname(a));
          if (o) {
            return await load(o);
          }
        } catch (e) {}
      }
    } else if (n.extends) {
      try {
        var s = await resolveExtend(n.extends, e.dirname(a));
        if (s) {
          return await load(s);
        }
      } catch (e) {}
    }
    throw new TadaError(`Could not find a valid GraphQLSP plugin entry in: ${maybeRelative(a)}`);
  };
  return await load(a);
};

var resolveTypeScriptRootDir = async r => {
  try {
    var a = await loadConfig(r);
    return e.dirname(a.configPath);
  } catch (e) {
    return;
  }
};

function nameCompare(e, r) {
  return e.name < r.name ? -1 : e.name > r.name ? 1 : 0;
}

function mapTypeRef(e) {
  switch (e.kind) {
   case "NON_NULL":
   case "LIST":
    return {
      kind: e.kind,
      ofType: mapTypeRef(e.ofType)
    };

   case "INPUT_OBJECT":
   case "ENUM":
   case "SCALAR":
   case "OBJECT":
   case "INTERFACE":
   case "UNION":
    return {
      kind: e.kind,
      name: e.name
    };
  }
}

function mapEnumValue(e) {
  return {
    name: e.name,
    isDeprecated: !!e.isDeprecated,
    deprecationReason: void 0
  };
}

function mapInputField(e) {
  return {
    name: e.name,
    type: mapTypeRef(e.type),
    defaultValue: e.defaultValue || void 0
  };
}

function mapField(e) {
  return {
    name: e.name,
    type: mapTypeRef(e.type),
    args: e.args ? e.args.map(mapInputField).sort(nameCompare) : [],
    isDeprecated: !!e.isDeprecated,
    deprecationReason: void 0
  };
}

function mapPossibleType(e) {
  return {
    kind: e.kind,
    name: e.name
  };
}

function minifyIntrospectionType(e) {
  switch (e.kind) {
   case "SCALAR":
    return {
      kind: "SCALAR",
      name: e.name
    };

   case "ENUM":
    return {
      kind: "ENUM",
      name: e.name,
      enumValues: e.enumValues.map(mapEnumValue)
    };

   case "INPUT_OBJECT":
    return {
      kind: "INPUT_OBJECT",
      name: e.name,
      inputFields: e.inputFields.map(mapInputField),
      isOneOf: e.isOneOf || !1
    };

   case "OBJECT":
    return {
      kind: "OBJECT",
      name: e.name,
      fields: e.fields ? e.fields.map(mapField).sort(nameCompare) : [],
      interfaces: e.interfaces ? e.interfaces.map(mapPossibleType).sort(nameCompare) : []
    };

   case "INTERFACE":
    return {
      kind: "INTERFACE",
      name: e.name,
      fields: e.fields ? e.fields.map(mapField).sort(nameCompare) : [],
      interfaces: e.interfaces ? e.interfaces.map(mapPossibleType).sort(nameCompare) : [],
      possibleTypes: e.possibleTypes ? e.possibleTypes.map(mapPossibleType).sort(nameCompare) : []
    };

   case "UNION":
    return {
      kind: "UNION",
      name: e.name,
      possibleTypes: e.possibleTypes ? e.possibleTypes.map(mapPossibleType).sort(nameCompare) : []
    };
  }
}

var minifyIntrospectionQuery = e => {
  if (!e || !("__schema" in e)) {
    throw new TypeError("Expected to receive an IntrospectionQuery.");
  }
  var {__schema: {queryType: r, mutationType: a, subscriptionType: n, types: t}} = e;
  var i = t.filter((e => {
    switch (e.name) {
     case "__Directive":
     case "__DirectiveLocation":
     case "__EnumValue":
     case "__InputValue":
     case "__Field":
     case "__Type":
     case "__TypeKind":
     case "__Schema":
      return !1;

     default:
      return "SCALAR" === e.kind || "ENUM" === e.kind || "INPUT_OBJECT" === e.kind || "OBJECT" === e.kind || "INTERFACE" === e.kind || "UNION" === e.kind;
    }
  })).map(minifyIntrospectionType).sort(nameCompare);
  return {
    name: "name" in e ? e.name : void 0,
    __schema: {
      queryType: {
        kind: r.kind,
        name: r.name
      },
      mutationType: a ? {
        kind: a.kind,
        name: a.name
      } : null,
      subscriptionType: n ? {
        kind: n.kind,
        name: n.name
      } : null,
      types: i,
      directives: []
    }
  };
};

var printName = e => e ? `'${e}'` : "never";

var printTypeRef = e => {
  if ("NON_NULL" === e.kind) {
    return `{ kind: 'NON_NULL'; name: never; ofType: ${printTypeRef(e.ofType)}; }`;
  } else if ("LIST" === e.kind) {
    return `{ kind: 'LIST'; name: never; ofType: ${printTypeRef(e.ofType)}; }`;
  } else {
    return `{ kind: ${printName(e.kind)}; name: ${printName(e.name)}; ofType: null; }`;
  }
};

var printNamedTypes = e => {
  if (!e.length) {
    return "never";
  }
  var r = "";
  for (var a of e) {
    if (r) {
      r += " | ";
    }
    r += printName(a.name);
  }
  return r;
};

var printFields = e => {
  var r = "";
  for (var a of e) {
    var n = printName(a.name);
    var t = printTypeRef(a.type);
    r += `${printName(a.name)}: { name: ${n}; type: ${t} }; `;
  }
  return `{ ${r}}`;
};

var printIntrospectionType = e => {
  if ("ENUM" === e.kind) {
    var r = printNamedTypes(e.enumValues);
    return `{ name: ${printName(e.name)}; enumValues: ${r}; }`;
  } else if ("INPUT_OBJECT" === e.kind) {
    var a = (e => {
      var r = "";
      for (var a of e) {
        if (r) {
          r += ", ";
        }
        r += `{ name: ${printName(a.name)}; type: ${printTypeRef(a.type)}; defaultValue: ${a.defaultValue ? JSON.stringify(a.defaultValue) : "null"} }`;
      }
      return `[${r}]`;
    })(e.inputFields);
    return `{ kind: 'INPUT_OBJECT'; name: ${printName(e.name)}; isOneOf: ${e.isOneOf || !1}; inputFields: ${a}; }`;
  } else if ("OBJECT" === e.kind) {
    var n = printFields(e.fields);
    return `{ kind: 'OBJECT'; name: ${printName(e.name)}; fields: ${n}; }`;
  } else if ("INTERFACE" === e.kind) {
    return `{ kind: 'INTERFACE'; name: ${printName(e.name)}; fields: ${printFields(e.fields)}; possibleTypes: ${printNamedTypes(e.possibleTypes)}; }`;
  } else if ("UNION" === e.kind) {
    return `{ kind: 'UNION'; name: ${printName(e.name)}; fields: {}; possibleTypes: ${printNamedTypes(e.possibleTypes)}; }`;
  } else {
    return "unknown";
  }
};

function preprocessIntrospectionTypes(e) {
  var r = "";
  for (var a of e.__schema.types) {
    var n = printIntrospectionType(a);
    if (r) {
      r += "\n";
    }
    r += `    ${printName(a.name)}: ${n};`;
  }
  return `{\n${r}\n}`;
}

function preprocessIntrospection(e, r = preprocessIntrospectionTypes(e)) {
  var {__schema: a} = e;
  var n = "name" in e ? e.name : void 0;
  var t = printName(a.queryType.name);
  var i = printName(a.mutationType && a.mutationType.name);
  var o = printName(a.subscriptionType && a.subscriptionType.name);
  return `{\n  name: ${printName(n)};\n  query: ${t};\n  mutation: ${i};\n  subscription: ${o};\n  types: ${r};\n}`;
}

var $ = [ "/* eslint-disable */", "/* prettier-ignore */" ].join("\n") + "\n";

var q = [ "/** An IntrospectionQuery representation of your schema.", " *", " * @remarks", " * This is an introspection of your schema saved as a file by GraphQLSP.", " * It will automatically be used by `gql.tada` to infer the types of your GraphQL documents.", " * If you need to reuse this data or update your `scalars`, update `tadaOutputLocation` to", " * instead save to a .ts instead of a .d.ts file.", " */" ].join("\n");

var U = [ "/** An IntrospectionQuery representation of your schema.", " *", " * @remarks", " * This is an introspection of your schema saved as a file by GraphQLSP.", " * You may import it to create a `graphql()` tag function with `gql.tada`", " * by importing it and passing it to `initGraphQLTada<>()`.", " *", " * @example", " * ```", " * import { initGraphQLTada } from 'gql.tada';", " * import type { introspection } from './introspection';", " *", " * export const graphql = initGraphQLTada<{", " *   introspection: typeof introspection;", " *   scalars: {", " *     DateTime: string;", " *     Json: any;", " *   };", " * }>();", " * ```", " */" ].join("\n");

var V = "introspection_types";

var stringifyJson = e => "string" == typeof e ? e : JSON.stringify(e, null, 2);

function outputIntrospectionFile(e, r) {
  if (/\.d\.ts$/.test(r.fileType)) {
    var a = [ $ ];
    if ("string" != typeof e && r.shouldPreprocess) {
      a.push(`export type ${V} = ${preprocessIntrospectionTypes(e)};\n`, q, `export type introspection = ${preprocessIntrospection(e, V)};\n`, "import * as gqlTada from 'gql.tada';\n");
    } else {
      a.push(q, `export type introspection = ${stringifyJson(e)};\n`, "import * as gqlTada from 'gql.tada';\n");
    }
    if (!("name" in e) || !e.name) {
      a.push("declare module 'gql.tada' {", "  interface setupSchema {", "    introspection: introspection", "  }", "}");
    }
    return a.join("\n");
  } else if (/\.ts$/.test(r.fileType)) {
    var n = stringifyJson(e);
    return [ $, U, `const introspection = ${n} as const;\n`, "export { introspection };" ].join("\n");
  }
  throw new TadaError(`No available introspection format for "${r.fileType}" (expected ".ts" or ".d.ts")`);
}

export { TSError, TadaError, findTSConfigFile, getSchemaConfigForName, getSchemaNamesFromConfig, getURLConfig, load, loadConfig, loadFromSDL, loadFromURL, loadRef, minifyIntrospectionQuery as minifyIntrospection, outputIntrospectionFile, parseConfig, preprocessIntrospection, readTSConfigFile, resolveTypeScriptRootDir };
//# sourceMappingURL=gql-tada-internal.mjs.map

Выполнить команду


Для локальной разработки. Не используйте в интернете!