openpanel/packages/hasura/CHANGELOG.md
Stefan Pejcic 09f9f9502d packages
2024-11-07 19:03:37 +01:00

38 KiB

@refinedev/hasura

6.6.8

Patch Changes

6.6.7

Patch Changes

6.6.6

Patch Changes

  • #6052 50d21076928ca738ec54cc5bcd17fad2683653dd Thanks @aliemir! - fix(hasura): broken lodash import in bundle

    ESM bundle of @refinedev/hasura was broken due to incorrect lodash import. Import has been replaced with subdirectory import to get handled properly in the bundling process.

    Fixes #6044

6.6.4

Patch Changes

6.6.3

Patch Changes

6.6.2

Patch Changes

  • #5928 db9756e7908 Thanks @aliemir! - fix: type errors on typescript <5

    Due to the changes in #5881, typescript users below version 5 are facing type errors. This PR fixes the type errors by updating the file extensions required by the d.mts declaration files to provide a compatible declarations for both typescript 4 and 5 users.

6.6.1

Patch Changes

6.6.0

Minor Changes

  • #5723 c498239e90a Thanks @rilrom! - feat: implement _not operator in hasura filters #5689

    Hasura users can now use the _not operator as a conditional filter.

    Resolves #5689

Patch Changes

  • #5765 0c197d82393 Thanks @aliemir! - refactor: package bundles and package.json configuration for exports

    Previously, Refine packages had exported ESM and CJS bundles with same .js extension and same types for both with .d.ts extensions. This was causing issues with bundlers and compilers to pick up the wrong files for the wrong environment. Now we're outputting ESM bundles with .mjs extension and CJS bundles with .cjs extension. Also types are now exported with both .d.mts and .d.cts extensions.

    In older versions ESM and CJS outputs of some packages were using wrong imports/requires to dependencies causing errors in some environments. This will be fixed since now we're also enforcing the module type with extensions.

    Above mentioned changes also supported with changes in package.json files of the packages to support the new extensions and types. All Refine packages now include exports fields in their configuration to make sure the correct bundle is picked up by the bundlers and compilers.

  • #5765 0c197d82393 Thanks @aliemir! - Fixed the lodash-es imports for ESM builds to access the exports properly.

  • #5754 56ed144a0f5 Thanks @alicanerdurmaz! - chore: TypeScript upgraded to v5.x.x. #5752

6.5.1

Patch Changes

  • #5508 a9194b62337 Thanks @Conqxeror! - fix(utils): handle nested fields in generateSorting #5348

    This change addresses an issue with nested fields in the generateSorting utility function. The fix ensures that sorting works correctly when dealing with nested fields in the GraphQL query generation.

  • #5695 79865affa1c Thanks @BatuhanW! - chore: apply biome format and fix lint errors.

6.5.0

Minor Changes

  • #5478 24d81ca854 Thanks @alicanerdurmaz! - feat: add gqlQuery and gqlMutation support. #5489

    Previously, @refinedev/hasura package only supported GraphQL operations through meta.fields.

    Now we've added gqlQuery and gqlMutation fields in meta object.

    You can utilize these fields along with graphql-tag package to build your queries/mutations.

    See the updated documentation for more information: https://refine.dev/docs/data/packages/hasura/

    Query Example:

    import { useList } from "@refinedev/core";
    import gql from "graphql-tag";
    
    const PRODUCTS_QUERY = gql`
      query ProductsList(
        $offset: Int!
        $limit: Int!
        $order_by: [products_order_by!]
        where: $where
      ) {
        products(offset: $paging, limit: $filter, order_by: $order_by, where: $where) {
          id
          name
        }
        categories_aggregate(where: $where) {
          aggregate {
            count
          }
        }
      }
    `;
    
    const { data } = useList({
      resource: "products",
      meta: { gqlQuery: PRODUCTS_QUERY },
    });
    

    Mutation Example:

    import { useForm } from "@refinedev/core";
    import gql from "graphql-tag";
    
    const CREATE_PRODUCT_MUTATION = gql`
      mutation CreateProduct($object: posts_insert_input!) {
        createOneProduct(object: $object) {
          id
          name
        }
      }
    `;
    
    const { formProps } = useForm({
      resource: "products",
      meta: { gqlMutation: CREATE_PRODUCT_MUTATION },
    });
    

