OpenPanel/packages/supabase/CHANGELOG.md
2024-02-05 10:23:04 +01:00

25 KiB

@refinedev/supabase

5.7.5

Patch Changes

  • #5358 124a035cb7 Thanks @jimsmart! - fix: Support multiple events on Supabase's liveProvider's subscribe method. #5357

5.7.4

Patch Changes

5.7.3

Patch Changes

5.7.2

Patch Changes

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

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

5.7.1

Patch Changes

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

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

5.7.0

Minor Changes

5.6.0

Minor Changes

5.5.2

Patch Changes

5.5.1

Patch Changes

5.5.0

Minor Changes

  • #4213 db3b63c1e71 Thanks @02JanDal! - feat: added select field capability to data provider mutation methods

    Now you can pass select field to create, update createMany and updateMany methods of data provider to get fields you need from the response.

    For example:

    useCreate({
        resource: "posts",
        variables: {
            title: "Hello World",
            content: "Lorem ipsum dolor sit amet",
        },
        meta: {
            select: "title, content",
        },
    });
    

5.4.0

Minor Changes

  • #4213 db3b63c1e71 Thanks @02JanDal! - feat: added select field capability to data provider mutation methods

    Now you can pass select field to create, update createMany and updateMany methods of data provider to get fields you need from the response.

    For example:

    useCreate({
        resource: "posts",
        variables: {
            title: "Hello World",
            content: "Lorem ipsum dolor sit amet",
        },
        meta: {
            select: "title, content",
        },
    });
    

5.3.0

Minor Changes

  • #4183 0c1d4944397 Thanks @yildirayunlu! - fix: update custom id column name on meta params

    BREAKING CHANGE: meta.idColumnName is used instead of meta.id when the primary key column name of your data table is different from id.

    useMany({
        resource: "posts",
        ids: [1, 2],
        meta: {
    -        id: "post_id",
    +        idColumnName: "post_id",
        },
    });
    
  • #4182 a58e9a0f1b0 Thanks @alicanerdurmaz! - feat: added refine.config.js to support swizzling. Now with swizzle support, you can easily customize supabase data provider for your needs.

    feat: tests added for utility functions.

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

5.2.0

Minor Changes

  • #4183 0c1d4944397 Thanks @yildirayunlu! - fix: update custom id column name on meta params

    BREAKING CHANGE: meta.idColumnName is used instead of meta.id when the primary key column name of your data table is different from id.

    useMany({
        resource: "posts",
        ids: [1, 2],
        meta: {
    -        id: "post_id",
    +        idColumnName: "post_id",
        },
    });
    
  • #4182 a58e9a0f1b0 Thanks @alicanerdurmaz! - feat: added refine.config.js to support swizzling. Now with swizzle support, you can easily customize supabase data provider for your needs.

    feat: tests added for utility functions.

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

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.3.0

Minor Changes

4.2.0

Minor Changes

4.1.2

Patch Changes

  • #3612 3b1a3a3dd63 Thanks @aliemir! - - Fix realtime subscriptions without filters.
    • Remove and and or filter types in realtime subscriptions.

4.1.1

Patch Changes

  • #3612 3b1a3a3dd63 Thanks @aliemir! - - Fix realtime subscriptions without filters.
    • Remove and and or filter types in realtime subscriptions.

4.1.0

Minor Changes

  • #3528 e8b34442521 Thanks @yildirayunlu! - Updated supabase-js to v2. supabase has published a migration guide. These are some of the changes to refine.

    • Create Supabase client:

    Before:

    import { createClient } from "@supabase/supabase-js";
    
    export const supabaseClient = createClient(SUPABASE_URL, SUPABASE_KEY);
    

    After:

    import { createClient } from "@supabase/supabase-js";
    
    export const supabaseClient = createClient(SUPABASE_URL, SUPABASE_KEY, {
        db: {
            schema: "public",
        },
        auth: {
            persistSession: true,
        },
    });
    
    • Sign In method:

    Before:

    const { user, error } = await supabaseClient.auth.signIn({
        email,
        password,
        provider: providerName,
    });
    

    After:

    const { data, error } = await supabaseClient.auth.signInWithPassword({
        email,
        password,
    });
    

    with OAuth:

    const { data, error } = await supabaseClient.auth.signInWithOAuth({
        provider: providerName,
    });
    
    • Sign Up method:

    Before:

    const { user, error } = await supabaseClient.auth.signUp({
        email,
        password,
    });
    

    After:

    const { data, error } = await supabaseClient.auth.signUp({
        email,
        password,
    });
    
    • Reset Password with Email

      Before:

      const { data, error } =
          await supabaseClient.auth.api.resetPasswordForEmail(email, {
              redirectTo: `${window.location.origin}/update-password`,
          });
      

      After:

      const { data, error } = await supabaseClient.auth.resetPasswordForEmail(
          email,
          {
              redirectTo: `${window.location.origin}/update-password`,
          },
      );
      
    • Update User

    Before:

    const { data, error } = await supabaseClient.auth.update({
        password,
    });
    

    After:

    const { data, error } = await supabaseClient.auth.updateUser({
        password,
    });
    
    • Get Sesssion

    Before:

    const session = supabaseClient.auth.session();
    

    After:

    const { data, error } = await supabaseClient.auth.getSession();
    
    • Get User

      Before:

      const user = supabaseClient.auth.user();
      

      After:

      const { data, error } = await supabaseClient.auth.getUser();
      

