@supabase/postgrest-js 1.18.1 → 1.19.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.
@@ -1,4 +1,4 @@
1
- import type { Fetch, PostgrestSingleResponse, PostgrestResponseSuccess } from './types';
1
+ import type { Fetch, PostgrestSingleResponse, PostgrestResponseSuccess, CheckMatchingArrayTypes, MergePartialResult, IsValidResultOverride } from './types';
2
2
  export default abstract class PostgrestBuilder<Result, ThrowOnError extends boolean = false> implements PromiseLike<ThrowOnError extends true ? PostgrestResponseSuccess<Result> : PostgrestSingleResponse<Result>> {
3
3
  protected method: 'GET' | 'HEAD' | 'POST' | 'PATCH' | 'DELETE';
4
4
  protected url: URL;
@@ -22,5 +22,39 @@ export default abstract class PostgrestBuilder<Result, ThrowOnError extends bool
22
22
  */
23
23
  setHeader(name: string, value: string): this;
24
24
  then<TResult1 = ThrowOnError extends true ? PostgrestResponseSuccess<Result> : PostgrestSingleResponse<Result>, TResult2 = never>(onfulfilled?: ((value: ThrowOnError extends true ? PostgrestResponseSuccess<Result> : PostgrestSingleResponse<Result>) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;
25
+ /**
26
+ * Override the type of the returned `data`.
27
+ *
28
+ * @typeParam NewResult - The new result type to override with
29
+ * @deprecated Use overrideTypes<yourType, { merge: false }>() method at the end of your call chain instead
30
+ */
31
+ returns<NewResult>(): PostgrestBuilder<CheckMatchingArrayTypes<Result, NewResult>, ThrowOnError>;
32
+ /**
33
+ * Override the type of the returned `data` field in the response.
34
+ *
35
+ * @typeParam NewResult - The new type to cast the response data to
36
+ * @typeParam Options - Optional type configuration (defaults to { merge: true })
37
+ * @typeParam Options.merge - When true, merges the new type with existing return type. When false, replaces the existing types entirely (defaults to true)
38
+ * @example
39
+ * ```typescript
40
+ * // Merge with existing types (default behavior)
41
+ * const query = supabase
42
+ * .from('users')
43
+ * .select()
44
+ * .overrideTypes<{ custom_field: string }>()
45
+ *
46
+ * // Replace existing types completely
47
+ * const replaceQuery = supabase
48
+ * .from('users')
49
+ * .select()
50
+ * .overrideTypes<{ id: number; name: string }, { merge: false }>()
51
+ * ```
52
+ * @returns A PostgrestBuilder instance with the new type
53
+ */
54
+ overrideTypes<NewResult, Options extends {
55
+ merge?: boolean;
56
+ } = {
57
+ merge: true;
58
+ }>(): PostgrestBuilder<IsValidResultOverride<Result, NewResult, true, false, false> extends true ? MergePartialResult<NewResult, Result, Options> : CheckMatchingArrayTypes<Result, NewResult>, ThrowOnError>;
25
59
  }
26
60
  //# sourceMappingURL=PostgrestBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PostgrestBuilder.d.ts","sourceRoot":"","sources":["../../src/PostgrestBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAGvF,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,gBAAgB,CAAC,MAAM,EAAE,YAAY,SAAS,OAAO,GAAG,KAAK,CACzF,YACE,WAAW,CACT,YAAY,SAAS,IAAI,GAAG,wBAAwB,CAAC,MAAM,CAAC,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAC/F;IAEH,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;IAC9D,SAAS,CAAC,GAAG,EAAE,GAAG,CAAA;IAClB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACxB,SAAS,CAAC,kBAAkB,UAAQ;IACpC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC9B,SAAS,CAAC,KAAK,EAAE,KAAK,CAAA;IACtB,SAAS,CAAC,aAAa,EAAE,OAAO,CAAA;gBAEpB,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAmB7C;;;;;OAKG;IACH,YAAY,IAAI,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC;IAKrD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAM5C,IAAI,CACF,QAAQ,GAAG,YAAY,SAAS,IAAI,GAChC,wBAAwB,CAAC,MAAM,CAAC,GAChC,uBAAuB,CAAC,MAAM,CAAC,EACnC,QAAQ,GAAG,KAAK,EAEhB,WAAW,CAAC,EACR,CAAC,CACC,KAAK,EAAE,YAAY,SAAS,IAAI,GAC5B,wBAAwB,CAAC,MAAM,CAAC,GAChC,uBAAuB,CAAC,MAAM,CAAC,KAChC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GACtC,SAAS,GACT,IAAI,EACR,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAClF,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;CAuIpC"}
1
+ {"version":3,"file":"PostgrestBuilder.d.ts","sourceRoot":"","sources":["../../src/PostgrestBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,KAAK,EACL,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAGhB,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,gBAAgB,CAAC,MAAM,EAAE,YAAY,SAAS,OAAO,GAAG,KAAK,CACzF,YACE,WAAW,CACT,YAAY,SAAS,IAAI,GAAG,wBAAwB,CAAC,MAAM,CAAC,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAC/F;IAEH,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;IAC9D,SAAS,CAAC,GAAG,EAAE,GAAG,CAAA;IAClB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACxB,SAAS,CAAC,kBAAkB,UAAQ;IACpC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC9B,SAAS,CAAC,KAAK,EAAE,KAAK,CAAA;IACtB,SAAS,CAAC,aAAa,EAAE,OAAO,CAAA;gBAEpB,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAmB7C;;;;;OAKG;IACH,YAAY,IAAI,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC;IAKrD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAM5C,IAAI,CACF,QAAQ,GAAG,YAAY,SAAS,IAAI,GAChC,wBAAwB,CAAC,MAAM,CAAC,GAChC,uBAAuB,CAAC,MAAM,CAAC,EACnC,QAAQ,GAAG,KAAK,EAEhB,WAAW,CAAC,EACR,CAAC,CACC,KAAK,EAAE,YAAY,SAAS,IAAI,GAC5B,wBAAwB,CAAC,MAAM,CAAC,GAChC,uBAAuB,CAAC,MAAM,CAAC,KAChC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GACtC,SAAS,GACT,IAAI,EACR,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAClF,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAwInC;;;;;OAKG;IACH,OAAO,CAAC,SAAS,KAAK,gBAAgB,CAAC,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC;IAQhG;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,aAAa,CACX,SAAS,EACT,OAAO,SAAS;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,IAAI,CAAA;KAAE,KAClD,gBAAgB,CACnB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,IAAI,GACrE,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,GAC9C,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,EAC9C,YAAY,CACb;CAQF"}
@@ -181,6 +181,41 @@ class PostgrestBuilder {
181
181
  }
182
182
  return res.then(onfulfilled, onrejected);
183
183
  }
184
+ /**
185
+ * Override the type of the returned `data`.
186
+ *
187
+ * @typeParam NewResult - The new result type to override with
188
+ * @deprecated Use overrideTypes<yourType, { merge: false }>() method at the end of your call chain instead
189
+ */
190
+ returns() {
191
+ /* istanbul ignore next */
192
+ return this;
193
+ }
194
+ /**
195
+ * Override the type of the returned `data` field in the response.
196
+ *
197
+ * @typeParam NewResult - The new type to cast the response data to
198
+ * @typeParam Options - Optional type configuration (defaults to { merge: true })
199
+ * @typeParam Options.merge - When true, merges the new type with existing return type. When false, replaces the existing types entirely (defaults to true)
200
+ * @example
201
+ * ```typescript
202
+ * // Merge with existing types (default behavior)
203
+ * const query = supabase
204
+ * .from('users')
205
+ * .select()
206
+ * .overrideTypes<{ custom_field: string }>()
207
+ *
208
+ * // Replace existing types completely
209
+ * const replaceQuery = supabase
210
+ * .from('users')
211
+ * .select()
212
+ * .overrideTypes<{ id: number; name: string }, { merge: false }>()
213
+ * ```
214
+ * @returns A PostgrestBuilder instance with the new type
215
+ */
216
+ overrideTypes() {
217
+ return this;
218
+ }
184
219
  }
185
220
  exports.default = PostgrestBuilder;
186
221
  //# sourceMappingURL=PostgrestBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PostgrestBuilder.js","sourceRoot":"","sources":["../../src/PostgrestBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgrestBuilder.js","sourceRoot":"","sources":["../../src/PostgrestBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import PostgrestBuilder from './PostgrestBuilder';
2
2
  import { GetResult } from './select-query-parser/result';
3
- import { GenericSchema } from './types';
3
+ import { GenericSchema, CheckMatchingArrayTypes } from './types';
4
4
  export default class PostgrestTransformBuilder<Schema extends GenericSchema, Row extends Record<string, unknown>, Result, RelationName = unknown, Relationships = unknown> extends PostgrestBuilder<Result> {
5
5
  /**
6
6
  * Perform a SELECT on the query result.
@@ -142,7 +142,8 @@ export default class PostgrestTransformBuilder<Schema extends GenericSchema, Row
142
142
  * Override the type of the returned `data`.
143
143
  *
144
144
  * @typeParam NewResult - The new result type to override with
145
+ * @deprecated Use overrideTypes<yourType, { merge: false }>() method at the end of your call chain instead
145
146
  */
146
- returns<NewResult>(): PostgrestTransformBuilder<Schema, Row, NewResult, RelationName, Relationships>;
147
+ returns<NewResult>(): PostgrestTransformBuilder<Schema, Row, CheckMatchingArrayTypes<Result, NewResult>, RelationName, Relationships>;
147
148
  }
148
149
  //# sourceMappingURL=PostgrestTransformBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PostgrestTransformBuilder.d.ts","sourceRoot":"","sources":["../../src/PostgrestTransformBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,CAAC,OAAO,OAAO,yBAAyB,CAC5C,MAAM,SAAS,aAAa,EAC5B,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,MAAM,EACN,YAAY,GAAG,OAAO,EACtB,aAAa,GAAG,OAAO,CACvB,SAAQ,gBAAgB,CAAC,MAAM,CAAC;IAChC;;;;;;;;OAQG;IACH,MAAM,CACJ,KAAK,SAAS,MAAM,GAAG,GAAG,EAC1B,YAAY,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,CAAC,EAEzE,OAAO,CAAC,EAAE,KAAK,GACd,yBAAyB,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,aAAa,CAAC;IA6BtF,KAAK,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM,GAAG,EACzC,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,SAAS,CAAA;KAAE,GACnF,IAAI;IACP,KAAK,CACH,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAChF,IAAI;IACP;;OAEG;IACH,KAAK,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM,GAAG,EACzC,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,SAAS,CAAA;KAAE,GAChF,IAAI;IACP;;OAEG;IACH,KAAK,CACH,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7E,IAAI;IA6CP;;;;;;;;;OASG;IACH,KAAK,CACH,KAAK,EAAE,MAAM,EACb,EACE,YAAY,EACZ,eAA8B,GAC/B,GAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAO,GAC1D,IAAI;IAMP;;;;;;;;;;;;;;OAcG;IACH,KAAK,CACH,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,EACE,YAAY,EACZ,eAA8B,GAC/B,GAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAO,GAC1D,IAAI;IAUP;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAKtC;;;;;OAKG;IACH,MAAM,CACJ,SAAS,GAAG,MAAM,SAAS,CAAC,MAAM,SAAS,CAAC,EAAE,GAAG,SAAS,GAAG,KAAK,KAC/D,gBAAgB,CAAC,SAAS,CAAC;IAKhC;;;;;OAKG;IACH,WAAW,CACT,SAAS,GAAG,MAAM,SAAS,CAAC,MAAM,SAAS,CAAC,EAAE,GAAG,SAAS,GAAG,KAAK,KAC/D,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC;IAYvC;;OAEG;IACH,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAK/B;;OAEG;IACH,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAKpD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,CAAC,EACN,OAAe,EACf,OAAe,EACf,QAAgB,EAChB,OAAe,EACf,GAAW,EACX,MAAe,GAChB,GAAE;QACD,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,GAAG,CAAC,EAAE,OAAO,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KACpB,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAmB/E;;;;OAIG;IACH,QAAQ,IAAI,IAAI;IAShB;;;;OAIG;IACH,OAAO,CAAC,SAAS,KAAK,yBAAyB,CAC7C,MAAM,EACN,GAAG,EACH,SAAS,EACT,YAAY,EACZ,aAAa,CACd;CASF"}
1
+ {"version":3,"file":"PostgrestTransformBuilder.d.ts","sourceRoot":"","sources":["../../src/PostgrestTransformBuilder.ts"],"names":[],"mappings":"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"}
@@ -212,6 +212,7 @@ class PostgrestTransformBuilder extends PostgrestBuilder_1.default {
212
212
  * Override the type of the returned `data`.
213
213
  *
214
214
  * @typeParam NewResult - The new result type to override with
215
+ * @deprecated Use overrideTypes<yourType, { merge: false }>() method at the end of your call chain instead
215
216
  */
216
217
  returns() {
217
218
  return this;
@@ -1 +1 @@
1
- {"version":3,"file":"PostgrestTransformBuilder.js","sourceRoot":"","sources":["../../src/PostgrestTransformBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgrestTransformBuilder.js","sourceRoot":"","sources":["../../src/PostgrestTransformBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import PostgrestError from './PostgrestError';
2
+ import { ContainsNull } from './select-query-parser/types';
3
+ import { SelectQueryError } from './select-query-parser/utils';
2
4
  export declare type Fetch = typeof fetch;
3
5
  /**
4
6
  * Response format
@@ -65,5 +67,25 @@ declare type ConditionalSimplifyDeep<Type, ExcludeType = never, IncludeType = un
65
67
  declare type NonRecursiveType = BuiltIns | Function | (new (...arguments_: any[]) => unknown);
66
68
  declare type BuiltIns = Primitive | void | Date | RegExp;
67
69
  declare type Primitive = null | undefined | string | number | boolean | symbol | bigint;
70
+ export declare type IsValidResultOverride<Result, NewResult, Ok, ErrorResult, ErrorNewResult> = Result extends any[] ? NewResult extends any[] ? Ok : ErrorResult : NewResult extends any[] ? ErrorNewResult : ContainsNull<Result> extends true ? Ok | null : Ok;
71
+ /**
72
+ * Utility type to check if array types match between Result and NewResult.
73
+ * Returns either the valid NewResult type or an error message type.
74
+ */
75
+ export declare type CheckMatchingArrayTypes<Result, NewResult> = Result extends SelectQueryError<string> ? NewResult : IsValidResultOverride<Result, NewResult, NewResult, {
76
+ Error: 'Type mismatch: Cannot cast array result to a single object. Use .returns<Array<YourType>> for array results or .single() to convert the result to a single object';
77
+ }, {
78
+ Error: 'Type mismatch: Cannot cast single object to array type. Remove Array wrapper from return type or make sure you are not using .single() up in the calling chain';
79
+ }>;
80
+ declare type Simplify<T> = T extends object ? {
81
+ [K in keyof T]: T[K];
82
+ } : T;
83
+ declare type MergeDeep<New, Row> = {
84
+ [K in keyof New | keyof Row]: K extends keyof Row ? K extends keyof New ? IsPlainObject<New[K]> extends true ? IsPlainObject<Row[K]> extends true ? MergeDeep<New[K], Row[K]> : Row[K] : Row[K] : Row[K] : K extends keyof New ? New[K] : never;
85
+ };
86
+ declare type IsPlainObject<T> = T extends any[] ? false : T extends object ? true : false;
87
+ export declare type MergePartialResult<NewResult, Result, Options> = Options extends {
88
+ merge: true;
89
+ } ? Result extends any[] ? NewResult extends any[] ? Array<Simplify<MergeDeep<NewResult[number], Result[number]>>> : never : Simplify<MergeDeep<NewResult, Result>> : NewResult;
68
90
  export {};
69
91
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAE9D,oBAAY,KAAK,GAAG,OAAO,KAAK,CAAA;AAEhC;;;;GAIG;AACH,UAAU,qBAAqB;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACnB;AACD,MAAM,WAAW,wBAAwB,CAAC,CAAC,CAAE,SAAQ,qBAAqB;IACxE,KAAK,EAAE,IAAI,CAAA;IACX,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AACD,MAAM,WAAW,wBAAyB,SAAQ,qBAAqB;IACrE,KAAK,EAAE,cAAc,CAAA;IACrB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,IAAI,CAAA;CACZ;AAKD,oBAAY,uBAAuB,CAAC,CAAC,IAAI,wBAAwB,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAA;AAC/F,oBAAY,4BAA4B,CAAC,CAAC,IAAI,uBAAuB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AAC/E,oBAAY,iBAAiB,CAAC,CAAC,IAAI,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAA;AAE/D,oBAAY,mBAAmB,GAAG;IAChC,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B,CAAA;AAED,oBAAY,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,aAAa,EAAE,mBAAmB,EAAE,CAAA;CACrC,CAAA;AAED,oBAAY,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,aAAa,EAAE,mBAAmB,EAAE,CAAA;CACrC,CAAA;AAED,oBAAY,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,aAAa,EAAE,mBAAmB,EAAE,CAAA;CACrC,CAAA;AAED,oBAAY,WAAW,GAAG,oBAAoB,GAAG,uBAAuB,CAAA;AAExE,oBAAY,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,oBAAY,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAC3C,CAAA;AAGD,oBAAY,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,EAAE,CAAA;AAEvD,oBAAY,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,KAAK,IAAI,uBAAuB,CAC3E,IAAI,EACJ,WAAW,GAAG,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,EACrE,MAAM,CACP,CAAA;AACD,aAAK,uBAAuB,CAC1B,IAAI,EACJ,WAAW,GAAG,KAAK,EACnB,WAAW,GAAG,OAAO,IACnB,IAAI,SAAS,WAAW,GACxB,IAAI,GACJ,IAAI,SAAS,WAAW,GACxB;KAAG,OAAO,IAAI,MAAM,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC;CAAE,GAC7F,IAAI,CAAA;AACR,aAAK,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,CAAC,KAAK,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,CAAA;AACrF,aAAK,QAAQ,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;AAChD,aAAK,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAE/E,oBAAY,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,cAAc,IAClF,MAAM,SAAS,GAAG,EAAE,GAChB,SAAS,SAAS,GAAG,EAAE,GAErB,EAAE,GACF,WAAW,GACb,SAAS,SAAS,GAAG,EAAE,GACvB,cAAc,GAGhB,YAAY,CAAC,MAAM,CAAC,SAAS,IAAI,GAC/B,EAAE,GAAG,IAAI,GACT,EAAE,CAAA;AAER;;;GAGG;AACH,oBAAY,uBAAuB,CAAC,MAAM,EAAE,SAAS,IAEnD,MAAM,SAAS,gBAAgB,CAAC,MAAM,CAAC,GACnC,SAAS,GACT,qBAAqB,CACnB,MAAM,EACN,SAAS,EACT,SAAS,EACT;IACE,KAAK,EAAE,mKAAmK,CAAA;CAC3K,EACD;IACE,KAAK,EAAE,gKAAgK,CAAA;CACxK,CACF,CAAA;AAEP,aAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,CAAC,CAAA;AAElE,aAAK,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI;KACxB,CAAC,IAAI,MAAM,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC,SAAS,MAAM,GAAG,GAC7C,CAAC,SAAS,MAAM,GAAG,GACjB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAChC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GACzB,GAAG,CAAC,CAAC,CAAC,GACR,GAAG,CAAC,CAAC,CAAC,GACR,GAAG,CAAC,CAAC,CAAC,GACR,CAAC,SAAS,MAAM,GAAG,GACnB,GAAG,CAAC,CAAC,CAAC,GACN,KAAK;CACV,CAAA;AAGD,aAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,KAAK,CAAA;AAIjF,oBAAY,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,IAAI,OAAO,SAAS;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GACxF,MAAM,SAAS,GAAG,EAAE,GAClB,SAAS,SAAS,GAAG,EAAE,GACrB,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAC7D,KAAK,GACP,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,GACxC,SAAS,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supabase/postgrest-js",
3
- "version": "1.18.1",
3
+ "version": "1.19.0",
4
4
  "description": "Isomorphic PostgREST client",
5
5
  "keywords": [
6
6
  "postgrest",
@@ -1,7 +1,14 @@
1
1
  // @ts-ignore
2
2
  import nodeFetch from '@supabase/node-fetch'
3
3
 
4
- import type { Fetch, PostgrestSingleResponse, PostgrestResponseSuccess } from './types'
4
+ import type {
5
+ Fetch,
6
+ PostgrestSingleResponse,
7
+ PostgrestResponseSuccess,
8
+ CheckMatchingArrayTypes,
9
+ MergePartialResult,
10
+ IsValidResultOverride,
11
+ } from './types'
5
12
  import PostgrestError from './PostgrestError'
6
13
 
7
14
  export default abstract class PostgrestBuilder<Result, ThrowOnError extends boolean = false>
@@ -209,4 +216,57 @@ export default abstract class PostgrestBuilder<Result, ThrowOnError extends bool
209
216
 
210
217
  return res.then(onfulfilled, onrejected)
211
218
  }
219
+
220
+ /**
221
+ * Override the type of the returned `data`.
222
+ *
223
+ * @typeParam NewResult - The new result type to override with
224
+ * @deprecated Use overrideTypes<yourType, { merge: false }>() method at the end of your call chain instead
225
+ */
226
+ returns<NewResult>(): PostgrestBuilder<CheckMatchingArrayTypes<Result, NewResult>, ThrowOnError> {
227
+ /* istanbul ignore next */
228
+ return this as unknown as PostgrestBuilder<
229
+ CheckMatchingArrayTypes<Result, NewResult>,
230
+ ThrowOnError
231
+ >
232
+ }
233
+
234
+ /**
235
+ * Override the type of the returned `data` field in the response.
236
+ *
237
+ * @typeParam NewResult - The new type to cast the response data to
238
+ * @typeParam Options - Optional type configuration (defaults to { merge: true })
239
+ * @typeParam Options.merge - When true, merges the new type with existing return type. When false, replaces the existing types entirely (defaults to true)
240
+ * @example
241
+ * ```typescript
242
+ * // Merge with existing types (default behavior)
243
+ * const query = supabase
244
+ * .from('users')
245
+ * .select()
246
+ * .overrideTypes<{ custom_field: string }>()
247
+ *
248
+ * // Replace existing types completely
249
+ * const replaceQuery = supabase
250
+ * .from('users')
251
+ * .select()
252
+ * .overrideTypes<{ id: number; name: string }, { merge: false }>()
253
+ * ```
254
+ * @returns A PostgrestBuilder instance with the new type
255
+ */
256
+ overrideTypes<
257
+ NewResult,
258
+ Options extends { merge?: boolean } = { merge: true }
259
+ >(): PostgrestBuilder<
260
+ IsValidResultOverride<Result, NewResult, true, false, false> extends true
261
+ ? MergePartialResult<NewResult, Result, Options>
262
+ : CheckMatchingArrayTypes<Result, NewResult>,
263
+ ThrowOnError
264
+ > {
265
+ return this as unknown as PostgrestBuilder<
266
+ IsValidResultOverride<Result, NewResult, true, false, false> extends true
267
+ ? MergePartialResult<NewResult, Result, Options>
268
+ : CheckMatchingArrayTypes<Result, NewResult>,
269
+ ThrowOnError
270
+ >
271
+ }
212
272
  }
@@ -1,6 +1,6 @@
1
1
  import PostgrestBuilder from './PostgrestBuilder'
2
2
  import { GetResult } from './select-query-parser/result'
3
- import { GenericSchema } from './types'
3
+ import { GenericSchema, CheckMatchingArrayTypes } from './types'
4
4
 
5
5
  export default class PostgrestTransformBuilder<
6
6
  Schema extends GenericSchema,
@@ -307,18 +307,19 @@ export default class PostgrestTransformBuilder<
307
307
  * Override the type of the returned `data`.
308
308
  *
309
309
  * @typeParam NewResult - The new result type to override with
310
+ * @deprecated Use overrideTypes<yourType, { merge: false }>() method at the end of your call chain instead
310
311
  */
311
312
  returns<NewResult>(): PostgrestTransformBuilder<
312
313
  Schema,
313
314
  Row,
314
- NewResult,
315
+ CheckMatchingArrayTypes<Result, NewResult>,
315
316
  RelationName,
316
317
  Relationships
317
318
  > {
318
319
  return this as unknown as PostgrestTransformBuilder<
319
320
  Schema,
320
321
  Row,
321
- NewResult,
322
+ CheckMatchingArrayTypes<Result, NewResult>,
322
323
  RelationName,
323
324
  Relationships
324
325
  >
package/src/types.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import PostgrestError from './PostgrestError'
2
+ import { ContainsNull } from './select-query-parser/types'
3
+ import { SelectQueryError } from './select-query-parser/utils'
2
4
 
3
5
  export type Fetch = typeof fetch
4
6
 
@@ -89,3 +91,66 @@ type ConditionalSimplifyDeep<
89
91
  type NonRecursiveType = BuiltIns | Function | (new (...arguments_: any[]) => unknown)
90
92
  type BuiltIns = Primitive | void | Date | RegExp
91
93
  type Primitive = null | undefined | string | number | boolean | symbol | bigint
94
+
95
+ export type IsValidResultOverride<Result, NewResult, Ok, ErrorResult, ErrorNewResult> =
96
+ Result extends any[]
97
+ ? NewResult extends any[]
98
+ ? // Both are arrays - valid
99
+ Ok
100
+ : ErrorResult
101
+ : NewResult extends any[]
102
+ ? ErrorNewResult
103
+ : // Neither are arrays - valid
104
+ // Preserve the optionality of the result if the overriden type is an object (case of chaining with `maybeSingle`)
105
+ ContainsNull<Result> extends true
106
+ ? Ok | null
107
+ : Ok
108
+
109
+ /**
110
+ * Utility type to check if array types match between Result and NewResult.
111
+ * Returns either the valid NewResult type or an error message type.
112
+ */
113
+ export type CheckMatchingArrayTypes<Result, NewResult> =
114
+ // If the result is a QueryError we allow the user to override anyway
115
+ Result extends SelectQueryError<string>
116
+ ? NewResult
117
+ : IsValidResultOverride<
118
+ Result,
119
+ NewResult,
120
+ NewResult,
121
+ {
122
+ Error: 'Type mismatch: Cannot cast array result to a single object. Use .returns<Array<YourType>> for array results or .single() to convert the result to a single object'
123
+ },
124
+ {
125
+ Error: 'Type mismatch: Cannot cast single object to array type. Remove Array wrapper from return type or make sure you are not using .single() up in the calling chain'
126
+ }
127
+ >
128
+
129
+ type Simplify<T> = T extends object ? { [K in keyof T]: T[K] } : T
130
+
131
+ type MergeDeep<New, Row> = {
132
+ [K in keyof New | keyof Row]: K extends keyof Row
133
+ ? K extends keyof New
134
+ ? IsPlainObject<New[K]> extends true
135
+ ? IsPlainObject<Row[K]> extends true
136
+ ? MergeDeep<New[K], Row[K]>
137
+ : Row[K]
138
+ : Row[K]
139
+ : Row[K]
140
+ : K extends keyof New
141
+ ? New[K]
142
+ : never
143
+ }
144
+
145
+ // Helper to check if a type is a plain object (not an array)
146
+ type IsPlainObject<T> = T extends any[] ? false : T extends object ? true : false
147
+
148
+ // Merge the new result with the original (Result) when merge option is true.
149
+ // If NewResult is an array, merge each element.
150
+ export type MergePartialResult<NewResult, Result, Options> = Options extends { merge: true }
151
+ ? Result extends any[]
152
+ ? NewResult extends any[]
153
+ ? Array<Simplify<MergeDeep<NewResult[number], Result[number]>>>
154
+ : never
155
+ : Simplify<MergeDeep<NewResult, Result>>
156
+ : NewResult
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '1.18.1'
1
+ export const version = '1.19.0'