diff --git a/apps/docs/scripts/__snapshots__/build-reference-content.v2.json b/apps/docs/scripts/__snapshots__/build-reference-content.v2.json index f15c6ac0e19..d551a84d8f7 100644 --- a/apps/docs/scripts/__snapshots__/build-reference-content.v2.json +++ b/apps/docs/scripts/__snapshots__/build-reference-content.v2.json @@ -1345,6 +1345,20 @@ "product": "storage", "type": "function" }, + "file-buckets-purgebucketcache": { + "id": "file-buckets-purgebucketcache", + "title": "purgeBucketCache", + "slug": "file-buckets-purgebucketcache", + "product": "storage", + "type": "function" + }, + "file-buckets-purgecache": { + "id": "file-buckets-purgecache", + "title": "purgeCache", + "slug": "file-buckets-purgecache", + "product": "storage", + "type": "function" + }, "file-buckets-remove": { "id": "file-buckets-remove", "title": "remove", @@ -1709,6 +1723,8 @@ "[Circular]", "[Circular]", "[Circular]", + "[Circular]", + "[Circular]", "[Circular]" ], "sections": [ @@ -2034,6 +2050,8 @@ "[Circular]", "[Circular]", "[Circular]", + "[Circular]", + "[Circular]", "[Circular]" ] }, @@ -2896,6 +2914,14 @@ "id": "file-buckets-move", "$ref": "@supabase/storage-js.packages/StorageFileApi.default.move" }, + { + "id": "file-buckets-purgebucketcache", + "$ref": "@supabase/storage-js.StorageClient.purgeBucketCache" + }, + { + "id": "file-buckets-purgecache", + "$ref": "@supabase/storage-js.packages/StorageFileApi.default.purgeCache" + }, { "id": "file-buckets-remove", "$ref": "@supabase/storage-js.packages/StorageFileApi.default.remove" @@ -27781,6 +27807,20 @@ "shortText": "OAuth client secret (write-only, not returned in responses)" } }, + { + "name": "custom_claims_allowlist", + "type": { + "type": "array", + "elemType": { + "type": "intrinsic", + "name": "string" + } + }, + "isOptional": true, + "comment": { + "shortText": "Allowlist of raw identity provider claim keys to copy verbatim into the\nuser's `custom_claims` field (within `identity_data` and\n`raw_user_meta_data`), e.g. `[\"groups\", \"org_id\", \"mail\"]`. This is an\nopt-in allowlist that defaults to empty (no claims captured) and operates\nindependently from `attribute_mapping`." + } + }, { "name": "discovery_url", "type": { @@ -28038,6 +28078,20 @@ "shortText": "Timestamp when the provider was created" } }, + { + "name": "custom_claims_allowlist", + "type": { + "type": "array", + "elemType": { + "type": "intrinsic", + "name": "string" + } + }, + "isOptional": true, + "comment": { + "shortText": "Allowlist of raw identity provider claim keys to copy verbatim into the\nuser's `custom_claims` field (within `identity_data` and\n`raw_user_meta_data`), e.g. `[\"groups\", \"org_id\", \"mail\"]`. This is an\nopt-in allowlist that defaults to empty (no claims captured) and operates\nindependently from `attribute_mapping`." + } + }, { "name": "discovery_document", "type": { @@ -28510,6 +28564,17 @@ "shortText": "Timestamp when the provider was created" } }, + { + "name": "custom_claims_allowlist", + "type": { + "type": "array", + "elemType": "[Circular]" + }, + "isOptional": true, + "comment": { + "shortText": "Allowlist of raw identity provider claim keys to copy verbatim into the\nuser's `custom_claims` field (within `identity_data` and\n`raw_user_meta_data`), e.g. `[\"groups\", \"org_id\", \"mail\"]`. This is an\nopt-in allowlist that defaults to empty (no claims captured) and operates\nindependently from `attribute_mapping`." + } + }, { "name": "discovery_document", "type": { @@ -28883,6 +28948,17 @@ "shortText": "Timestamp when the provider was created" } }, + { + "name": "custom_claims_allowlist", + "type": { + "type": "array", + "elemType": "[Circular]" + }, + "isOptional": true, + "comment": { + "shortText": "Allowlist of raw identity provider claim keys to copy verbatim into the\nuser's `custom_claims` field (within `identity_data` and\n`raw_user_meta_data`), e.g. `[\"groups\", \"org_id\", \"mail\"]`. This is an\nopt-in allowlist that defaults to empty (no claims captured) and operates\nindependently from `attribute_mapping`." + } + }, { "name": "discovery_document", "type": { @@ -29263,6 +29339,20 @@ "shortText": "OAuth client secret (write-only, not returned in responses)" } }, + { + "name": "custom_claims_allowlist", + "type": { + "type": "array", + "elemType": { + "type": "intrinsic", + "name": "string" + } + }, + "isOptional": true, + "comment": { + "shortText": "Allowlist of raw identity provider claim keys to copy verbatim into the\nuser's `custom_claims` field (within `identity_data` and\n`raw_user_meta_data`), e.g. `[\"groups\", \"org_id\", \"mail\"]`. This is an\nopt-in allowlist that defaults to empty (no claims captured) and operates\nindependently from `attribute_mapping`." + } + }, { "name": "discovery_url", "type": { @@ -29467,6 +29557,17 @@ "shortText": "Timestamp when the provider was created" } }, + { + "name": "custom_claims_allowlist", + "type": { + "type": "array", + "elemType": "[Circular]" + }, + "isOptional": true, + "comment": { + "shortText": "Allowlist of raw identity provider claim keys to copy verbatim into the\nuser's `custom_claims` field (within `identity_data` and\n`raw_user_meta_data`), e.g. `[\"groups\", \"org_id\", \"mail\"]`. This is an\nopt-in allowlist that defaults to empty (no claims captured) and operates\nindependently from `attribute_mapping`." + } + }, { "name": "discovery_document", "type": { @@ -35210,6 +35311,9 @@ "type": { "type": "nameOnly", "name": "TableName" + }, + "comment": { + "shortText": "The table or view name to query" } } ], @@ -35230,6 +35334,9 @@ "type": { "type": "nameOnly", "name": "ViewName" + }, + "comment": { + "shortText": "The table or view name to query" } } ], @@ -35749,6 +35856,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The jsonb, array, or range column to filter on" } }, { @@ -35780,6 +35890,9 @@ } } ] + }, + "comment": { + "shortText": "The jsonb, array, or range value to filter with" } } ], @@ -35830,6 +35943,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The jsonb, array, or range column to filter on" } }, { @@ -35861,6 +35977,9 @@ } } ] + }, + "comment": { + "shortText": "The jsonb, array, or range value to filter with" } } ], @@ -35881,6 +36000,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The jsonb, array, or range column to filter on" } }, { @@ -35912,6 +36034,9 @@ } } ] + }, + "comment": { + "shortText": "The jsonb, array, or range value to filter with" } } ], @@ -35962,6 +36087,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The jsonb, array, or range column to filter on" } }, { @@ -35993,6 +36121,9 @@ } } ] + }, + "comment": { + "shortText": "The jsonb, array, or range value to filter with" } } ], @@ -36206,6 +36337,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36318,6 +36452,9 @@ "value": "not.imatch" } ] + }, + "comment": { + "shortText": "The operator to filter with, following PostgREST syntax" } }, { @@ -36325,6 +36462,9 @@ "type": { "type": "intrinsic", "name": "unknown" + }, + "comment": { + "shortText": "The value to filter with, following PostgREST syntax" } } ], @@ -36366,6 +36506,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36373,6 +36516,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The operator to filter with, following PostgREST syntax" } }, { @@ -36380,6 +36526,9 @@ "type": { "type": "intrinsic", "name": "unknown" + }, + "comment": { + "shortText": "The value to filter with, following PostgREST syntax" } } ], @@ -36413,6 +36562,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36420,6 +36572,9 @@ "type": { "type": "nameOnly", "name": "Row['ColumnName']" + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -36452,6 +36607,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36459,6 +36617,9 @@ "type": { "type": "intrinsic", "name": "unknown" + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -36479,6 +36640,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36486,6 +36650,9 @@ "type": { "type": "nameOnly", "name": "Row['ColumnName']" + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -36517,6 +36684,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36524,6 +36694,9 @@ "type": { "type": "intrinsic", "name": "unknown" + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -36544,6 +36717,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36551,6 +36727,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The pattern to match with" } } ], @@ -36582,6 +36761,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36589,6 +36771,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The pattern to match with" } } ], @@ -36609,6 +36794,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36619,6 +36807,9 @@ "type": "intrinsic", "name": "string" } + }, + "comment": { + "shortText": "The patterns to match with" } } ], @@ -36639,6 +36830,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36649,6 +36843,9 @@ "type": "intrinsic", "name": "string" } + }, + "comment": { + "shortText": "The patterns to match with" } } ], @@ -36669,6 +36866,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36679,6 +36879,9 @@ "type": "intrinsic", "name": "string" } + }, + "comment": { + "shortText": "The patterns to match with" } } ], @@ -36699,6 +36902,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36709,6 +36915,9 @@ "type": "intrinsic", "name": "string" } + }, + "comment": { + "shortText": "The patterns to match with" } } ], @@ -36773,10 +36982,16 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { - "name": "value" + "name": "value", + "comment": { + "shortText": "The value to filter with" + } } ], "ret": { @@ -36808,6 +37023,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36824,6 +37042,9 @@ "name": "boolean" } ] + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -36874,6 +37095,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36881,6 +37105,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The pattern to match with" } } ], @@ -36912,6 +37139,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36919,6 +37149,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The pattern to match with" } } ], @@ -36939,6 +37172,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36949,6 +37185,9 @@ "type": "intrinsic", "name": "string" } + }, + "comment": { + "shortText": "The patterns to match with" } } ], @@ -36969,6 +37208,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -36979,6 +37221,9 @@ "type": "intrinsic", "name": "string" } + }, + "comment": { + "shortText": "The patterns to match with" } } ], @@ -36999,6 +37244,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -37009,6 +37257,9 @@ "type": "intrinsic", "name": "string" } + }, + "comment": { + "shortText": "The patterns to match with" } } ], @@ -37029,6 +37280,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -37039,6 +37293,9 @@ "type": "intrinsic", "name": "string" } + }, + "comment": { + "shortText": "The patterns to match with" } } ], @@ -37136,6 +37393,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -37143,6 +37403,9 @@ "type": { "type": "nameOnly", "name": "Row['ColumnName']" + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -37174,6 +37437,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -37181,6 +37447,9 @@ "type": { "type": "intrinsic", "name": "unknown" + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -37201,6 +37470,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -37208,6 +37480,9 @@ "type": { "type": "nameOnly", "name": "Row['ColumnName']" + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -37239,6 +37514,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -37246,6 +37524,9 @@ "type": { "type": "intrinsic", "name": "unknown" + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -37274,6 +37555,9 @@ "type": "nameOnly", "name": "Row['ColumnName']" } + }, + "comment": { + "shortText": "The object to filter with, with column names as keys mapped\nto their filter values" } } ], @@ -37313,6 +37597,9 @@ "type": "intrinsic", "name": "unknown" } + }, + "comment": { + "shortText": "The object to filter with, with column names as keys mapped\nto their filter values" } } ], @@ -37412,6 +37699,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -37419,6 +37709,9 @@ "type": { "type": "literal", "value": "is" + }, + "comment": { + "shortText": "The operator to be negated to filter with, following\nPostgREST syntax" } }, { @@ -37426,6 +37719,9 @@ "type": { "type": "literal", "value": null + }, + "comment": { + "shortText": "The value to filter with, following PostgREST syntax" } } ], @@ -37452,6 +37748,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -37459,6 +37758,9 @@ "type": { "type": "nameOnly", "name": "FilterOperator" + }, + "comment": { + "shortText": "The operator to be negated to filter with, following\nPostgREST syntax" } }, { @@ -37466,6 +37768,9 @@ "type": { "type": "nameOnly", "name": "Row['ColumnName']" + }, + "comment": { + "shortText": "The value to filter with, following PostgREST syntax" } } ], @@ -37483,6 +37788,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -37490,6 +37798,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The operator to be negated to filter with, following\nPostgREST syntax" } }, { @@ -37497,6 +37808,9 @@ "type": { "type": "intrinsic", "name": "unknown" + }, + "comment": { + "shortText": "The value to filter with, following PostgREST syntax" } } ], @@ -37637,6 +37951,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to order by" } }, { @@ -37650,7 +37967,10 @@ "type": "intrinsic", "name": "boolean" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "If `true`, the result will be in ascending order" + } }, { "name": "nullsFirst", @@ -37658,7 +37978,10 @@ "type": "intrinsic", "name": "boolean" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "If `true`, `null`s appear first. If `false`,\n`null`s appear last." + } }, { "name": "referencedTable", @@ -37666,11 +37989,17 @@ "type": "intrinsic", "name": "undefined" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Set this to order a referenced table by\nits columns" + } } ] }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Named parameters" + } } ], "ret": { @@ -37721,6 +38050,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to order by" } }, { @@ -37734,7 +38066,10 @@ "type": "intrinsic", "name": "boolean" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "If `true`, the result will be in ascending order" + } }, { "name": "nullsFirst", @@ -37742,7 +38077,10 @@ "type": "intrinsic", "name": "boolean" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "If `true`, `null`s appear first. If `false`,\n`null`s appear last." + } }, { "name": "referencedTable", @@ -37750,11 +38088,17 @@ "type": "intrinsic", "name": "string" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Set this to order a referenced table by\nits columns" + } } ] }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Named parameters" + } } ], "ret": { @@ -37874,6 +38218,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The array or range column to filter on" } }, { @@ -37893,6 +38240,9 @@ } } ] + }, + "comment": { + "shortText": "The array or range value to filter with" } } ], @@ -37934,6 +38284,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The array or range column to filter on" } }, { @@ -37953,6 +38306,9 @@ } } ] + }, + "comment": { + "shortText": "The array or range value to filter with" } } ], @@ -38100,6 +38456,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -38107,6 +38466,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -38139,6 +38501,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -38146,6 +38511,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -38166,6 +38534,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -38173,6 +38544,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -38205,6 +38579,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -38212,6 +38589,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -38232,6 +38612,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -38239,6 +38622,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -38271,6 +38657,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -38278,6 +38667,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -38298,6 +38690,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -38305,6 +38700,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -38337,6 +38735,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -38344,6 +38745,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -38364,6 +38768,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -38371,6 +38778,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -38403,6 +38813,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -38410,6 +38823,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -38430,6 +38846,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -38437,6 +38856,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The PostgreSQL regular expression pattern to match with" } } ], @@ -38457,6 +38879,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -38464,6 +38889,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The PostgreSQL regular expression pattern to match with" } } ], @@ -38484,6 +38912,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -38491,6 +38922,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The PostgreSQL regular expression pattern to match with" } } ], @@ -38511,6 +38945,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -38518,6 +38955,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The PostgreSQL regular expression pattern to match with" } } ], @@ -38735,6 +39175,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The text or tsvector column to filter on" } }, { @@ -38742,6 +39185,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The query text to match with" } }, { @@ -38755,7 +39201,10 @@ "type": "intrinsic", "name": "string" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "The text search configuration to use" + } }, { "name": "type", @@ -38776,11 +39225,17 @@ } ] }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Change how the `query` text is interpreted" + } } ] }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Named parameters" + } } ], "ret": { @@ -38830,6 +39285,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The text or tsvector column to filter on" } }, { @@ -38837,6 +39295,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The query text to match with" } }, { @@ -38850,7 +39311,10 @@ "type": "intrinsic", "name": "string" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "The text search configuration to use" + } }, { "name": "type", @@ -38871,11 +39335,17 @@ } ] }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Change how the `query` text is interpreted" + } } ] }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Named parameters" + } } ], "ret": { @@ -40312,6 +40782,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to order by" } }, { @@ -40325,7 +40798,10 @@ "type": "intrinsic", "name": "boolean" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "If `true`, the result will be in ascending order" + } }, { "name": "nullsFirst", @@ -40333,7 +40809,10 @@ "type": "intrinsic", "name": "boolean" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "If `true`, `null`s appear first. If `false`,\n`null`s appear last." + } }, { "name": "referencedTable", @@ -40341,11 +40820,17 @@ "type": "intrinsic", "name": "undefined" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Set this to order a referenced table by\nits columns" + } } ] }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Named parameters" + } } ], "ret": { @@ -40396,6 +40881,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to order by" } }, { @@ -40409,7 +40897,10 @@ "type": "intrinsic", "name": "boolean" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "If `true`, the result will be in ascending order" + } }, { "name": "nullsFirst", @@ -40417,7 +40908,10 @@ "type": "intrinsic", "name": "boolean" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "If `true`, `null`s appear first. If `false`,\n`null`s appear last." + } }, { "name": "referencedTable", @@ -40425,11 +40919,17 @@ "type": "intrinsic", "name": "string" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Set this to order a referenced table by\nits columns" + } } ] }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Named parameters" + } } ], "ret": { @@ -41019,6 +41519,14 @@ }, "isOptional": true }, + { + "name": "replication_ready", + "type": { + "type": "intrinsic", + "name": "boolean" + }, + "isOptional": true + }, { "name": "self", "type": { @@ -41031,7 +41539,7 @@ }, "isOptional": true, "comment": { - "shortText": "self option enables client to receive message it broadcast\nack option instructs server to acknowledge that broadcast message was received\nreplay option instructs server to replay broadcast messages" + "shortText": "self option enables client to receive message it broadcast\nack option instructs server to acknowledge that broadcast message was received\nreplay option instructs server to replay broadcast messages\nreplication_ready option instructs the server to emit a `system` event once the\nPostgres replication connection backing this channel is established and ready to\nstream changes. Listen for it with `channel.on('system', {}, (payload) => ...)`;\nthe payload's `status` is `'ok'` (`message: 'Replication connection established'`)\non success or `'error'` if the connection is not ready in time." } }, { @@ -41269,7 +41777,7 @@ } }, "comment": { - "shortText": "Creates an event handler that listens to changes.", + "shortText": "Listen for presence events on this channel — when peers join, leave, or\nsync presence state.", "text": "- By default, Broadcast and Presence are enabled for all projects.\n- By default, listening to database changes is disabled for new projects due to database performance and security concerns. You can turn it on by managing Realtime's [replication](/docs/guides/api#realtime-api-overview).\n- You can receive the \"previous\" data for updates and deletes by setting the table's `REPLICA IDENTITY` to `FULL` (e.g., `ALTER TABLE your_table REPLICA IDENTITY FULL;`).\n- Row level security is not applied to delete statements. When RLS is enabled and replica identity is set to full, only the primary key is sent to clients.", "examples": [ { @@ -41653,12 +42161,21 @@ { "name": "filter", "type": { - "type": "intrinsic", - "name": "string" + "type": "union", + "subTypes": [ + { + "type": "intrinsic", + "name": "string" + }, + { + "type": "nameOnly", + "name": "RealtimePostgresFilterBuilder" + } + ] }, "isOptional": true, "comment": { - "shortText": "Receive database changes when filter is matched." + "shortText": "Receive database changes only when the filter is matched.\n\nA filter is a `column=operator.value` expression, e.g. `id=eq.1` or\n`title=like.%foo%`. See RealtimePostgresChangesFilterOperator for\nthe available operators.\n\nMultiple filters can be combined with commas; they are applied as an `AND`\ncondition: `filter: 'id=gt.0,id=lt.100'`.\n\nAny operator can be negated with the `not.` prefix: `filter: 'status=not.in.(draft,archived)'`.\n\nThe server splits conditions on commas outside quotes/parentheses. To\ninclude a reserved character (`,`, `(`, `)`) in a value, wrap it in double\nquotes PostgREST-style: `name=eq.\"a,b\"`. The RealtimePostgresFilterBuilder\ndoes this quoting for you.\n\nInstead of a raw string you can pass a RealtimePostgresFilterBuilder\n(via `postgresChangesFilter()`) for a type-checked, ergonomic way to compose filters; the\nSDK serializes it to a string automatically." } }, { @@ -41671,6 +42188,27 @@ "shortText": "The database schema to listen to." } }, + { + "name": "select", + "type": { + "type": "array", + "elemType": { + "type": "intrinsic", + "name": "string" + } + }, + "isOptional": true, + "comment": { + "shortText": "Restrict the change payload to a subset of columns instead of receiving the\nfull row. Reduces payload size (helpful for large `bytea`/`jsonb` columns)\nand the data transferred per event.\n\nThe listed columns must be selectable by the subscribing role.", + "examples": [ + { + "id": "example-1", + "name": "Example 1", + "code": "```ts\nchannel.on('postgres_changes', {\n event: '*',\n schema: 'public',\n table: 'users',\n select: ['id', 'first_name'],\n}, (payload) => {\n // payload.new only contains { id, first_name }\n})\n```" + } + ] + } + }, { "name": "table", "type": { @@ -41755,10 +42293,19 @@ }, { "name": "filter", - "type": "[Circular]", + "type": { + "type": "union", + "subTypes": [ + "[Circular]", + { + "type": "nameOnly", + "name": "RealtimePostgresFilterBuilder" + } + ] + }, "isOptional": true, "comment": { - "shortText": "Receive database changes when filter is matched." + "shortText": "Receive database changes only when the filter is matched.\n\nA filter is a `column=operator.value` expression, e.g. `id=eq.1` or\n`title=like.%foo%`. See RealtimePostgresChangesFilterOperator for\nthe available operators.\n\nMultiple filters can be combined with commas; they are applied as an `AND`\ncondition: `filter: 'id=gt.0,id=lt.100'`.\n\nAny operator can be negated with the `not.` prefix: `filter: 'status=not.in.(draft,archived)'`.\n\nThe server splits conditions on commas outside quotes/parentheses. To\ninclude a reserved character (`,`, `(`, `)`) in a value, wrap it in double\nquotes PostgREST-style: `name=eq.\"a,b\"`. The RealtimePostgresFilterBuilder\ndoes this quoting for you.\n\nInstead of a raw string you can pass a RealtimePostgresFilterBuilder\n(via `postgresChangesFilter()`) for a type-checked, ergonomic way to compose filters; the\nSDK serializes it to a string automatically." } }, { @@ -41768,6 +42315,24 @@ "shortText": "The database schema to listen to." } }, + { + "name": "select", + "type": { + "type": "array", + "elemType": "[Circular]" + }, + "isOptional": true, + "comment": { + "shortText": "Restrict the change payload to a subset of columns instead of receiving the\nfull row. Reduces payload size (helpful for large `bytea`/`jsonb` columns)\nand the data transferred per event.\n\nThe listed columns must be selectable by the subscribing role.", + "examples": [ + { + "id": "example-1", + "name": "Example 1", + "code": "```ts\nchannel.on('postgres_changes', {\n event: '*',\n schema: 'public',\n table: 'users',\n select: ['id', 'first_name'],\n}, (payload) => {\n // payload.new only contains { id, first_name }\n})\n```" + } + ] + } + }, { "name": "table", "type": "[Circular]", @@ -41835,10 +42400,19 @@ }, { "name": "filter", - "type": "[Circular]", + "type": { + "type": "union", + "subTypes": [ + "[Circular]", + { + "type": "nameOnly", + "name": "RealtimePostgresFilterBuilder" + } + ] + }, "isOptional": true, "comment": { - "shortText": "Receive database changes when filter is matched." + "shortText": "Receive database changes only when the filter is matched.\n\nA filter is a `column=operator.value` expression, e.g. `id=eq.1` or\n`title=like.%foo%`. See RealtimePostgresChangesFilterOperator for\nthe available operators.\n\nMultiple filters can be combined with commas; they are applied as an `AND`\ncondition: `filter: 'id=gt.0,id=lt.100'`.\n\nAny operator can be negated with the `not.` prefix: `filter: 'status=not.in.(draft,archived)'`.\n\nThe server splits conditions on commas outside quotes/parentheses. To\ninclude a reserved character (`,`, `(`, `)`) in a value, wrap it in double\nquotes PostgREST-style: `name=eq.\"a,b\"`. The RealtimePostgresFilterBuilder\ndoes this quoting for you.\n\nInstead of a raw string you can pass a RealtimePostgresFilterBuilder\n(via `postgresChangesFilter()`) for a type-checked, ergonomic way to compose filters; the\nSDK serializes it to a string automatically." } }, { @@ -41848,6 +42422,24 @@ "shortText": "The database schema to listen to." } }, + { + "name": "select", + "type": { + "type": "array", + "elemType": "[Circular]" + }, + "isOptional": true, + "comment": { + "shortText": "Restrict the change payload to a subset of columns instead of receiving the\nfull row. Reduces payload size (helpful for large `bytea`/`jsonb` columns)\nand the data transferred per event.\n\nThe listed columns must be selectable by the subscribing role.", + "examples": [ + { + "id": "example-1", + "name": "Example 1", + "code": "```ts\nchannel.on('postgres_changes', {\n event: '*',\n schema: 'public',\n table: 'users',\n select: ['id', 'first_name'],\n}, (payload) => {\n // payload.new only contains { id, first_name }\n})\n```" + } + ] + } + }, { "name": "table", "type": "[Circular]", @@ -41915,10 +42507,19 @@ }, { "name": "filter", - "type": "[Circular]", + "type": { + "type": "union", + "subTypes": [ + "[Circular]", + { + "type": "nameOnly", + "name": "RealtimePostgresFilterBuilder" + } + ] + }, "isOptional": true, "comment": { - "shortText": "Receive database changes when filter is matched." + "shortText": "Receive database changes only when the filter is matched.\n\nA filter is a `column=operator.value` expression, e.g. `id=eq.1` or\n`title=like.%foo%`. See RealtimePostgresChangesFilterOperator for\nthe available operators.\n\nMultiple filters can be combined with commas; they are applied as an `AND`\ncondition: `filter: 'id=gt.0,id=lt.100'`.\n\nAny operator can be negated with the `not.` prefix: `filter: 'status=not.in.(draft,archived)'`.\n\nThe server splits conditions on commas outside quotes/parentheses. To\ninclude a reserved character (`,`, `(`, `)`) in a value, wrap it in double\nquotes PostgREST-style: `name=eq.\"a,b\"`. The RealtimePostgresFilterBuilder\ndoes this quoting for you.\n\nInstead of a raw string you can pass a RealtimePostgresFilterBuilder\n(via `postgresChangesFilter()`) for a type-checked, ergonomic way to compose filters; the\nSDK serializes it to a string automatically." } }, { @@ -41928,6 +42529,24 @@ "shortText": "The database schema to listen to." } }, + { + "name": "select", + "type": { + "type": "array", + "elemType": "[Circular]" + }, + "isOptional": true, + "comment": { + "shortText": "Restrict the change payload to a subset of columns instead of receiving the\nfull row. Reduces payload size (helpful for large `bytea`/`jsonb` columns)\nand the data transferred per event.\n\nThe listed columns must be selectable by the subscribing role.", + "examples": [ + { + "id": "example-1", + "name": "Example 1", + "code": "```ts\nchannel.on('postgres_changes', {\n event: '*',\n schema: 'public',\n table: 'users',\n select: ['id', 'first_name'],\n}, (payload) => {\n // payload.new only contains { id, first_name }\n})\n```" + } + ] + } + }, { "name": "table", "type": "[Circular]", @@ -42012,10 +42631,19 @@ }, { "name": "filter", - "type": "[Circular]", + "type": { + "type": "union", + "subTypes": [ + "[Circular]", + { + "type": "nameOnly", + "name": "RealtimePostgresFilterBuilder" + } + ] + }, "isOptional": true, "comment": { - "shortText": "Receive database changes when filter is matched." + "shortText": "Receive database changes only when the filter is matched.\n\nA filter is a `column=operator.value` expression, e.g. `id=eq.1` or\n`title=like.%foo%`. See RealtimePostgresChangesFilterOperator for\nthe available operators.\n\nMultiple filters can be combined with commas; they are applied as an `AND`\ncondition: `filter: 'id=gt.0,id=lt.100'`.\n\nAny operator can be negated with the `not.` prefix: `filter: 'status=not.in.(draft,archived)'`.\n\nThe server splits conditions on commas outside quotes/parentheses. To\ninclude a reserved character (`,`, `(`, `)`) in a value, wrap it in double\nquotes PostgREST-style: `name=eq.\"a,b\"`. The RealtimePostgresFilterBuilder\ndoes this quoting for you.\n\nInstead of a raw string you can pass a RealtimePostgresFilterBuilder\n(via `postgresChangesFilter()`) for a type-checked, ergonomic way to compose filters; the\nSDK serializes it to a string automatically." } }, { @@ -42025,6 +42653,24 @@ "shortText": "The database schema to listen to." } }, + { + "name": "select", + "type": { + "type": "array", + "elemType": "[Circular]" + }, + "isOptional": true, + "comment": { + "shortText": "Restrict the change payload to a subset of columns instead of receiving the\nfull row. Reduces payload size (helpful for large `bytea`/`jsonb` columns)\nand the data transferred per event.\n\nThe listed columns must be selectable by the subscribing role.", + "examples": [ + { + "id": "example-1", + "name": "Example 1", + "code": "```ts\nchannel.on('postgres_changes', {\n event: '*',\n schema: 'public',\n table: 'users',\n select: ['id', 'first_name'],\n}, (payload) => {\n // payload.new only contains { id, first_name }\n})\n```" + } + ] + } + }, { "name": "table", "type": "[Circular]", @@ -43317,6 +43963,11 @@ }, "isOptional": true }, + { + "name": "replication_ready", + "type": "[Circular]", + "isOptional": true + }, { "name": "self", "type": "[Circular]", @@ -43326,7 +43977,7 @@ }, "isOptional": true, "comment": { - "shortText": "self option enables client to receive message it broadcast\nack option instructs server to acknowledge that broadcast message was received\nreplay option instructs server to replay broadcast messages" + "shortText": "self option enables client to receive message it broadcast\nack option instructs server to acknowledge that broadcast message was received\nreplay option instructs server to replay broadcast messages\nreplication_ready option instructs the server to emit a `system` event once the\nPostgres replication connection backing this channel is established and ready to\nstream changes. Listen for it with `channel.on('system', {}, (payload) => ...)`;\nthe payload's `status` is `'ok'` (`message: 'Replication connection established'`)\non success or `'error'` if the connection is not ready in time." } }, { @@ -43765,6 +44416,589 @@ ] } }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.constructor": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.constructor", + "params": [], + "ret": { + "type": { + "type": "nameOnly", + "name": "RealtimePostgresFilterBuilder" + } + } + }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.build": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.build", + "params": [], + "ret": { + "type": { + "type": "intrinsic", + "name": "string" + } + }, + "comment": { + "shortText": "Serialize all conditions into the comma-separated (AND) filter string.\n\nConditions are joined by commas, which the server applies as `AND`. A scalar\nvalue (or single `in` element) that contains a reserved character — `,`,\n`(`, `)`, `\"`, `` — or surrounding whitespace is double-quoted and escaped\nthe way PostgREST does, so commas inside a value are preserved rather than\nread as a condition boundary." + } + }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.eq": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.eq", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` equals `value` (`column=eq.value`)." + } + }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.gt": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.gt", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` is greater than `value` (`column=gt.value`)." + } + }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.gte": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.gte", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` is greater than or equal to `value` (`column=gte.value`)." + } + }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.ilike": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.ilike", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "pattern", + "type": { + "type": "intrinsic", + "name": "string" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` matches the case-insensitive `pattern` (`column=ilike.pattern`)." + } + }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.imatch": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.imatch", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "pattern", + "type": { + "type": "intrinsic", + "name": "string" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` matches the case-insensitive POSIX regex `pattern` (`column=imatch.pattern`)." + } + }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.in": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.in", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "values", + "type": { + "type": "array", + "elemType": { + "type": "union", + "subTypes": [ + { + "type": "intrinsic", + "name": "string" + }, + { + "type": "intrinsic", + "name": "number" + }, + { + "type": "intrinsic", + "name": "boolean" + } + ] + } + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` is one of `values` (`column=in.(a,b,c)`).\nRequires at least one value; duplicates are removed. An element containing a\nreserved character is double-quoted (`in.(\"a,b\",c)`), so commas inside an\nelement are preserved. `null` is intentionally not accepted (`IN (null)`\nnever matches in SQL) — use `is`/`not('col','is',null)` for null checks." + } + }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.is": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.is", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeIsFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` `IS` the given value (`column=is.null`).\nAccepts `null`, a boolean, or the keywords `'null' | 'true' | 'false' | 'unknown'`." + } + }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.isDistinct": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.isDistinct", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` is distinct from `value` (`column=isdistinct.value`). NULL-safe inequality." + } + }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.like": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.like", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "pattern", + "type": { + "type": "intrinsic", + "name": "string" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` matches the case-sensitive `pattern` (`column=like.pattern`)." + } + }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.lt": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.lt", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` is less than `value` (`column=lt.value`)." + } + }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.lte": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.lte", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` is less than or equal to `value` (`column=lte.value`)." + } + }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.match": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.match", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "pattern", + "type": { + "type": "intrinsic", + "name": "string" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` matches the POSIX regex `pattern` (`column=match.pattern`)." + } + }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.neq": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.neq", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` does not equal `value` (`column=neq.value`)." + } + }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.not": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.not", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "operator", + "type": { + "type": "literal", + "value": "in" + } + }, + { + "name": "value", + "type": { + "type": "array", + "elemType": { + "type": "union", + "subTypes": [ + { + "type": "intrinsic", + "name": "string" + }, + { + "type": "intrinsic", + "name": "number" + }, + { + "type": "intrinsic", + "name": "boolean" + } + ] + } + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Negate any operator with the `not.` prefix (`column=not.operator.value`).\n`in` takes an array, `is` takes an `IS` keyword/boolean/null, and every\nother operator takes a scalar value.", + "examples": [ + { + "id": "example-1", + "name": "Example 1", + "code": "```ts\npostgresChangesFilter().not('status', 'in', ['draft', 'archived'])\n// → status=not.in.(draft,archived)\npostgresChangesFilter().not('deleted_at', 'is', null)\n// → deleted_at=not.is.null\n```" + } + ] + }, + "altSignatures": [ + { + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "operator", + "type": { + "type": "literal", + "value": "is" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeIsFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + } + }, + { + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "operator", + "type": { + "type": "union", + "subTypes": [ + { + "type": "literal", + "value": "eq" + }, + { + "type": "literal", + "value": "neq" + }, + { + "type": "literal", + "value": "lt" + }, + { + "type": "literal", + "value": "lte" + }, + { + "type": "literal", + "value": "gt" + }, + { + "type": "literal", + "value": "gte" + }, + { + "type": "literal", + "value": "like" + }, + { + "type": "literal", + "value": "ilike" + }, + { + "type": "literal", + "value": "match" + }, + { + "type": "literal", + "value": "imatch" + }, + { + "type": "literal", + "value": "isdistinct" + } + ] + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + } + } + ] + }, + "@supabase/realtime-js.RealtimePostgresFilterBuilder.toString": { + "name": "@supabase/realtime-js.RealtimePostgresFilterBuilder.toString", + "params": [], + "ret": { + "type": { + "type": "intrinsic", + "name": "string" + } + }, + "comment": { + "shortText": "Alias for build; lets the builder be used wherever a string is expected." + } + }, "@supabase/realtime-js.RealtimePresence.constructor": { "name": "@supabase/realtime-js.RealtimePresence.constructor", "params": [ @@ -44306,6 +45540,26 @@ } } }, + "@supabase/realtime-js.postgresChangesFilter": { + "name": "@supabase/realtime-js.postgresChangesFilter", + "params": [], + "ret": { + "type": { + "type": "nameOnly", + "name": "RealtimePostgresFilterBuilder" + } + }, + "comment": { + "shortText": "Create a RealtimePostgresFilterBuilder for composing a Postgres\nChanges `filter`. Conditions are combined with `AND`.", + "examples": [ + { + "id": "example-1", + "name": "Example 1", + "code": "```ts\nimport { postgresChangesFilter } from '@supabase/realtime-js'\n\nchannel.on('postgres_changes', {\n event: 'UPDATE',\n schema: 'public',\n table: 'orders',\n filter: postgresChangesFilter().gt('amount', 100).eq('status', 'open'),\n}, (payload) => { ... })\n```" + } + ] + } + }, "@supabase/storage-js.StorageApiError.constructor": { "name": "@supabase/storage-js.StorageApiError.constructor", "params": [ @@ -45237,6 +46491,177 @@ ] } }, + "@supabase/storage-js.StorageClient.purgeBucketCache": { + "name": "@supabase/storage-js.StorageClient.purgeBucketCache", + "params": [ + { + "name": "id", + "type": { + "type": "intrinsic", + "name": "string" + }, + "comment": { + "shortText": "The unique identifier of the bucket you would like to purge from cache." + } + }, + { + "name": "options", + "type": { + "type": "object", + "name": "PurgeCacheOptions", + "properties": [ + { + "name": "transformations", + "type": { + "type": "literal", + "value": true + }, + "isOptional": true, + "comment": { + "shortText": "If true, purges only the transformations (resized/formatted variants) for the object or bucket,\nleaving the original cached file intact. If omitted, purges all cached versions." + } + } + ] + }, + "isOptional": true, + "comment": { + "shortText": "Optional purge cache options." + } + }, + { + "name": "parameters", + "type": { + "type": "object", + "name": "FetchParameters", + "properties": [ + { + "name": "cache", + "type": { + "type": "union", + "subTypes": [ + { + "type": "literal", + "value": "default" + }, + { + "type": "literal", + "value": "no-store" + }, + { + "type": "literal", + "value": "reload" + }, + { + "type": "literal", + "value": "no-cache" + }, + { + "type": "literal", + "value": "force-cache" + }, + { + "type": "literal", + "value": "only-if-cached" + } + ] + }, + "isOptional": true, + "comment": { + "shortText": "Controls how the request interacts with the browser's HTTP cache.\n- 'default': Use standard cache behavior\n- 'no-store': Bypass cache entirely (useful in Edge Functions)\n- 'reload': Bypass cache but update it with response\n- 'no-cache': Validate with server before using cached response\n- 'force-cache': Use cache even if stale\n- 'only-if-cached': Only use cache, fail if not cached" + } + }, + { + "name": "signal", + "type": { + "type": "nameOnly", + "name": "AbortSignal" + }, + "isOptional": true, + "comment": { + "shortText": "Pass in an AbortController's signal to cancel the request." + } + } + ] + }, + "isOptional": true, + "comment": { + "shortText": "Optional fetch parameters such as an `AbortController` signal." + } + } + ], + "ret": { + "type": { + "type": "promise", + "name": "Promise", + "awaited": { + "type": "union", + "subTypes": [ + { + "type": "object", + "properties": [ + { + "name": "data", + "type": { + "type": "object", + "properties": [ + { + "name": "message", + "type": { + "type": "intrinsic", + "name": "string" + } + } + ] + } + }, + { + "name": "error", + "type": { + "type": "literal", + "value": null + } + } + ] + }, + { + "type": "object", + "properties": [ + { + "name": "data", + "type": { + "type": "literal", + "value": null + } + }, + { + "name": "error", + "type": { + "type": "nameOnly", + "name": "StorageError" + } + } + ] + } + ] + } + } + }, + "comment": { + "shortText": "Purges the CDN cache for an entire bucket.\n\nMaps to `DELETE /cdn/{bucket}` on the Storage API. The server\nissues a CDN invalidation for the bucket and returns `{ message: 'success' }`.\n\n**Requires the `service_role` key.** The underlying endpoint enforces\n`service_role` JWT — calls made with the anon key or a user JWT will be\nrejected by the server.\n\n**Hosted CDN feature.** On self-hosted Supabase, the Storage service must\nhave `CDN_PURGE_ENDPOINT_URL` configured and the `purgeCache` tenant\nfeature enabled, otherwise the server returns an error.", + "examples": [ + { + "id": "purge-cache-for-an-entire-bucket", + "name": "Purge cache for an entire bucket", + "code": "```js\nconst { data, error } = await supabase\n .storage\n .purgeBucketCache('avatars')\n```" + }, + { + "id": "purge-only-transformations-for-an-entire-bucket", + "name": "Purge only transformations for an entire bucket", + "code": "```js\nconst { data, error } = await supabase\n .storage\n .purgeBucketCache('avatars', { transformations: true })\n```" + } + ] + } + }, "@supabase/storage-js.StorageClient.setHeader": { "name": "@supabase/storage-js.StorageClient.setHeader", "params": [ @@ -47642,6 +49067,156 @@ ] } }, + "@supabase/storage-js.packages/StorageBucketApi.default.purgeBucketCache": { + "name": "@supabase/storage-js.packages/StorageBucketApi.default.purgeBucketCache", + "params": [ + { + "name": "id", + "type": { + "type": "intrinsic", + "name": "string" + }, + "comment": { + "shortText": "The unique identifier of the bucket you would like to purge from cache." + } + }, + { + "name": "options", + "type": { + "type": "object", + "name": "PurgeCacheOptions", + "properties": [ + { + "name": "transformations", + "type": "[Circular]", + "isOptional": true, + "comment": { + "shortText": "If true, purges only the transformations (resized/formatted variants) for the object or bucket,\nleaving the original cached file intact. If omitted, purges all cached versions." + } + } + ] + }, + "isOptional": true, + "comment": { + "shortText": "Optional purge cache options." + } + }, + { + "name": "parameters", + "type": { + "type": "object", + "name": "FetchParameters", + "properties": [ + { + "name": "cache", + "type": { + "type": "union", + "subTypes": [ + "[Circular]", + "[Circular]", + "[Circular]", + "[Circular]", + "[Circular]", + "[Circular]" + ] + }, + "isOptional": true, + "comment": { + "shortText": "Controls how the request interacts with the browser's HTTP cache.\n- 'default': Use standard cache behavior\n- 'no-store': Bypass cache entirely (useful in Edge Functions)\n- 'reload': Bypass cache but update it with response\n- 'no-cache': Validate with server before using cached response\n- 'force-cache': Use cache even if stale\n- 'only-if-cached': Only use cache, fail if not cached" + } + }, + { + "name": "signal", + "type": { + "type": "nameOnly", + "name": "AbortSignal" + }, + "isOptional": true, + "comment": { + "shortText": "Pass in an AbortController's signal to cancel the request." + } + } + ] + }, + "isOptional": true, + "comment": { + "shortText": "Optional fetch parameters such as an `AbortController` signal." + } + } + ], + "ret": { + "type": { + "type": "promise", + "name": "Promise", + "awaited": { + "type": "union", + "subTypes": [ + { + "type": "object", + "properties": [ + { + "name": "data", + "type": { + "type": "object", + "properties": [ + { + "name": "message", + "type": { + "type": "intrinsic", + "name": "string" + } + } + ] + } + }, + { + "name": "error", + "type": { + "type": "literal", + "value": null + } + } + ] + }, + { + "type": "object", + "properties": [ + { + "name": "data", + "type": { + "type": "literal", + "value": null + } + }, + { + "name": "error", + "type": { + "type": "nameOnly", + "name": "StorageError" + } + } + ] + } + ] + } + } + }, + "comment": { + "shortText": "Purges the CDN cache for an entire bucket.\n\nMaps to `DELETE /cdn/{bucket}` on the Storage API. The server\nissues a CDN invalidation for the bucket and returns `{ message: 'success' }`.\n\n**Requires the `service_role` key.** The underlying endpoint enforces\n`service_role` JWT — calls made with the anon key or a user JWT will be\nrejected by the server.\n\n**Hosted CDN feature.** On self-hosted Supabase, the Storage service must\nhave `CDN_PURGE_ENDPOINT_URL` configured and the `purgeCache` tenant\nfeature enabled, otherwise the server returns an error.", + "examples": [ + { + "id": "purge-cache-for-an-entire-bucket", + "name": "Purge cache for an entire bucket", + "code": "```js\nconst { data, error } = await supabase\n .storage\n .purgeBucketCache('avatars')\n```" + }, + { + "id": "purge-only-transformations-for-an-entire-bucket", + "name": "Purge only transformations for an entire bucket", + "code": "```js\nconst { data, error } = await supabase\n .storage\n .purgeBucketCache('avatars', { transformations: true })\n```" + } + ] + } + }, "@supabase/storage-js.packages/StorageBucketApi.default.setHeader": { "name": "@supabase/storage-js.packages/StorageBucketApi.default.setHeader", "params": [ @@ -48594,30 +50169,12 @@ "type": { "type": "union", "subTypes": [ - { - "type": "literal", - "value": "default" - }, - { - "type": "literal", - "value": "no-store" - }, - { - "type": "literal", - "value": "reload" - }, - { - "type": "literal", - "value": "no-cache" - }, - { - "type": "literal", - "value": "force-cache" - }, - { - "type": "literal", - "value": "only-if-cached" - } + "[Circular]", + "[Circular]", + "[Circular]", + "[Circular]", + "[Circular]", + "[Circular]" ] }, "isOptional": true, @@ -49975,6 +51532,156 @@ ] } }, + "@supabase/storage-js.packages/StorageFileApi.default.purgeCache": { + "name": "@supabase/storage-js.packages/StorageFileApi.default.purgeCache", + "params": [ + { + "name": "path", + "type": { + "type": "intrinsic", + "name": "string" + }, + "comment": { + "shortText": "The path (relative to the bucket) of the object to purge, e.g. `folder/avatar.png`." + } + }, + { + "name": "options", + "type": { + "type": "object", + "name": "PurgeCacheOptions", + "properties": [ + { + "name": "transformations", + "type": "[Circular]", + "isOptional": true, + "comment": { + "shortText": "If true, purges only the transformations (resized/formatted variants) for the object or bucket,\nleaving the original cached file intact. If omitted, purges all cached versions." + } + } + ] + }, + "isOptional": true, + "comment": { + "shortText": "Optional purge cache options." + } + }, + { + "name": "parameters", + "type": { + "type": "object", + "name": "FetchParameters", + "properties": [ + { + "name": "cache", + "type": { + "type": "union", + "subTypes": [ + "[Circular]", + "[Circular]", + "[Circular]", + "[Circular]", + "[Circular]", + "[Circular]" + ] + }, + "isOptional": true, + "comment": { + "shortText": "Controls how the request interacts with the browser's HTTP cache.\n- 'default': Use standard cache behavior\n- 'no-store': Bypass cache entirely (useful in Edge Functions)\n- 'reload': Bypass cache but update it with response\n- 'no-cache': Validate with server before using cached response\n- 'force-cache': Use cache even if stale\n- 'only-if-cached': Only use cache, fail if not cached" + } + }, + { + "name": "signal", + "type": { + "type": "nameOnly", + "name": "AbortSignal" + }, + "isOptional": true, + "comment": { + "shortText": "Pass in an AbortController's signal to cancel the request." + } + } + ] + }, + "isOptional": true, + "comment": { + "shortText": "Optional fetch parameters such as an `AbortController` signal." + } + } + ], + "ret": { + "type": { + "type": "promise", + "name": "Promise", + "awaited": { + "type": "union", + "subTypes": [ + { + "type": "object", + "properties": [ + { + "name": "data", + "type": { + "type": "object", + "properties": [ + { + "name": "message", + "type": { + "type": "intrinsic", + "name": "string" + } + } + ] + } + }, + { + "name": "error", + "type": { + "type": "literal", + "value": null + } + } + ] + }, + { + "type": "object", + "properties": [ + { + "name": "data", + "type": { + "type": "literal", + "value": null + } + }, + { + "name": "error", + "type": { + "type": "nameOnly", + "name": "StorageError" + } + } + ] + } + ] + } + } + }, + "comment": { + "shortText": "Purges the CDN cache for a single object in this bucket.\n\nMaps to `DELETE /cdn/{bucket}/{path}` on the Storage API. The server\nissues a CDN invalidation for the object and returns `{ message: 'success' }`.\n\n**Requires the `service_role` key.** The underlying endpoint enforces\n`service_role` JWT — calls made with the anon key or a user JWT will be\nrejected by the server.\n\n**Hosted CDN feature.** On self-hosted Supabase, the Storage service must\nhave `CDN_PURGE_ENDPOINT_URL` configured and the `purgeCache` tenant\nfeature enabled, otherwise the server returns an error.\n\nOperates on a single object path. There is no wildcard or recursion: pass\nthe exact path of the object you want invalidated.", + "examples": [ + { + "id": "purge-a-single-cached-object", + "name": "Purge a single cached object", + "code": "```js\nconst { data, error } = await supabase\n .storage\n .from('avatars')\n .purgeCache('folder/avatar1.png')\n```" + }, + { + "id": "purge-only-transformations-for-a-single-object", + "name": "Purge only transformations for a single object", + "code": "```js\nconst { data, error } = await supabase\n .storage\n .from('avatars')\n .purgeCache('folder/avatar1.png', { transformations: true })\n```" + } + ] + } + }, "@supabase/storage-js.packages/StorageFileApi.default.remove": { "name": "@supabase/storage-js.packages/StorageFileApi.default.remove", "params": [ @@ -78996,6 +80703,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The jsonb, array, or range column to filter on" } }, { @@ -79027,6 +80737,9 @@ } } ] + }, + "comment": { + "shortText": "The jsonb, array, or range value to filter with" } } ], @@ -79036,6 +80749,39 @@ "name": "this" } }, + "comment": { + "shortText": "Only relevant for jsonb, array, and range columns. Match only rows where\nevery element appearing in `column` is contained by `value`.", + "examples": [ + { + "id": "on-array-columns", + "name": "On array columns", + "code": "```ts\nconst { data, error } = await supabase\n .from('classes')\n .select('name')\n .containedBy('days', ['monday', 'tuesday', 'wednesday', 'friday'])\n```", + "data": { + "sql": "```sql\ncreate table\n classes (\n id int8 primary key,\n name text,\n days text[]\n );\n\ninsert into\n classes (id, name, days)\nvalues\n (1, 'Chemistry', array['monday', 'friday']),\n (2, 'History', array['monday', 'wednesday', 'thursday']);\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"name\": \"Chemistry\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + }, + { + "id": "on-range-columns", + "name": "On range columns", + "code": "```ts\nconst { data, error } = await supabase\n .from('reservations')\n .select()\n .containedBy('during', '[2000-01-01 00:00, 2000-01-01 23:59)')\n```", + "description": "Postgres supports a number of [range\ntypes](https://www.postgresql.org/docs/current/rangetypes.html). You\ncan filter on range columns using the string representation of range\nvalues.", + "data": { + "sql": "```sql\ncreate table\n reservations (\n id int8 primary key,\n room_name text,\n during tsrange\n );\n\ninsert into\n reservations (id, room_name, during)\nvalues\n (1, 'Emerald', '[2000-01-01 13:00, 2000-01-01 15:00)'),\n (2, 'Topaz', '[2000-01-02 09:00, 2000-01-02 10:00)');\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"id\": 1,\n \"room_name\": \"Emerald\",\n \"during\": \"[\\\"2000-01-01 13:00:00\\\",\\\"2000-01-01 15:00:00\\\")\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + }, + { + "id": "on-jsonb-columns", + "name": "On `jsonb` columns", + "code": "```ts\nconst { data, error } = await supabase\n .from('users')\n .select('name')\n .containedBy('address', {})\n```", + "data": { + "sql": "```sql\ncreate table\n users (\n id int8 primary key,\n name text,\n address jsonb\n );\n\ninsert into\n users (id, name, address)\nvalues\n (1, 'Michael', '{ \"postcode\": 90210, \"street\": \"Melrose Place\" }'),\n (2, 'Jane', '{}');\n```" + }, + "response": "```json\n {\n \"data\": [\n {\n \"name\": \"Jane\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n }\n\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -79044,6 +80790,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The jsonb, array, or range column to filter on" } }, { @@ -79075,6 +80824,9 @@ } } ] + }, + "comment": { + "shortText": "The jsonb, array, or range value to filter with" } } ], @@ -79095,6 +80847,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The jsonb, array, or range column to filter on" } }, { @@ -79126,6 +80881,9 @@ } } ] + }, + "comment": { + "shortText": "The jsonb, array, or range value to filter with" } } ], @@ -79135,6 +80893,39 @@ "name": "this" } }, + "comment": { + "shortText": "Only relevant for jsonb, array, and range columns. Match only rows where\n`column` contains every element appearing in `value`.", + "examples": [ + { + "id": "on-array-columns", + "name": "On array columns", + "code": "```ts\nconst { data, error } = await supabase\n .from('issues')\n .select()\n .contains('tags', ['is:open', 'priority:low'])\n```", + "data": { + "sql": "```sql\ncreate table\n issues (\n id int8 primary key,\n title text,\n tags text[]\n );\n\ninsert into\n issues (id, title, tags)\nvalues\n (1, 'Cache invalidation is not working', array['is:open', 'severity:high', 'priority:low']),\n (2, 'Use better names', array['is:open', 'severity:low', 'priority:medium']);\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"title\": \"Cache invalidation is not working\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + }, + { + "id": "on-range-columns", + "name": "On range columns", + "code": "```ts\nconst { data, error } = await supabase\n .from('reservations')\n .select()\n .contains('during', '[2000-01-01 13:00, 2000-01-01 13:30)')\n```", + "description": "Postgres supports a number of [range\ntypes](https://www.postgresql.org/docs/current/rangetypes.html). You\ncan filter on range columns using the string representation of range\nvalues.", + "data": { + "sql": "```sql\ncreate table\n reservations (\n id int8 primary key,\n room_name text,\n during tsrange\n );\n\ninsert into\n reservations (id, room_name, during)\nvalues\n (1, 'Emerald', '[2000-01-01 13:00, 2000-01-01 15:00)'),\n (2, 'Topaz', '[2000-01-02 09:00, 2000-01-02 10:00)');\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"id\": 1,\n \"room_name\": \"Emerald\",\n \"during\": \"[\\\"2000-01-01 13:00:00\\\",\\\"2000-01-01 15:00:00\\\")\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + }, + { + "id": "on-jsonb-columns", + "name": "On `jsonb` columns", + "code": "```ts\nconst { data, error } = await supabase\n .from('users')\n .select('name')\n .contains('address', { postcode: 90210 })\n```", + "data": { + "sql": "```sql\ncreate table\n users (\n id int8 primary key,\n name text,\n address jsonb\n );\n\ninsert into\n users (id, name, address)\nvalues\n (1, 'Michael', '{ \"postcode\": 90210, \"street\": \"Melrose Place\" }'),\n (2, 'Jane', '{}');\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"name\": \"Michael\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -79143,6 +80934,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The jsonb, array, or range column to filter on" } }, { @@ -79174,6 +80968,9 @@ } } ] + }, + "comment": { + "shortText": "The jsonb, array, or range value to filter with" } } ], @@ -79388,6 +81185,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -79500,6 +81300,9 @@ "value": "not.imatch" } ] + }, + "comment": { + "shortText": "The operator to filter with, following PostgREST syntax" } }, { @@ -79507,6 +81310,9 @@ "type": { "type": "intrinsic", "name": "unknown" + }, + "comment": { + "shortText": "The value to filter with, following PostgREST syntax" } } ], @@ -79516,6 +81322,30 @@ "name": "this" } }, + "comment": { + "shortText": "Match only rows which satisfy the filter. This is an escape hatch - you\nshould use the specific filter methods wherever possible.\n\nUnlike most filters, `opearator` and `value` are used as-is and need to\nfollow [PostgREST\nsyntax](https://postgrest.org/en/stable/api.html#operators). You also need\nto make sure they are properly sanitized.", + "text": "filter() expects you to use the raw PostgREST syntax for the filter values.\n\n```ts\n.filter('id', 'in', '(5,6,7)') // Use `()` for `in` filter\n.filter('arraycol', 'cs', '{\"a\",\"b\"}') // Use `cs` for `contains()`, `{}` for array values\n```", + "examples": [ + { + "id": "with-select", + "name": "With `select()`", + "code": "```ts\nconst { data, error } = await supabase\n .from('characters')\n .select()\n .filter('name', 'in', '(\"Han\",\"Yoda\")')\n```", + "data": { + "sql": "```sql\ncreate table\n characters (id int8 primary key, name text);\n\ninsert into\n characters (id, name)\nvalues\n (1, 'Luke'),\n (2, 'Leia'),\n (3, 'Han');\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"id\": 3,\n \"name\": \"Han\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + }, + { + "id": "on-a-referenced-table", + "name": "On a referenced table", + "code": "```ts\nconst { data, error } = await supabase\n .from('orchestral_sections')\n .select(`\n name,\n instruments!inner (\n name\n )\n `)\n .filter('instruments.name', 'eq', 'flute')\n```", + "data": { + "sql": "```sql\ncreate table\n orchestral_sections (id int8 primary key, name text);\ncreate table\n instruments (\n id int8 primary key,\n section_id int8 not null references orchestral_sections,\n name text\n );\n\ninsert into\n orchestral_sections (id, name)\nvalues\n (1, 'strings'),\n (2, 'woodwinds');\ninsert into\n instruments (id, section_id, name)\nvalues\n (1, 2, 'flute'),\n (2, 1, 'violin');\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"name\": \"woodwinds\",\n \"instruments\": [\n {\n \"name\": \"flute\"\n }\n ]\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -79524,6 +81354,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -79531,6 +81364,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The operator to filter with, following PostgREST syntax" } }, { @@ -79538,6 +81374,9 @@ "type": { "type": "intrinsic", "name": "unknown" + }, + "comment": { + "shortText": "The value to filter with, following PostgREST syntax" } } ], @@ -79571,6 +81410,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -79578,6 +81420,9 @@ "type": { "type": "nameOnly", "name": "Row['ColumnName']" + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -79587,6 +81432,21 @@ "name": "this" } }, + "comment": { + "shortText": "Match only rows where `column` is greater than `value`.", + "examples": [ + { + "id": "with-select", + "name": "With `select()`", + "code": "```ts\nconst { data, error } = await supabase\n .from('characters')\n .select()\n .gt('id', 2)\n```", + "description": "When using [reserved words](https://www.postgresql.org/docs/current/sql-keywords-appendix.html) for column names you need\nto add double quotes e.g. `.gt('\"order\"', 2)`", + "data": { + "sql": "```sql\ncreate table\n characters (id int8 primary key, name text);\n\ninsert into\n characters (id, name)\nvalues\n (1, 'Luke'),\n (2, 'Leia'),\n (3, 'Han');\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"id\": 3,\n \"name\": \"Han\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -79595,6 +81455,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -79602,6 +81465,9 @@ "type": { "type": "intrinsic", "name": "unknown" + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -79622,6 +81488,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -79629,6 +81498,9 @@ "type": { "type": "nameOnly", "name": "Row['ColumnName']" + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -79638,6 +81510,20 @@ "name": "this" } }, + "comment": { + "shortText": "Match only rows where `column` is greater than or equal to `value`.", + "examples": [ + { + "id": "with-select", + "name": "With `select()`", + "code": "```ts\nconst { data, error } = await supabase\n .from('characters')\n .select()\n .gte('id', 2)\n```", + "data": { + "sql": "```sql\ncreate table\n characters (id int8 primary key, name text);\n\ninsert into\n characters (id, name)\nvalues\n (1, 'Luke'),\n (2, 'Leia'),\n (3, 'Han');\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"id\": 2,\n \"name\": \"Leia\"\n },\n {\n \"id\": 3,\n \"name\": \"Han\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -79646,6 +81532,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -79653,6 +81542,9 @@ "type": { "type": "intrinsic", "name": "unknown" + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -79673,6 +81565,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -79680,6 +81575,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The pattern to match with" } } ], @@ -79689,6 +81587,20 @@ "name": "this" } }, + "comment": { + "shortText": "Match only rows where `column` matches `pattern` case-insensitively.", + "examples": [ + { + "id": "with-select", + "name": "With `select()`", + "code": "```ts\nconst { data, error } = await supabase\n .from('characters')\n .select()\n .ilike('name', '%lu%')\n```", + "data": { + "sql": "```sql\ncreate table\n characters (id int8 primary key, name text);\n\ninsert into\n characters (id, name)\nvalues\n (1, 'Luke'),\n (2, 'Leia'),\n (3, 'Han');\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"id\": 1,\n \"name\": \"Luke\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -79697,6 +81609,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -79704,6 +81619,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The pattern to match with" } } ], @@ -79724,6 +81642,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -79734,6 +81655,9 @@ "type": "intrinsic", "name": "string" } + }, + "comment": { + "shortText": "The patterns to match with" } } ], @@ -79743,6 +81667,9 @@ "name": "this" } }, + "comment": { + "shortText": "Match only rows where `column` matches all of `patterns` case-insensitively." + }, "altSignatures": [ { "params": [ @@ -79751,6 +81678,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -79761,6 +81691,9 @@ "type": "intrinsic", "name": "string" } + }, + "comment": { + "shortText": "The patterns to match with" } } ], @@ -79781,6 +81714,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -79791,6 +81727,9 @@ "type": "intrinsic", "name": "string" } + }, + "comment": { + "shortText": "The patterns to match with" } } ], @@ -79800,6 +81739,9 @@ "name": "this" } }, + "comment": { + "shortText": "Match only rows where `column` matches any of `patterns` case-insensitively." + }, "altSignatures": [ { "params": [ @@ -79808,6 +81750,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -79818,6 +81763,9 @@ "type": "intrinsic", "name": "string" } + }, + "comment": { + "shortText": "The patterns to match with" } } ], @@ -79882,10 +81830,16 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { - "name": "value" + "name": "value", + "comment": { + "shortText": "The value to filter with" + } } ], "ret": { @@ -79894,6 +81848,21 @@ "name": "this" } }, + "comment": { + "shortText": "Match only rows where `column` IS `value`.\n\nFor non-boolean columns, this is only relevant for checking if the value of\n`column` is NULL by setting `value` to `null`.\n\nFor boolean columns, you can also set `value` to `true` or `false` and it\nwill behave the same way as `.eq()`.", + "examples": [ + { + "id": "checking-for-nullness-true-or-false", + "name": "Checking for nullness, true or false", + "code": "```ts\nconst { data, error } = await supabase\n .from('countries')\n .select()\n .is('name', null)\n```", + "description": "Using the `eq()` filter doesn't work when filtering for `null`.\n\nInstead, you need to use `is()`.", + "data": { + "sql": "```sql\ncreate table\n countries (id int8 primary key, name text);\n\ninsert into\n countries (id, name)\nvalues\n (1, 'null'),\n (2, null);\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"id\": 2,\n \"name\": \"null\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -79902,6 +81871,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -79918,6 +81890,9 @@ "name": "boolean" } ] + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -79968,6 +81943,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -79975,6 +81953,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The pattern to match with" } } ], @@ -79984,6 +81965,20 @@ "name": "this" } }, + "comment": { + "shortText": "Match only rows where `column` matches `pattern` case-sensitively.", + "examples": [ + { + "id": "with-select", + "name": "With `select()`", + "code": "```ts\nconst { data, error } = await supabase\n .from('characters')\n .select()\n .like('name', '%Lu%')\n```", + "data": { + "sql": "```sql\ncreate table\n characters (id int8 primary key, name text);\n\ninsert into\n characters (id, name)\nvalues\n (1, 'Luke'),\n (2, 'Leia'),\n (3, 'Han');\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"id\": 1,\n \"name\": \"Luke\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -79992,6 +81987,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -79999,6 +81997,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The pattern to match with" } } ], @@ -80019,6 +82020,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -80029,6 +82033,9 @@ "type": "intrinsic", "name": "string" } + }, + "comment": { + "shortText": "The patterns to match with" } } ], @@ -80038,6 +82045,9 @@ "name": "this" } }, + "comment": { + "shortText": "Match only rows where `column` matches all of `patterns` case-sensitively." + }, "altSignatures": [ { "params": [ @@ -80046,6 +82056,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -80056,6 +82069,9 @@ "type": "intrinsic", "name": "string" } + }, + "comment": { + "shortText": "The patterns to match with" } } ], @@ -80076,6 +82092,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -80086,6 +82105,9 @@ "type": "intrinsic", "name": "string" } + }, + "comment": { + "shortText": "The patterns to match with" } } ], @@ -80095,6 +82117,9 @@ "name": "this" } }, + "comment": { + "shortText": "Match only rows where `column` matches any of `patterns` case-sensitively." + }, "altSignatures": [ { "params": [ @@ -80103,6 +82128,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -80113,6 +82141,9 @@ "type": "intrinsic", "name": "string" } + }, + "comment": { + "shortText": "The patterns to match with" } } ], @@ -80211,6 +82242,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -80218,6 +82252,9 @@ "type": { "type": "nameOnly", "name": "Row['ColumnName']" + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -80227,6 +82264,20 @@ "name": "this" } }, + "comment": { + "shortText": "Match only rows where `column` is less than `value`.", + "examples": [ + { + "id": "with-select", + "name": "With `select()`", + "code": "```ts\nconst { data, error } = await supabase\n .from('characters')\n .select()\n .lt('id', 2)\n```", + "data": { + "sql": "```sql\ncreate table\n characters (id int8 primary key, name text);\n\ninsert into\n characters (id, name)\nvalues\n (1, 'Luke'),\n (2, 'Leia'),\n (3, 'Han');\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"id\": 1,\n \"name\": \"Luke\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -80235,6 +82286,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -80242,6 +82296,9 @@ "type": { "type": "intrinsic", "name": "unknown" + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -80262,6 +82319,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -80269,6 +82329,9 @@ "type": { "type": "nameOnly", "name": "Row['ColumnName']" + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -80278,6 +82341,20 @@ "name": "this" } }, + "comment": { + "shortText": "Match only rows where `column` is less than or equal to `value`.", + "examples": [ + { + "id": "with-select", + "name": "With `select()`", + "code": "```ts\nconst { data, error } = await supabase\n .from('characters')\n .select()\n .lte('id', 2)\n```", + "data": { + "sql": "```sql\ncreate table\n characters (id int8 primary key, name text);\n\ninsert into\n characters (id, name)\nvalues\n (1, 'Luke'),\n (2, 'Leia'),\n (3, 'Han');\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"id\": 1,\n \"name\": \"Luke\"\n },\n {\n \"id\": 2,\n \"name\": \"Leia\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -80286,6 +82363,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -80293,6 +82373,9 @@ "type": { "type": "intrinsic", "name": "unknown" + }, + "comment": { + "shortText": "The value to filter with" } } ], @@ -80321,6 +82404,9 @@ "type": "nameOnly", "name": "Row['ColumnName']" } + }, + "comment": { + "shortText": "The object to filter with, with column names as keys mapped\nto their filter values" } } ], @@ -80330,6 +82416,20 @@ "name": "this" } }, + "comment": { + "shortText": "Match only rows where each column in `query` keys is equal to its\nassociated value. Shorthand for multiple `.eq()`s.", + "examples": [ + { + "id": "with-select", + "name": "With `select()`", + "code": "```ts\nconst { data, error } = await supabase\n .from('characters')\n .select('name')\n .match({ id: 2, name: 'Leia' })\n```", + "data": { + "sql": "```sql\ncreate table\n characters (id int8 primary key, name text);\n\ninsert into\n characters (id, name)\nvalues\n (1, 'Luke'),\n (2, 'Leia'),\n (3, 'Han');\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"name\": \"Leia\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -80346,6 +82446,9 @@ "type": "intrinsic", "name": "unknown" } + }, + "comment": { + "shortText": "The object to filter with, with column names as keys mapped\nto their filter values" } } ], @@ -80445,6 +82548,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -80452,6 +82558,9 @@ "type": { "type": "literal", "value": "is" + }, + "comment": { + "shortText": "The operator to be negated to filter with, following\nPostgREST syntax" } }, { @@ -80459,9 +82568,15 @@ "type": { "type": "literal", "value": null + }, + "comment": { + "shortText": "The value to filter with, following PostgREST syntax" } } ], + "comment": { + "shortText": "Match only rows which doesn't satisfy the filter.\n\nUnlike most filters, `opearator` and `value` are used as-is and need to\nfollow [PostgREST\nsyntax](https://postgrest.org/en/stable/api.html#operators). You also need\nto make sure they are properly sanitized." + }, "altSignatures": [ { "params": [ @@ -80470,6 +82585,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -80477,6 +82595,9 @@ "type": { "type": "nameOnly", "name": "FilterOperator" + }, + "comment": { + "shortText": "The operator to be negated to filter with, following\nPostgREST syntax" } }, { @@ -80484,6 +82605,9 @@ "type": { "type": "nameOnly", "name": "Row['ColumnName']" + }, + "comment": { + "shortText": "The value to filter with, following PostgREST syntax" } } ], @@ -80501,6 +82625,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -80508,6 +82635,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The operator to be negated to filter with, following\nPostgREST syntax" } }, { @@ -80515,6 +82645,9 @@ "type": { "type": "intrinsic", "name": "unknown" + }, + "comment": { + "shortText": "The value to filter with, following PostgREST syntax" } } ], @@ -80656,6 +82789,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to order by" } }, { @@ -80669,7 +82805,10 @@ "type": "intrinsic", "name": "boolean" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "If `true`, the result will be in ascending order" + } }, { "name": "nullsFirst", @@ -80677,7 +82816,10 @@ "type": "intrinsic", "name": "boolean" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "If `true`, `null`s appear first. If `false`,\n`null`s appear last." + } }, { "name": "referencedTable", @@ -80685,11 +82827,17 @@ "type": "intrinsic", "name": "undefined" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Set this to order a referenced table by\nits columns" + } } ] }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Named parameters" + } } ], "ret": { @@ -80698,6 +82846,9 @@ "name": "this" } }, + "comment": { + "shortText": "Order the query result by `column`.\n\nYou can call this method multiple times to order by multiple columns.\n\nYou can order referenced tables, but it only affects the ordering of the\nparent table if you use `!inner` in the query." + }, "altSignatures": [ { "params": [ @@ -80706,6 +82857,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to order by" } }, { @@ -80719,7 +82873,10 @@ "type": "intrinsic", "name": "boolean" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "If `true`, the result will be in ascending order" + } }, { "name": "nullsFirst", @@ -80727,7 +82884,10 @@ "type": "intrinsic", "name": "boolean" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "If `true`, `null`s appear first. If `false`,\n`null`s appear last." + } }, { "name": "referencedTable", @@ -80735,11 +82895,17 @@ "type": "intrinsic", "name": "string" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Set this to order a referenced table by\nits columns" + } } ] }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Named parameters" + } } ], "ret": { @@ -80859,6 +83025,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The array or range column to filter on" } }, { @@ -80878,6 +83047,9 @@ } } ] + }, + "comment": { + "shortText": "The array or range value to filter with" } } ], @@ -80887,6 +83059,30 @@ "name": "this" } }, + "comment": { + "shortText": "Only relevant for array and range columns. Match only rows where\n`column` and `value` have an element in common.", + "examples": [ + { + "id": "on-array-columns", + "name": "On array columns", + "code": "```ts\nconst { data, error } = await supabase\n .from('issues')\n .select('title')\n .overlaps('tags', ['is:closed', 'severity:high'])\n```", + "data": { + "sql": "```sql\ncreate table\n issues (\n id int8 primary key,\n title text,\n tags text[]\n );\n\ninsert into\n issues (id, title, tags)\nvalues\n (1, 'Cache invalidation is not working', array['is:open', 'severity:high', 'priority:low']),\n (2, 'Use better names', array['is:open', 'severity:low', 'priority:medium']);\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"title\": \"Cache invalidation is not working\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + }, + { + "id": "on-range-columns", + "name": "On range columns", + "code": "```ts\nconst { data, error } = await supabase\n .from('reservations')\n .select()\n .overlaps('during', '[2000-01-01 12:45, 2000-01-01 13:15)')\n```", + "description": "Postgres supports a number of [range\ntypes](https://www.postgresql.org/docs/current/rangetypes.html). You\ncan filter on range columns using the string representation of range\nvalues.", + "data": { + "sql": "```sql\ncreate table\n reservations (\n id int8 primary key,\n room_name text,\n during tsrange\n );\n\ninsert into\n reservations (id, room_name, during)\nvalues\n (1, 'Emerald', '[2000-01-01 13:00, 2000-01-01 15:00)'),\n (2, 'Topaz', '[2000-01-02 09:00, 2000-01-02 10:00)');\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"id\": 1,\n \"room_name\": \"Emerald\",\n \"during\": \"[\\\"2000-01-01 13:00:00\\\",\\\"2000-01-01 15:00:00\\\")\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -80895,6 +83091,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The array or range column to filter on" } }, { @@ -80914,6 +83113,9 @@ } } ] + }, + "comment": { + "shortText": "The array or range value to filter with" } } ], @@ -81062,6 +83264,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -81069,6 +83274,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -81078,6 +83286,21 @@ "name": "this" } }, + "comment": { + "shortText": "Only relevant for range columns. Match only rows where `column` is\nmutually exclusive to `range` and there can be no element between the two\nranges.", + "examples": [ + { + "id": "with-select", + "name": "With `select()`", + "code": "```ts\nconst { data, error } = await supabase\n .from('reservations')\n .select()\n .rangeAdjacent('during', '[2000-01-01 12:00, 2000-01-01 13:00)')\n```", + "description": "Postgres supports a number of [range\ntypes](https://www.postgresql.org/docs/current/rangetypes.html). You\ncan filter on range columns using the string representation of range\nvalues.", + "data": { + "sql": "```sql\ncreate table\n reservations (\n id int8 primary key,\n room_name text,\n during tsrange\n );\n\ninsert into\n reservations (id, room_name, during)\nvalues\n (1, 'Emerald', '[2000-01-01 13:00, 2000-01-01 15:00)'),\n (2, 'Topaz', '[2000-01-02 09:00, 2000-01-02 10:00)');\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"id\": 1,\n \"room_name\": \"Emerald\",\n \"during\": \"[\\\"2000-01-01 13:00:00\\\",\\\"2000-01-01 15:00:00\\\")\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -81086,6 +83309,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -81093,6 +83319,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -81113,6 +83342,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -81120,6 +83352,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -81129,6 +83364,21 @@ "name": "this" } }, + "comment": { + "shortText": "Only relevant for range columns. Match only rows where every element in\n`column` is greater than any element in `range`.", + "examples": [ + { + "id": "with-select", + "name": "With `select()`", + "code": "```ts\nconst { data, error } = await supabase\n .from('reservations')\n .select()\n .rangeGt('during', '[2000-01-02 08:00, 2000-01-02 09:00)')\n```", + "description": "Postgres supports a number of [range\ntypes](https://www.postgresql.org/docs/current/rangetypes.html). You\ncan filter on range columns using the string representation of range\nvalues.", + "data": { + "sql": "```sql\ncreate table\n reservations (\n id int8 primary key,\n room_name text,\n during tsrange\n );\n\ninsert into\n reservations (id, room_name, during)\nvalues\n (1, 'Emerald', '[2000-01-01 13:00, 2000-01-01 15:00)'),\n (2, 'Topaz', '[2000-01-02 09:00, 2000-01-02 10:00)');\n```" + }, + "response": "```json\n {\n \"data\": [\n {\n \"id\": 2,\n \"room_name\": \"Topaz\",\n \"during\": \"[\\\"2000-01-02 09:00:00\\\",\\\"2000-01-02 10:00:00\\\")\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n }\n\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -81137,6 +83387,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -81144,6 +83397,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -81164,6 +83420,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -81171,6 +83430,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -81180,6 +83442,21 @@ "name": "this" } }, + "comment": { + "shortText": "Only relevant for range columns. Match only rows where every element in\n`column` is either contained in `range` or greater than any element in\n`range`.", + "examples": [ + { + "id": "with-select", + "name": "With `select()`", + "code": "```ts\nconst { data, error } = await supabase\n .from('reservations')\n .select()\n .rangeGte('during', '[2000-01-02 08:30, 2000-01-02 09:30)')\n```", + "description": "Postgres supports a number of [range\ntypes](https://www.postgresql.org/docs/current/rangetypes.html). You\ncan filter on range columns using the string representation of range\nvalues.", + "data": { + "sql": "```sql\ncreate table\n reservations (\n id int8 primary key,\n room_name text,\n during tsrange\n );\n\ninsert into\n reservations (id, room_name, during)\nvalues\n (1, 'Emerald', '[2000-01-01 13:00, 2000-01-01 15:00)'),\n (2, 'Topaz', '[2000-01-02 09:00, 2000-01-02 10:00)');\n```" + }, + "response": "```json\n {\n \"data\": [\n {\n \"id\": 2,\n \"room_name\": \"Topaz\",\n \"during\": \"[\\\"2000-01-02 09:00:00\\\",\\\"2000-01-02 10:00:00\\\")\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n }\n\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -81188,6 +83465,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -81195,6 +83475,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -81215,6 +83498,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -81222,6 +83508,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -81231,6 +83520,21 @@ "name": "this" } }, + "comment": { + "shortText": "Only relevant for range columns. Match only rows where every element in\n`column` is less than any element in `range`.", + "examples": [ + { + "id": "with-select", + "name": "With `select()`", + "code": "```ts\nconst { data, error } = await supabase\n .from('reservations')\n .select()\n .rangeLt('during', '[2000-01-01 15:00, 2000-01-01 16:00)')\n```", + "description": "Postgres supports a number of [range\ntypes](https://www.postgresql.org/docs/current/rangetypes.html). You\ncan filter on range columns using the string representation of range\nvalues.", + "data": { + "sql": "```sql\ncreate table\n reservations (\n id int8 primary key,\n room_name text,\n during tsrange\n );\n\ninsert into\n reservations (id, room_name, during)\nvalues\n (1, 'Emerald', '[2000-01-01 13:00, 2000-01-01 15:00)'),\n (2, 'Topaz', '[2000-01-02 09:00, 2000-01-02 10:00)');\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"id\": 1,\n \"room_name\": \"Emerald\",\n \"during\": \"[\\\"2000-01-01 13:00:00\\\",\\\"2000-01-01 15:00:00\\\")\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -81239,6 +83543,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -81246,6 +83553,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -81266,6 +83576,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -81273,6 +83586,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -81282,6 +83598,21 @@ "name": "this" } }, + "comment": { + "shortText": "Only relevant for range columns. Match only rows where every element in\n`column` is either contained in `range` or less than any element in\n`range`.", + "examples": [ + { + "id": "with-select", + "name": "With `select()`", + "code": "```ts\nconst { data, error } = await supabase\n .from('reservations')\n .select()\n .rangeLte('during', '[2000-01-01 14:00, 2000-01-01 16:00)')\n```", + "description": "Postgres supports a number of [range\ntypes](https://www.postgresql.org/docs/current/rangetypes.html). You\ncan filter on range columns using the string representation of range\nvalues.", + "data": { + "sql": "```sql\ncreate table\n reservations (\n id int8 primary key,\n room_name text,\n during tsrange\n );\n\ninsert into\n reservations (id, room_name, during)\nvalues\n (1, 'Emerald', '[2000-01-01 13:00, 2000-01-01 15:00)'),\n (2, 'Topaz', '[2000-01-02 09:00, 2000-01-02 10:00)');\n```" + }, + "response": "```json\n {\n \"data\": [\n {\n \"id\": 1,\n \"room_name\": \"Emerald\",\n \"during\": \"[\\\"2000-01-01 13:00:00\\\",\\\"2000-01-01 15:00:00\\\")\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n }\n\n```" + } + ] + }, "altSignatures": [ { "params": [ @@ -81290,6 +83621,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range column to filter on" } }, { @@ -81297,6 +83631,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The range to filter with" } } ], @@ -81317,6 +83654,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -81324,6 +83664,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The PostgreSQL regular expression pattern to match with" } } ], @@ -81333,6 +83676,9 @@ "name": "this" } }, + "comment": { + "shortText": "Match only rows where `column` matches the PostgreSQL regex `pattern`\ncase-insensitively (using the `~*` operator)." + }, "altSignatures": [ { "params": [ @@ -81341,6 +83687,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -81348,6 +83697,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The PostgreSQL regular expression pattern to match with" } } ], @@ -81368,6 +83720,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -81375,6 +83730,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The PostgreSQL regular expression pattern to match with" } } ], @@ -81384,6 +83742,9 @@ "name": "this" } }, + "comment": { + "shortText": "Match only rows where `column` matches the PostgreSQL regex `pattern`\ncase-sensitively (using the `~` operator)." + }, "altSignatures": [ { "params": [ @@ -81392,6 +83753,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to filter on" } }, { @@ -81399,6 +83763,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The PostgreSQL regular expression pattern to match with" } } ], @@ -81616,6 +83983,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The text or tsvector column to filter on" } }, { @@ -81623,6 +83993,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The query text to match with" } }, { @@ -81636,7 +84009,10 @@ "type": "intrinsic", "name": "string" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "The text search configuration to use" + } }, { "name": "type", @@ -81657,11 +84033,17 @@ } ] }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Change how the `query` text is interpreted" + } } ] }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Named parameters" + } } ], "ret": { @@ -81670,6 +84052,39 @@ "name": "this" } }, + "comment": { + "shortText": "Only relevant for text and tsvector columns. Match only rows where\n`column` matches the query string in `query`.", + "text": "- For more information, see [Postgres full text search](/docs/guides/database/full-text-search).", + "examples": [ + { + "id": "text-search", + "name": "Text search", + "code": "```ts\nconst result = await supabase\n .from(\"texts\")\n .select(\"content\")\n .textSearch(\"content\", `'eggs' & 'ham'`, {\n config: \"english\",\n });\n```", + "data": { + "sql": "```sql\ncreate table texts (\n id bigint\n primary key\n generated always as identity,\n content text\n);\n\ninsert into texts (content) values\n ('Four score and seven years ago'),\n ('The road goes ever on and on'),\n ('Green eggs and ham')\n;\n```" + }, + "response": "```json\n{\n \"data\": [\n {\n \"content\": \"Green eggs and ham\"\n }\n ],\n \"status\": 200,\n \"statusText\": \"OK\"\n}\n```" + }, + { + "id": "basic-normalization", + "name": "Basic normalization", + "code": "```ts\nconst { data, error } = await supabase\n .from('quotes')\n .select('catchphrase')\n .textSearch('catchphrase', `'fat' & 'cat'`, {\n type: 'plain',\n config: 'english'\n })\n```", + "description": "Uses PostgreSQL's `plainto_tsquery` function." + }, + { + "id": "full-normalization", + "name": "Full normalization", + "code": "```ts\nconst { data, error } = await supabase\n .from('quotes')\n .select('catchphrase')\n .textSearch('catchphrase', `'fat' & 'cat'`, {\n type: 'phrase',\n config: 'english'\n })\n```", + "description": "Uses PostgreSQL's `phraseto_tsquery` function." + }, + { + "id": "websearch", + "name": "Websearch", + "code": "```ts\nconst { data, error } = await supabase\n .from('quotes')\n .select('catchphrase')\n .textSearch('catchphrase', `'fat or cat'`, {\n type: 'websearch',\n config: 'english'\n })\n```", + "description": "Uses PostgreSQL's `websearch_to_tsquery` function.\nThis function will never raise syntax errors, which makes it possible to use raw user-supplied input for search, and can be used\nwith advanced operators.\n\n- `unquoted text`: text not inside quote marks will be converted to terms separated by & operators, as if processed by plainto_tsquery.\n- `\"quoted text\"`: text inside quote marks will be converted to terms separated by `<->` operators, as if processed by phraseto_tsquery.\n- `OR`: the word “or” will be converted to the | operator.\n- `-`: a dash will be converted to the ! operator." + } + ] + }, "altSignatures": [ { "params": [ @@ -81678,6 +84093,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The text or tsvector column to filter on" } }, { @@ -81685,6 +84103,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The query text to match with" } }, { @@ -81698,7 +84119,10 @@ "type": "intrinsic", "name": "string" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "The text search configuration to use" + } }, { "name": "type", @@ -81719,11 +84143,17 @@ } ] }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Change how the `query` text is interpreted" + } } ] }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Named parameters" + } } ], "ret": { @@ -83166,6 +85596,9 @@ "type": { "type": "nameOnly", "name": "ColumnName" + }, + "comment": { + "shortText": "The column to order by" } }, { @@ -83179,7 +85612,10 @@ "type": "intrinsic", "name": "boolean" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "If `true`, the result will be in ascending order" + } }, { "name": "nullsFirst", @@ -83187,7 +85623,10 @@ "type": "intrinsic", "name": "boolean" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "If `true`, `null`s appear first. If `false`,\n`null`s appear last." + } }, { "name": "referencedTable", @@ -83195,11 +85634,17 @@ "type": "intrinsic", "name": "undefined" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Set this to order a referenced table by\nits columns" + } } ] }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Named parameters" + } } ], "ret": { @@ -83208,6 +85653,9 @@ "name": "this" } }, + "comment": { + "shortText": "Order the query result by `column`.\n\nYou can call this method multiple times to order by multiple columns.\n\nYou can order referenced tables, but it only affects the ordering of the\nparent table if you use `!inner` in the query." + }, "altSignatures": [ { "params": [ @@ -83216,6 +85664,9 @@ "type": { "type": "intrinsic", "name": "string" + }, + "comment": { + "shortText": "The column to order by" } }, { @@ -83229,7 +85680,10 @@ "type": "intrinsic", "name": "boolean" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "If `true`, the result will be in ascending order" + } }, { "name": "nullsFirst", @@ -83237,7 +85691,10 @@ "type": "intrinsic", "name": "boolean" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "If `true`, `null`s appear first. If `false`,\n`null`s appear last." + } }, { "name": "referencedTable", @@ -83245,11 +85702,17 @@ "type": "intrinsic", "name": "string" }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Set this to order a referenced table by\nits columns" + } } ] }, - "isOptional": true + "isOptional": true, + "comment": { + "shortText": "Named parameters" + } } ], "ret": { @@ -83847,6 +86310,14 @@ }, "isOptional": true }, + { + "name": "replication_ready", + "type": { + "type": "intrinsic", + "name": "boolean" + }, + "isOptional": true + }, { "name": "self", "type": { @@ -83859,7 +86330,7 @@ }, "isOptional": true, "comment": { - "shortText": "self option enables client to receive message it broadcast\nack option instructs server to acknowledge that broadcast message was received\nreplay option instructs server to replay broadcast messages" + "shortText": "self option enables client to receive message it broadcast\nack option instructs server to acknowledge that broadcast message was received\nreplay option instructs server to replay broadcast messages\nreplication_ready option instructs the server to emit a `system` event once the\nPostgres replication connection backing this channel is established and ready to\nstream changes. Listen for it with `channel.on('system', {}, (payload) => ...)`;\nthe payload's `status` is `'ok'` (`message: 'Replication connection established'`)\non success or `'error'` if the connection is not ready in time." } }, { @@ -84100,7 +86571,7 @@ } }, "comment": { - "shortText": "Creates an event handler that listens to changes." + "shortText": "Listen for presence events on this channel — when peers join, leave, or\nsync presence state." }, "altSignatures": [ { @@ -84422,12 +86893,21 @@ { "name": "filter", "type": { - "type": "intrinsic", - "name": "string" + "type": "union", + "subTypes": [ + { + "type": "intrinsic", + "name": "string" + }, + { + "type": "nameOnly", + "name": "RealtimePostgresFilterBuilder" + } + ] }, "isOptional": true, "comment": { - "shortText": "Receive database changes when filter is matched." + "shortText": "Receive database changes only when the filter is matched.\n\nA filter is a `column=operator.value` expression, e.g. `id=eq.1` or\n`title=like.%foo%`. See RealtimePostgresChangesFilterOperator for\nthe available operators.\n\nMultiple filters can be combined with commas; they are applied as an `AND`\ncondition: `filter: 'id=gt.0,id=lt.100'`.\n\nAny operator can be negated with the `not.` prefix: `filter: 'status=not.in.(draft,archived)'`.\n\nThe server splits conditions on commas outside quotes/parentheses. To\ninclude a reserved character (`,`, `(`, `)`) in a value, wrap it in double\nquotes PostgREST-style: `name=eq.\"a,b\"`. The RealtimePostgresFilterBuilder\ndoes this quoting for you.\n\nInstead of a raw string you can pass a RealtimePostgresFilterBuilder\n(via `postgresChangesFilter()`) for a type-checked, ergonomic way to compose filters; the\nSDK serializes it to a string automatically." } }, { @@ -84440,6 +86920,27 @@ "shortText": "The database schema to listen to." } }, + { + "name": "select", + "type": { + "type": "array", + "elemType": { + "type": "intrinsic", + "name": "string" + } + }, + "isOptional": true, + "comment": { + "shortText": "Restrict the change payload to a subset of columns instead of receiving the\nfull row. Reduces payload size (helpful for large `bytea`/`jsonb` columns)\nand the data transferred per event.\n\nThe listed columns must be selectable by the subscribing role.", + "examples": [ + { + "id": "example-1", + "name": "Example 1", + "code": "```ts\nchannel.on('postgres_changes', {\n event: '*',\n schema: 'public',\n table: 'users',\n select: ['id', 'first_name'],\n}, (payload) => {\n // payload.new only contains { id, first_name }\n})\n```" + } + ] + } + }, { "name": "table", "type": { @@ -84524,10 +87025,19 @@ }, { "name": "filter", - "type": "[Circular]", + "type": { + "type": "union", + "subTypes": [ + "[Circular]", + { + "type": "nameOnly", + "name": "RealtimePostgresFilterBuilder" + } + ] + }, "isOptional": true, "comment": { - "shortText": "Receive database changes when filter is matched." + "shortText": "Receive database changes only when the filter is matched.\n\nA filter is a `column=operator.value` expression, e.g. `id=eq.1` or\n`title=like.%foo%`. See RealtimePostgresChangesFilterOperator for\nthe available operators.\n\nMultiple filters can be combined with commas; they are applied as an `AND`\ncondition: `filter: 'id=gt.0,id=lt.100'`.\n\nAny operator can be negated with the `not.` prefix: `filter: 'status=not.in.(draft,archived)'`.\n\nThe server splits conditions on commas outside quotes/parentheses. To\ninclude a reserved character (`,`, `(`, `)`) in a value, wrap it in double\nquotes PostgREST-style: `name=eq.\"a,b\"`. The RealtimePostgresFilterBuilder\ndoes this quoting for you.\n\nInstead of a raw string you can pass a RealtimePostgresFilterBuilder\n(via `postgresChangesFilter()`) for a type-checked, ergonomic way to compose filters; the\nSDK serializes it to a string automatically." } }, { @@ -84537,6 +87047,24 @@ "shortText": "The database schema to listen to." } }, + { + "name": "select", + "type": { + "type": "array", + "elemType": "[Circular]" + }, + "isOptional": true, + "comment": { + "shortText": "Restrict the change payload to a subset of columns instead of receiving the\nfull row. Reduces payload size (helpful for large `bytea`/`jsonb` columns)\nand the data transferred per event.\n\nThe listed columns must be selectable by the subscribing role.", + "examples": [ + { + "id": "example-1", + "name": "Example 1", + "code": "```ts\nchannel.on('postgres_changes', {\n event: '*',\n schema: 'public',\n table: 'users',\n select: ['id', 'first_name'],\n}, (payload) => {\n // payload.new only contains { id, first_name }\n})\n```" + } + ] + } + }, { "name": "table", "type": "[Circular]", @@ -84604,10 +87132,19 @@ }, { "name": "filter", - "type": "[Circular]", + "type": { + "type": "union", + "subTypes": [ + "[Circular]", + { + "type": "nameOnly", + "name": "RealtimePostgresFilterBuilder" + } + ] + }, "isOptional": true, "comment": { - "shortText": "Receive database changes when filter is matched." + "shortText": "Receive database changes only when the filter is matched.\n\nA filter is a `column=operator.value` expression, e.g. `id=eq.1` or\n`title=like.%foo%`. See RealtimePostgresChangesFilterOperator for\nthe available operators.\n\nMultiple filters can be combined with commas; they are applied as an `AND`\ncondition: `filter: 'id=gt.0,id=lt.100'`.\n\nAny operator can be negated with the `not.` prefix: `filter: 'status=not.in.(draft,archived)'`.\n\nThe server splits conditions on commas outside quotes/parentheses. To\ninclude a reserved character (`,`, `(`, `)`) in a value, wrap it in double\nquotes PostgREST-style: `name=eq.\"a,b\"`. The RealtimePostgresFilterBuilder\ndoes this quoting for you.\n\nInstead of a raw string you can pass a RealtimePostgresFilterBuilder\n(via `postgresChangesFilter()`) for a type-checked, ergonomic way to compose filters; the\nSDK serializes it to a string automatically." } }, { @@ -84617,6 +87154,24 @@ "shortText": "The database schema to listen to." } }, + { + "name": "select", + "type": { + "type": "array", + "elemType": "[Circular]" + }, + "isOptional": true, + "comment": { + "shortText": "Restrict the change payload to a subset of columns instead of receiving the\nfull row. Reduces payload size (helpful for large `bytea`/`jsonb` columns)\nand the data transferred per event.\n\nThe listed columns must be selectable by the subscribing role.", + "examples": [ + { + "id": "example-1", + "name": "Example 1", + "code": "```ts\nchannel.on('postgres_changes', {\n event: '*',\n schema: 'public',\n table: 'users',\n select: ['id', 'first_name'],\n}, (payload) => {\n // payload.new only contains { id, first_name }\n})\n```" + } + ] + } + }, { "name": "table", "type": "[Circular]", @@ -84684,10 +87239,19 @@ }, { "name": "filter", - "type": "[Circular]", + "type": { + "type": "union", + "subTypes": [ + "[Circular]", + { + "type": "nameOnly", + "name": "RealtimePostgresFilterBuilder" + } + ] + }, "isOptional": true, "comment": { - "shortText": "Receive database changes when filter is matched." + "shortText": "Receive database changes only when the filter is matched.\n\nA filter is a `column=operator.value` expression, e.g. `id=eq.1` or\n`title=like.%foo%`. See RealtimePostgresChangesFilterOperator for\nthe available operators.\n\nMultiple filters can be combined with commas; they are applied as an `AND`\ncondition: `filter: 'id=gt.0,id=lt.100'`.\n\nAny operator can be negated with the `not.` prefix: `filter: 'status=not.in.(draft,archived)'`.\n\nThe server splits conditions on commas outside quotes/parentheses. To\ninclude a reserved character (`,`, `(`, `)`) in a value, wrap it in double\nquotes PostgREST-style: `name=eq.\"a,b\"`. The RealtimePostgresFilterBuilder\ndoes this quoting for you.\n\nInstead of a raw string you can pass a RealtimePostgresFilterBuilder\n(via `postgresChangesFilter()`) for a type-checked, ergonomic way to compose filters; the\nSDK serializes it to a string automatically." } }, { @@ -84697,6 +87261,24 @@ "shortText": "The database schema to listen to." } }, + { + "name": "select", + "type": { + "type": "array", + "elemType": "[Circular]" + }, + "isOptional": true, + "comment": { + "shortText": "Restrict the change payload to a subset of columns instead of receiving the\nfull row. Reduces payload size (helpful for large `bytea`/`jsonb` columns)\nand the data transferred per event.\n\nThe listed columns must be selectable by the subscribing role.", + "examples": [ + { + "id": "example-1", + "name": "Example 1", + "code": "```ts\nchannel.on('postgres_changes', {\n event: '*',\n schema: 'public',\n table: 'users',\n select: ['id', 'first_name'],\n}, (payload) => {\n // payload.new only contains { id, first_name }\n})\n```" + } + ] + } + }, { "name": "table", "type": "[Circular]", @@ -84781,10 +87363,19 @@ }, { "name": "filter", - "type": "[Circular]", + "type": { + "type": "union", + "subTypes": [ + "[Circular]", + { + "type": "nameOnly", + "name": "RealtimePostgresFilterBuilder" + } + ] + }, "isOptional": true, "comment": { - "shortText": "Receive database changes when filter is matched." + "shortText": "Receive database changes only when the filter is matched.\n\nA filter is a `column=operator.value` expression, e.g. `id=eq.1` or\n`title=like.%foo%`. See RealtimePostgresChangesFilterOperator for\nthe available operators.\n\nMultiple filters can be combined with commas; they are applied as an `AND`\ncondition: `filter: 'id=gt.0,id=lt.100'`.\n\nAny operator can be negated with the `not.` prefix: `filter: 'status=not.in.(draft,archived)'`.\n\nThe server splits conditions on commas outside quotes/parentheses. To\ninclude a reserved character (`,`, `(`, `)`) in a value, wrap it in double\nquotes PostgREST-style: `name=eq.\"a,b\"`. The RealtimePostgresFilterBuilder\ndoes this quoting for you.\n\nInstead of a raw string you can pass a RealtimePostgresFilterBuilder\n(via `postgresChangesFilter()`) for a type-checked, ergonomic way to compose filters; the\nSDK serializes it to a string automatically." } }, { @@ -84794,6 +87385,24 @@ "shortText": "The database schema to listen to." } }, + { + "name": "select", + "type": { + "type": "array", + "elemType": "[Circular]" + }, + "isOptional": true, + "comment": { + "shortText": "Restrict the change payload to a subset of columns instead of receiving the\nfull row. Reduces payload size (helpful for large `bytea`/`jsonb` columns)\nand the data transferred per event.\n\nThe listed columns must be selectable by the subscribing role.", + "examples": [ + { + "id": "example-1", + "name": "Example 1", + "code": "```ts\nchannel.on('postgres_changes', {\n event: '*',\n schema: 'public',\n table: 'users',\n select: ['id', 'first_name'],\n}, (payload) => {\n // payload.new only contains { id, first_name }\n})\n```" + } + ] + } + }, { "name": "table", "type": "[Circular]", @@ -85441,6 +88050,10 @@ "type": { "type": "union", "subTypes": [ + { + "type": "literal", + "value": "postgres_changes" + }, { "type": "literal", "value": "broadcast" @@ -85448,10 +88061,6 @@ { "type": "literal", "value": "presence" - }, - { - "type": "literal", - "value": "postgres_changes" } ] }, @@ -86091,6 +88700,11 @@ }, "isOptional": true }, + { + "name": "replication_ready", + "type": "[Circular]", + "isOptional": true + }, { "name": "self", "type": "[Circular]", @@ -86100,7 +88714,7 @@ }, "isOptional": true, "comment": { - "shortText": "self option enables client to receive message it broadcast\nack option instructs server to acknowledge that broadcast message was received\nreplay option instructs server to replay broadcast messages" + "shortText": "self option enables client to receive message it broadcast\nack option instructs server to acknowledge that broadcast message was received\nreplay option instructs server to replay broadcast messages\nreplication_ready option instructs the server to emit a `system` event once the\nPostgres replication connection backing this channel is established and ready to\nstream changes. Listen for it with `channel.on('system', {}, (payload) => ...)`;\nthe payload's `status` is `'ok'` (`message: 'Replication connection established'`)\non success or `'error'` if the connection is not ready in time." } }, { @@ -86541,6 +89155,589 @@ ] } }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.constructor": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.constructor", + "params": [], + "ret": { + "type": { + "type": "nameOnly", + "name": "RealtimePostgresFilterBuilder" + } + } + }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.build": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.build", + "params": [], + "ret": { + "type": { + "type": "intrinsic", + "name": "string" + } + }, + "comment": { + "shortText": "Serialize all conditions into the comma-separated (AND) filter string.\n\nConditions are joined by commas, which the server applies as `AND`. A scalar\nvalue (or single `in` element) that contains a reserved character — `,`,\n`(`, `)`, `\"`, `` — or surrounding whitespace is double-quoted and escaped\nthe way PostgREST does, so commas inside a value are preserved rather than\nread as a condition boundary." + } + }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.eq": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.eq", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` equals `value` (`column=eq.value`)." + } + }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.gt": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.gt", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` is greater than `value` (`column=gt.value`)." + } + }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.gte": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.gte", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` is greater than or equal to `value` (`column=gte.value`)." + } + }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.ilike": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.ilike", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "pattern", + "type": { + "type": "intrinsic", + "name": "string" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` matches the case-insensitive `pattern` (`column=ilike.pattern`)." + } + }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.imatch": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.imatch", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "pattern", + "type": { + "type": "intrinsic", + "name": "string" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` matches the case-insensitive POSIX regex `pattern` (`column=imatch.pattern`)." + } + }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.in": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.in", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "values", + "type": { + "type": "array", + "elemType": { + "type": "union", + "subTypes": [ + { + "type": "intrinsic", + "name": "string" + }, + { + "type": "intrinsic", + "name": "number" + }, + { + "type": "intrinsic", + "name": "boolean" + } + ] + } + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` is one of `values` (`column=in.(a,b,c)`).\nRequires at least one value; duplicates are removed. An element containing a\nreserved character is double-quoted (`in.(\"a,b\",c)`), so commas inside an\nelement are preserved. `null` is intentionally not accepted (`IN (null)`\nnever matches in SQL) — use `is`/`not('col','is',null)` for null checks." + } + }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.is": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.is", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeIsFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` `IS` the given value (`column=is.null`).\nAccepts `null`, a boolean, or the keywords `'null' | 'true' | 'false' | 'unknown'`." + } + }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.isDistinct": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.isDistinct", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` is distinct from `value` (`column=isdistinct.value`). NULL-safe inequality." + } + }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.like": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.like", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "pattern", + "type": { + "type": "intrinsic", + "name": "string" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` matches the case-sensitive `pattern` (`column=like.pattern`)." + } + }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.lt": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.lt", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` is less than `value` (`column=lt.value`)." + } + }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.lte": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.lte", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` is less than or equal to `value` (`column=lte.value`)." + } + }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.match": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.match", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "pattern", + "type": { + "type": "intrinsic", + "name": "string" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` matches the POSIX regex `pattern` (`column=match.pattern`)." + } + }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.neq": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.neq", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Match rows where `column` does not equal `value` (`column=neq.value`)." + } + }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.not": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.not", + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "operator", + "type": { + "type": "literal", + "value": "in" + } + }, + { + "name": "value", + "type": { + "type": "array", + "elemType": { + "type": "union", + "subTypes": [ + { + "type": "intrinsic", + "name": "string" + }, + { + "type": "intrinsic", + "name": "number" + }, + { + "type": "intrinsic", + "name": "boolean" + } + ] + } + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + }, + "comment": { + "shortText": "Negate any operator with the `not.` prefix (`column=not.operator.value`).\n`in` takes an array, `is` takes an `IS` keyword/boolean/null, and every\nother operator takes a scalar value.", + "examples": [ + { + "id": "example-1", + "name": "Example 1", + "code": "```ts\npostgresChangesFilter().not('status', 'in', ['draft', 'archived'])\n// → status=not.in.(draft,archived)\npostgresChangesFilter().not('deleted_at', 'is', null)\n// → deleted_at=not.is.null\n```" + } + ] + }, + "altSignatures": [ + { + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "operator", + "type": { + "type": "literal", + "value": "is" + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeIsFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + } + }, + { + "params": [ + { + "name": "column", + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "name": "operator", + "type": { + "type": "union", + "subTypes": [ + { + "type": "literal", + "value": "match" + }, + { + "type": "literal", + "value": "eq" + }, + { + "type": "literal", + "value": "neq" + }, + { + "type": "literal", + "value": "gt" + }, + { + "type": "literal", + "value": "gte" + }, + { + "type": "literal", + "value": "lt" + }, + { + "type": "literal", + "value": "lte" + }, + { + "type": "literal", + "value": "like" + }, + { + "type": "literal", + "value": "ilike" + }, + { + "type": "literal", + "value": "isdistinct" + }, + { + "type": "literal", + "value": "imatch" + } + ] + } + }, + { + "name": "value", + "type": { + "type": "nameOnly", + "name": "RealtimeFilterValue" + } + } + ], + "ret": { + "type": { + "type": "intrinsic", + "name": "this" + } + } + } + ] + }, + "@supabase/supabase-js.RealtimePostgresFilterBuilder.toString": { + "name": "@supabase/supabase-js.RealtimePostgresFilterBuilder.toString", + "params": [], + "ret": { + "type": { + "type": "intrinsic", + "name": "string" + } + }, + "comment": { + "shortText": "Alias for build; lets the builder be used wherever a string is expected." + } + }, "@supabase/supabase-js.RealtimePresence.constructor": { "name": "@supabase/supabase-js.RealtimePresence.constructor", "params": [ @@ -87441,6 +90638,11 @@ }, "isOptional": true }, + { + "name": "replication_ready", + "type": "[Circular]", + "isOptional": true + }, { "name": "self", "type": "[Circular]", @@ -87450,7 +90652,7 @@ }, "isOptional": true, "comment": { - "shortText": "self option enables client to receive message it broadcast\nack option instructs server to acknowledge that broadcast message was received\nreplay option instructs server to replay broadcast messages" + "shortText": "self option enables client to receive message it broadcast\nack option instructs server to acknowledge that broadcast message was received\nreplay option instructs server to replay broadcast messages\nreplication_ready option instructs the server to emit a `system` event once the\nPostgres replication connection backing this channel is established and ready to\nstream changes. Listen for it with `channel.on('system', {}, (payload) => ...)`;\nthe payload's `status` is `'ok'` (`message: 'Replication connection established'`)\non success or `'error'` if the connection is not ready in time." } }, { @@ -89837,6 +93039,20 @@ "shortText": "OAuth client secret (write-only, not returned in responses)" } }, + { + "name": "custom_claims_allowlist", + "type": { + "type": "array", + "elemType": { + "type": "intrinsic", + "name": "string" + } + }, + "isOptional": true, + "comment": { + "shortText": "Allowlist of raw identity provider claim keys to copy verbatim into the\nuser's `custom_claims` field (within `identity_data` and\n`raw_user_meta_data`), e.g. `[\"groups\", \"org_id\", \"mail\"]`. This is an\nopt-in allowlist that defaults to empty (no claims captured) and operates\nindependently from `attribute_mapping`." + } + }, { "name": "discovery_url", "type": { @@ -90094,6 +93310,20 @@ "shortText": "Timestamp when the provider was created" } }, + { + "name": "custom_claims_allowlist", + "type": { + "type": "array", + "elemType": { + "type": "intrinsic", + "name": "string" + } + }, + "isOptional": true, + "comment": { + "shortText": "Allowlist of raw identity provider claim keys to copy verbatim into the\nuser's `custom_claims` field (within `identity_data` and\n`raw_user_meta_data`), e.g. `[\"groups\", \"org_id\", \"mail\"]`. This is an\nopt-in allowlist that defaults to empty (no claims captured) and operates\nindependently from `attribute_mapping`." + } + }, { "name": "discovery_document", "type": { @@ -90566,6 +93796,17 @@ "shortText": "Timestamp when the provider was created" } }, + { + "name": "custom_claims_allowlist", + "type": { + "type": "array", + "elemType": "[Circular]" + }, + "isOptional": true, + "comment": { + "shortText": "Allowlist of raw identity provider claim keys to copy verbatim into the\nuser's `custom_claims` field (within `identity_data` and\n`raw_user_meta_data`), e.g. `[\"groups\", \"org_id\", \"mail\"]`. This is an\nopt-in allowlist that defaults to empty (no claims captured) and operates\nindependently from `attribute_mapping`." + } + }, { "name": "discovery_document", "type": { @@ -90939,6 +94180,17 @@ "shortText": "Timestamp when the provider was created" } }, + { + "name": "custom_claims_allowlist", + "type": { + "type": "array", + "elemType": "[Circular]" + }, + "isOptional": true, + "comment": { + "shortText": "Allowlist of raw identity provider claim keys to copy verbatim into the\nuser's `custom_claims` field (within `identity_data` and\n`raw_user_meta_data`), e.g. `[\"groups\", \"org_id\", \"mail\"]`. This is an\nopt-in allowlist that defaults to empty (no claims captured) and operates\nindependently from `attribute_mapping`." + } + }, { "name": "discovery_document", "type": { @@ -91319,6 +94571,20 @@ "shortText": "OAuth client secret (write-only, not returned in responses)" } }, + { + "name": "custom_claims_allowlist", + "type": { + "type": "array", + "elemType": { + "type": "intrinsic", + "name": "string" + } + }, + "isOptional": true, + "comment": { + "shortText": "Allowlist of raw identity provider claim keys to copy verbatim into the\nuser's `custom_claims` field (within `identity_data` and\n`raw_user_meta_data`), e.g. `[\"groups\", \"org_id\", \"mail\"]`. This is an\nopt-in allowlist that defaults to empty (no claims captured) and operates\nindependently from `attribute_mapping`." + } + }, { "name": "discovery_url", "type": { @@ -91523,6 +94789,17 @@ "shortText": "Timestamp when the provider was created" } }, + { + "name": "custom_claims_allowlist", + "type": { + "type": "array", + "elemType": "[Circular]" + }, + "isOptional": true, + "comment": { + "shortText": "Allowlist of raw identity provider claim keys to copy verbatim into the\nuser's `custom_claims` field (within `identity_data` and\n`raw_user_meta_data`), e.g. `[\"groups\", \"org_id\", \"mail\"]`. This is an\nopt-in allowlist that defaults to empty (no claims captured) and operates\nindependently from `attribute_mapping`." + } + }, { "name": "discovery_document", "type": { @@ -97631,6 +100908,26 @@ "shortText": "Implements a global exclusive lock using the Navigator LockManager API. It\nis available on all browsers released after 2022-03-15 with Safari being the\nlast one to release support. If the API is not available, this function will\nthrow. Make sure you check availablility before configuring GoTrueClient.\n\nYou can turn on debugging by setting the `supabase.gotrue-js.locks.debug`\nlocal storage item to `true`.\n\nInternals:\n\nSince the LockManager API does not preserve stack traces for the async\nfunction passed in the `request` method, a trick is used where acquiring the\nlock releases a previously started promise to run the operation in the `fn`\nfunction. The lock waits for that promise to finish (with or without error),\nwhile the function will finally wait for the result anyway." } }, + "@supabase/supabase-js.postgresChangesFilter": { + "name": "@supabase/supabase-js.postgresChangesFilter", + "params": [], + "ret": { + "type": { + "type": "nameOnly", + "name": "RealtimePostgresFilterBuilder" + } + }, + "comment": { + "shortText": "Create a RealtimePostgresFilterBuilder for composing a Postgres\nChanges `filter`. Conditions are combined with `AND`.", + "examples": [ + { + "id": "example-1", + "name": "Example 1", + "code": "```ts\nimport { postgresChangesFilter } from '@supabase/realtime-js'\n\nchannel.on('postgres_changes', {\n event: 'UPDATE',\n schema: 'public',\n table: 'orders',\n filter: postgresChangesFilter().gt('amount', 100).eq('status', 'open'),\n}, (payload) => { ... })\n```" + } + ] + } + }, "@supabase/supabase-js.processLock": { "name": "@supabase/supabase-js.processLock", "params": [