4.0.0

Major Changes

  • #3528 e8b34442521 Thanks @yildirayunlu! - Updated supabase-js to v2. supabase has published a migration guide. These are some of the changes to refine.

    • Create Supabase client:

    Before:

    import { createClient } from "@supabase/supabase-js";
    
    export const supabaseClient = createClient(SUPABASE_URL, SUPABASE_KEY);
    

    After:

    import { createClient } from "@supabase/supabase-js";
    
    export const supabaseClient = createClient(SUPABASE_URL, SUPABASE_KEY, {
        db: {
            schema: "public",
        },
        auth: {
            persistSession: true,
        },
    });
    
    • Sign In method:

    Before:

    const { user, error } = await supabaseClient.auth.signIn({
        email,
        password,
        provider: providerName,
    });
    

    After:

    const { data, error } = await supabaseClient.auth.signInWithPassword({
        email,
        password,
    });
    

    with OAuth:

    const { data, error } = await supabaseClient.auth.signInWithOAuth({
        provider: providerName,
    });
    
    • Sign Up method:

    Before:

    const { user, error } = await supabaseClient.auth.signUp({
        email,
        password,
    });
    

    After:

    const { data, error } = await supabaseClient.auth.signUp({
        email,
        password,
    });
    
    • Reset Password with Email

      Before:

      const { data, error } =
          await supabaseClient.auth.api.resetPasswordForEmail(email, {
              redirectTo: `${window.location.origin}/update-password`,
          });
      

      After:

      const { data, error } = await supabaseClient.auth.resetPasswordForEmail(
          email,
          {
              redirectTo: `${window.location.origin}/update-password`,
          },
      );
      
    • Update User

    Before:

    const { data, error } = await supabaseClient.auth.update({
        password,
    });
    

    After:

    const { data, error } = await supabaseClient.auth.updateUser({
        password,
    });
    
    • Get Sesssion

    Before:

    const session = supabaseClient.auth.session();
    

    After:

    const { data, error } = await supabaseClient.auth.getSession();
    
    • Get User

      Before:

      const user = supabaseClient.auth.user();
      

      After:

      const { data, error } = await supabaseClient.auth.getUser();
      

3.35.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,
            },
          ],
        },
      ],
    }
    

3.34.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,
            },
          ],
        },
      ],
    }
    

3.33.0

Minor Changes

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

3.32.0

Minor Changes

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

3.31.0

Minor Changes

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

3.30.0

Minor Changes

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

3.29.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.

3.28.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.

3.27.0

Minor Changes

  • Add foreignTable propery to the supabase order statement to access relational data. For more information, you can check the 🔗documentation.

    What we added to the getlist hook is the following:

    💡 How use the foreignTable property?

    ...
    const { tableProps } = useTable({
        resource: "posts",
        initialSorter: [
            {
                field: "categories.title",
                order: "asc",
            },
        ],
    });
    

    📢 field: "categories.title" means in the posts table categories is the foreign table, title is the field in the foreign table, and asc is the order.

    🚨 If you are using Ant Design don't forget to pass the sorter and dataIndex property to the your Columm component:

    ...
    <Table.Column
        dataIndex={["categories", "title"]}
        title="Categories"
        sorter
    

    Warning

    We have developed this feature due to an issue here but currently, supabase doesn't support it. You can follow the progress here 👇

3.26.0

Minor Changes

  • #2087 62f1e6256d Thanks @biskuvit! - Add foreignTable propery to the supabase order statement to access relational data. For more information, you can check the 🔗documentation.

    What we added to the getlist hook is the following:

    💡 How use the foreignTable property?

    ...
    const { tableProps } = useTable({
        resource: "posts",
        initialSorter: [
            {
                field: "categories.title",
                order: "asc",
            },
        ],
    });
    

    📢 field: "categories.title" means in the posts table categories is the foreign table, title is the field in the foreign table, and asc is the order.

    🚨 If you are using Ant Design don't forget to pass the sorter and dataIndex property to the your Columm component:

    ...
    <Table.Column
        dataIndex={["categories", "title"]}
        title="Categories"
        sorter
    

    Warning

    We have developed this feature due to an issue here but currently, supabase doesn't support it. You can follow the progress here 👇

3.25.2

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.1

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.22.2

Patch Changes

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