6.4.12

Patch Changes

6.4.11

Patch Changes

6.4.10

Patch Changes

  • #5040 ca57048580a Thanks @IkumaTadokoro! - fix: issue with #4972

    When using the Hasura provider with the 'graphql-default' naming convention, snake-case graphql operators (e.g. _is_null) were not converted to the correct case, causing query errors. This problem is now fixed. Now the snake_case operator is converted according to the given naming convention (e.g. hasura-default: _is_null, graphql-default: _isNull).

6.4.9

Patch Changes

  • #5040 ca57048580a Thanks @IkumaTadokoro! - fix: issue with #4972

    When using the Hasura provider with the 'graphql-default' naming convention, snake-case graphql operators (e.g. _is_null) were not converted to the correct case, causing query errors. This problem is now fixed. Now the snake_case operator is converted according to the given naming convention (e.g. hasura-default: _is_null, graphql-default: _isNull).

6.4.8

Patch Changes

  • #5022 80513a4e42f Thanks @BatuhanW! - chore: update README.md

    • fix grammar errors.
    • make all README.md files consistent.
    • add code example code snippets.

6.4.7

Patch Changes

  • #5022 80513a4e42f Thanks @BatuhanW! - chore: update README.md

    • fix grammar errors.
    • make all README.md files consistent.
    • add code example code snippets.

6.4.6

Patch Changes

  • #4951 04837c62077 Thanks @aliemir! - - Update build configuration for esbuild to use the shared plugins.
    • Fix the lodash replacement plugin to skip redundant files.

6.4.5

Patch Changes

  • #4951 04837c62077 Thanks @aliemir! - - Update build configuration for esbuild to use the shared plugins.
    • Fix the lodash replacement plugin to skip redundant files.

6.4.4

Patch Changes

  • #4584 6305f41d2a6 Thanks @IkumaTadokoro! - fix: issue with #4574

    We had a problem when using Hasura Provider with grapqhql-convention where it causes could not retrieve some response issue to happen, now it's fixed.

6.4.3

Patch Changes

  • #4584 6305f41d2a6 Thanks @IkumaTadokoro! - fix: issue with #4574

    We had a problem when using Hasura Provider with grapqhql-convention where it causes could not retrieve some response issue to happen, now it's fixed.

6.4.2

Patch Changes

6.4.1

Patch Changes

6.4.0

Minor Changes

  • #4174 d040da9a428 Thanks @alicanerdurmaz! - feat: added refine.config.js to support swizzling. Now with swizzle support, you can easily customize hasura data provider for your needs.

    feat: tests added for utility functions.

    chore: utility functions have been moved to their own files.

    chore: genereteUseListSubscription is deprecated and has been renamed to generateListSubscriptionHook. chore: genereteUseManySubscription is deprecated and has been renamed to generateUseManySubscription. chore: genereteUseOneSubscription is deprecated and has been renamed to generateUseOneSubscription.

Patch Changes

  • #4179 fd808368a36 Thanks @austin047! - fix: change enum from lowercase to UPPERCASE in api request for hasura camelCase naming convention

    From the hasura documentation here, for the graphql-default naming convention, the naming convention for enums is upper-cased. Currently the request are being made with the lowercase enum and not uppercase.

    The change mainly affects sort, desc gets changed to DESC and asc gets changed to ASC. the request from the refine client interface maintains the underscore and convertion to uppercase is only done at the API request layer.

6.3.0

Minor Changes

  • #4174 d040da9a428 Thanks @alicanerdurmaz! - feat: added refine.config.js to support swizzling. Now with swizzle support, you can easily customize hasura data provider for your needs.

    feat: tests added for utility functions.

    chore: utility functions have been moved to their own files.

    chore: genereteUseListSubscription is deprecated and has been renamed to generateListSubscriptionHook. chore: genereteUseManySubscription is deprecated and has been renamed to generateUseManySubscription. chore: genereteUseOneSubscription is deprecated and has been renamed to generateUseOneSubscription.

