@motherbase/client 1.2.4 → 1.2.7

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.
Files changed (46) hide show
  1. package/README.md +95 -42
  2. package/dist/admin.d.ts +81 -0
  3. package/dist/admin.d.ts.map +1 -0
  4. package/dist/admin.js +85 -0
  5. package/dist/admin.js.map +1 -0
  6. package/dist/auth.d.ts +35 -5
  7. package/dist/auth.d.ts.map +1 -1
  8. package/dist/auth.js +52 -17
  9. package/dist/auth.js.map +1 -1
  10. package/dist/channel.d.ts +15 -0
  11. package/dist/channel.d.ts.map +1 -1
  12. package/dist/channel.js +53 -19
  13. package/dist/channel.js.map +1 -1
  14. package/dist/cookie.d.ts +3 -1
  15. package/dist/cookie.d.ts.map +1 -1
  16. package/dist/cookie.js +14 -2
  17. package/dist/cookie.js.map +1 -1
  18. package/dist/database.d.ts +169 -0
  19. package/dist/database.d.ts.map +1 -0
  20. package/dist/database.js +2 -0
  21. package/dist/database.js.map +1 -0
  22. package/dist/http.d.ts +11 -0
  23. package/dist/http.d.ts.map +1 -1
  24. package/dist/http.js +10 -1
  25. package/dist/http.js.map +1 -1
  26. package/dist/index.d.ts +53 -6
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +68 -2
  29. package/dist/index.js.map +1 -1
  30. package/dist/mfa.d.ts +109 -0
  31. package/dist/mfa.d.ts.map +1 -0
  32. package/dist/mfa.js +134 -0
  33. package/dist/mfa.js.map +1 -0
  34. package/dist/postgrest.d.ts +207 -32
  35. package/dist/postgrest.d.ts.map +1 -1
  36. package/dist/postgrest.js +349 -54
  37. package/dist/postgrest.js.map +1 -1
  38. package/dist/realtime.d.ts +15 -3
  39. package/dist/realtime.d.ts.map +1 -1
  40. package/dist/realtime.js +24 -1
  41. package/dist/realtime.js.map +1 -1
  42. package/dist/storage.d.ts +33 -16
  43. package/dist/storage.d.ts.map +1 -1
  44. package/dist/storage.js +70 -21
  45. package/dist/storage.js.map +1 -1
  46. package/package.json +52 -51
