local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v4 = {};
local l_GraphQLObjectType_0 = require(l_Parent_0.GraphQL).GraphQLObjectType;
local l_MapperKind_0 = require(script.Parent.Interfaces).MapperKind;
local v7 = require(script.Parent.mapSchema);
local l_mapSchema_0 = v7.mapSchema;
local l_correctASTNodes_0 = v7.correctASTNodes;
local l_addTypes_0 = require(script.Parent.addTypes).addTypes;
local l_Map_0 = v1.Map;
v4.appendObjectFields = function(v12, v13, v14)
    if v12:getType(v13) == nil then
        return l_addTypes_0(v12, {
            l_GraphQLObjectType_0.new({
                name = v13,
                fields = v14
            })
        });
    else
        return l_mapSchema_0(v12, {
            [l_MapperKind_0.OBJECT_TYPE] = function(v15)
                if v15.name == v13 then
                    local v16 = v15:toConfig();
                    local l_fields_0 = v16.fields;
                    local v18 = l_Map_0.new();
                    for _, v20 in l_fields_0, nil, nil do
                        local v21 = v20[1];
                        v18:set(v21, l_fields_0:get(v21));
                    end;
                    for _, v23 in v14, nil, nil do
                        local v24 = v23[1];
                        v18:set(v24, v14:get(v24));
                    end;
                    return (l_correctASTNodes_0(l_GraphQLObjectType_0.new(l_Object_0.assign({}, v16, {
                        fields = v18
                    }))));
                else
                    return nil;
                end;
            end
        });
    end;
end;
v4.removeObjectFields = function(v25, v26, v27)
    local v28 = l_Map_0.new();
    return {
        l_mapSchema_0(v25, {
            [l_MapperKind_0.OBJECT_TYPE] = function(v29)
                if v29.name == v26 then
                    local v30 = v29:toConfig();
                    local l_fields_1 = v30.fields;
                    local v32 = l_Map_0.new();
                    for _, v34 in l_fields_1, nil, nil do
                        local v35 = table.unpack(v34);
                        local v36 = l_fields_1:get(v35);
                        if not l_Boolean_0.toJSBoolean(v27(v35, v36)) then
                            v32:set(v35, v36);
                        else
                            v28:set(v35, v36);
                        end;
                    end;
                    return (l_correctASTNodes_0(l_GraphQLObjectType_0.new(l_Object_0.assign({}, v30, {
                        fields = v32
                    }))));
                else
                    return nil;
                end;
            end
        }),
        v28
    };
end;
v4.selectObjectFields = function(v37, v38, v39)
    local v40 = l_Map_0.new();
    l_mapSchema_0(v37, {
        [tostring(l_MapperKind_0.OBJECT_TYPE)] = function(v41)
            if v41.name == v38 then
                local l_fields_2 = v41:toConfig().fields;
                for _, v44 in l_fields_2, nil, nil do
                    local v45 = v44[1];
                    local v46 = l_fields_2:get(v45);
                    if l_Boolean_0.toJSBoolean(v39(v45, v46)) then
                        v40:set(v45, v46);
                    end;
                end;
            end;
            return nil;
        end
    });
    return v40;
end;
v4.modifyObjectFields = function(v47, v48, v49, v50)
    local v51 = l_Map_0.new();
    return {
        l_mapSchema_0(v47, {
            [l_MapperKind_0.OBJECT_TYPE] = function(v52)
                if v52.name == v48 then
                    local v53 = v52:toConfig();
                    local l_fields_3 = v53.fields;
                    local v55 = l_Map_0.new();
                    for _, v57 in l_fields_3, nil, nil do
                        local v58 = v57[1];
                        local v59 = l_fields_3:get(v58);
                        if not l_Boolean_0.toJSBoolean(v49(v58, v59)) then
                            v55:set(v58, v59);
                        else
                            v51:set(v58, v59);
                        end;
                    end;
                    for _, v61 in v50, nil, nil do
                        local v62 = v61[1];
                        v55:set(v62, (v50:get(v62)));
                    end;
                    return (l_correctASTNodes_0(l_GraphQLObjectType_0.new(l_Object_0.assign({}, v53, {
                        fields = v55
                    }))));
                else
                    return nil;
                end;
            end
        }),
        v51
    };
end;
return v4;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v5 = {};
local v6 = require(l_Parent_0.GraphQL);
local l_GraphQLInputObjectType_0 = v6.GraphQLInputObjectType;
local l_GraphQLInterfaceType_0 = v6.GraphQLInterfaceType;
local l_GraphQLObjectType_0 = v6.GraphQLObjectType;
local l_MapperKind_0 = require(script.Parent.Interfaces).MapperKind;
local l_mapSchema_0 = require(script.Parent.mapSchema).mapSchema;
local _ = require(script.Parent.types);
local v13 = nil;
local v14 = nil;
v5.filterSchema = function(v15)
    local l_schema_0 = v15.schema;
    local v17 = v15.typeFilter == nil and function(...)
        return true;
    end or v15.typeFilter;
    local v18 = if v15.fieldFilter == nil then nil else v15.fieldFilter;
    local v19 = if v15.rootFieldFilter == nil then nil else v15.rootFieldFilter;
    local v20 = if v15.objectFieldFilter == nil then nil else v15.objectFieldFilter;
    local v21 = if v15.interfaceFieldFilter == nil then nil else v15.interfaceFieldFilter;
    local v22 = if v15.inputObjectFieldFilter == nil then nil else v15.inputObjectFieldFilter;
    local v23 = if v15.argumentFilter == nil then nil else v15.argumentFilter;
    return (l_mapSchema_0(l_schema_0, {
        [l_MapperKind_0.QUERY] = function(v24)
            return v13(v24, "Query", v19, v23);
        end,
        [l_MapperKind_0.MUTATION] = function(v25)
            return v13(v25, "Mutation", v19, v23);
        end,
        [l_MapperKind_0.SUBSCRIPTION] = function(v26)
            return v13(v26, "Subscription", v19, v23);
        end,
        [l_MapperKind_0.OBJECT_TYPE] = function(v27)
            if not l_Boolean_0.toJSBoolean(v17(v27.name, v27)) then
                return l_Object_0.None;
            else
                return (v14(l_GraphQLObjectType_0, v27, not not l_Boolean_0.toJSBoolean(v20) and v20 or v18, v23));
            end;
        end,
        [l_MapperKind_0.INTERFACE_TYPE] = function(v28)
            if not l_Boolean_0.toJSBoolean(v17(v28.name, v28)) then
                return l_Object_0.None;
            else
                return (v14(l_GraphQLInterfaceType_0, v28, not not l_Boolean_0.toJSBoolean(v21) and v21 or v18, v23));
            end;
        end,
        [l_MapperKind_0.INPUT_OBJECT_TYPE] = function(v29)
            if not l_Boolean_0.toJSBoolean(v17(v29.name, v29)) then
                return l_Object_0.None;
            else
                return (v14(l_GraphQLInputObjectType_0, v29, not not l_Boolean_0.toJSBoolean(v22) and v22 or v18));
            end;
        end,
        [l_MapperKind_0.UNION_TYPE] = function(v30)
            if not l_Boolean_0.toJSBoolean(v17(v30.name, v30)) then
                return l_Object_0.None;
            else
                return nil;
            end;
        end,
        [l_MapperKind_0.ENUM_TYPE] = function(v31)
            if not l_Boolean_0.toJSBoolean(v17(v31.name, v31)) then
                return l_Object_0.None;
            else
                return nil;
            end;
        end,
        [l_MapperKind_0.SCALAR_TYPE] = function(v32)
            if not l_Boolean_0.toJSBoolean(v17(v32.name, v32)) then
                return l_Object_0.None;
            else
                return nil;
            end;
        end
    }));
end;
v13 = function(v33, v34, v35, v36)
    if not l_Boolean_0.toJSBoolean(not not l_Boolean_0.toJSBoolean(v35) and v35 or v36) then
        return v33;
    else
        local v37 = v33:toConfig();
        for _, v39 in v37.fields, nil, nil do
            local v40 = table.unpack(v39);
            local v41 = v37.fields:get(v40);
            if not (v35 and not v35(v34, v40, (v37.fields:get(v40)))) then
                if l_Boolean_0.toJSBoolean(if not l_Boolean_0.toJSBoolean(v36) then v36 else v41.args) then
                    for _, v43 in v41.args, nil, nil do
                        local v44 = table.unpack(v43);
                        if not v36(v34, v40, v44, v41.args:get(v44)) then
                            v41.args:delete(v44);
                        end;
                    end;
                end;
            else
                v37.fields:delete(v40);
            end;
        end;
        return l_GraphQLObjectType_0.new(v37);
    end;
end;
v14 = function(v45, v46, v47, v48)
    if not l_Boolean_0.toJSBoolean(not not l_Boolean_0.toJSBoolean(v47) and v47 or v48) then
        return nil;
    else
        local v49 = v46:toConfig();
        for _, v51 in v49.fields, nil, nil do
            local v52 = table.unpack(v51);
            local v53 = v49.fields:get(v52);
            if not l_Boolean_0.toJSBoolean(v47 and not v47(v46.name, v52, v49.fields:get(v52))) then
                if l_Boolean_0.toJSBoolean(if not l_Boolean_0.toJSBoolean(v48) then v48 else l_Array_0.indexOf(l_Object_0.keys(v53), "args") ~= -1) then
                    for _, v55 in v53.args, nil, nil do
                        local v56 = table.unpack(v55);
                        if not l_Boolean_0.toJSBoolean(v48(v46.name, v52, v56, v53.args:get(v56))) then
                            v53.args:delete(v56);
                        end;
                    end;
                end;
            else
                v49.fields:delete(v52);
            end;
        end;
        return v45.new(v49);
    end;
end;
return v5;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v4 = {};
local l_buildASTSchema_0 = require(l_Parent_0.GraphQL).buildASTSchema;
local _ = require(script.Parent.types);
local l_getDocumentNodeFromSchema_0 = require(script.Parent["print-schema-with-directives"]).getDocumentNodeFromSchema;
local function v10(v8, v9)
    return l_buildASTSchema_0(l_getDocumentNodeFromSchema_0(v8), l_Object_0.assign({}, not not l_Boolean_0.toJSBoolean(v9) and v9 or {}));
end;
v4.fixSchemaAst = function(v11, v12)
    local v13 = nil;
    if not (l_Boolean_0.toJSBoolean(v11.astNode) and l_Boolean_0.toJSBoolean(v11.extensionASTNodes)) then
        v13 = v10(v11, v12);
    end;
    if not ((l_Boolean_0.toJSBoolean(v11.astNode) or not v13) or not l_Boolean_0.toJSBoolean(v13.astNode)) then
        v11.astNode = v13.astNode;
    end;
    if not ((l_Boolean_0.toJSBoolean(v11.extensionASTNodes) or not v13) or not l_Boolean_0.toJSBoolean(v13.astNode)) then
        v11.extensionASTNodes = v13.extensionASTNodes;
    end;
    return v11;
