{"version":3,"sources":["../src/dataProvider/index.ts","../src/utils/generateUseListSubscription.ts","../src/utils/generateFilters.ts","../src/utils/generateSorting.ts","../src/utils/graphql.ts","../src/utils/generateUseManySubscription.ts","../src/utils/generateUseOneSubscription.ts","../src/utils/camelizeKeys.ts","../src/utils/upperCaseValues.ts","../src/types/index.ts","../src/liveProvider/index.ts","../src/index.ts"],"sourcesContent":["import type { BaseRecord, DataProvider } from \"@refinedev/core\";\nimport * as gql from \"gql-query-builder\";\nimport { GraphQLClient } from \"graphql-request\";\nimport {\n  camelizeKeys,\n  generateFilters,\n  generateSorting,\n  getOperationFields,\n  isMutation,\n  mergeHasuraFilters,\n  metaFieldsToGqlFields,\n  upperCaseValues,\n} from \"../utils\";\nimport camelcase from \"camelcase\";\nimport gqlTag from \"graphql-tag\";\nimport { getIdType, type HasuraProviderOptions } from \"../types\";\n\nexport type HasuraDataProviderOptions = HasuraProviderOptions & {};\n\nconst dataProvider = (\n  client: GraphQLClient,\n  options?: HasuraDataProviderOptions,\n): Required<DataProvider> => {\n  const { idType, namingConvention = \"hasura-default\" } = options ?? {};\n  const defaultNamingConvention = namingConvention === \"hasura-default\";\n\n  return {\n    getOne: async ({ resource, id, meta }) => {\n      const operation = defaultNamingConvention\n        ? `${meta?.operation ?? resource}_by_pk`\n        : camelcase(`${meta?.operation ?? resource}_by_pk`);\n      const pascalOperation = camelcase(operation, {\n        pascalCase: true,\n      });\n\n      const gqlOperation = meta?.gqlQuery ?? meta?.gqlMutation;\n\n      if (gqlOperation) {\n        let query = gqlOperation;\n        const variables = {\n          id,\n          ...meta?.gqlVariables,\n        };\n\n        if (isMutation(gqlOperation)) {\n          const stringFields = getOperationFields(gqlOperation);\n\n          query = gqlTag`\n                        query Get${pascalOperation}($id: ${getIdType(\n                          resource,\n                          idType,\n                        )}!) {\n                            ${operation}(id: $id) {\n                            ${stringFields}\n                            }\n                        }\n                    `;\n        }\n\n        const response = await client.request<BaseRecord>(query, variables);\n\n        return {\n          data: response[operation],\n        };\n      }\n\n      const { query, variables } = gql.query({\n        operation,\n        variables: {\n          id: {\n            value: id,\n            type: getIdType(resource, idType),\n            required: true,\n          },\n          ...meta?.variables,\n        },\n        fields: meta?.fields,\n      });\n\n      const response = await client.request<BaseRecord>(query, variables);\n\n      return {\n        data: response[operation],\n      };\n    },\n\n    getMany: async ({ resource, ids, meta }) => {\n      const operation = defaultNamingConvention\n        ? meta?.operation ?? resource\n        : camelcase(meta?.operation ?? resource);\n\n      const type = defaultNamingConvention\n        ? `${operation}_bool_exp`\n        : camelcase(`${operation}_bool_exp`, { pascalCase: true });\n\n      if (meta?.gqlQuery) {\n        const hasuraFilters = mergeHasuraFilters(\n          {\n            id: {\n              _in: ids,\n            },\n          },\n          meta?.gqlVariables?.where,\n        );\n\n        const variables = {\n          ...(meta.gqlVariables && meta.gqlVariables),\n          ...(hasuraFilters && {\n            where: hasuraFilters,\n          }),\n        };\n\n        const response = await client.request<BaseRecord>(\n          meta.gqlQuery,\n          variables,\n        );\n        return {\n          data: response[operation],\n        };\n      }\n\n      const { query, variables } = gql.query({\n        operation,\n        fields: meta?.fields,\n        variables: meta?.variables ?? {\n          where: {\n            type,\n            value: {\n              id: {\n                _in: ids,\n              },\n            },\n          },\n        },\n      });\n\n      const response = await client.request<BaseRecord>(query, variables);\n\n      return {\n        data: response[operation],\n      };\n    },\n\n    getList: async ({ resource, sorters, filters, pagination, meta }) => {\n      const operation = defaultNamingConvention\n        ? meta?.operation ?? resource\n        : camelcase(meta?.operation ?? resource);\n\n      const aggregateOperation = defaultNamingConvention\n        ? `${operation}_aggregate`\n        : camelcase(`${operation}_aggregate`);\n\n      const {\n        currentPage = 1,\n        pageSize: limit = 10,\n        mode = \"server\",\n      } = pagination ?? {};\n\n      const hasuraPagination =\n        mode === \"server\" ? { limit, offset: (currentPage - 1) * limit } : {};\n\n      const hasuraSorting = defaultNamingConvention\n        ? generateSorting(sorters)\n        : upperCaseValues(camelizeKeys(generateSorting(sorters)));\n\n      let hasuraFilters = generateFilters(filters, namingConvention);\n      let query;\n      let variables;\n\n      if (meta?.gqlQuery) {\n        hasuraFilters = mergeHasuraFilters(\n          hasuraFilters,\n          meta?.gqlVariables?.where,\n        );\n        query = meta.gqlQuery;\n        variables = {\n          ...hasuraPagination,\n          ...(hasuraSorting &&\n            (namingConvention === \"graphql-default\"\n              ? {\n                  orderBy: hasuraSorting,\n                }\n              : {\n                  order_by: hasuraSorting,\n                })),\n          ...(meta.gqlVariables && meta.gqlVariables),\n          ...(hasuraFilters && {\n            where: hasuraFilters,\n          }),\n        };\n      } else {\n        const hasuraSortingType = defaultNamingConvention\n          ? `[${operation}_order_by!]`\n          : `[${camelcase(`${operation}_order_by!`, {\n              pascalCase: true,\n            })}]`;\n\n        const hasuraFiltersType = defaultNamingConvention\n          ? `${operation}_bool_exp`\n          : camelcase(`${operation}_bool_exp`, { pascalCase: true });\n\n        const gqlQuery = gql.query([\n          {\n            operation,\n            fields: meta?.fields,\n            variables: {\n              ...hasuraPagination,\n              ...(hasuraSorting &&\n                (namingConvention === \"graphql-default\"\n                  ? {\n                      orderBy: {\n                        value: hasuraSorting,\n                        type: hasuraSortingType,\n                      },\n                    }\n                  : {\n                      order_by: {\n                        value: hasuraSorting,\n                        type: hasuraSortingType,\n                      },\n                    })),\n              ...(hasuraFilters && {\n                where: {\n                  value: hasuraFilters,\n                  type: hasuraFiltersType,\n                },\n              }),\n            },\n          },\n          {\n            operation: aggregateOperation,\n            fields: [{ aggregate: [\"count\"] }],\n            variables: {\n              where: {\n                value: hasuraFilters,\n                type: hasuraFiltersType,\n              },\n            },\n          },\n        ]);\n\n        query = gqlQuery.query;\n        variables = gqlQuery.variables;\n      }\n\n      const response = await client.request<BaseRecord>(query, variables);\n\n      return {\n        data: response[operation],\n        total: response[aggregateOperation].aggregate.count,\n      };\n    },\n\n    create: async ({ resource, variables, meta }) => {\n      const operation = defaultNamingConvention\n        ? meta?.operation ?? resource\n        : camelcase(meta?.operation ?? resource);\n      const insertOperation = defaultNamingConvention\n        ? `insert_${operation}_one`\n        : camelcase(`insert_${operation}_one`);\n\n      const gqlOperation = meta?.gqlMutation ?? meta?.gqlQuery;\n\n      if (gqlOperation) {\n        const response = await client.request<BaseRecord>(gqlOperation, {\n          object: variables || {},\n          ...meta?.gqlVariables,\n        });\n\n        return {\n          data: response[insertOperation],\n        };\n      }\n\n      const insertType = defaultNamingConvention\n        ? `${operation}_insert_input`\n        : camelcase(`${operation}_insert_input`, { pascalCase: true });\n      const { query, variables: gqlVariables } = gql.mutation({\n        operation: insertOperation,\n        variables: {\n          object: {\n            type: insertType,\n            value: variables,\n            required: true,\n          },\n        },\n        fields: meta?.fields ?? [\"id\", ...Object.keys(variables || {})],\n      });\n\n      const response = await client.request<BaseRecord>(query, gqlVariables);\n\n      return {\n        data: response[insertOperation],\n      };\n    },\n\n    createMany: async ({ resource, variables: variablesFromParams, meta }) => {\n      const operation = meta?.operation ?? resource;\n      const pascalOperation = camelcase(operation, {\n        pascalCase: true,\n      });\n      const insertOperation = defaultNamingConvention\n        ? `insert_${operation}`\n        : camelcase(`insert_${operation}`);\n\n      if (meta?.gqlMutation) {\n        const response = await client.request<BaseRecord>(meta.gqlMutation, {\n          objects: variablesFromParams,\n          ...meta?.gqlVariables,\n        });\n\n        return {\n          data: response[insertOperation][\"returning\"],\n        };\n      }\n\n      const insertType = defaultNamingConvention\n        ? `[${operation}_insert_input!]`\n        : `[${camelcase(`${operation}_insert_input!`, {\n            pascalCase: true,\n          })}]`;\n      const query = gqlTag`\n                  mutation CreateMany${pascalOperation}($objects: ${insertType}!) {\n                      ${insertOperation}(objects: $objects) {\n                          returning {\n                              id\n                              ${metaFieldsToGqlFields(meta?.fields)}\n                          }\n                      }\n                  }\n              `;\n\n      const variables = {\n        objects: variablesFromParams,\n      };\n\n      const response = await client.request<BaseRecord>(query, variables);\n\n      return {\n        data: response[insertOperation][\"returning\"],\n      };\n    },\n\n    update: async ({ resource, id, variables, meta }) => {\n      const operation = meta?.operation ?? resource;\n      const updateOperation = defaultNamingConvention\n        ? `update_${operation}_by_pk`\n        : camelcase(`update_${operation}_by_pk`);\n\n      const gqlOperation = meta?.gqlMutation ?? meta?.gqlQuery;\n\n      if (gqlOperation) {\n        const response = await client.request<BaseRecord>(gqlOperation, {\n          id,\n          object: variables || {},\n          ...meta?.gqlVariables,\n        });\n\n        return {\n          data: response[updateOperation],\n        };\n      }\n\n      const pkColumnsType = defaultNamingConvention\n        ? `${operation}_pk_columns_input`\n        : camelcase(`${operation}_pk_columns_input!`, {\n            pascalCase: true,\n          });\n      const setInputType = defaultNamingConvention\n        ? `${operation}_set_input`\n        : camelcase(`${operation}_set_input`, { pascalCase: true });\n      const { query, variables: gqlVariables } = gql.mutation({\n        operation: updateOperation,\n        variables: {\n          ...(defaultNamingConvention\n            ? {\n                pk_columns: {\n                  type: pkColumnsType,\n                  value: {\n                    id: id,\n                  },\n                  required: true,\n                },\n              }\n            : {\n                pkColumns: {\n                  type: pkColumnsType,\n                  value: {\n                    id: id,\n                  },\n                },\n              }),\n          _set: {\n            type: setInputType,\n            value: variables,\n            required: true,\n          },\n        },\n        fields: meta?.fields ?? [\"id\"],\n      });\n\n      const response = await client.request<BaseRecord>(query, gqlVariables);\n\n      return {\n        data: response[updateOperation],\n      };\n    },\n\n    updateMany: async ({\n      resource,\n      ids,\n      variables: variablesFromParams,\n      meta,\n    }) => {\n      const operation = meta?.operation ?? resource;\n      const pascalOperation = camelcase(operation, {\n        pascalCase: true,\n      });\n      const updateOperation = defaultNamingConvention\n        ? `update_${operation}`\n        : camelcase(`update_${operation}`);\n\n      if (meta?.gqlMutation) {\n        const response = await client.request<BaseRecord>(meta.gqlMutation, {\n          ids,\n          _set: variablesFromParams,\n          ...meta?.gqlVariables,\n        });\n\n        return {\n          data: response[updateOperation][\"returning\"],\n        };\n      }\n\n      const whereType = defaultNamingConvention\n        ? `${operation}_bool_exp`\n        : camelcase(`${operation}_bool_exp`, { pascalCase: true });\n      const setInputType = defaultNamingConvention\n        ? `${operation}_set_input`\n        : camelcase(`${operation}_set_input`, { pascalCase: true });\n      const query = gqlTag`\n                mutation UpdateMany${pascalOperation}($where: ${whereType}!, $_set: ${setInputType}!) {\n                    ${updateOperation}(where: $where, _set: $_set) {\n                        returning {\n                            id\n                             ${metaFieldsToGqlFields(meta?.fields)}\n                        }\n                    }\n                }\n            `;\n\n      const variables = meta?.variables ?? {\n        where: {\n          id: {\n            _in: ids,\n          },\n        },\n        _set: variablesFromParams,\n      };\n\n      const response = await client.request<BaseRecord>(query, variables);\n\n      return {\n        data: response[updateOperation][\"returning\"],\n      };\n    },\n\n    deleteOne: async ({ resource, id, meta }) => {\n      const operation = meta?.operation ?? resource;\n\n      const deleteOperation = defaultNamingConvention\n        ? `delete_${operation}_by_pk`\n        : camelcase(`delete_${operation}_by_pk`);\n\n      if (meta?.gqlMutation) {\n        const response = await client.request<BaseRecord>(meta.gqlMutation, {\n          id,\n          ...meta?.gqlVariables,\n        });\n\n        return {\n          data: response[deleteOperation],\n        };\n      }\n\n      const { query, variables } = gql.mutation({\n        operation: deleteOperation,\n        variables: {\n          id: {\n            value: id,\n            type: getIdType(resource, idType),\n            required: true,\n          },\n          ...meta?.variables,\n        },\n        fields: meta?.fields ?? [\"id\"],\n      });\n\n      const response = await client.request<BaseRecord>(query, variables);\n\n      return {\n        data: response[deleteOperation],\n      };\n    },\n\n    deleteMany: async ({ resource, ids, meta }) => {\n      const operation = meta?.operation ?? resource;\n      const pascalOperation = camelcase(operation, {\n        pascalCase: true,\n      });\n      const deleteOperation = defaultNamingConvention\n        ? `delete_${operation}`\n        : camelcase(`delete_${operation}`);\n\n      if (meta?.gqlMutation) {\n        const hasuraFilters = mergeHasuraFilters(\n          {\n            id: {\n              _in: ids,\n            },\n          },\n          meta?.gqlVariables?.where,\n        );\n\n        const variables = {\n          ...(meta.gqlVariables && meta.gqlVariables),\n          ...(hasuraFilters && {\n            where: hasuraFilters,\n          }),\n        };\n\n        const response = await client.request<BaseRecord>(\n          meta?.gqlMutation,\n          variables,\n        );\n\n        return {\n          data: response[deleteOperation][\"returning\"],\n        };\n      }\n\n      const whereType = defaultNamingConvention\n        ? `${operation}_bool_exp`\n        : camelcase(`${operation}_bool_exp`, { pascalCase: true });\n      const query = gqlTag`\n                mutation DeleteMany${pascalOperation}($where: ${whereType}!) {\n                    ${deleteOperation}(where: $where) {\n                        returning {\n                            id\n                             ${metaFieldsToGqlFields(meta?.fields)}\n                        }\n                    }\n                }\n            `;\n\n      const variables = meta?.variables ?? {\n        where: {\n          id: {\n            _in: ids,\n          },\n        },\n      };\n\n      const response = await client.request<BaseRecord>(query, variables);\n\n      return {\n        data: response[deleteOperation][\"returning\"],\n      };\n    },\n\n    getApiUrl: () => {\n      throw new Error(\n        \"getApiUrl method is not implemented on refine-hasura data provider.\",\n      );\n    },\n\n    custom: async ({ url, method, headers, meta }) => {\n      let gqlClient = client;\n\n      if (url) {\n        gqlClient = new GraphQLClient(url, { headers });\n      }\n\n      const gqlOperation = meta?.gqlMutation ?? meta?.gqlQuery;\n\n      if (gqlOperation) {\n        const response: any = await client.request(\n          gqlOperation,\n          meta?.gqlVariables ?? {},\n        );\n\n        return { data: response };\n      }\n\n      if (meta) {\n        if (meta.operation) {\n          if (method === \"get\") {\n            const { query, variables } = gql.query({\n              operation: meta.operation,\n              fields: meta.fields,\n              variables: meta.variables,\n            });\n\n            const response = await gqlClient.request<BaseRecord>(\n              query,\n              variables,\n            );\n            response.data;\n\n            return {\n              data: response[meta.operation],\n            };\n          }\n          const { query, variables } = gql.mutation({\n            operation: meta.operation,\n            fields: meta.fields,\n            variables: meta.variables,\n          });\n\n          const response = await gqlClient.request<BaseRecord>(\n            query,\n            variables,\n          );\n\n          return {\n            data: response[meta.operation],\n          };\n        }\n        throw Error(\"GraphQL operation name required.\");\n      }\n      throw Error(\n        \"GraphQL need to operation, fields and variables values in meta object.\",\n      );\n    },\n  };\n};\n\nexport default dataProvider;\n","import type { CrudSorting, MetaQuery, Pagination } from \"@refinedev/core\";\nimport * as gql from \"gql-query-builder\";\nimport camelcase from \"camelcase\";\nimport { type HasuraCrudFilters, generateFilters } from \"./generateFilters\";\nimport { generateSorting } from \"./generateSorting\";\nimport { getOperationFields } from \"./graphql\";\nimport type { NamingConvention } from \"../types\";\n\ntype GenerateUseListSubscriptionParams = {\n  resource: string;\n  meta: MetaQuery;\n  pagination?: Pagination;\n  sorters?: CrudSorting;\n  filters?: HasuraCrudFilters;\n  namingConvention?: NamingConvention;\n};\n\ntype GenerateUseListSubscriptionReturnValues = {\n  variables: any;\n  query: string;\n  operation: string;\n};\n\nexport const generateUseListSubscription = ({\n  resource,\n  meta,\n  pagination,\n  sorters,\n  filters,\n  namingConvention,\n}: GenerateUseListSubscriptionParams): GenerateUseListSubscriptionReturnValues => {\n  const {\n    currentPage = 1,\n    pageSize: limit = 10,\n    mode = \"server\",\n  } = pagination ?? {};\n  const defaultNamingConvention = namingConvention === \"hasura-default\";\n\n  const hasuraSorting = generateSorting(sorters);\n  const hasuraFilters = generateFilters(filters, \"hasura-default\");\n\n  const operation = defaultNamingConvention\n    ? meta.operation ?? resource\n    : camelcase(meta.operation ?? resource);\n\n  const hasuraSortingType = `[${operation}_order_by!]`;\n  const hasuraFiltersType = `${operation}_bool_exp`;\n\n  const gqlOperation = meta?.gqlQuery ?? meta?.gqlMutation;\n  if (gqlOperation) {\n    const query = `\n            subscription ${operation}($limit: Int, $offset: Int, $order_by: ${hasuraSortingType}, $where: ${hasuraFiltersType} ) {\n                ${operation}( limit: $limit, offset: $offset, order_by: $order_by, where: $where ) {\n                    ${getOperationFields(gqlOperation)}\n                }\n            }\n        `;\n\n    const variables = {\n      ...(mode === \"server\"\n        ? {\n            limit,\n            offset: (currentPage - 1) * limit,\n          }\n        : {}),\n      ...(hasuraSorting && {\n        order_by: hasuraSorting,\n      }),\n      ...(hasuraFilters && {\n        where: hasuraFilters,\n      }),\n    };\n\n    return { query, variables, operation };\n  }\n\n  const { query, variables } = gql.subscription([\n    {\n      operation,\n      fields: meta.fields,\n      variables: {\n        ...(mode === \"server\"\n          ? {\n              limit,\n              offset: (currentPage - 1) * limit,\n            }\n          : {}),\n        ...(hasuraSorting && {\n          order_by: {\n            value: hasuraSorting,\n            type: hasuraSortingType,\n          },\n        }),\n        ...(hasuraFilters && {\n          where: {\n            value: hasuraFilters,\n            type: hasuraFiltersType,\n          },\n        }),\n      },\n    },\n  ]);\n\n  return { query, variables, operation };\n};\n\n/**\n * @deprecated Please use `generateUseListSubscription` instead.\n */\nexport const genereteUseListSubscription = generateUseListSubscription;\n","import type {\n  ConditionalFilter,\n  CrudOperators,\n  LogicalFilter,\n} from \"@refinedev/core\";\nimport camelcase from \"camelcase\";\nimport setWith from \"lodash-es/setWith.js\";\nimport cloneDeep from \"lodash-es/cloneDeep.js\";\nimport type { NamingConvention } from \"../types\";\nimport type { BoolExp, MultiConditionFilter } from \"./boolexp\";\n\nexport type HasuraFilterCondition =\n  | \"_and\"\n  | \"_not\"\n  | \"_or\"\n  | \"_eq\"\n  | \"_gt\"\n  | \"_gte\"\n  | \"_lt\"\n  | \"_lte\"\n  | \"_neq\"\n  | \"_in\"\n  | \"_nin\"\n  | \"_like\"\n  | \"_nlike\"\n  | \"_ilike\"\n  | \"_nilike\"\n  | \"_is_null\"\n  | \"_similar\"\n  | \"_nsimilar\"\n  | \"_regex\"\n  | \"_iregex\";\n\nexport type HasuraCrudOperators = CrudOperators | \"not\";\n\nexport type HasuraLogicalFilter = Omit<LogicalFilter, \"operator\"> & {\n  operator: Exclude<HasuraCrudOperators, \"or\" | \"and\" | \"not\">;\n};\n\nexport type HasuraConditionalFilter = Omit<\n  ConditionalFilter,\n  \"operator\" | \"value\"\n> & {\n  operator: Extract<HasuraCrudOperators, \"or\" | \"and\" | \"not\">;\n  value: HasuraCrudFilters;\n};\n\nexport type HasuraCrudFilter = HasuraLogicalFilter | HasuraConditionalFilter;\n\nexport type HasuraCrudFilters = HasuraCrudFilter[];\n\nconst hasuraFilters: Partial<\n  Record<HasuraCrudOperators, HasuraFilterCondition | undefined>\n> = {\n  eq: \"_eq\",\n  ne: \"_neq\",\n  lt: \"_lt\",\n  gt: \"_gt\",\n  lte: \"_lte\",\n  gte: \"_gte\",\n  in: \"_in\",\n  nin: \"_nin\",\n  contains: \"_ilike\",\n  ncontains: \"_nilike\",\n  containss: \"_like\",\n  ncontainss: \"_nlike\",\n  null: \"_is_null\",\n  or: \"_or\",\n  and: \"_and\",\n  not: \"_not\",\n  nnull: \"_is_null\",\n  startswith: \"_iregex\",\n  nstartswith: \"_iregex\",\n  endswith: \"_iregex\",\n  nendswith: \"_iregex\",\n  startswiths: \"_similar\",\n  nstartswiths: \"_nsimilar\",\n  endswiths: \"_similar\",\n  nendswiths: \"_nsimilar\",\n};\n\nexport const handleFilterValue = (\n  operator: HasuraCrudOperators,\n  value: any,\n) => {\n  switch (operator) {\n    case \"startswiths\":\n    case \"nstartswiths\":\n      return `${value}%`;\n    case \"endswiths\":\n    case \"nendswiths\":\n      return `%${value}`;\n    case \"startswith\":\n      return `^${value}`;\n    case \"nstartswith\":\n      return `^(?!${value})`;\n    case \"endswith\":\n      return `${value}$`;\n    case \"nendswith\":\n      return `(?<!${value})$`;\n    case \"nnull\":\n      return false;\n    case \"contains\":\n    case \"containss\":\n    case \"ncontains\":\n    case \"ncontainss\":\n      return `%${value}%`;\n    default:\n      return value;\n  }\n};\n\nconst convertHasuraOperatorToGraphqlDefaultNaming = (\n  hasuraOperator?: HasuraFilterCondition,\n) => {\n  return hasuraOperator ? `_${camelcase(hasuraOperator)}` : undefined;\n};\n\nexport const generateNestedFilterQuery = (\n  filter: HasuraCrudFilter,\n  namingConvention: NamingConvention = \"hasura-default\",\n): BoolExp => {\n  const { operator } = filter;\n\n  if (\n    operator !== \"or\" &&\n    operator !== \"and\" &&\n    operator !== \"not\" &&\n    \"field\" in filter\n  ) {\n    const { field, value } = filter;\n\n    const defaultNamingConvention = namingConvention === \"hasura-default\";\n    const hasuraOperator = defaultNamingConvention\n      ? hasuraFilters[filter.operator]\n      : convertHasuraOperatorToGraphqlDefaultNaming(\n          hasuraFilters[filter.operator],\n        );\n    if (!hasuraOperator) {\n      throw new Error(`Operator ${operator} is not supported`);\n    }\n\n    const fieldsArray = field.split(\".\");\n    const fieldsWithOperator = [...fieldsArray, hasuraOperator];\n    const filteredValue = handleFilterValue(operator, value);\n\n    return {\n      ...setWith({}, fieldsWithOperator, filteredValue, Object),\n    };\n  }\n\n  return {\n    [`_${operator}`]: filter.value.map((f) =>\n      generateNestedFilterQuery(f, namingConvention),\n    ),\n  };\n};\n\nexport const generateFilters = (\n  filters?: HasuraCrudFilters,\n  namingConvention: NamingConvention = \"hasura-default\",\n): BoolExp | undefined => {\n  if (!filters) {\n    return undefined;\n  }\n\n  const nestedQuery = generateNestedFilterQuery(\n    {\n      operator: \"and\",\n      value: filters,\n    },\n    namingConvention,\n  );\n\n  return nestedQuery;\n};\n\nfunction isMultiConditionFilter(key: string): key is MultiConditionFilter {\n  const keys: MultiConditionFilter[] = [\"_and\", \"_or\"];\n  return keys.includes(key as MultiConditionFilter);\n}\n\nexport const mergeHasuraFilters = (\n  filters?: BoolExp,\n  metaFilters?: BoolExp,\n): BoolExp | undefined => {\n  if (!metaFilters) {\n    return filters;\n  }\n  const mergedFilters = filters ? cloneDeep(filters) : {};\n  const gqlVariableFilters = Object.entries(metaFilters);\n  const arbitraryOperators = gqlVariableFilters.filter((f) => {\n    const [k] = f;\n    return !isMultiConditionFilter(k);\n  });\n\n  if (\n    arbitraryOperators.length > 1 ||\n    (metaFilters._and && arbitraryOperators.length)\n  ) {\n    if (!mergedFilters._and) {\n      mergedFilters._and = [];\n    }\n  }\n\n  if (\n    arbitraryOperators.length > 1 ||\n    ((metaFilters._and || metaFilters._or) && arbitraryOperators.length)\n  ) {\n    console.warn(\n      \"@packages/hasura: multiple filters present. Group multiple parameters using the _and or the _or operator. Tip: You can use the _or and _and operators along with the _not operator to create arbitrarily complex boolean expressions involving multiple filtering criteria.\",\n    );\n  }\n\n  gqlVariableFilters.forEach((filter) => {\n    const [k, v] = filter;\n\n    if (!isMultiConditionFilter(k) && mergedFilters._and) {\n      // Group Multiple Parameters Together\n      mergedFilters._and = mergedFilters._and.concat({ [k]: v });\n    } else if (k === \"_and\" && mergedFilters._and) {\n      // Merge _and conditions from both groups of Hasura Filters\n      if (!Array.isArray(v)) {\n        throw new Error(\n          \"@packages/hasura: unexpected value for BoolExp _and. Expected an Array.\",\n        );\n      }\n      mergedFilters._and = mergedFilters._and.concat(v);\n    } else {\n      mergedFilters[k] = v;\n    }\n  });\n  return mergedFilters;\n};\n","import type { CrudSort, CrudSorting } from \"@refinedev/core\";\nimport setWith from \"lodash-es/setWith.js\";\n\nexport type HasuraSortOrder = \"asc\" | \"desc\";\nexport type HasuraSorting = HasuraSortOrder | { [key: string]: HasuraSorting };\n\nexport type HasuraSortingType = Record<string, HasuraSorting>;\n\nconst generateNestedSorting = (sorter: CrudSort): HasuraSortingType => {\n  const { field, order } = sorter;\n  const fieldsArray = field.split(\".\");\n\n  return {\n    ...setWith({}, fieldsArray, order, Object),\n  };\n};\n\nexport const generateSorting: (\n  sorters: CrudSorting | undefined,\n) => HasuraSortingType | undefined = (sorters) => {\n  if (!sorters) {\n    return undefined;\n  }\n\n  let mergedSorting: HasuraSortingType = {};\n\n  sorters.forEach((sorter) => {\n    const nestedSorting = generateNestedSorting(sorter);\n    mergedSorting = { ...mergedSorting, ...nestedSorting };\n  });\n\n  return mergedSorting;\n};\n","import type { MetaQuery } from \"@refinedev/core\";\nimport { type DocumentNode, visit, type SelectionSetNode } from \"graphql\";\n\nexport const getOperationFields = (documentNode: DocumentNode) => {\n  const fieldLines: string[] = [];\n  let isInitialEnter = true;\n  let depth = 0;\n  let isNestedField = false;\n\n  // remove `<name>_aggregate` or `<name>Aggregate` object from query\n  const newDocumentNode = visit(documentNode, {\n    Field: {\n      enter(node) {\n        if (\n          node.name.value.includes(\"aggregate\") ||\n          node.name.value.includes(\"Aggregate\")\n        ) {\n          return null;\n        }\n\n        return node;\n      },\n    },\n  });\n\n  visit(newDocumentNode, {\n    Field: {\n      enter(node): SelectionSetNode | void {\n        if (isInitialEnter) {\n          isInitialEnter = false;\n\n          if (typeof node.selectionSet === \"undefined\") {\n            throw new Error(\"Operation must have a selection set\");\n          }\n\n          return node.selectionSet;\n        }\n\n        fieldLines.push(\n          `${depth > 0 ? \"  \".repeat(isNestedField ? depth : depth - 1) : \"\"}${\n            node.name.value\n          }${node.selectionSet ? \" {\" : \"\"}`,\n        );\n\n        if (node.selectionSet) {\n          depth++;\n          isNestedField = true;\n        }\n      },\n      leave(node) {\n        if (node.selectionSet) {\n          depth--;\n          fieldLines.push(`${\"  \".repeat(depth)}}`);\n          isNestedField = false;\n        }\n      },\n    },\n  });\n\n  return fieldLines.join(\"\\n\").trim();\n};\n\nexport const isMutation = (documentNode: DocumentNode) => {\n  let isMutation = false;\n\n  visit(documentNode, {\n    OperationDefinition: {\n      enter(node) {\n        if (node.operation === \"mutation\") {\n          isMutation = true;\n        }\n      },\n    },\n  });\n\n  return isMutation;\n};\n\nexport const metaFieldsToGqlFields = (metaFields: MetaQuery[\"fields\"]) => {\n  if (!metaFields) return \"\";\n\n  const fields: string[] = [];\n\n  metaFields.forEach((field) => {\n    if (typeof field === \"string\") {\n      fields.push(field);\n    } else {\n      const [key, value] = Object.entries(field)[0];\n      fields.push(`${key} { ${metaFieldsToGqlFields(value)} }`);\n    }\n  });\n\n  return fields.join(\"\\n\");\n};\n","import type { MetaQuery, BaseKey } from \"@refinedev/core\";\nimport camelcase from \"camelcase\";\nimport * as gql from \"gql-query-builder\";\nimport { getOperationFields } from \"./graphql\";\nimport type { NamingConvention } from \"../types\";\n\ntype GenerateUseManySubscriptionParams = {\n  resource: string;\n  meta: MetaQuery;\n  ids?: BaseKey[];\n  namingConvention?: NamingConvention;\n};\n\ntype GenerateUseManySubscriptionReturnValues = {\n  variables: any;\n  query: string;\n  operation: string;\n};\n\nexport const generateUseManySubscription = ({\n  resource,\n  meta,\n  ids,\n  namingConvention,\n}: GenerateUseManySubscriptionParams): GenerateUseManySubscriptionReturnValues => {\n  if (!ids) {\n    console.error(\n      \"[useSubscription]: `ids` is required in `params` for graphql subscriptions\",\n    );\n  }\n  const defaultNamingConvention = namingConvention === \"hasura-default\";\n\n  const operation = defaultNamingConvention\n    ? meta.operation ?? resource\n    : camelcase(meta.operation ?? resource);\n  const gqlOperation = meta?.gqlQuery ?? meta?.gqlMutation;\n\n  const hasuraFiltersType = `${operation}_bool_exp`;\n\n  if (gqlOperation) {\n    const query = `\n            subscription ${operation}($where: ${hasuraFiltersType} ) {\n                ${operation}(where: $where) {\n                    ${getOperationFields(gqlOperation)}\n                }\n            }\n        `;\n\n    const variables = {\n      where: {\n        id: {\n          _in: ids,\n        },\n      },\n    };\n\n    return { query, variables, operation };\n  }\n\n  const { query, variables } = gql.subscription({\n    operation,\n    fields: meta.fields,\n    variables: meta.variables ?? {\n      where: {\n        type: hasuraFiltersType,\n        value: {\n          id: {\n            _in: ids,\n          },\n        },\n      },\n    },\n  });\n\n  return { query, variables, operation };\n};\n\n/**\n * @deprecated Please use `generateUseManySubscription` instead.\n */\nexport const genereteUseManySubscription = generateUseManySubscription;\n","import type { MetaQuery, BaseKey } from \"@refinedev/core\";\nimport camelcase from \"camelcase\";\nimport * as gql from \"gql-query-builder\";\nimport { getOperationFields } from \"./graphql\";\nimport type { IDType, NamingConvention } from \"../types\";\n\ntype GenerateUseOneSubscriptionParams = {\n  resource: string;\n  meta: MetaQuery;\n  id?: BaseKey;\n  idType?: IDType;\n  namingConvention?: NamingConvention;\n};\n\ntype GenerateUseOneSubscriptionReturnValues = {\n  variables: any;\n  query: string;\n  operation: string;\n};\n\nexport const generateUseOneSubscription = ({\n  resource,\n  meta,\n  id,\n  idType = \"uuid\",\n  namingConvention,\n}: GenerateUseOneSubscriptionParams): GenerateUseOneSubscriptionReturnValues => {\n  if (!id) {\n    console.error(\n      \"[useSubscription]: `id` is required in `params` for graphql subscriptions\",\n    );\n  }\n  const defaultNamingConvention = namingConvention === \"hasura-default\";\n\n  const operation = defaultNamingConvention\n    ? `${meta.operation ?? resource}_by_pk`\n    : camelcase(`${meta.operation ?? resource}_by_pk`);\n  const gqlOperation = meta?.gqlQuery ?? meta?.gqlMutation;\n  if (gqlOperation) {\n    const query = `\n            subscription ${operation}($id: ${idType}!) {\n                ${operation}(id: $id) {\n                    ${getOperationFields(gqlOperation)}\n                }\n            }\n        `;\n\n    const variables = {\n      id,\n    };\n\n    return { query, variables, operation };\n  }\n\n  const { query, variables } = gql.subscription({\n    operation,\n    variables: {\n      id: { value: id, type: \"uuid\", required: true },\n      ...meta.variables,\n    },\n    fields: meta.fields,\n  });\n\n  return { query, variables, operation };\n};\n\n/**\n * @deprecated Please use `generateUseOneSubscription` instead.\n */\nexport const genereteUseOneSubscription = generateUseOneSubscription;\n","import mapKeys from \"lodash-es/mapKeys.js\";\nimport camelCase from \"camelcase\";\n\nexport const camelizeKeys = (obj: any): any => {\n  if (!obj) return undefined;\n  return mapKeys(obj, (_v, k) => camelCase(k));\n};\n","import mapValues from \"lodash-es/mapValues.js\";\n\nexport const upperCaseValues = (obj: any): any => {\n  if (!obj) return undefined;\n  return mapValues(obj, (v: string) => v.toUpperCase());\n};\n","export type IDType = \"uuid\" | \"Int\" | \"String\" | \"Numeric\";\n\nexport type NamingConvention = \"hasura-default\" | \"graphql-default\";\n\nexport type HasuraProviderOptions = {\n  idType?: IDType | ((resource: string) => IDType);\n  namingConvention?: NamingConvention;\n};\n\nexport const getIdType = (\n  resource: string,\n  idType?: IDType | ((resource: string) => IDType),\n) => {\n  if (typeof idType === \"function\") {\n    return idType(resource);\n  }\n  return idType ?? \"uuid\";\n};\n","import type { LiveProvider } from \"@refinedev/core\";\nimport type { Client } from \"graphql-ws\";\n\nimport {\n  generateUseManySubscription,\n  generateUseOneSubscription,\n  generateUseListSubscription,\n} from \"../utils\";\nimport { getIdType, type HasuraProviderOptions } from \"../types\";\n\nconst subscriptions = {\n  useList: generateUseListSubscription,\n  useOne: generateUseOneSubscription,\n  useMany: generateUseManySubscription,\n};\n\nexport type HasuraLiveProviderOptions = HasuraProviderOptions & {};\n\nexport const liveProvider = (\n  client: Client,\n  options?: HasuraLiveProviderOptions,\n): LiveProvider => {\n  return {\n    subscribe: ({ callback, params }) => {\n      const {\n        resource,\n        meta,\n        pagination,\n        sorters,\n        filters,\n        subscriptionType,\n        id,\n        ids,\n      } = params ?? {};\n\n      if (!meta) {\n        throw new Error(\n          \"[useSubscription]: `meta` is required in `params` for graphql subscriptions\",\n        );\n      }\n\n      if (!subscriptionType) {\n        throw new Error(\n          \"[useSubscription]: `subscriptionType` is required in `params` for graphql subscriptions\",\n        );\n      }\n\n      if (!resource) {\n        throw new Error(\n          \"[useSubscription]: `resource` is required in `params` for graphql subscriptions\",\n        );\n      }\n\n      const generateSubscription = subscriptions[subscriptionType];\n\n      const idType = getIdType(resource, options?.idType);\n      const namingConvention = options?.namingConvention ?? \"hasura-default\";\n      const { query, variables, operation } = generateSubscription({\n        ids,\n        id,\n        idType,\n        namingConvention,\n        resource,\n        filters,\n        meta,\n        pagination,\n        sorters,\n      });\n\n      const onNext = (payload: any) => {\n        callback(payload.data[operation]);\n      };\n\n      const unsubscribe = client.subscribe(\n        {\n          query,\n          variables,\n        },\n        {\n          next: onNext,\n          error: () => null,\n          complete: () => null,\n        },\n      );\n\n      return unsubscribe;\n    },\n    unsubscribe: (unsubscribe) => {\n      unsubscribe();\n    },\n  };\n};\n","import dataProvider from \"./dataProvider/index.js\";\nexport default dataProvider;\n\nexport * from \"./dataProvider/index.js\";\nexport * from \"./liveProvider/index.js\";\n\nexport {\n  GraphQLClient,\n  batchRequests,\n  gql,\n  rawRequest,\n  request,\n  resolveRequestDocument,\n} from \"graphql-request\";\n\nexport type {\n  BatchRequestDocument,\n  BatchRequestsExtendedOptions,\n  BatchRequestsOptions,\n  ClientError,\n  GraphQLWebSocketClient,\n  RawRequestExtendedOptions,\n  RawRequestOptions,\n  RequestDocument,\n  RequestExtendedOptions,\n  RequestOptions,\n  Variables,\n} from \"graphql-request\";\n\nexport * as qqlQueryBuilder from \"gql-query-builder\";\nexport * as graphqlWS from \"graphql-ws\";\nexport * from \"./interfaces.js\";\n"],"mappings":"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","names":["gql","camelcase","setWith","isMutation","hasuraFilters","camelcase","query","variables","camelcase","gql","camelcase","query","variables","camelcase","gql","camelcase","query","variables","camelcase","camelcase","query","variables","response","hasuraFilters","query","GraphQLClient","gql"]}