Patch Changes

  • #4179 fd808368a36 Thanks @austin047! - fix: change enum from lowercase to UPPERCASE in api request for hasura camelCase naming convention

    From the hasura documentation here, for the graphql-default naming convention, the naming convention for enums is upper-cased. Currently the request are being made with the lowercase enum and not uppercase.

    The change mainly affects sort, desc gets changed to DESC and asc gets changed to ASC. the request from the refine client interface maintains the underscore and convertion to uppercase is only done at the API request layer.

6.2.0

Minor Changes

  • #4144 06bdf9e4837 Thanks @mattbho! - feat: support camelCase graphql naming convention for Hasura

    Previously, our Hasura data provider only supported snake-case naming conventions for operations and type names.

    Hasura recently released a setting allowing for camelCase support.

    The following changes do the Hasura data provider now support the new setting.

    All methods for the Hasura Data provider now support the camelCase graphql-default naming convention.

    The data provider now accepts a namingConvention field in the options payload.

    Ex:

    const gqlDataProvider = dataProvider(client, {namingConvention: "graphql-default"});
    

    If the graphql-default naming convention is provided, all field names and variables will be camel cased. Type names will be PascalCased.

6.1.0

Minor Changes

  • #4144 06bdf9e4837 Thanks @mattbho! - feat: support camelCase graphql naming convention for Hasura

    Previously, our Hasura data provider only supported snake-case naming conventions for operations and type names.

    Hasura recently released a setting allowing for camelCase support.

    The following changes do the Hasura data provider now support the new setting.

    All methods for the Hasura Data provider now support the camelCase graphql-default naming convention.

    The data provider now accepts a namingConvention field in the options payload.

    Ex:

    const gqlDataProvider = dataProvider(client, {namingConvention: "graphql-default"});
    

    If the graphql-default naming convention is provided, all field names and variables will be camel cased. Type names will be PascalCased.

6.0.1

Patch Changes

6.0.0

Major Changes

5.1.2

Patch Changes

5.1.1

Patch Changes

5.1.0