end;
return v4;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Boolean_0 = v1.Boolean;
local v3 = {};
local v4 = require(l_Parent_0.GraphQL);
local l_getNamedType_0 = v4.getNamedType;
local l_isObjectType_0 = v4.isObjectType;
local l_isInputObjectType_0 = v4.isInputObjectType;
local _ = require(script.Parent.Interfaces);
local l_String_0 = v1.String;
v3.forEachDefaultValue = function(v10, v11)
    local v12 = v10:getTypeMap();
    for _, v14 in v12, nil, nil do
        local v15 = v12:get(v14[1]);
        if not l_String_0.startsWith(l_getNamedType_0(v15).name, "__") then
            if not l_Boolean_0.toJSBoolean(l_isObjectType_0(v15)) then
                if l_Boolean_0.toJSBoolean(l_isInputObjectType_0(v15)) then
                    local v16 = v15:getFields();
                    for _, v18 in v16, nil, nil do
                        local v19 = v16:get(v18[1]);
                        v19.defaultValue = v11(v19.type, v19.defaultValue);
                    end;
                end;
            else
                local v20 = v15:getFields();
                for _, v22 in v20, nil, nil do
                    for _, v24 in v20:get(v22[1]).args, nil, nil do
                        v24.defaultValue = v11(v24.type, v24.defaultValue);
                    end;
                end;
            end;
        end;
    end;
end;
return v3;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local v2 = {};
local v3 = require(l_Parent_0.GraphQL);
local l_getNamedType_0 = v3.getNamedType;
local l_isObjectType_0 = v3.isObjectType;
local _ = require(script.Parent.Interfaces);
local l_String_0 = v1.String;
v2.forEachField = function(v8, v9)
    local v10 = v8:getTypeMap();
    for _, v12 in v10, nil, nil do
        local v13 = v12[1];
        local v14 = v10:get(v13);
        if not (l_String_0.startsWith(l_getNamedType_0(v14).name, "__") or not l_isObjectType_0(v14)) then
            local v15 = v14:getFields();
            for _, v17 in v15, nil, nil do
                local v18 = v17[1];
                v9(v15:get(v18), v13, v18);
            end;
        end;
    end;
end;
return v2;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v5 = {};
local _ = require(script.Parent.types);
local v7 = require(l_Parent_0.GraphQL);
local l_Kind_0 = v7.Kind;
local l_valueFromASTUntyped_0 = v7.valueFromASTUntyped;
local function v12(v10)
    local v11 = true;
    if v10.kind ~= l_Kind_0.OBJECT_TYPE_DEFINITION then
        v11 = v10.kind == l_Kind_0.OBJECT_TYPE_EXTENSION;
    end;
    return v11;
