@supabase/postgrest-js 2.102.0-beta.0 → 2.103.0-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supabase/postgrest-js",
3
- "version": "2.102.0-beta.0",
3
+ "version": "2.103.0-canary.0",
4
4
  "description": "Isomorphic PostgREST client",
5
5
  "keywords": [
6
6
  "postgrest",
@@ -28,4 +28,14 @@ export default class PostgrestError extends Error {
28
28
  this.hint = context.hint
29
29
  this.code = context.code
30
30
  }
31
+
32
+ toJSON() {
33
+ return {
34
+ name: this.name,
35
+ message: this.message,
36
+ details: this.details,
37
+ hint: this.hint,
38
+ code: this.code,
39
+ }
40
+ }
31
41
  }
@@ -7,6 +7,7 @@ import {
7
7
  GenericTable,
8
8
  GenericView,
9
9
  } from './types/common/common'
10
+ import { RejectExcessProperties } from './types/types'
10
11
 
11
12
  export default class PostgrestQueryBuilder<
12
13
  ClientOptions extends ClientServerOptions,
@@ -929,7 +930,10 @@ export default class PostgrestQueryBuilder<
929
930
 
930
931
  // TODO(v3): Make `defaultToNull` consistent for both single & bulk inserts.
931
932
  insert<Row extends Relation extends { Insert: unknown } ? Relation['Insert'] : never>(
932
- values: Row,
933
+ values: RejectExcessProperties<
934
+ Relation extends { Insert: unknown } ? Relation['Insert'] : never,
935
+ Row
936
+ >,
933
937
  options?: {
934
938
  count?: 'exact' | 'planned' | 'estimated'
935
939
  }
@@ -943,7 +947,10 @@ export default class PostgrestQueryBuilder<
943
947
  'POST'
944
948
  >
945
949
  insert<Row extends Relation extends { Insert: unknown } ? Relation['Insert'] : never>(
946
- values: Row[],
950
+ values: RejectExcessProperties<
951
+ Relation extends { Insert: unknown } ? Relation['Insert'] : never,
952
+ Row
953
+ >[],
947
954
  options?: {
948
955
  count?: 'exact' | 'planned' | 'estimated'
949
956
  defaultToNull?: boolean
@@ -1069,7 +1076,15 @@ export default class PostgrestQueryBuilder<
1069
1076
  * ```
1070
1077
  */
1071
1078
  insert<Row extends Relation extends { Insert: unknown } ? Relation['Insert'] : never>(
1072
- values: Row | Row[],
1079
+ values:
1080
+ | RejectExcessProperties<
1081
+ Relation extends { Insert: unknown } ? Relation['Insert'] : never,
1082
+ Row
1083
+ >
1084
+ | RejectExcessProperties<
1085
+ Relation extends { Insert: unknown } ? Relation['Insert'] : never,
1086
+ Row
1087
+ >[],
1073
1088
  {
1074
1089
  count,
1075
1090
  defaultToNull = true,
@@ -1118,7 +1133,10 @@ export default class PostgrestQueryBuilder<
1118
1133
 
1119
1134
  // TODO(v3): Make `defaultToNull` consistent for both single & bulk upserts.
1120
1135
  upsert<Row extends Relation extends { Insert: unknown } ? Relation['Insert'] : never>(
1121
- values: Row,
1136
+ values: RejectExcessProperties<
1137
+ Relation extends { Insert: unknown } ? Relation['Insert'] : never,
1138
+ Row
1139
+ >,
1122
1140
  options?: {
1123
1141
  onConflict?: string
1124
1142
  ignoreDuplicates?: boolean
@@ -1134,7 +1152,10 @@ export default class PostgrestQueryBuilder<
1134
1152
  'POST'
1135
1153
  >
1136
1154
  upsert<Row extends Relation extends { Insert: unknown } ? Relation['Insert'] : never>(
1137
- values: Row[],
1155
+ values: RejectExcessProperties<
1156
+ Relation extends { Insert: unknown } ? Relation['Insert'] : never,
1157
+ Row
1158
+ >[],
1138
1159
  options?: {
1139
1160
  onConflict?: string
1140
1161
  ignoreDuplicates?: boolean
@@ -1360,7 +1381,15 @@ export default class PostgrestQueryBuilder<
1360
1381
  */
1361
1382
 
1362
1383
  upsert<Row extends Relation extends { Insert: unknown } ? Relation['Insert'] : never>(
1363
- values: Row | Row[],
1384
+ values:
1385
+ | RejectExcessProperties<
1386
+ Relation extends { Insert: unknown } ? Relation['Insert'] : never,
1387
+ Row
1388
+ >
1389
+ | RejectExcessProperties<
1390
+ Relation extends { Insert: unknown } ? Relation['Insert'] : never,
1391
+ Row
1392
+ >[],
1364
1393
  {
1365
1394
  onConflict,
1366
1395
  ignoreDuplicates = false,
@@ -1554,7 +1583,10 @@ export default class PostgrestQueryBuilder<
1554
1583
  * ```
1555
1584
  */
1556
1585
  update<Row extends Relation extends { Update: unknown } ? Relation['Update'] : never>(
1557
- values: Row,
1586
+ values: RejectExcessProperties<
1587
+ Relation extends { Update: unknown } ? Relation['Update'] : never,
1588
+ Row
1589
+ >,
1558
1590
  {
1559
1591
  count,
1560
1592
  }: {
@@ -38,6 +38,12 @@ export type DatabaseWithOptions<Database, Options extends ClientServerOptions> =
38
38
  // https://twitter.com/mattpocockuk/status/1622730173446557697
39
39
  export type Prettify<T> = { [K in keyof T]: T[K] } & {}
40
40
 
41
+ // Rejects excess properties that aren't in Base.
42
+ // Works around TypeScript not checking excess properties on generic parameters.
43
+ export type RejectExcessProperties<Base, Row> = Row & {
44
+ [K in Exclude<keyof Row, keyof Base>]: never
45
+ }
46
+
41
47
  // https://github.com/sindresorhus/type-fest
42
48
  export type SimplifyDeep<Type, ExcludeType = never> = ConditionalSimplifyDeep<
43
49
  Type,
package/src/version.ts CHANGED
@@ -4,4 +4,4 @@
4
4
  // - Debugging and support (identifying which version is running)
5
5
  // - Telemetry and logging (version reporting in errors/analytics)
6
6
  // - Ensuring build artifacts match the published package version
7
- export const version = '2.102.0-beta.0'
7
+ export const version = '2.103.0-canary.0'