Minor Changes

  • Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!

    • metaData prop is now deprecated for all data provider methods. Use meta prop instead.

      For backward compatibility, we still support metaData prop with refine v4.

      create: async ({
      -    metaData
      +    meta
      }) => {
          ...
      },
      
    • sort, hasPagination, and metaData parameters of getList method are now deprecated. Use sorters, pagination, and meta parameters instead.

      For backward compatibility, we still support sort, hasPagination and metaData props with refine v4.

      getList: async ({
      -    sort
      +    sorters
      -    hasPagination
      +    pagination: { mode: "off" | "server | "client" }
      -    metaData
      +    meta
      }) => {
          ...
      },
      
  • Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk! Moving to the @refinedev scope 🎉🎉

    Moved to the @refinedev scope and updated our packages to use the new scope. From now on, all packages will be published under the @refinedev scope with their new names.

    Now, we're also removing the refine prefix from all packages. So, the @pankod/refine-core package is now @refinedev/core, @pankod/refine-antd is now @refinedev/antd, and so on.

Patch Changes

4.21.0

Minor Changes

4.20.0

Minor Changes

4.19.0

Minor Changes

  • #3752 426386ca250 Thanks @zulianrizki! - Allow custom ID types with idType property when initializing the data provider instance. idType can either be Int, uuid or a function returning the type by resource name.

4.18.0

Minor Changes

  • #3752 426386ca250 Thanks @zulianrizki! - Allow custom ID types with idType property when initializing the data provider instance. idType can either be Int, uuid or a function returning the type by resource name.

4.17.3

Patch Changes

  • #3275 aaa499548cd Thanks @aliemir! - contains, ncontains, containss and ncontainss filters were passing the value without wrapping it to % characters. This caused the filters to not work as expected. Added a case to the filter value handler to wrap the value with % characters. (Resolves #3245)

4.17.2

Patch Changes

  • #3275 aaa499548cd Thanks @aliemir! - contains, ncontains, containss and ncontainss filters were passing the value without wrapping it to % characters. This caused the filters to not work as expected. Added a case to the filter value handler to wrap the value with % characters. (Resolves #3245)

4.17.1

Patch Changes

  • #3275 aaa499548cd Thanks @aliemir! - contains, ncontains, containss and ncontainss filters were passing the value without wrapping it to % characters. This caused the filters to not work as expected. Added a case to the filter value handler to wrap the value with % characters. (Resolves #3245)

4.17.0

Minor Changes

  • Only or was supported as a conditional filter. Now and and or can be used together and nested. 🚀

    {
      operator: "or",
      value: [
        {
          operator: "and",
          value: [
            {
              field: "name",
              operator: "eq",
              value: "John Doe",
            },
            {
              field: "age",
              operator: "eq",
              value: 30,
            },
          ],
        },
        {
          operator: "and",
          value: [
            {
              field: "name",
              operator: "eq",
              value: "JR Doe",
            },
            {
              field: "age",
              operator: "eq",
              value: 1,
            },
          ],
        },
      ],
    }
    

4.16.0

Minor Changes

  • #2751 addff64c77 Thanks @yildirayunlu! - Only or was supported as a conditional filter. Now and and or can be used together and nested. 🚀

    {
      operator: "or",
      value: [
        {
          operator: "and",
          value: [
            {
              field: "name",
              operator: "eq",
              value: "John Doe",
            },
            {
              field: "age",
              operator: "eq",
              value: 30,
            },
          ],
        },
        {
          operator: "and",
          value: [
            {
              field: "name",
              operator: "eq",
              value: "JR Doe",
            },
            {
              field: "age",
              operator: "eq",
              value: 1,
            },
          ],
        },
      ],
    }
    

4.15.2

Patch Changes

  • Added nested property filter support for or filters.

4.15.1

Patch Changes

4.15.0

Minor Changes

  • Added missing implementations for nnull, startswith, startswiths, nstartswith, nstartswiths, endswith, endswiths, nendswith and nendswiths filters by _similar, _nsimilar, _regex and _iregex filters from Hasura.

4.14.0

Minor Changes

  • #2728 585ba350f8 Thanks @aliemir! - Added missing implementations for nnull, startswith, startswiths, nstartswith, nstartswiths, endswith, endswiths, nendswith and nendswiths filters by _similar, _nsimilar, _regex and _iregex filters from Hasura.

4.13.0

Minor Changes

  • Updated dataProvider types with Required utility to mark getMany, createMany, updateMany and deleteMany as implemented.

4.12.0

Minor Changes

  • #2688 508045ac30 Thanks @aliemir! - Updated dataProvider types with Required utility to mark getMany, createMany, updateMany and deleteMany as implemented.

4.11.2

Patch Changes

  • Added nested sorting feature 💥
  • Added new CRUD Filter Operators with undefined

4.11.1

Patch Changes

4.11.0

Minor Changes

  • Update type declaration generation with tsc instead of tsup for better navigation throughout projects source code.

4.10.0

Minor Changes

  • #2440 0150dcd070 Thanks @aliemir! - Update type declaration generation with tsc instead of tsup for better navigation throughout projects source code.

4.9.4

Patch Changes

    • lodash moved to "dependencies" for CommonJS builds

4.9.3

Patch Changes

    • lodash moved to "dependencies" for CommonJS builds

4.9.2

Patch Changes

    • lodash moved to "dependencies" for CommonJS builds

4.9.1

Patch Changes

4.9.0

Minor Changes

  • Add nested filter support to Hasura data provider.

    Example usage:

    filters: [
        {
            field: "category.id",
            operator: "eq",
            value: "8332c138-3231-406d-9655-1328ded9d5f2",
        },
    ],
    

4.8.0

Minor Changes

  • #2347 628324d950 Thanks @ozkalai! - Add nested filter support to Hasura data provider.

    Example usage:

    filters: [
        {
            field: "category.id",
            operator: "eq",
            value: "8332c138-3231-406d-9655-1328ded9d5f2",
        },
    ],
    

4.7.0

Minor Changes

  • Add React@18 support 🚀

4.6.0

Minor Changes

4.5.0

Minor Changes

  • All of the refine packages have dependencies on the @pankod/refine-core package. So far we have managed these dependencies with peerDependencies + dependencies but this causes issues like #2183. (having more than one @pankod/refine-core version in node_modules and creating different instances)

    Managing as peerDependencies + devDependencies seems like the best way for now to avoid such issues.

4.4.0

Minor Changes

  • #2217 b4aae00f77 Thanks @omeraplak! - All of the refine packages have dependencies on the @pankod/refine-core package. So far we have managed these dependencies with peerDependencies + dependencies but this causes issues like #2183. (having more than one @pankod/refine-core version in node_modules and creating different instances)

    Managing as peerDependencies + devDependencies seems like the best way for now to avoid such issues.

4.3.2

Patch Changes

  • Add support for multiple operators on the same field - #2154

4.3.1

Patch Changes

4.3.0

Minor Changes

  • @pankod/refine-core

    • Added extra params to useSubscription and useResourceSubscription
    • useOne, useMany and useList passed extra params to own subscription hook.

    @pankod/refine-hasura

    • Added liveProvider.

    To see an example of how to use it, check out here.

    @pankod/refine-nhost

    • Added liveProvider.

    To see an example of how to use it, check out here.

    @pankod/refine-graphql

    • Added liveProvider.

Patch Changes

  • Updated dependencies []:
    • @pankod/refine-core@3.42.0

4.2.0

Minor Changes

  • #2120 2aa7aace52 Thanks @salihozdemir! - ### @pankod/refine-core

    • Added extra params to useSubscription and useResourceSubscription
    • useOne, useMany and useList passed extra params to own subscription hook.

    @pankod/refine-hasura

    • Added liveProvider.

    To see an example of how to use it, check out here.

    @pankod/refine-nhost

    • Added liveProvider.

    To see an example of how to use it, check out here.

    @pankod/refine-graphql

    • Added liveProvider.

Patch Changes

  • Updated dependencies [2aa7aace52]:
    • @pankod/refine-core@3.41.0

4.1.0

Minor Changes

  • Upgraded grapql-request version in graphql data provider packages.

    Now the graphql-request and qql-query-builder packages are exported in these packages.

    - import dataProvider from "@pankod/refine-strapi-graphql";
    - import { GraphQLClient } from "graphql-request";
    - import * as qqlQueryBuilder from "gql-query-builder";
    + import dataProvider, { GraphQLClient, qqlQueryBuilder } from "@pankod/refine-strapi-graphql";
    

Patch Changes

  • Updated dependencies []:
    • @pankod/refine-core@3.38.2

4.0.0

Major Changes

  • #2113 c2fb7ac0e9 Thanks @omeraplak! - Upgraded grapql-request version in graphql data provider packages.

    Now the graphql-request and qql-query-builder packages are exported in these packages.

    - import dataProvider from "@pankod/refine-strapi-graphql";
    - import { GraphQLClient } from "graphql-request";
    - import * as qqlQueryBuilder from "gql-query-builder";
    + import dataProvider, { GraphQLClient, qqlQueryBuilder } from "@pankod/refine-strapi-graphql";
    

Patch Changes

  • Updated dependencies [ee8e8bbd6c]:
    • @pankod/refine-core@3.38.1

3.25.4

Patch Changes

  • Updated pagination parameters default values and added hasPagination property to getList method of the data providers.

    Implementation

    Updated the getList method accordingly to the changes in the useTable and useList of @pankod/refine-core. hasPagination is used to disable pagination (defaults to true)

    Use Cases

    For some resources, there might be no support for pagination or users might want to see all of the data without any pagination, prior to these changes this was not supported in refine data providers.

  • Updated dependencies []:

    • @pankod/refine-core@3.36.0

3.25.3

Patch Changes

  • #2050 635cfe9fdb Thanks @ozkalai! - Updated pagination parameters default values and added hasPagination property to getList method of the data providers.

    Implementation

    Updated the getList method accordingly to the changes in the useTable and useList of @pankod/refine-core. hasPagination is used to disable pagination (defaults to true)

    Use Cases

    For some resources, there might be no support for pagination or users might want to see all of the data without any pagination, prior to these changes this was not supported in refine data providers.

  • Updated dependencies [ecde34a9b3, 635cfe9fdb]:

    • @pankod/refine-core@3.35.0

3.25.2

Patch Changes

  • Added graphql-request dependency to peerDependencies

3.25.1

Patch Changes

3.22.2

Patch Changes

  • Updated dependencies [2deb19babf]:
    • @pankod/refine-core@3.23.2