end;
v5.getArgumentsWithDirectives = function(v13)
    local v14 = {};
    for _, v16 in (l_Array_0.filter(v13.definitions, v12)), nil, nil do
        if v16.fields ~= nil then
            for _, v18 in v16.fields, nil, nil do
                local v19 = if typeof(v18.arguments) == "table" then v18.arguments else nil;
                local v21 = if v19 ~= nil then l_Array_0.filter(v19, function(v20)
                    return l_Boolean_0.toJSBoolean(if typeof(v20.directives) == "table" then #v20.directives else nil);
                end) else nil;
                if l_Boolean_0.toJSBoolean(if typeof(v21) == "table" then #v21 else nil) then
                    v14[tostring(("%s.%s"):format(tostring(v16.name.value), (tostring(v18.name.value))))] = {};
                    local v22 = v14[tostring(("%s.%s"):format(tostring(v16.name.value), (tostring(v18.name.value))))];
                    for _, v24 in v21, nil, nil do
                        v22[tostring(v24.name.value)] = l_Array_0.map(v24.directives, function(v25)
                            return {
                                name = v25.name.value,
                                args = l_Array_0.reduce(not not l_Boolean_0.toJSBoolean(v25.arguments) and v25.arguments or {}, function(v26, v27)
                                    return l_Object_0.assign({}, v26, {
                                        [v27.name.value] = l_valueFromASTUntyped_0(v27.value, {})
                                    });
                                end, {})
                            };
                        end);
                    end;
                end;
            end;
        end;
    end;
    return v14;
end;
return v5;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v5 = {};
local _ = require(l_Parent_0.GraphQL);
local l_getArgumentValues_0 = require(script.Parent.getArgumentValues).getArgumentValues;
local function v12(v8, v9)
    return (l_Array_0.reduce(if v9 ~= nil then v9 else {
        "directives"
    }, function(v10, v11)
        if not (v10 ~= l_Object_0.None) or v10 == nil then
            return nil;
        else
            return v10[v11];
        end;
    end, if typeof(v8) == "table" and v8.extensions then v8.extensions else l_Object_0.None));
end;
v5.getDirectivesInExtensions = v12;
local function v18(v13, v14)
    local v16 = l_Array_0.filter(v13, function(v15)
        return v15.name == v14;
    end);
    if #v16 == 0 then
        return nil;
    else
        return (l_Array_0.map(v16, function(v17)
            if v17.args ~= nil then
                return v17.args;
            else
                return {};
            end;
        end));
    end;
end;
local function v32(v19, v20, v21)
    local v24 = l_Array_0.reduce(if v21 ~= nil then v21 else {
        "directives"
    }, function(v22, v23)
        if not (v22 ~= l_Object_0.None) or v22 == nil then
            return nil;
        else
            return v22[v23];
        end;
    end, if typeof(v19) == "table" and v19.extensions then v19.extensions else l_Object_0.None);
    if v24 == nil then
        return nil;
    elseif not l_Boolean_0.toJSBoolean(l_Array_0.isArray(v24)) then
        local v25 = {};
        for _, v27 in l_Object_0.entries(v24) do
            local v28, v29 = table.unpack(v27, 1, 2);
            if not l_Boolean_0.toJSBoolean(l_Array_0.isArray(v29)) then
                table.insert(v25, {
                    name = v28,
                    args = v29
                });
            else
                for _, v31 in v29, nil, nil do
                    table.insert(v25, {
                        name = v28,
                        args = v31
                    });
                end;
            end;
        end;
        return (v18(v25, v20));
    else
        return (v18(v24, v20));
    end;
end;
v5.getDirectiveInExtensions = v32;
v5.getDirectives = function(v33, v34, v35)
    local v36 = v12(v34, if v35 ~= nil then v35 else {
        "directives"
    });
    if v36 ~= nil and #v36 > 0 then
        return v36;
    else
        local v39 = l_Array_0.reduce(if not l_Boolean_0.toJSBoolean(if not l_Boolean_0.toJSBoolean(v33) then v33 else v33.getDirectives) then {} else v33:getDirectives(), function(v37, v38)
            v37[tostring(v38.name)] = v38;
            return v37;
        end, {});
        local v40 = {};
        if l_Boolean_0.toJSBoolean(v34.astNode) then
            table.insert(v40, v34.astNode);
        end;
        if not (not (l_Array_0.indexOf(l_Object_0.keys(v34), "extensionASTNodes") ~= -1) or not l_Boolean_0.toJSBoolean(v34.extensionASTNodes)) then
            v40 = l_Array_0.concat({}, v40, v34.extensionASTNodes);
        end;
        local v41 = {};
        for _, v43 in v40, nil, nil do
            if l_Boolean_0.toJSBoolean(v43.directives) then
                for _, v45 in v43.directives, nil, nil do
                    local v46 = v39[tostring(v45.name.value)];
                    if l_Boolean_0.toJSBoolean(v46) then
                        table.insert(v41, {
                            name = v45.name.value,
                            args = l_getArgumentValues_0(v46, v45)
                        });
                    end;
                end;
            end;
        end;
        return v41;
    end;
end;
v5.getDirective = function(v47, v48, v49, v50)
    local v51 = v32(v48, v49, if v50 ~= nil then v50 else {
        "directives"
    });
    if v51 ~= nil then
        return v51;
    else
        local v52 = if not l_Boolean_0.toJSBoolean(if not l_Boolean_0.toJSBoolean(v47) then v47 else v47.getDirective) then nil else v47:getDirective(v49);
        if v52 == nil then
            return nil;
        else
            local v53 = {};
            if l_Boolean_0.toJSBoolean(v48.astNode) then
                table.insert(v53, v48.astNode);
            end;
            if not (not (l_Array_0.indexOf(l_Object_0.keys(v48), "extensionASTNodes") ~= -1) or not l_Boolean_0.toJSBoolean(v48.extensionASTNodes)) then
                v53 = l_Array_0.concat({}, v53, v48.extensionASTNodes);
            end;
            local v54 = {};
            for _, v56 in v53, nil, nil do
                if l_Boolean_0.toJSBoolean(v56.directives) then
                    for _, v58 in v56.directives, nil, nil do
                        if v58.name.value == v49 then
                            table.insert(v54, l_getArgumentValues_0(v52, v58));
                        end;
                    end;
                end;
            end;
            if l_Boolean_0.toJSBoolean(#v54) then
                return v54;
            else
                return nil;
            end;
        end;
    end;
end;
return v5;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v5 = {};
local l_valueFromASTUntyped_0 = require(l_Parent_0.GraphQL).valueFromASTUntyped;
local _ = require(script.Parent.types);
v5.getFieldsWithDirectives = function(v8, v9)
    local v10 = if v9 ~= nil then v9 else {};
    local v11 = {};
    local v12 = {
        "ObjectTypeDefinition",
        "ObjectTypeExtension"
    };
    if l_Boolean_0.toJSBoolean(v10.includeInputTypes) then
        v12 = l_Array_0.concat({}, v12, {
            "InputObjectTypeDefinition",
            "InputObjectTypeExtension"
        });
    end;
    for _, v15 in (l_Array_0.filter(v8.definitions, function(v13)
        return l_Array_0.includes(v12, v13.kind);
    end)), nil, nil do
        local l_value_0 = v15.name.value;
        if v15.fields ~= nil then
            for _, v18 in v15.fields, nil, nil do
                if l_Boolean_0.toJSBoolean(v18.directives) and #v18.directives > 0 then
                    v11[tostring((("%s.%s"):format(tostring(l_value_0), (tostring(v18.name.value)))))] = l_Array_0.map(v18.directives, function(v19)
                        return {
                            name = v19.name.value,
                            args = l_Array_0.reduce(not not l_Boolean_0.toJSBoolean(v19.arguments) and v19.arguments or {}, function(v20, v21)
                                return l_Object_0.assign({}, v20, {
                                    [v21.name.value] = l_valueFromASTUntyped_0(v21.value, nil)
                                });
                            end, {})
                        };
                    end);
                end;
            end;
        end;
    end;
    return v11;
end;
return v5;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local v4 = {};
local l_isObjectType_0 = require(l_Parent_0.GraphQL).isObjectType;
v4.getImplementingTypes = function(v6, v7)
    local v8 = v7:getTypeMap();
    local v9 = {};
    for _, v11 in v8, nil, nil do
        local v12 = v8:get((table.unpack(v11)));
        if not (not l_Boolean_0.toJSBoolean(l_isObjectType_0(v12)) or not l_Boolean_0.toJSBoolean(l_Array_0.find(v12:getInterfaces(), function(v13)
            return v13.name == v6;
        end))) then
            table.insert(v9, v12.name);
        end;
    end;
    return v9;
end;
return v4;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v5 = {};
local v6 = require(l_Parent_0.GraphQL);
local l_valueFromAST_0 = v6.valueFromAST;
local l_isNonNullType_0 = v6.isNonNullType;
local l_Kind_0 = v6.Kind;
local l_print_0 = v6.print;
local l_createGraphQLError_0 = require(script.Parent.errors).createGraphQLError;
local l_inspect_0 = require(script.Parent.inspect).inspect;
v5.getArgumentValues = function(v13, v14, v15)
    local v16 = if v15 ~= nil then v15 else {};
    local v21 = l_Array_0.reduce(l_Object_0.entries(v16), function(v17, v18)
        local v19, v20 = table.unpack(v18, 1, 2);
        return l_Object_0.assign({}, v17, {
            [tostring(v19)] = v20
        });
    end, {});
    local v22 = {};
    local v25 = l_Array_0.reduce(if v14.arguments ~= nil then v14.arguments else {}, function(v23, v24)
        return l_Object_0.assign({}, v23, {
            [tostring(v24.name.value)] = v24
        });
    end, {});
    for _, v27 in v13.args, nil, nil do
        local l_name_0 = v27.name;
        local l_type_0 = v27.type;
        local l_defaultValue_0 = v27.defaultValue;
        local v31 = v25[tostring(l_name_0)];
        if l_Boolean_0.toJSBoolean(v31) then
            local l_value_0 = v31.value;
            local v33 = l_value_0.kind == l_Kind_0.NULL;
            if l_value_0.kind == l_Kind_0.VARIABLE then
                local l_value_1 = l_value_0.name.value;
                if not (v16 ~= nil) or v21[tostring(l_value_1)] == nil then
                    if l_defaultValue_0 ~= nil then
                        v22[tostring(l_name_0)] = l_defaultValue_0;
                        continue;
                    elseif l_Boolean_0.toJSBoolean(l_isNonNullType_0(l_type_0)) then
                        error(l_createGraphQLError_0(("Argument \"%s\" of required type \"%s\" "):format(tostring(l_name_0), (tostring(l_inspect_0(l_type_0)))) .. ("was provided the variable \"$%s\" which was not provided a runtime value."):format((tostring(l_value_1))), {
                            nodes = {
                                l_value_0
                            }
                        }));
                        continue;
                    else
                        continue;
                    end;
                else
                    v33 = v16[tostring(l_value_1)] == nil;
                end;
            end;
            if not (not v33 or not l_isNonNullType_0(l_type_0)) then
                error(l_createGraphQLError_0(("Argument \"%s\" of non-null type \"%s\" "):format(tostring(l_name_0), (tostring(l_inspect_0(l_type_0)))) .. "must not be null.", {
                    nodes = {
                        l_value_0
                    }
                }));
            end;
            local v35 = l_valueFromAST_0(l_value_0, l_type_0, v16);
            if v35 == nil then
                error(l_createGraphQLError_0(("Argument \"%s\" has invalid value %s."):format(tostring(l_name_0), (tostring(l_print_0(l_value_0)))), {
                    nodes = {
                        l_value_0
                    }
                }));
            end;
            v22[tostring(l_name_0)] = v35;
        elseif l_defaultValue_0 ~= nil then
            v22[tostring(l_name_0)] = l_defaultValue_0;
        elseif l_Boolean_0.toJSBoolean(l_isNonNullType_0(l_type_0)) then
            error(l_createGraphQLError_0(("Argument \"%s\" of required type \"%s\" "):format(tostring(l_name_0), (tostring(l_inspect_0(l_type_0)))) .. "was not provided.", {
                nodes = {
                    v14
                }
            }));
        end;
    end;
    return v22;
end;
return v5;


local l_Parent_0 = script.Parent.Parent;
local l_Boolean_0 = require(l_Parent_0.LuauPolyfill).Boolean;
local v2 = {};
local l_isObjectType_0 = require(l_Parent_0.GraphQL).isObjectType;
local _ = require(script.Parent.types);
v2.getObjectTypeFromTypeMap = function(v5, v6)
    if v6 then
        local v7 = v5:get(v6.name);
        if l_Boolean_0.toJSBoolean(l_isObjectType_0(v7)) then
            return v7;
        end;
    end;
    return nil;
end;
return v2;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Boolean_0 = v1.Boolean;
local l_Error_0 = v1.Error;
local v4 = {};
local l_getOperationAST_0 = require(l_Parent_0.GraphQL).getOperationAST;
local _ = require(script.Parent.Interfaces);
local l_memoize1_0 = require(script.Parent.memoize).memoize1;
local function v11(v8, v9)
    local v10 = l_getOperationAST_0(v8, v9);
    if not l_Boolean_0.toJSBoolean(v10) then
        error(l_Error_0.new(("Cannot infer operation %s"):format((tostring(not not l_Boolean_0.toJSBoolean(v9) and v9 or "")))));
    end;
    return v10;
end;
v4.getOperationASTFromDocument = v11;
v4.getOperationASTFromRequest = l_memoize1_0(function(v12)
    return (v11(v12.document, v12.operationName));
end);
return v4;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Boolean_0 = v1.Boolean;
local v3 = {};
local v4 = require(l_Parent_0.GraphQL);
local l_GraphQLScalarType_0 = v4.GraphQLScalarType;
local l_isScalarType_0 = v4.isScalarType;
local l_isEnumType_0 = v4.isEnumType;
local l_isInterfaceType_0 = v4.isInterfaceType;
local l_isUnionType_0 = v4.isUnionType;
local l_isObjectType_0 = v4.isObjectType;
local l_isSpecifiedScalarType_0 = v4.isSpecifiedScalarType;
local _ = require(script.Parent.Interfaces);
local l_String_0 = v1.String;
v3.getResolversFromSchema = function(v14, v15)
    local v16 = {};
    local v17 = v14:getTypeMap();
    for _, v19 in v17, nil, nil do
        local v20 = v19[1];
        if not l_String_0.startsWith(v20, "__") then
            local v21 = v17:get(v20);
            if not l_Boolean_0.toJSBoolean(l_isScalarType_0(v21)) then
                if not l_Boolean_0.toJSBoolean(l_isEnumType_0(v21)) then
                    if not l_Boolean_0.toJSBoolean(l_isInterfaceType_0(v21)) then
                        if not l_Boolean_0.toJSBoolean(l_isUnionType_0(v21)) then
                            if l_Boolean_0.toJSBoolean(l_isObjectType_0(v21)) then
                                v16[tostring(v20)] = {};
                                if v21.isTypeOf ~= nil then
                                    v16[v20].__isTypeOf = v21.isTypeOf;
                                end;
                                local v22 = v21:getFields();
                                for _, v24 in v22, nil, nil do
                                    local v25 = v24[1];
                                    local v26 = v22:get(v25);
                                    if v26.subscribe ~= nil then
                                        v16[tostring(v20)][tostring(v25)] = not not l_Boolean_0.toJSBoolean(v16[tostring(v20)][tostring(v25)]) and v16[tostring(v20)][tostring(v25)] or {};
                                        v16[tostring(v20)][tostring(v25)].subscribe = v26.subscribe;
                                    end;
                                    if v26.resolve ~= nil and if typeof(v26.resolve) == "table" then v26.resolve.name else nil ~= "defaultFieldResolver" then
                                        local v27 = if typeof(v26.resolve) == "table" then v26.resolve.name else nil;
                                        if v27 == "defaultMergedResolver" then
                                            if not l_Boolean_0.toJSBoolean(v15) then
                                                continue;
                                            end;
                                        elseif not (v27 ~= "defaultFieldResolver") then
                                            continue;
                                        end;
                                        v16[tostring(v20)][tostring(v25)] = not not l_Boolean_0.toJSBoolean(v16[tostring(v20)][tostring(v25)]) and v16[tostring(v20)][tostring(v25)] or {};
                                        v16[tostring(v20)][tostring(v25)].resolve = v26.resolve;
                                    end;
                                end;
                            end;
                        elseif v21.resolveType ~= nil then
                            v16[v20] = {
                                __resolveType = v21.resolveType
                            };
                        end;
                    elseif v21.resolveType ~= nil then
                        v16[v20] = {
                            __resolveType = v21.resolveType
                        };
                    end;
                else
                    v16[tostring(v20)] = {};
                    for _, v29 in (v21:getValues()), nil, nil do
                        v16[tostring(v20)][tostring(v29.name)] = v29.value;
                    end;
                end;
            elseif not l_Boolean_0.toJSBoolean(l_isSpecifiedScalarType_0(v21)) then
                local v30 = v21:toConfig();
                v30.astNode = nil;
                local l_serialize_0 = v30.serialize;
                local l_parseValue_0 = v30.parseValue;
                local l_parseLiteral_0 = v30.parseLiteral;
                if l_serialize_0 then
                    v30.serialize = function(...)
                        return l_serialize_0(v30, ...);
                    end;
                end;
                if l_parseValue_0 then
                    v30.parseValue = function(...)
                        return l_parseValue_0(v30, ...);
                    end;
                end;
                if l_parseLiteral_0 then
                    v30.parseLiteral = function(...)
                        return l_parseLiteral_0(v30, ...);
                    end;
                end;
                v16[tostring(v20)] = l_GraphQLScalarType_0.new(v30);
            end;
        end;
    end;
    return v16;
end;
return v3;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Error_0 = v1.Error;
local l_console_0 = v1.console;
local v6 = {};
local v7 = require(l_Parent_0.GraphQL);
local l_GraphQLList_0 = v7.GraphQLList;
local l_GraphQLNonNull_0 = v7.GraphQLNonNull;
local l_isNamedType_0 = v7.isNamedType;
local l_isObjectType_0 = v7.isObjectType;
local l_isInterfaceType_0 = v7.isInterfaceType;
local l_isUnionType_0 = v7.isUnionType;
local l_isInputObjectType_0 = v7.isInputObjectType;
local l_isLeafType_0 = v7.isLeafType;
local l_isListType_0 = v7.isListType;
local l_isNonNullType_0 = v7.isNonNullType;
local l_Map_0 = v1.Map;
local l_String_0 = v1.String;
local v20 = nil;
v6.healSchema = function(v21)
    v20(v21:getTypeMap(), v21:getDirectives());
    return v21;
end;
v20 = function(v22, v23)
    local v24 = nil;
    local v25 = nil;
    local v26 = nil;
    local v27 = nil;
    local v28 = nil;
    local v29 = nil;
    v24 = function(v30)
        if not l_Boolean_0.toJSBoolean(l_isObjectType_0(v30)) then
            if not l_Boolean_0.toJSBoolean(l_isInterfaceType_0(v30)) then
                if not l_Boolean_0.toJSBoolean(l_isUnionType_0(v30)) then
                    if not l_Boolean_0.toJSBoolean(l_isInputObjectType_0(v30)) then
                        if not l_Boolean_0.toJSBoolean(l_isLeafType_0(v30)) then
                            error(l_Error_0.new(("Unexpected schema type: %s"):format((tostring(v30)))));
                            return ;
                        else
                            return ;
                        end;
                    else
                        v27(v30);
                        return ;
                    end;
                else
                    v28(v30);
                    return ;
                end;
            else
                v25(v30);
                if v30.getInterfaces ~= nil then
                    v26(v30);
                end;
                return ;
            end;
        else
            v25(v30);
            v26(v30);
            return ;
        end;
    end;
    v25 = function(v31)
        local v32 = v31:getFields();
        for _, v34 in v32:entries() do
            local v35 = v34[1];
            local v36 = v34[2];
            l_Array_0.filter(l_Array_0.map(v36.args, function(v37)
                v37.type = v29(v37.type);
                if v37.type == nil then
                    return nil;
                else
                    return v37;
                end;
            end), l_Boolean_0.toJSBoolean);
            v36.type = v29(v36.type);
            if v36.type == nil then
                v32[tostring(v35)] = nil;
            end;
        end;
    end;
    v26 = function(v38)
        if v38.getInterfaces ~= nil then
            local v39 = v38:getInterfaces();
            v39 = l_Array_0.concat(v39, l_Array_0.filter(l_Array_0.map(l_Array_0.splice(v39, 1), function(v40)
                return (v29(v40));
            end), l_Boolean_0.toJSBoolean));
        end;
    end;
    v27 = function(v41)
        local v42 = v41:getFields();
        for _, v44 in v42:entries() do
            local v45 = v44[1];
            local v46 = v44[2];
            v46.type = v29(v46.type);
            if v46.type == nil then
                v42[tostring(v45)] = nil;
            end;
        end;
    end;
    v28 = function(v47)
        local v48 = v47:getTypes();
        v48 = l_Array_0.concat(v48, l_Array_0.filter(l_Array_0.map(l_Array_0.splice(v48, 1), function(v49)
            return (v29(v49));
        end), l_Boolean_0.toJSBoolean));
    end;
    v29 = function(v50)
        if not l_Boolean_0.toJSBoolean(l_isListType_0(v50)) then
            if not l_Boolean_0.toJSBoolean(l_isNonNullType_0(v50)) then
                if l_Boolean_0.toJSBoolean(l_isNamedType_0(v50)) then
                    local v51 = v22:get(v50.name);
                    if l_Boolean_0.toJSBoolean(if not l_Boolean_0.toJSBoolean(v51) then v51 else v50 ~= v51) then
                        return v51;
                    end;
                end;
                return v50;
            else
                local v52 = v29(v50.ofType);
                if v52 ~= nil then
                    return (l_GraphQLNonNull_0.new(v52));
                else
                    return nil;
                end;
            end;
        else
            local v53 = v29(v50.ofType);
            if v53 ~= nil then
                return (l_GraphQLList_0.new(v53));
            else
                return nil;
            end;
        end;
    end;
    local v54 = l_Map_0.new();
    for _, v56 in v22, nil, nil do
        local v57 = table.unpack(v56);
        local v58 = v22:get(v57);
        if not (not (v58 ~= nil) or l_String_0.startsWith(v57, "__")) then
            local l_name_0 = v58.name;
            if not l_String_0.startsWith(l_name_0, "__") then
                if v54:get(l_name_0) ~= nil then
                    l_console_0.warn(("Duplicate schema type name %s found; keeping the existing one found in the schema"):format(l_name_0));
                else
                    v54:set(l_name_0, v58);
                end;
            end;
        end;
    end;
    for _, v61 in v54, nil, nil do
        local v62 = table.unpack(v61);
        v22:set(v62, (v54:get(v62)));
    end;
    for _, v64 in v23, nil, nil do
        v64.args = l_Array_0.filter(v64.args, function(v65)
            v65.type = v29(v65.type);
            return v65.type ~= nil;
        end);
    end;
    for _, v67 in v22, nil, nil do
        local v68 = table.unpack(v67);
        local v69 = v22:get(v68);
        if (not l_String_0.startsWith(v68, "__") and l_Array_0.indexOf(v54:keys(), v68) ~= -1) and v69 ~= nil then
            v24(v69);
        end;
    end;
    for _, v71 in v22, nil, nil do
        local v72 = table.unpack(v71);
        if not l_String_0.startsWith(v72, "__") and l_Array_0.indexOf(v54:keys(), v72) == -1 then
            v22:set(v72, nil);
        end;
    end;
end;
v6.healTypes = v20;
return v6;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Error_0 = v1.Error;
local l_Object_0 = v1.Object;
local v6 = {};
local l_parse_0 = require(l_Parent_0.GraphQL).parse;
local v8 = require(l_Parent_0.LuauRegExp);
v6.asArray = function(v9)
    if not l_Boolean_0.toJSBoolean(l_Array_0.isArray(v9)) then
        if not l_Boolean_0.toJSBoolean(v9) then
            return {};
        else
            return {
                v9
            };
        end;
    else
        return v9;
    end;
end;
local v10 = v8("\\.[a-zA-Z0-9]+$");
v6.isDocumentString = function(v11)
    if typeof(v11) ~= "string" then
        return false;
    elseif not l_Boolean_0.toJSBoolean(v10:test(v11)) then
        local l_status_0, l_result_0 = pcall(function()
            l_parse_0(v11);
            return true;
        end);
        if l_status_0 then
            return l_result_0;
        else
            return false;
        end;
    else
        return false;
    end;
end;
local v14 = v8("[\226\128\152\226\128\156%<=>`]");
v6.isValidPath = function(v15)
    local v16 = false;
    if typeof(v15) == "string" then
        v16 = not l_Boolean_0.toJSBoolean(v14:test(v15));
    end;
    return v16;
end;
v6.compareStrings = function(v17, v18)
    if tostring(v17) < tostring(v18) then
        return -1;
    elseif tostring(v18) < tostring(v17) then
        return 1;
    else
        return 0;
    end;
end;
local function v21(v19)
    local v20 = nil;
    if l_Array_0.indexOf(l_Object_0.keys(v19), "alias") ~= -1 then
        v20 = if typeof(v19.alias) == "table" then v19.alias.value else nil;
    end;
    if v20 == nil and l_Array_0.indexOf(l_Object_0.keys(v19), "name") ~= -1 then
        v20 = if typeof(v19.name) == "table" then v19.name.value else nil;
    end;
    if v20 == nil then
        v20 = v19.kind;
    end;
    return v20;
end;
v6.nodeToString = v21;
v6.compareNodes = function(v22, v23, v24)
    local v25 = v21(v22);
    local v26 = v21(v23);
    if typeof(v24) == "function" then
        return v24(v25, v26);
    elseif tostring(v25) < tostring(v26) then
        return -1;
    elseif tostring(v26) < tostring(v25) then
        return 1;
    else
        return 0;
    end;
end;
v6.isSome = function(v27)
    local v28 = false;
    if v27 ~= nil then
        v28 = v27 ~= l_Object_0.None;
    end;
    return v28;
end;
v6.assertSome = function(v29, v30)
    local v31 = if v30 ~= nil then v30 else "Value should be something";
    if v29 == nil then
        error(l_Error_0.new(v31));
    end;
    return true;
end;
return v6;


local l_Parent_0 = script.Parent.Parent;
local l_Boolean_0 = require(l_Parent_0.LuauPolyfill).Boolean;
local v2 = {};
local v3 = require(l_Parent_0.GraphQL);
local l_doTypesOverlap_0 = v3.doTypesOverlap;
local l_isCompositeType_0 = v3.isCompositeType;
local _ = require(script.Parent.types);
v2.implementsAbstractType = function(v7, v8, v9)
    if not (v9 ~= nil) or v8 == nil then
        return false;
    elseif v8 == v9 then
        return true;
    else
        local l_toJSBoolean_0 = l_Boolean_0.toJSBoolean;
        local v11 = l_isCompositeType_0(v8);
        if not l_toJSBoolean_0(if not l_Boolean_0.toJSBoolean(v11) then v11 else l_isCompositeType_0(v9)) then
            return false;
        else
            return l_doTypesOverlap_0(v7, v8, v9);
        end;
    end;
end;
return v2;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local l_instanceof_0 = v1.instanceof;
local l_Error_0 = v1.Error;
local v7 = {};
local v8 = nil;
local v9 = nil;
local v10 = nil;
local v11 = nil;
local v12 = nil;
local v13 = nil;
local l_GraphQLError_0 = require(l_Parent_0.GraphQL).GraphQLError;
local l_isAggregateError_0 = require(script.Parent.AggregateError).isAggregateError;
v7.inspect = function(v16)
    return v8(v16, {});
end;
v8 = function(v17, v18)
    local v19 = typeof(v17);
    if v19 == "string" then
        return "\"" .. v17 .. "\"";
    elseif v19 == "function" then
        local v20 = debug.info(v17, "n");
        if not l_Boolean_0.toJSBoolean(v20) then
            return "[function]";
        else
            return (("[function %s]"):format(v20));
        end;
    elseif v19 == "table" then
        return v9(v17, v18);
    else
        return (tostring(v17));
    end;
end;
local function v22(v21)
    if not l_instanceof_0(v21, l_GraphQLError_0) then
        return ("%s: %s;\n %s"):format(tostring(v21.name), tostring(v21.message), (tostring(v21.stack)));
    else
        return (tostring(v21));
    end;
end;
v9 = function(v23, v24)
    if v23 == nil then
        return "null";
    elseif not l_instanceof_0(v23, l_Error_0) then
        if not l_Boolean_0.toJSBoolean(l_Array_0.includes(v24, v23)) then
            local v25 = l_Array_0.concat({}, v24, {
                v23
            });
            if not l_Boolean_0.toJSBoolean(v11(v23)) then
                if l_Boolean_0.toJSBoolean(l_Array_0.isArray(v23)) then
                    return v10(v23, v25);
                end;
            else
                local v26 = v23:toJSON();
                if v26 ~= v23 then
                    if typeof(v26) == "string" then
                        return v26;
                    else
                        return (v8(v26, v25));
                    end;
                end;
            end;
            return v12(v23, v25);
        else
            return "[Circular]";
        end;
    elseif not l_isAggregateError_0(v23) then
        return v22(v23);
    else
        return if not l_instanceof_0(v23, l_GraphQLError_0) then ("%s: %s;\n %s"):format(tostring(v23.name), tostring(v23.message), (tostring(v23.stack))) else tostring(v23) .. "\n" .. v10(v23.errors, v24);
    end;
end;
v11 = function(v27)
    return typeof(v27.toJSON) == "function";
end;
v12 = function(v28, v29)
    local v30 = l_Object_0.entries(v28);
    if #v30 == 0 then
        return "{}";
    elseif #v29 > 3 then
        return "[" .. tostring(v13(v28)) .. "]";
    else
        return "{ " .. tostring(l_Array_0.join(l_Array_0.map(v30, function(v31)
            local v32, v33 = table.unpack(v31, 1, 2);
            return tostring(v32) .. ": " .. tostring(v8(v33, v29));
        end), ", ")) .. " }";
    end;
end;
v10 = function(v34, v35)
    if #v34 == 0 then
        return "[]";
    elseif #v35 > 3 then
        return "[Array]";
    else
        local v36 = #v34;
        local v37 = #v34;
        local v38 = {};
        local v39 = 1;
        while v39 <= v36 do
            table.insert(v38, v8(v34[v39], v35));
            v39 = v39 + 1;
        end;
        if v37 == 1 then
            table.insert(v38, "... 1 more item");
        elseif v37 > 1 then
            table.insert(v38, ("... %s more items"):format((tostring(v37))));
        end;
        return "[" .. tostring(l_Array_0.join(v38, ", ")) .. "]";
    end;
end;
v13 = function(_)
    return "Object";
end;
return v7;


local l_Symbol_0 = require(script.Parent.Parent.LuauPolyfill).Symbol;
return {
    isAsyncIterable = function(v1)
        local l_asyncIterator_0 = l_Symbol_0.asyncIterator;
        local v3 = false;
        if typeof(v1) == "table" then
            v3 = false;
            if v1 ~= nil then
                v3 = (l_asyncIterator_0 and v1[l_asyncIterator_0]) and typeof(v1[l_asyncIterator_0]) == "function";
            end;
        end;
        return v3;
    end
};


local l_Parent_0 = script.Parent.Parent;
local l_Boolean_0 = require(l_Parent_0.LuauPolyfill).Boolean;
local v2 = {};
local l_Kind_0 = require(l_Parent_0.GraphQL).Kind;
v2.isDocumentNode = function(v4)
    local v5 = l_Boolean_0.toJSBoolean(v4);
    if v5 then
        v5 = false;
        if typeof(v4) == "table" then
            v5 = l_Boolean_0.toJSBoolean(v4.kind) and v4.kind == l_Kind_0.DOCUMENT;
        end;
    end;
    return v5;
end;
return v2;


local v0 = require(script.Parent.Parent.LuauPolyfill);
local l_Array_0 = v0.Array;
local l_Object_0 = v0.Object;
return {
    isSymbol = function(v3)
        local v4 = false;
        if typeof(v3) == "userdata" then
            v4 = string.sub(tostring(v3), 1, 7) == "Symbol(";
        end;
        return v4;
    end,
    getOwnPropertySymbols = function(v5)
        return l_Array_0.filter(l_Object_0.keys(v5), function(v6)
            local v7 = false;
            if typeof(v6) == "userdata" then
                v7 = string.sub(tostring(v6), 1, 7) == "Symbol(";
            end;
            return v7;
        end);
    end,
    getOwnPropertyNames = function(v8)
        l_Array_0.filter(l_Object_0.keys(v8), function(v9)
            local v10 = false;
            if typeof(v9) == "userdata" then
                v10 = string.sub(tostring(v9), 1, 7) == "Symbol(";
            end;
            return not v10;
        end);
    end,
    create = function(v11)
        if v11 then
            return (setmetatable({}, v11));
        else
            return {};
        end;
    end
};


local l_HttpService_0 = game:GetService("HttpService");
return {
    stringify = function(v1, ...)
        if select("#", ...) > 0 then
            warn("JSON.stringify doesn't currently support more than 1 argument. All additional arguments will be ignored.");
        end;
        return l_HttpService_0:JSONEncode(v1);
    end,
    parse = function(v2, ...)
        if select("#", ...) > 0 then
            warn("JSON.parse doesn't currently support more than 1 argument. All additional arguments will be ignored.");
        end;
        return l_HttpService_0:JSONDecode(v2);
    end
};


local l_Parent_0 = script.Parent.Parent;
local _ = require(l_Parent_0.LuauPolyfill);
local v2 = {};
local _ = require(l_Parent_0.GraphQL);
local _ = require(script.Parent.Interfaces);
return v2;


local l_Parent_0 = script.Parent.Parent;
local l_Boolean_0 = require(l_Parent_0.LuauPolyfill).Boolean;
local v2 = require(l_Parent_0.Promise);
local v3 = nil;
local v4 = nil;
local v20 = {
    mapAsyncIterator = function(v5, v6, v7)
        local v8 = nil;
        local v9 = nil;
        if typeof(v5["return"]) == "function" then
            v8 = v5["return"];
            v9 = function(v10)
                local function v11()
                    return v2.reject(v10);
                end;
                return v8(v5):andThen(v11, v11);
            end;
        end;
        local function v13(v12)
            if not l_Boolean_0.toJSBoolean(v12.done) then
                return (v3(v12.value, v6):andThen(v4, v9));
            else
                return v12;
            end;
        end;
        local v14 = nil;
        if v7 then
            v14 = function(v15)
                return v3(v15, v7):andThen(v4, v9);
            end;
        end;
        return {
            next = function(_)
                return v5:next():andThen(v13, v14);
            end,
            ["return"] = function(_)
                if not l_Boolean_0.toJSBoolean(v8) then
                    return (v2.resolve({
                        value = nil,
                        done = true
                    }));
                else
                    return (v8(v5):andThen(v13, v14));
                end;
            end,
            throw = function(_, v19)
                if typeof(v5.throw) == "function" then
                    return v5.throw(v5, v19):andThen(v13, v14);
                else
                    return v2.reject(v19):catch(v9);
                end;
            end
        };
    end
};
v3 = function(v21, v22)
    return v2.new(function(v23)
        return v23(v22(v21));
    end);
end;
v4 = function(v24)
    return {
        value = v24,
        done = false
    };
end;
return v20;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v5 = {};
local v6 = require(l_Parent_0.GraphQL);
local l_GraphQLObjectType_0 = v6.GraphQLObjectType;
local l_GraphQLSchema_0 = v6.GraphQLSchema;
local l_isInterfaceType_0 = v6.isInterfaceType;
local l_isEnumType_0 = v6.isEnumType;
local l_isObjectType_0 = v6.isObjectType;
local l_isScalarType_0 = v6.isScalarType;
local l_isUnionType_0 = v6.isUnionType;
local l_isInputObjectType_0 = v6.isInputObjectType;
local l_GraphQLInputObjectType_0 = v6.GraphQLInputObjectType;
local l_GraphQLInterfaceType_0 = v6.GraphQLInterfaceType;
local l_isLeafType_0 = v6.isLeafType;
local l_isListType_0 = v6.isListType;
local l_isNonNullType_0 = v6.isNonNullType;
local l_isNamedType_0 = v6.isNamedType;
local l_GraphQLList_0 = v6.GraphQLList;
local l_GraphQLNonNull_0 = v6.GraphQLNonNull;
local l_GraphQLEnumType_0 = v6.GraphQLEnumType;
local l_Kind_0 = v6.Kind;
local l_getObjectTypeFromTypeMap_0 = require(script.Parent.getObjectTypeFromTypeMap).getObjectTypeFromTypeMap;
local l_MapperKind_0 = require(script.Parent.Interfaces).MapperKind;
local l_rewireTypes_0 = require(script.Parent.rewire).rewireTypes;
local v28 = require(script.Parent.transformInputValue);
local l_serializeInputValue_0 = v28.serializeInputValue;
local l_parseInputValue_0 = v28.parseInputValue;
local l_Map_0 = v1.Map;
local l_String_0 = v1.String;
local v33 = nil;
local v34 = nil;
local v35 = nil;
local v36 = nil;
local v37 = nil;
local v38 = nil;
local v39 = nil;
local v40 = nil;
local v41 = nil;
local v42 = nil;
local v43 = nil;
local v44 = nil;
local v45 = nil;
v5.mapSchema = function(v46, v47)
    local v48 = if v47 ~= nil then v47 else {};
    local v51 = v34(v35(v33(v36(v37(v33(v36(v46:getTypeMap(), v46, l_serializeInputValue_0), v46, v48, function(v49)
        return l_isLeafType_0(v49);
    end), v46, v48), v46, l_parseInputValue_0), v46, v48, function(v50)
        return not l_Boolean_0.toJSBoolean(l_isLeafType_0(v50));
    end), v46, v48), v46, v48);
    local v52 = l_rewireTypes_0(v51, (v40(v46:getDirectives(), v46, v48)));
    local l_typeMap_0 = v52.typeMap;
    return l_GraphQLSchema_0.new(l_Object_0.assign({}, v46:toConfig(), {
        query = l_getObjectTypeFromTypeMap_0(l_typeMap_0, l_getObjectTypeFromTypeMap_0(v51, v46:getQueryType())) or l_Object_0.None,
        mutation = l_getObjectTypeFromTypeMap_0(l_typeMap_0, l_getObjectTypeFromTypeMap_0(v51, v46:getMutationType())) or l_Object_0.None,
        subscription = l_getObjectTypeFromTypeMap_0(l_typeMap_0, l_getObjectTypeFromTypeMap_0(v51, v46:getSubscriptionType())) or l_Object_0.None,
        types = l_typeMap_0:values() or l_Object_0.None,
        directives = v52.directives or l_Object_0.None
    }));
end;
v33 = function(v54, v55, v56, v57)
    local v58 = if v57 ~= nil then v57 else function()
        return true;
    end;
    local v59 = l_Map_0.new();
    for _, v61 in v54, nil, nil do
        local v62 = table.unpack(v61);
        if not l_String_0.startsWith(v62, "__") then
            local v63 = v54:get(v62);
            if (v63 ~= nil and v63 ~= l_Object_0.None) and v58(v63) then
                local v64 = v42(v55, v56, v62);
                if not (v64 ~= nil) or v64 == l_Object_0.None then
                    v59:set(v62, v63);
                else
                    local v65 = v64(v63, v55);
                    if v65 == nil then
                        v59:set(v62, v63);
                    else
                        v59:set(v62, v65);
                    end;
                end;
            else
                v59:set(v62, v63);
            end;
        end;
    end;
    return v59;
end;
v37 = function(v66, v67, v68)
    local v69 = v38(v68);
    if l_Boolean_0.toJSBoolean(v69) then
        return v33(v66, v67, {
            [tostring(l_MapperKind_0.ENUM_TYPE)] = function(v70)
                local v71 = v70:toConfig();
                local l_values_0 = v71.values;
                local v73 = l_Map_0.new();
                for _, v75 in l_values_0, nil, nil do
                    local v76 = table.unpack(v75);
                    local v77 = l_values_0:get(v76);
                    local v78 = v69(v77, v70.name, v67, v76);
                    if v78 == nil then
                        v73:set(v76, v77);
                    elseif not l_Boolean_0.toJSBoolean(l_Array_0.isArray(v78)) then
                        if v78 ~= l_Object_0.None then
                            v73:set(v76, v78);
                        end;
                    else
                        local v79, v80 = table.unpack(v78, 1, 2);
                        v73:set(v79, if v80 == nil then v77 else v80);
                    end;
                end;
                return (v45(l_GraphQLEnumType_0.new(l_Object_0.assign({}, v71, {
                    values = v73
                }))));
            end
        }, function(v81)
            return l_isEnumType_0(v81);
        end);
    else
        return v66;
    end;
end;
v36 = function(v82, v83, v84)
    local v87 = v34(v82, v83, {
        [l_MapperKind_0.ARGUMENT] = function(v85)
            if v85.defaultValue == nil then
                return v85;
            else
                local v86 = v44(v82, v85.type);
                if v86 ~= nil then
                    return l_Object_0.assign({}, v85, {
                        defaultValue = v84(v86, v85.defaultValue)
                    });
                else
                    return nil;
                end;
            end;
        end
    });
    return v35(v87, v83, {
        [l_MapperKind_0.INPUT_OBJECT_FIELD] = function(v88)
            if v88.defaultValue == nil then
                return v88;
            else
                local v89 = v44(v87, v88.type);
                if v89 ~= nil then
                    return l_Object_0.assign({}, v88, {
                        defaultValue = v84(v89, v88.defaultValue)
                    });
                else
                    return nil;
                end;
            end;
        end
    });
end;
v44 = function(v90, v91)
    if not l_Boolean_0.toJSBoolean(l_isListType_0(v91)) then
        if not l_Boolean_0.toJSBoolean(l_isNonNullType_0(v91)) then
            if not l_Boolean_0.toJSBoolean(l_isNamedType_0(v91)) then
                return nil;
            else
                local v92 = v90:get(v91.name);
                if v92 ~= nil then
                    return v92;
                else
                    return nil;
                end;
            end;
        else
            local v93 = v44(v90, v91.ofType);
            if v93 ~= nil then
                return (l_GraphQLNonNull_0.new(v93));
            else
                return nil;
            end;
        end;
    else
        local v94 = v44(v90, v91.ofType);
        if v94 ~= nil then
            return (l_GraphQLList_0.new(v94));
        else
            return nil;
        end;
    end;
end;
v35 = function(v95, v96, v97)
    local v98 = l_Map_0.new();
    for _, v100 in v95, nil, nil do
        local v101 = table.unpack(v100);
        if not l_String_0.startsWith(v101, "__") then
            local v102 = v95:get(v101);
            if (l_Boolean_0.toJSBoolean(l_isObjectType_0(v102)) or l_Boolean_0.toJSBoolean(l_isInterfaceType_0(v102))) or l_Boolean_0.toJSBoolean(l_isInputObjectType_0(v102)) then
                local v103 = v41(v96, v97, v101);
                if not (v103 ~= nil) or v103 == l_Object_0.None then
                    v98:set(v101, v102);
                else
                    local v104 = v102:toConfig();
                    local l_fields_0 = v104.fields;
                    local v106 = l_Map_0.new();
                    for _, v108 in l_fields_0, nil, nil do
                        local v109 = table.unpack(v108);
                        local v110 = l_fields_0:get(v109);
                        local v111 = v103(v110, v109, v101, v96);
                        if v111 == nil then
                            v106:set(v109, v110);
                        elseif not l_Boolean_0.toJSBoolean(l_Array_0.isArray(v111)) then
                            if v111 ~= l_Object_0.None then
                                v106:set(v109, v111);
                            end;
                        else
                            local v112, v113 = table.unpack(v111, 1, 2);
                            if v113.astNode ~= nil and v113.astNode ~= l_Object_0.None then
                                v113.astNode = l_Object_0.assign({}, v113.astNode, {
                                    name = l_Object_0.assign({}, v113.astNode.name, {
                                        value = v112
                                    })
                                });
                            end;
                            v106:set(v112, if v113 == nil then v110 else v113);
                        end;
                    end;
                    if not l_Boolean_0.toJSBoolean(l_isObjectType_0(v102)) then
                        if not l_Boolean_0.toJSBoolean(l_isInterfaceType_0(v102)) then
                            v98:set(v101, (v45(l_GraphQLInputObjectType_0.new(l_Object_0.assign({}, v104, {
                                fields = v106
                            })))));
                        else
                            v98:set(v101, (v45(l_GraphQLInterfaceType_0.new(l_Object_0.assign({}, v104, {
                                fields = v106
                            })))));
                        end;
                    else
                        v98:set(v101, (v45(l_GraphQLObjectType_0.new(l_Object_0.assign({}, v104, {
                            fields = v106
                        })))));
                    end;
                end;
            else
                v98:set(v101, v102);
            end;
        end;
    end;
    return v98;
end;
v34 = function(v114, v115, v116)
    local v117 = l_Map_0.new();
    for _, v119 in v114, nil, nil do
        local v120 = table.unpack(v119);
        if not l_String_0.startsWith(v120, "__") then
            local v121 = v114:get(v120);
            if l_Boolean_0.toJSBoolean(l_isObjectType_0(v121)) or l_Boolean_0.toJSBoolean(l_isInterfaceType_0(v121)) then
                local v122 = v43(v116);
                if not (v122 ~= nil) or v122 == l_Object_0.None then
                    v117:set(v120, v121);
                else
                    local v123 = v121:toConfig();
                    local l_fields_1 = v123.fields;
                    local v125 = l_Map_0.new();
                    for _, v127 in l_fields_1, nil, nil do
                        local v128 = table.unpack(v127);
                        local v129 = l_fields_1:get(v128);
                        local l_args_0 = v129.args;
                        if not (l_args_0 ~= nil) or l_args_0 == l_Object_0.None then
                            v125:set(v128, v129);
                        else
                            local v131 = l_args_0:keys();
                            if #v131 <= 0 then
                                v125:set(v128, v129);
                            else
                                local v132 = l_Map_0.new();
                                for _, v134 in v131, nil, nil do
                                    local v135 = l_args_0:get(v134);
                                    local v136 = v122(v135, v128, v120, v115);
                                    if v136 == nil then
                                        v132:set(v134, v135);
                                    elseif not l_Boolean_0.toJSBoolean(l_Array_0.isArray(v136)) then
                                        if v136 ~= l_Object_0.None then
                                            v132:set(v134, v136);
                                        end;
                                    else
                                        local v137, v138 = table.unpack(v136, 1, 2);
                                        v132:set(v137, v138);
                                    end;
                                end;
                                v125:set(v128, l_Object_0.assign({}, v129, {
                                    args = v132
                                }));
                            end;
                        end;
                    end;
                    if not l_Boolean_0.toJSBoolean(l_isObjectType_0(v121)) then
                        if not l_Boolean_0.toJSBoolean(l_isInterfaceType_0(v121)) then
                            v117:set(v120, l_GraphQLInputObjectType_0.new(l_Object_0.assign({}, v123, {
                                fields = v125
                            })));
                        else
                            v117:set(v120, l_GraphQLInterfaceType_0.new(l_Object_0.assign({}, v123, {
                                fields = v125
                            })));
                        end;
                    else
                        v117:set(v120, l_GraphQLObjectType_0.new(l_Object_0.assign({}, v123, {
                            fields = v125
                        })));
                    end;
                end;
            else
                v117:set(v120, v121);
            end;
        end;
    end;
    return v117;
end;
v40 = function(v139, v140, v141)
    local v142 = v39(v141);
    if not (v142 ~= nil) or v142 == l_Object_0.None then
        return l_Array_0.slice(v139);
    else
        local v143 = {};
        for _, v145 in v139, nil, nil do
            local v146 = v142(v145, v140);
            if v146 == nil then
                table.insert(v143, v145);
            elseif v146 ~= l_Object_0.None then
                table.insert(v143, v146);
            end;
        end;
        return v143;
    end;
end;
local function v151(v147, v148)
    local v149 = v147:getType(v148);
    local v150 = {
        l_MapperKind_0.TYPE
    };
    if not l_Boolean_0.toJSBoolean(l_isObjectType_0(v149)) then
        if not l_Boolean_0.toJSBoolean(l_isInputObjectType_0(v149)) then
            if not l_Boolean_0.toJSBoolean(l_isInterfaceType_0(v149)) then
                if not l_Boolean_0.toJSBoolean(l_isUnionType_0(v149)) then
                    if not l_Boolean_0.toJSBoolean(l_isEnumType_0(v149)) then
                        if l_Boolean_0.toJSBoolean(l_isScalarType_0(v149)) then
                            table.insert(v150, l_MapperKind_0.SCALAR_TYPE);
                        end;
                    else
                        table.insert(v150, l_MapperKind_0.ENUM_TYPE);
                        return v150;
                    end;
                else
                    return (l_Array_0.concat(v150, {
                        l_MapperKind_0.COMPOSITE_TYPE,
                        l_MapperKind_0.ABSTRACT_TYPE,
                        l_MapperKind_0.UNION_TYPE
                    }));
                end;
            else
                return (l_Array_0.concat(v150, {
                    l_MapperKind_0.COMPOSITE_TYPE,
                    l_MapperKind_0.ABSTRACT_TYPE,
                    l_MapperKind_0.INTERFACE_TYPE
                }));
            end;
        else
            table.insert(v150, l_MapperKind_0.INPUT_OBJECT_TYPE);
            return v150;
        end;
    else
        v150 = l_Array_0.concat(v150, {
            l_MapperKind_0.COMPOSITE_TYPE,
            l_MapperKind_0.OBJECT_TYPE
        });
        if v148 == if typeof(v147:getQueryType()) == "table" then v147:getQueryType().name else nil then
            return (l_Array_0.concat(v150, {
                l_MapperKind_0.ROOT_OBJECT,
                l_MapperKind_0.QUERY
            }));
        elseif v148 == if typeof(v147:getMutationType()) == "table" then v147:getMutationType().name else nil then
            return (l_Array_0.concat(v150, {
                l_MapperKind_0.ROOT_OBJECT,
                l_MapperKind_0.MUTATION
            }));
        elseif v148 == if typeof(v147:getSubscriptionType()) == "table" then v147:getSubscriptionType().name else nil then
            return (l_Array_0.concat(v150, {
                l_MapperKind_0.ROOT_OBJECT,
                l_MapperKind_0.SUBSCRIPTION
            }));
        end;
    end;
    return v150;
end;
v42 = function(v152, v153, v154)
    local v155 = v151(v152, v154);
    local v156 = nil;
    local v157 = l_Array_0.concat({}, v155);
    while not l_Boolean_0.toJSBoolean(v156) and #v157 > 0 do
        v156 = v153[tostring((table.remove(v157)))];
    end;
    if v156 ~= nil then
        return v156;
    else
        return nil;
    end;
end;
local function v162(v158, v159)
    local v160 = v158:getType(v159);
    local v161 = {
        l_MapperKind_0.FIELD
    };
    if not l_Boolean_0.toJSBoolean(l_isObjectType_0(v160)) then
        if not l_Boolean_0.toJSBoolean(l_isInterfaceType_0(v160)) then
            if l_Boolean_0.toJSBoolean(l_isInputObjectType_0(v160)) then
                table.insert(v161, l_MapperKind_0.INPUT_OBJECT_FIELD);
            end;
        else
            return (l_Array_0.concat(v161, {
                l_MapperKind_0.COMPOSITE_FIELD,
                l_MapperKind_0.INTERFACE_FIELD
            }));
        end;
    else
        v161 = l_Array_0.concat(v161, {
            l_MapperKind_0.COMPOSITE_FIELD,
            l_MapperKind_0.OBJECT_FIELD
        });
        if v159 == if typeof(v158:getQueryType()) == "table" then v158:getQueryType().name else nil then
            return (l_Array_0.concat(v161, {
                l_MapperKind_0.ROOT_FIELD,
                l_MapperKind_0.QUERY_ROOT_FIELD
            }));
        elseif v159 == if typeof(v158:getMutationType()) == "table" then v158:getMutationType().name else nil then
            return (l_Array_0.concat(v161, {
                l_MapperKind_0.ROOT_FIELD,
                l_MapperKind_0.MUTATION_ROOT_FIELD
            }));
        elseif v159 == if typeof(v158:getSubscriptionType()) == "table" then v158:getSubscriptionType().name else nil then
            return (l_Array_0.concat(v161, {
                l_MapperKind_0.ROOT_FIELD,
                l_MapperKind_0.SUBSCRIPTION_ROOT_FIELD
            }));
        end;
    end;
    return v161;
end;
v41 = function(v163, v164, v165)
    local v166 = v162(v163, v165);
    local v167 = nil;
    local v168 = l_Array_0.concat({}, table.unpack(v166));
    while not l_Boolean_0.toJSBoolean(v167) and #v168 > 0 do
        v167 = v164[tostring((table.remove(v168)))];
    end;
    if v167 ~= nil then
        return v167;
    else
        return nil;
    end;
end;
v43 = function(v169)
    local v170 = v169[tostring(l_MapperKind_0.ARGUMENT)];
    if v170 ~= nil then
        return v170;
    else
        return nil;
    end;
end;
v39 = function(v171)
    local v172 = v171[tostring(l_MapperKind_0.DIRECTIVE)];
    if v172 ~= nil then
        return v172;
    else
        return nil;
    end;
end;
v38 = function(v173)
    local v174 = v173[tostring(l_MapperKind_0.ENUM_VALUE)];
    if v174 ~= nil then
        return v174;
    else
        return nil;
    end;
end;
v45 = function(v175)
    if not l_Boolean_0.toJSBoolean(l_isObjectType_0(v175)) then
        if not l_Boolean_0.toJSBoolean(l_isInterfaceType_0(v175)) then
            if not l_Boolean_0.toJSBoolean(l_isInputObjectType_0(v175)) then
                if not l_Boolean_0.toJSBoolean(l_isEnumType_0(v175)) then
                    return v175;
                else
                    local v176 = v175:toConfig();
                    if v176.astNode ~= nil then
                        local v177 = {};
                        for _, v179 in v176.values, nil, nil do
                            local v180 = v176.values:get((table.unpack(v179)));
                            if v180.astNode ~= nil then
                                table.insert(v177, v180.astNode);
                            end;
                        end;
                        v176.astNode = l_Object_0.assign({}, v176.astNode, {
                            values = v177
                        });
                    end;
                    if v176.extensionASTNodes ~= nil then
                        v176.extensionASTNodes = l_Array_0.map(v176.extensionASTNodes, function(v181)
                            return l_Object_0.assign({}, v181, {
                                values = l_Object_0.None
                            });
                        end);
                    end;
                    return l_GraphQLEnumType_0.new(v176);
                end;
            else
                local v182 = v175:toConfig();
                if v182.astNode ~= nil then
                    local v183 = {};
                    for _, v185 in v182.fields, nil, nil do
                        local v186 = v182.fields:get((table.unpack(v185)));
                        if v186.astNode ~= nil then
                            table.insert(v183, v186.astNode);
                        end;
                    end;
                    v182.astNode = l_Object_0.assign({}, v182.astNode, {
                        kind = l_Kind_0.INPUT_OBJECT_TYPE_DEFINITION,
                        fields = v183
                    });
                end;
                if v182.extensionASTNodes ~= nil then
                    v182.extensionASTNodes = l_Array_0.map(v182.extensionASTNodes, function(v187)
                        return l_Object_0.assign({}, v187, {
                            kind = l_Kind_0.INPUT_OBJECT_TYPE_EXTENSION,
                            fields = l_Object_0.None
                        });
                    end);
                end;
                return l_GraphQLInputObjectType_0.new(v182);
            end;
        else
            local v188 = v175:toConfig();
            if v188.astNode ~= nil then
                local v189 = {};
                for _, v191 in v188.fields, nil, nil do
                    local v192 = v188.fields:get((table.unpack(v191)));
                    if v192.astNode ~= nil then
                        table.insert(v189, v192.astNode);
                    end;
                end;
                v188.astNode = l_Object_0.assign({}, v188.astNode, {
                    kind = l_Kind_0.INTERFACE_TYPE_DEFINITION,
                    fields = v189
                });
            end;
            if v188.extensionASTNodes ~= nil then
                v188.extensionASTNodes = l_Array_0.map(v188.extensionASTNodes, function(v193)
                    return l_Object_0.assign({}, v193, {
                        kind = l_Kind_0.INTERFACE_TYPE_EXTENSION,
                        fields = l_Object_0.None
                    });
                end);
            end;
            return l_GraphQLInterfaceType_0.new(v188);
        end;
    else
        local v194 = v175:toConfig();
        if v194.astNode ~= nil then
            local v195 = {};
            for _, v197 in v194.fields, nil, nil do
                local v198 = v194.fields:get((table.unpack(v197)));
                if v198.astNode ~= nil then
                    table.insert(v195, v198.astNode);
                end;
            end;
            v194.astNode = l_Object_0.assign({}, v194.astNode, {
                kind = l_Kind_0.OBJECT_TYPE_DEFINITION,
                fields = v195
            });
        end;
        if v194.extensionASTNodes ~= nil then
            v194.extensionASTNodes = l_Array_0.map(v194.extensionASTNodes, function(v199)
                return l_Object_0.assign({}, v199, {
                    kind = l_Kind_0.OBJECT_TYPE_EXTENSION,
                    fields = l_Object_0.None
                });
            end);
        end;
        return l_GraphQLObjectType_0.new(v194);
    end;
end;
v5.correctASTNodes = v45;
return v5;


local v0 = require(script.Parent.Parent.LuauPolyfill);
local l_Boolean_0 = v0.Boolean;
local l_WeakMap_0 = v0.WeakMap;
local v68 = {
    memoize1 = function(v3)
        local v4 = l_WeakMap_0.new();
        return function(v5)
            local v6 = v4:get(v5);
            if v6 == nil then
                local v7 = v3(v5);
                v4:set(v5, v7);
                return v7;
            else
                return v6;
            end;
        end;
    end,
    memoize2 = function(v8)
        local v9 = l_WeakMap_0.new();
        return function(v10, v11)
            local v12 = v9:get(v10);
            if l_Boolean_0.toJSBoolean(v12) then
                local v13 = v12:get(v11);
                if v13 == nil then
                    local v14 = v8(v10, v11);
                    v12:set(v11, v14);
                    return v14;
                else
                    return v13;
                end;
            else
                v12 = l_WeakMap_0.new();
                v9:set(v10, v12);
                local v15 = v8(v10, v11);
                v12:set(v11, v15);
                return v15;
            end;
        end;
    end,
    memoize3 = function(v16)
        local v17 = l_WeakMap_0.new();
        return function(v18, v19, v20)
            local v21 = v17:get(v18);
            if l_Boolean_0.toJSBoolean(v21) then
                local v22 = v21:get(v19);
                if l_Boolean_0.toJSBoolean(v22) then
                    local v23 = v22:get(v20);
                    if v23 == nil then
                        local v24 = v16(v18, v19, v20);
                        v22:set(v20, v24);
                        return v24;
                    else
                        return v23;
                    end;
                else
                    v22 = l_WeakMap_0.new();
                    v21:set(v19, v22);
                    local v25 = v16(v18, v19, v20);
                    v22:set(v20, v25);
                    return v25;
                end;
            else
                v21 = l_WeakMap_0.new();
                v17:set(v18, v21);
                local v26 = l_WeakMap_0.new();
                v21:set(v19, v26);
                local v27 = v16(v18, v19, v20);
                v26:set(v20, v27);
                return v27;
            end;
        end;
    end,
    memoize4 = function(v28)
        local v29 = l_WeakMap_0.new();
        return function(v30, v31, v32, v33)
            local v34 = v29:get(v30);
            if l_Boolean_0.toJSBoolean(v34) then
                local v35 = v34:get(v31);
                if l_Boolean_0.toJSBoolean(v35) then
                    local v36 = v35:get(v32);
                    if l_Boolean_0.toJSBoolean(v36) then
                        local v37 = v36:get(v33);
                        if v37 == nil then
                            local v38 = v28(v30, v31, v32, v33);
                            v36:set(v33, v38);
                            return v38;
                        else
                            return v37;
                        end;
                    else
                        v36 = l_WeakMap_0.new();
                        v35:set(v32, v36);
                        local v39 = v28(v30, v31, v32, v33);
                        v36:set(v33, v39);
                        return v39;
                    end;
                else
                    v35 = l_WeakMap_0.new();
                    v34:set(v31, v35);
                    local v40 = l_WeakMap_0.new();
                    v35:set(v32, v40);
                    local v41 = v28(v30, v31, v32, v33);
                    v40:set(v33, v41);
                    return v41;
                end;
            else
                v34 = l_WeakMap_0.new();
                v29:set(v30, v34);
                local v42 = l_WeakMap_0.new();
                v34:set(v31, v42);
                local v43 = l_WeakMap_0.new();
                v42:set(v32, v43);
                local v44 = v28(v30, v31, v32, v33);
                v43:set(v33, v44);
                return v44;
            end;
        end;
    end,
    memoize5 = function(v45)
        local v46 = l_WeakMap_0.new();
        return function(v47, v48, v49, v50, v51)
            local v52 = v46:get(v47);
            if l_Boolean_0.toJSBoolean(v52) then
                local v53 = v52:get(v48);
                if l_Boolean_0.toJSBoolean(v53) then
                    local v54 = v53:get(v49);
                    if l_Boolean_0.toJSBoolean(v54) then
                        local v55 = v54:get(v50);
                        if l_Boolean_0.toJSBoolean(v55) then
                            local v56 = v55:get(v51);
                            if v56 == nil then
                                local v57 = v45(v47, v48, v49, v50, v51);
                                v55:set(v51, v57);
                                return v57;
                            else
                                return v56;
                            end;
                        else
                            v55 = l_WeakMap_0.new();
                            v54:set(v50, v55);
                            local v58 = v45(v47, v48, v49, v50, v51);
                            v55:set(v51, v58);
                            return v58;
                        end;
                    else
                        v54 = l_WeakMap_0.new();
                        v53:set(v49, v54);
                        local v59 = l_WeakMap_0.new();
                        v54:set(v50, v59);
                        local v60 = v45(v47, v48, v49, v50, v51);
                        v59:set(v51, v60);
                        return v60;
                    end;
                else
                    v53 = l_WeakMap_0.new();
                    v52:set(v48, v53);
                    local v61 = l_WeakMap_0.new();
                    v53:set(v49, v61);
                    local v62 = l_WeakMap_0.new();
                    v61:set(v50, v62);
                    local v63 = v45(v47, v48, v49, v50, v51);
                    v62:set(v51, v63);
                    return v63;
                end;
            else
                v52 = l_WeakMap_0.new();
                v46:set(v47, v52);
                local v64 = l_WeakMap_0.new();
                v52:set(v48, v64);
                local v65 = l_WeakMap_0.new();
                v64:set(v49, v65);
                local v66 = l_WeakMap_0.new();
                v65:set(v50, v66);
                local v67 = v45(v47, v48, v49, v50, v51);
                v66:set(v51, v67);
                return v67;
            end;
        end;
    end
};
local v69 = l_WeakMap_0.new();
v68.memoize2of4 = function(v70)
    return function(v71, v72, v73, v74)
        local v75 = v69:get(v71);
        if l_Boolean_0.toJSBoolean(v75) then
            local v76 = v75:get(v72);
            if v76 == nil then
                local v77 = v70(v71, v72, v73, v74);
                v75:set(v72, v77);
                return v77;
            else
                return v76;
            end;
        else
            v75 = l_WeakMap_0.new();
            v69:set(v71, v75);
            local v78 = v70(v71, v72, v73, v74);
            v75:set(v72, v78);
            return v78;
        end;
    end;
end;
return v68;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v5 = {};
local l_isSymbol_0 = require(l_Parent_0.Utils.jsHelpers).isSymbol;
local v7 = nil;
local function v8(v9, v10)
    local v11 = if v10 ~= nil then v10 else false;
    local v12 = if not l_Boolean_0.toJSBoolean(v9[1]) then {} else v9[1];
    local v13 = {};
    for _, v15 in v9, nil, nil do
        local l_toJSBoolean_0 = l_Boolean_0.toJSBoolean;
        local v17 = v7(v12);
        if l_toJSBoolean_0(if not l_Boolean_0.toJSBoolean(v17) then v17 else v7(v15)) then
            for v18 in v15, nil, nil do
                if not l_isSymbol_0(v18) then
                    if not l_Boolean_0.toJSBoolean(v7(v15[tostring(v18)])) then
                        l_Object_0.assign(v13, {
                            [tostring(v18)] = v15[tostring(v18)]
                        });
                    elseif l_Array_0.indexOf(l_Object_0.keys(v13), (tostring(v18))) == -1 then
                        l_Object_0.assign(v13, {
                            [tostring(v18)] = v15[tostring(v18)]
                        });
                    else
                        v13[v18] = v8({
                            v13[v18],
                            v15[v18]
                        }, v11);
                    end;
                end;
            end;
        end;
    end;
    return v13;
end;
v5.mergeDeep = v8;
v7 = function(v19)
    local v20 = l_Boolean_0.toJSBoolean(v19);
    if v20 then
        v20 = false;
        if typeof(v19) == "table" then
            v20 = not (l_Array_0.isArray(v19) and #v19 > 0);
        end;
    end;
    return v20;
end;
return v5;


local l_Boolean_0 = require((nil).LuauPolyfill).Boolean;
return {
    observableToAsyncIterable = function(v1)
        local v2 = {};
        local v3 = {};
        local v4 = true;
        local function v6(v5)
            if v2.length ~= 0 then
                table.remove(v2, 1)({
                    value = v5,
                    done = false
                });
                return ;
            else
                table.insert(v3, {
                    value = v5,
                    done = false
                });
                return ;
            end;
        end;
        local function v8(v7)
            if v2.length ~= 0 then
                table.remove(v2, 1)({
                    value = {
                        errors = {
                            v7
                        }
                    },
                    done = false
                });
                return ;
            else
                table.insert(v3, {
                    value = {
                        errors = {
                            v7
                        }
                    },
                    done = false
                });
                return ;
            end;
        end;
        local function v9()
            if v2.length ~= 0 then
                table.remove(v2, 1)({
                    done = true
                });
                return ;
            else
                table.insert(v3, {
                    done = true
                });
                return ;
            end;
        end;
        local function _()
            return Promise.new(function(v10)
                if v3.length ~= 0 then
                    v10((table.remove(v3, 1)));
                    return ;
                else
                    table.insert(v2, v10);
                    return ;
                end;
            end);
        end;
        local v17 = v1:subscribe({
            next = function(_, v13)
                v6(v13);
            end,
            error = function(_, v15)
                v8(v15);
            end,
            complete = function(_)
                v9();
            end
        });
        local function v20()
            if l_Boolean_0.toJSBoolean(v4) then
                v4 = false;
                v17:unsubscribe();
                for _, v19 in v2, nil, nil do
                    v19({
                        value = nil,
                        done = true
                    });
                end;
                v2.length = 0;
                v3.length = 0;
            end;
        end;
        return {
            next = function(v21)
                if not l_Boolean_0.toJSBoolean(v4) then
                    return (v21["return"]());
                else
                    return (Promise.new(function(v22)
                        if v3.length ~= 0 then
                            v22((table.remove(v3, 1)));
                            return ;
                        else
                            table.insert(v2, v22);
                            return ;
                        end;
                    end));
                end;
            end,
            ["return"] = function(_)
                v20();
                return Promise.resolve({
                    value = nil,
                    done = true
                });
            end,
            throw = function(_, v25)
                v20();
                return Promise.reject(v25);
            end,
            [tostring(Symbol.asyncIterator)] = function(v26)
                return v26;
            end
        };
    end
};


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Boolean_0 = v1.Boolean;
local l_Error_0 = v1.Error;
local v4 = {};
local l_buildClientSchema_0 = require(l_Parent_0.GraphQL).buildClientSchema;
local _ = require(script.Parent.loaders);
local _ = require(script.Parent.types);
local l_String_0 = v1.String;
local v9 = require(script.Parent.json);
local function _(v10)
    v10 = tostring(v10);
    if l_String_0.charCodeAt(v10, 1) == 65279 then
        v10 = l_String_0.slice(v10, 2);
    end;
    return v10;
end;
local function _(v12)
    local l_parse_0 = v9.parse;
    local v14 = tostring(v12);
    if l_String_0.charCodeAt(v14, 1) == 65279 then
        v14 = l_String_0.slice(v14, 2);
    end;
    return l_parse_0(v14);
end;
v4.parseGraphQLJSON = function(v16, v17, v18)
    local l_parse_1 = v9.parse;
    local v20 = tostring(v17);
    if l_String_0.charCodeAt(v20, 1) == 65279 then
        v20 = l_String_0.slice(v20, 2);
    end;
    l_parse_1 = l_parse_1(v20);
    if l_Boolean_0.toJSBoolean(l_parse_1.data) then
        l_parse_1 = l_parse_1.data;
    end;
    if l_parse_1.kind == "Document" then
        return {
            location = v16,
            document = l_parse_1
        };
    elseif not l_Boolean_0.toJSBoolean(l_parse_1.__schema) then
        if typeof(l_parse_1) == "string" then
            return {
                location = v16,
                rawSDL = l_parse_1
            };
        else
            error(l_Error_0.new("Not valid JSON content"));
            return ;
        end;
    else
        return {
            location = v16,
            schema = l_buildClientSchema_0(l_parse_1, v18)
        };
    end;
end;
return v4;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v4 = {};
local v5 = require(l_Parent_0.GraphQL);
local l_Kind_0 = v5.Kind;
local l_parse_0 = v5.parse;
local l_Source_0 = v5.Source;
local l_visit_0 = v5.visit;
local l_isTypeSystemDefinitionNode_0 = v5.isTypeSystemDefinitionNode;
local l_print_0 = v5.print;
local v12 = require(script.Parent.comments);
local l_dedentBlockStringValue_0 = v12.dedentBlockStringValue;
local l_getLeadingCommentBlock_0 = v12.getLeadingCommentBlock;
local _ = require(script.Parent.Interfaces);
local l_String_0 = v1.String;
local v17 = nil;
local v18 = nil;
local function _(v19)
    return l_String_0.trim((string.gsub(v19, "(#[^*]*)", "")));
end;
v4.parseGraphQLSDL = function(v21, v22, v23)
    local v24 = if v23 ~= nil then v23 else {};
    local v25 = nil;
    local l_status_0, l_result_0 = pcall(function()
        if not l_Boolean_0.toJSBoolean(v24.commentDescriptions) or not l_String_0.includes(v22, "#") then
            v25 = l_parse_0(l_Source_0.new(v22, v21), v24);
        else
            v25 = v17(v22, v24);
            if l_Boolean_0.toJSBoolean(v24.noLocation) then
                v25 = l_parse_0(l_print_0(v25), v24);
                return ;
            end;
        end;
    end);
    if not l_status_0 then
        if l_String_0.includes(l_result_0.message, "EOF") and l_String_0.trim((string.gsub(v22, "(#[^*]*)", ""))) == "" then
            v25 = {
                kind = l_Kind_0.DOCUMENT,
                definitions = {}
            };
        else
            error(l_result_0);
        end;
    end;
    return {
        location = v21,
        document = v25
    };
end;
v17 = function(v28, v29)
    return (l_visit_0(l_parse_0(v28, l_Object_0.assign({}, if v29 ~= nil then v29 else {}, {
        noLocation = false
    })), {
        leave = function(_, v31)
            if l_Boolean_0.toJSBoolean(v18(v31)) then
                local v32 = l_getLeadingCommentBlock_0(v31);
                if v32 ~= nil then
                    local v33 = l_dedentBlockStringValue_0("\n" .. tostring(v32));
                    local v34 = l_String_0.includes(v33, "\n");
                    if l_Boolean_0.toJSBoolean(v31.description) then
                        return l_Object_0.assign({}, v31, {
                            description = l_Object_0.assign({}, v31.description, {
                                value = v31.description.value .. "\n" .. v33,
                                block = true
                            })
                        });
                    else
                        return l_Object_0.assign({}, v31, {
                            description = {
                                kind = l_Kind_0.STRING,
                                value = v33,
                                block = v34
                            }
                        });
                    end;
                end;
            end;
        end
    }));
end;
v4.transformCommentsToDescriptions = v17;
v18 = function(v35)
    local v36 = l_isTypeSystemDefinitionNode_0(v35);
    if not v36 then
        v36 = true;
        if v35.kind ~= l_Kind_0.FIELD_DEFINITION then
            v36 = true;
            if v35.kind ~= l_Kind_0.INPUT_VALUE_DEFINITION then
                v36 = v35.kind == l_Kind_0.ENUM_VALUE_DEFINITION;
            end;
        end;
    end;
    return v36;
end;
v4.isDescribable = v18;
return v4;