package/dist/channel.d.ts CHANGED
@@ -76,10 +76,20 @@ export declare class RealtimeChannel {
76
76
  private readonly presenceBindings;
77
77
  private status;
78
78
  private presence;
79
+ /** Settles when the current subscribe() attempt has an ack (or has failed). */
80
+ private ready;
81
+ private onStatus?;
82
+ /** Last state passed to track(), replayed after a reconnect. */
83
+ private trackedState;
79
84
  constructor(topic: string, realtime: RealtimeModule, options?: RealtimeChannelOptions);
80
85
  on(type: 'broadcast', filter: BroadcastFilter, callback: (payload: BroadcastReceived) => void): this;
81
86
  on(type: 'presence', filter: PresenceFilter, callback: (payload: unknown) => void): this;
82
87
  on(type: 'postgres_changes', filter: PostgresChangeFilter, callback: (payload: PostgresChangePayload) => void): this;
88
+ /**
89
+ * Join the topic. Returns `this` (supabase-js shape), so it is NOT awaitable:
90
+ * `send()` / `track()` / `untrack()` issued straight after are queued until the
91
+ * join is acked instead of leaving early and being rejected by the server.
92
+ */
83
93
  subscribe(onStatus?: (status: ChannelStatus, err?: Error) => void, timeoutMs?: number): this;
84
94
  unsubscribe(): Promise<'ok'>;
85
95
  /**
@@ -95,6 +105,11 @@ export declare class RealtimeChannel {
95
105
  untrack(): Promise<'ok' | 'timed out' | 'error'>;
96
106
  /** Current presence state, keyed by presence key. */
97
107
  presenceState<T extends Record<string, unknown> = Record<string, unknown>>(): PresenceState<T>;
108
+ /** Wait for a pending subscribe() to settle; false when the topic is not joined. */
109
+ private subscribed;
110
+ private setStatus;
111
+ /** Internal: the module replayed this topic's join on a new socket. */
112
+ _rejoined(ok: boolean): void;
98
113
  /** Internal: receive a topic envelope routed by RealtimeModule. */
99
114
  _receive(envelope: RealtimeTopicEnvelope): void;
100
115
  private applyPresenceState;
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
package/dist/channel.js CHANGED
@@ -14,6 +14,10 @@ export class RealtimeChannel {
14
14
  this.presenceBindings = [];
15
15
  this.status = 'CLOSED';
16
16
  this.presence = {};
17
+ /** Settles when the current subscribe() attempt has an ack (or has failed). */
18
+ this.ready = Promise.resolve();
19
+ /** Last state passed to track(), replayed after a reconnect. */
20
+ this.trackedState = null;
17
21
  }
18
22
  on(type, filter, callback) {
19
23
  if (type === 'broadcast') {
@@ -39,30 +43,29 @@ export class RealtimeChannel {
39
43
  }
40
44
  return this;
41
45
  }
46
+ /**
47
+ * Join the topic. Returns `this` (supabase-js shape), so it is NOT awaitable:
48
+ * `send()` / `track()` / `untrack()` issued straight after are queued until the
49
+ * join is acked instead of leaving early and being rejected by the server.
50
+ */
42
51
  subscribe(onStatus, timeoutMs = 10000) {
43
- void (async () => {
52
+ this.onStatus = onStatus;
53
+ this.ready = (async () => {
44
54
  try {
45
55
  await this.realtime.connect({ fallbackPolling: false });
46
56
  }
47
57
  catch (err) {
48
- this.status = 'CHANNEL_ERROR';
49
- onStatus?.('CHANNEL_ERROR', err instanceof Error ? err : new Error(String(err)));
58
+ this.setStatus('CHANNEL_ERROR', err instanceof Error ? err : new Error(String(err)));
50
59
  return;
51
60
  }
52
61
  this.realtime.registerChannel(this.topic, this);
53
62
  const ack = await this.realtime.joinTopic(this.topic, this.buildConfig(), timeoutMs);
54
- if (ack.status === 'ok') {
55
- this.status = 'SUBSCRIBED';
56
- onStatus?.('SUBSCRIBED');
57
- }
58
- else if (ack.error === 'timeout') {
59
- this.status = 'TIMED_OUT';
60
- onStatus?.('TIMED_OUT', new Error('Realtime join timed out'));
61
- }
62
- else {
63
- this.status = 'CHANNEL_ERROR';
64
- onStatus?.('CHANNEL_ERROR', new Error(ack.error ?? 'Realtime join failed'));
65
- }
63
+ if (ack.status === 'ok')
64
+ this.setStatus('SUBSCRIBED');
65
+ else if (ack.error === 'timeout')
66
+ this.setStatus('TIMED_OUT', new Error('Realtime join timed out'));
67
+ else
68
+ this.setStatus('CHANNEL_ERROR', new Error(ack.error ?? 'Realtime join failed'));
66
69
  })();
67
70
  return this;
68
71
  }
@@ -70,7 +73,9 @@ export class RealtimeChannel {
70
73
  this.realtime.leaveTopic(this.topic);
71
74
  this.realtime.unregisterChannel(this.topic);
72
75
  this.presence = {};
76
+ this.trackedState = null;
73
77
  this.status = 'CLOSED';
78
+ this.ready = Promise.resolve();
74
79
  return 'ok';
75
80
  }
76
81
  /**
@@ -79,25 +84,54 @@ export class RealtimeChannel {
79
84
  * message only when the channel was created with `config.broadcast.self`.
80
85
  * With `config.broadcast.ack`, resolves on the server ack.
81
86
  */
82
- send(message) {
87
+ async send(message) {
88
+ if (!(await this.subscribed()))
89
+ return 'error';
83
90
  if (this.options.config?.broadcast?.ack) {
84
91
  return this.realtime.sendTopicWithAck(this.topic, 'broadcast', message.event, message.payload ?? {});
85
92
  }
86
93
  this.realtime.sendTopic(this.topic, 'broadcast', message.event, message.payload ?? {});
87
- return Promise.resolve('ok');
94
+ return 'ok';
88
95
  }
89
96
  /** Announce this client's presence on the topic with the given state. */
90
- track(state) {
97
+ async track(state) {
98
+ this.trackedState = state;
99
+ if (!(await this.subscribed()))
100
+ return 'error';
91
101
  return this.realtime.sendTopicWithAck(this.topic, 'presence', 'track', { state });
92
102
  }
93
103
  /** Remove this client's presence from the topic. */
94
- untrack() {
104
+ async untrack() {
105
+ this.trackedState = null;
106
+ if (!(await this.subscribed()))
107
+ return 'error';
95
108
  return this.realtime.sendTopicWithAck(this.topic, 'presence', 'untrack', {});
96
109
  }
97
110
  /** Current presence state, keyed by presence key. */
98
111
  presenceState() {
99
112
  return this.presence;
100
113
  }
114
+ /** Wait for a pending subscribe() to settle; false when the topic is not joined. */
115
+ async subscribed() {
116
+ await this.ready;
117
+ return this.status === 'SUBSCRIBED';
118
+ }
119
+ setStatus(status, err) {
120
+ this.status = status;
121
+ this.onStatus?.(status, err);
122
+ }
123
+ /** Internal: the module replayed this topic's join on a new socket. */
124
+ _rejoined(ok) {
125
+ if (!ok) {
126
+ this.setStatus('CHANNEL_ERROR', new Error('Realtime rejoin failed'));
127
+ return;
128
+ }
129
+ // Presence lives on the server socket that just died: re-announce it.
130
+ if (this.trackedState) {
131
+ void this.realtime.sendTopicWithAck(this.topic, 'presence', 'track', { state: this.trackedState });
132
+ }
133
+ this.setStatus('SUBSCRIBED');
134
+ }
101
135
  /** Internal: receive a topic envelope routed by RealtimeModule. */
102
136
  _receive(envelope) {
103
137
  if (envelope.type === 'broadcast') {
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
package/dist/cookie.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { SessionStorageAdapter } from './types.js';
1
+ import type { Session, SessionStorageAdapter } from './types.js';
2
2
  export interface CookieOptions {
3
3
  path?: string;
4
4
  maxAge?: number;
@@ -24,6 +24,8 @@ export interface CookieMethods {
24
24
  }[];
25
25
  setAll(cookies: CookieToSet[]): void;
26
26
  }
27
+ /** @internal exported for tests; not part of the package's public surface. */
28
+ export declare function parseSession(raw: string | undefined): Session | null;
27
29
  /**
28
30
  * Browser cookie adapter. Falls back to in-memory storage when
29
31
  * `document` is not available (SSR, Node.js environments).
@@ -1 +1 @@
1
- {"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../src/cookie.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGjE,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,4FAA4F;AAC5F,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;CACtC;AAqBD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACjC,GAAG,qBAAqB,CA0B7B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,EACtB,GAAG,SAAc,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,qBAAqB,CAqBvB"}
1
+ {"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../src/cookie.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGjE,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,4FAA4F;AAC5F,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;CACtC;AAQD,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAcpE;AAMD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACjC,GAAG,qBAAqB,CA0B7B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,EACtB,GAAG,SAAc,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,qBAAqB,CAwBvB"}
package/dist/cookie.js CHANGED
@@ -3,9 +3,18 @@ const DEFAULT_KEY = 'motherbase.session';
3
3
  function escapeRegex(s) {
4
4
  return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
5
5
  }
6
- function parseSession(raw) {
6
+ /** @internal exported for tests; not part of the package's public surface. */
7
+ export function parseSession(raw) {
7
8
  if (!raw)
8
9
  return null;
10
+ // Server adapters (Next's `cookies()`) hand back an already-decoded value;
11
+ // `document.cookie` hands back the percent-encoded one. Try both.
12
+ try {
13
+ return JSON.parse(raw);
14
+ }
15
+ catch {
16
+ /* not plain JSON — fall through */
17
+ }
9
18
  try {
10
19
  return JSON.parse(decodeURIComponent(raw));
11
20
  }
@@ -64,7 +73,10 @@ export function serverCookieStorage(cookies, key = DEFAULT_KEY, options = {}) {
64
73
  cookies.setAll([
65
74
  {
66
75
  name: key,
67
- value: serializeSession(session),
76
+ // No percent-encoding here: `cookies().set()` encodes the value
77
+ // itself, and encoding first yields a double-encoded cookie the
78
+ // browser adapter can no longer parse.
79
+ value: JSON.stringify(session),
68
80
  options: { path: '/', sameSite: 'lax', secure },
69
81
  },
70
82
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"cookie.js","sourceRoot":"","sources":["../src/cookie.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cookie.js","sourceRoot":"","sources":["../src/cookie.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Type-level plumbing for `createClient<Database>(url, key)`.
3
+ *
4
+ * `Database` is the type generated by `motherbase gen types typescript`, which
5
+ * emits the exact shape supabase-js emits. Everything here reads that shape and
6
+ * nothing else, so a `database.types.ts` produced by Supabase's own generator
7
+ * works unchanged.
8
+ *
9
+ * This file is types only: it contains no runtime code. The query builder it
10
+ * describes is the existing `PostgrestQueryBuilder`; `MotherbaseClient.from()`
11
+ * hands back the same object viewed through this narrower interface.
12
+ */
13
+ import type { ExplainOptions, InsertOptions, MutateOptions, OrderOptions, PostgrestArrayOperand, PostgrestExplainBuilder, PostgrestFilterOperator, PostgrestIsValue, PostgrestResponse, PostgrestTextBuilder, ReferencedTableOption, SelectOptions, TextSearchType, UpsertOptions } from './postgrest.js';
14
+ export interface GenericTable {
15
+ Row: Record<string, unknown>;
16
+ Insert: Record<string, unknown>;
17
+ Update: Record<string, unknown>;
18
+ Relationships?: unknown;
19
+ }
20
+ export interface GenericView {
21
+ Row: Record<string, unknown>;
22
+ Relationships?: unknown;
23
+ }
24
+ export interface GenericFunction {
25
+ Args: Record<string, unknown>;
26
+ Returns: unknown;
27
+ }
28
+ export interface GenericSchema {
29
+ Tables: Record<string, GenericTable>;
30
+ Views: Record<string, GenericView>;
31
+ Functions: Record<string, GenericFunction>;
32
+ Enums?: Record<string, unknown>;
33
+ CompositeTypes?: Record<string, unknown>;
34
+ }
35
+ /**
36
+ * The default when no `Database` is supplied. Every relation name is accepted
37
+ * and every row is `Record<string, unknown>`, which is exactly how the SDK
38
+ * behaved before generics existed. Passing a generated `Database` is opt-in.
39
+ */
40
+ export type GenericDatabase = Record<string, GenericSchema>;
41
+ /**
42
+ * The schema a client reads by default. `public` when the database has one,
43
+ * otherwise whatever single schema was generated: `motherbase gen types
44
+ * typescript --schema shop` emits only `shop`, and requiring every call site to
45
+ * pass the name again would be pure friction.
46
+ */
47
+ export type DefaultSchemaName<Database> = 'public' extends keyof Database ? 'public' : keyof Database;
48
+ export type SchemaOf<Database, Name> = Name extends keyof Database ? Database[Name] extends GenericSchema ? Database[Name] : GenericSchema : GenericSchema;
49
+ /** Tables and views together: both are selectable through `.from()`. */
50
+ export type Relations<Schema extends GenericSchema> = Schema['Tables'] & Schema['Views'];
51
+ export type RelationName<Schema extends GenericSchema> = string & keyof Relations<Schema>;
52
+ export type RowOf<Schema extends GenericSchema, Name extends RelationName<Schema>> = Relations<Schema>[Name] extends {
53
+ Row: infer R;
54
+ } ? R : never;
55
+ export type InsertOf<Schema extends GenericSchema, Name extends RelationName<Schema>> = Name extends keyof Schema['Tables'] ? Schema['Tables'][Name] extends {
56
+ Insert: infer I;
57
+ } ? I : never : never;
58
+ export type UpdateOf<Schema extends GenericSchema, Name extends RelationName<Schema>> = Name extends keyof Schema['Tables'] ? Schema['Tables'][Name] extends {
59
+ Update: infer U;
60
+ } ? U : never : never;
61
+ export type FunctionName<Schema extends GenericSchema> = string & keyof Schema['Functions'];
62
+ export type FunctionArgs<Schema extends GenericSchema, Name extends FunctionName<Schema>> = Schema['Functions'][Name] extends {
63
+ Args: infer A;
64
+ } ? A : never;
65
+ export type FunctionReturns<Schema extends GenericSchema, Name extends FunctionName<Schema>> = Schema['Functions'][Name] extends {
66
+ Returns: infer R;
67
+ } ? R : never;
68
+ type Trim<S extends string> = S extends ` ${infer Rest}` ? Trim<Rest> : S extends `${infer Rest} ` ? Trim<Rest> : S;
69
+ /** `'id, name'` -> `'id' | 'name'`. */
70
+ type SplitColumns<S extends string> = S extends `${infer Head},${infer Tail}` ? Trim<Head> | SplitColumns<Tail> : Trim<S>;
71
+ /** `'created_at::text'` -> `'created_at'`. Casts change the wire type, not the source column. */
72
+ type StripCast<S extends string> = S extends `${infer Column}::${string}` ? Column : S;
73
+ type AliasPart<S extends string> = S extends `${infer Alias}:${string}` ? Alias : S;
74
+ type ColumnPart<S extends string> = S extends `${string}:${infer Column}` ? Column : S;
75
+ /** `'writer:author_id'` -> `'writer'` (the key the row will carry). */
76
+ type OutputName<S extends string> = AliasPart<StripCast<S>>;
77
+ /** `'writer:author_id'` -> `'author_id'` (the column the type comes from). */
78
+ type SourceName<S extends string> = ColumnPart<StripCast<S>>;
79
+ /**
80
+ * SEAM: relational embedding (`select=*,author(*)`) is not implemented on the
81
+ * server yet, so a select string containing a parenthesised relation is not
82
+ * narrowed. It resolves to the base row plus an open index signature, which
83
+ * types the columns we do know and leaves the embedded keys accessible without
84
+ * pretending we know their shape.
85
+ *
86
+ * When embedding lands, replace this with a resolver that walks
87
+ * `Relationships` to decide object vs array and recurse into the target row.
88
+ */
89
+ export type EmbeddedSelectSeam<Row> = Row & Record<string, unknown>;
90
+ type IsEmbeddedSelect<S extends string> = S extends `${string}(${string}` ? true : false;
91
+ /** Columns named in the select string that the relation does not have. */
92
+ export type UnknownSelectColumns<Row, S extends string> = Exclude<SourceName<SplitColumns<S>>, (keyof Row & string) | '*'>;
93
+ /**
94
+ * The `columns` argument type. Resolves to `unknown` (no extra constraint) when
95
+ * every named column exists, and to an error-message string literal otherwise,
96
+ * so a typo fails at the call site with the offending name in the message.
97
+ */
98
+ export type ValidateSelect<Row, S extends string> = IsEmbeddedSelect<S> extends true ? unknown : [UnknownSelectColumns<Row, S>] extends [never] ? unknown : `Unknown column in select: ${UnknownSelectColumns<Row, S> & string}`;
99
+ /** The row shape a select resolves to. */
100
+ export type SelectResult<Row, S extends string> = IsEmbeddedSelect<S> extends true ? EmbeddedSelectSeam<Row> : '*' extends SplitColumns<S> ? Row : {
101
+ [K in SplitColumns<S> as OutputName<K>]: Row[SourceName<K> & keyof Row];
102
+ };
103
+ export type FilterValue = string | number | boolean | null;
104
+ /** Columns that can be filtered or ordered on. Any string when untyped. */
105
+ export type ColumnName<Row> = keyof Row & string;
106
+ /**
107
+ * The `.from()` result. Structurally the existing `PostgrestQueryBuilder`, with
108
+ * the generated row/insert/update types threaded through. `Result` tracks what
109
+ * the current `select` narrowed the row to; it starts as the full row.
110
+ */
111
+ export interface TypedQuery<Row, Insert, Update, Result = Row> extends PromiseLike<PostgrestResponse<Result[]>> {
112
+ select<S extends string = '*'>(columns?: S & ValidateSelect<Row, S>, options?: SelectOptions): TypedQuery<Row, Insert, Update, SelectResult<Row, S>>;
113
+ insert(values: Insert | readonly Insert[], options?: InsertOptions): TypedQuery<Row, Insert, Update, Result>;
114
+ upsert(values: Insert | readonly Insert[], options?: UpsertOptions): TypedQuery<Row, Insert, Update, Result>;
115
+ update(values: Update, options?: MutateOptions): TypedQuery<Row, Insert, Update, Result>;
116
+ delete(options?: MutateOptions): TypedQuery<Row, Insert, Update, Result>;
117
+ eq(column: ColumnName<Row>, value: FilterValue): this;
118
+ neq(column: ColumnName<Row>, value: FilterValue): this;
119
+ gt(column: ColumnName<Row>, value: FilterValue): this;
120
+ gte(column: ColumnName<Row>, value: FilterValue): this;
121
+ lt(column: ColumnName<Row>, value: FilterValue): this;
122
+ lte(column: ColumnName<Row>, value: FilterValue): this;
123
+ like(column: ColumnName<Row>, pattern: string): this;
124
+ ilike(column: ColumnName<Row>, pattern: string): this;
125
+ likeAllOf(column: ColumnName<Row>, patterns: readonly string[]): this;
126
+ likeAnyOf(column: ColumnName<Row>, patterns: readonly string[]): this;
127
+ ilikeAllOf(column: ColumnName<Row>, patterns: readonly string[]): this;
128
+ ilikeAnyOf(column: ColumnName<Row>, patterns: readonly string[]): this;
129
+ in(column: ColumnName<Row>, values: readonly FilterValue[]): this;
130
+ is(column: ColumnName<Row>, value: PostgrestIsValue): this;
131
+ match(query: Partial<Record<ColumnName<Row>, FilterValue>>): this;
132
+ /** Escape hatches: the column is a free string so json paths (`data->>k`) work. */
133
+ not(column: string, operator: PostgrestFilterOperator | (string & {}), value: FilterValue | readonly FilterValue[]): this;
134
+ filter(column: string, operator: PostgrestFilterOperator | (string & {}), value: FilterValue | readonly FilterValue[]): this;
135
+ or(filters: string, options?: ReferencedTableOption): this;
136
+ textSearch(column: ColumnName<Row>, query: string, options?: {
137
+ type?: TextSearchType;
138
+ config?: string;
139
+ }): this;
140
+ contains(column: ColumnName<Row>, value: PostgrestArrayOperand): this;
141
+ containedBy(column: ColumnName<Row>, value: PostgrestArrayOperand): this;
142
+ overlaps(column: ColumnName<Row>, value: PostgrestArrayOperand): this;
143
+ rangeGt(column: ColumnName<Row>, range: string): this;
144
+ rangeGte(column: ColumnName<Row>, range: string): this;
145
+ rangeLt(column: ColumnName<Row>, range: string): this;
146
+ rangeLte(column: ColumnName<Row>, range: string): this;
147
+ rangeAdjacent(column: ColumnName<Row>, range: string): this;
148
+ order(column: ColumnName<Row>, options?: OrderOptions): this;
149
+ limit(count: number, options?: ReferencedTableOption): this;
150
+ range(from: number, to: number, options?: ReferencedTableOption): this;
151
+ abortSignal(signal: AbortSignal): this;
152
+ /** Re-type the rows: for shapes the generated `Database` cannot express. */
153
+ returns<T>(): TypedQuery<Row, Insert, Update, T>;
154
+ csv(): PostgrestTextBuilder;
155
+ explain(options?: ExplainOptions): PostgrestExplainBuilder;
156
+ single(): TypedSingleQuery<Result>;
157
+ maybeSingle(): TypedSingleQuery<Result | null>;
158
+ /** The URL path (with query string) this builder targets. Exposed for tests. */
159
+ toPath(): string;
160
+ /** The headers this builder sends (Prefer, Accept). Exposed for tests. */
161
+ toHeaders(): Record<string, string>;
162
+ }
163
+ /** A builder narrowed to one row by `.single()` / `.maybeSingle()`. */
164
+ export interface TypedSingleQuery<Result> extends PromiseLike<PostgrestResponse<Result>> {
165
+ toPath(): string;
166
+ toHeaders(): Record<string, string>;
167
+ }
168
+ export {};
169
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":""}
package/dist/http.d.ts CHANGED
@@ -23,6 +23,8 @@ export interface RequestOptions {
23
23
  form?: FormData;
24
24
  /** Skip attaching the Authorization header (used by auth endpoints). */
25
25
  anonymous?: boolean;
26
+ /** Abort the request when this signal fires (`.abortSignal(signal)`). */
27
+ signal?: AbortSignal;
26
28
  /**
27
29
  * Parse the response body as-is instead of unwrapping the app's
28
30
  * `{ status, data }` envelope. Better Auth's native /api/auth/* endpoints
@@ -51,6 +53,15 @@ export declare class HttpClient {
51
53
  /** Performs the refresh; returns true on success. Injected to avoid a cycle. */
52
54
  doRefresh: () => Promise<boolean>);
53
55
  request<T>(path: string, options?: RequestOptions): Promise<T>;
56
+ /**
57
+ * Like `request`, but keeps the response headers. PostgREST puts the row count
58
+ * in `Content-Range`, which is unreachable from the parsed body alone.
59
+ */
60
+ requestWithHeaders<T>(path: string, options?: RequestOptions): Promise<{
61
+ data: T;
62
+ headers: Headers;
63
+ status: number;
64
+ }>;
54
65
  /** Like `request`, but returns the raw Response (for binary downloads). */
55
66
  requestRaw(path: string, options?: RequestOptions): Promise<Response>;
56
67
  private sendWithRefresh;
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAOnF;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,iDAAiD;IACjD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sDAAsD;IACtD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,qDAAqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,UAAU;IAInB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,SAAS;IAP5B,OAAO,CAAC,cAAc,CAAiC;gBAGpC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,KAAK,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IACtG,gFAAgF;IAC/D,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC;IAG9C,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKxE,2EAA2E;IACrE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;YASjE,eAAe;IAW7B,+EAA+E;IAC/E,OAAO,CAAC,WAAW;YASL,IAAI;YAuBJ,KAAK;IAgBnB,oFAAoF;YACtE,QAAQ;YAcR,YAAY;IAU1B,OAAO,CAAC,GAAG;CAGZ;AAED,wFAAwF;AACxF,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAMzF"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAOnF;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,iDAAiD;IACjD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sDAAsD;IACtD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yEAAyE;IACzE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,qDAAqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,UAAU;IAInB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,SAAS;IAP5B,OAAO,CAAC,cAAc,CAAiC;gBAGpC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,KAAK,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IACtG,gFAAgF;IAC/D,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC;IAG9C,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxE;;;OAGG;IACG,kBAAkB,CAAC,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAMzD,2EAA2E;IACrE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;YASjE,eAAe;IAW7B,+EAA+E;IAC/E,OAAO,CAAC,WAAW;YASL,IAAI;YAwBJ,KAAK;IAgBnB,oFAAoF;YACtE,QAAQ;YAcR,YAAY;IAU1B,OAAO,CAAC,GAAG;CAGZ;AAED,wFAAwF;AACxF,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAMzF"}
package/dist/http.js CHANGED
@@ -27,8 +27,16 @@ export class HttpClient {
27
27
  this.refreshPromise = null;
28
28
  }
29
29
  async request(path, options = {}) {
30
+ return (await this.requestWithHeaders(path, options)).data;
31
+ }
32
+ /**
33
+ * Like `request`, but keeps the response headers. PostgREST puts the row count
34
+ * in `Content-Range`, which is unreachable from the parsed body alone.
35
+ */
36
+ async requestWithHeaders(path, options = {}) {
30
37
  const res = await this.sendWithRefresh(path, options);
31
- return options.raw ? this.parseRaw(res) : this.parse(res);
38
+ const data = options.raw ? await this.parseRaw(res) : await this.parse(res);
39
+ return { data, headers: res.headers, status: res.status };
32
40
  }
33
41
  /** Like `request`, but returns the raw Response (for binary downloads). */
34
42
  async requestRaw(path, options = {}) {
@@ -77,6 +85,7 @@ export class HttpClient {
77
85
  method: options.method ?? 'GET',
78
86
  headers,
79
87
  body,
88
+ signal: options.signal,
80
89
  });
81
90
  }
82
91
  async parse(res) {
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}