@motherbase/client 1.4.0 → 1.5.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.
Files changed (90) hide show
  1. package/README.md +379 -284
  2. package/package.json +1 -1
  3. package/dist/admin.d.ts +0 -81
  4. package/dist/admin.d.ts.map +0 -1
  5. package/dist/admin.js +0 -85
  6. package/dist/admin.js.map +0 -1
  7. package/dist/auth.d.ts +0 -362
  8. package/dist/auth.d.ts.map +0 -1
  9. package/dist/auth.js +0 -721
  10. package/dist/auth.js.map +0 -1
  11. package/dist/channel.d.ts +0 -122
  12. package/dist/channel.d.ts.map +0 -1
  13. package/dist/channel.js +0 -213
  14. package/dist/channel.js.map +0 -1
  15. package/dist/compat.d.ts +0 -40
  16. package/dist/compat.d.ts.map +0 -1
  17. package/dist/compat.js +0 -98
  18. package/dist/compat.js.map +0 -1
  19. package/dist/cookie.d.ts +0 -68
  20. package/dist/cookie.d.ts.map +0 -1
  21. package/dist/cookie.js +0 -152
  22. package/dist/cookie.js.map +0 -1
  23. package/dist/database.d.ts +0 -188
  24. package/dist/database.d.ts.map +0 -1
  25. package/dist/database.js +0 -2
  26. package/dist/database.js.map +0 -1
  27. package/dist/devices.d.ts +0 -13
  28. package/dist/devices.d.ts.map +0 -1
  29. package/dist/devices.js +0 -13
  30. package/dist/devices.js.map +0 -1
  31. package/dist/edge.d.ts +0 -7
  32. package/dist/edge.d.ts.map +0 -1
  33. package/dist/edge.js +0 -13
  34. package/dist/edge.js.map +0 -1
  35. package/dist/functions.d.ts +0 -60
  36. package/dist/functions.d.ts.map +0 -1
  37. package/dist/functions.js +0 -75
  38. package/dist/functions.js.map +0 -1
  39. package/dist/http.d.ts +0 -123
  40. package/dist/http.d.ts.map +0 -1
  41. package/dist/http.js +0 -205
  42. package/dist/http.js.map +0 -1
  43. package/dist/index.d.ts +0 -185
  44. package/dist/index.d.ts.map +0 -1
  45. package/dist/index.js +0 -331
  46. package/dist/index.js.map +0 -1
  47. package/dist/mfa.d.ts +0 -109
  48. package/dist/mfa.d.ts.map +0 -1
  49. package/dist/mfa.js +0 -134
  50. package/dist/mfa.js.map +0 -1
  51. package/dist/postgrest.d.ts +0 -326
  52. package/dist/postgrest.d.ts.map +0 -1
  53. package/dist/postgrest.js +0 -629
  54. package/dist/postgrest.js.map +0 -1
  55. package/dist/profile.d.ts +0 -16
  56. package/dist/profile.d.ts.map +0 -1
  57. package/dist/profile.js +0 -26
  58. package/dist/profile.js.map +0 -1
  59. package/dist/query.d.ts +0 -97
  60. package/dist/query.d.ts.map +0 -1
  61. package/dist/query.js +0 -94
  62. package/dist/query.js.map +0 -1
  63. package/dist/realtime.d.ts +0 -114
  64. package/dist/realtime.d.ts.map +0 -1
  65. package/dist/realtime.js +0 -372
  66. package/dist/realtime.js.map +0 -1
  67. package/dist/rest.d.ts +0 -50
  68. package/dist/rest.d.ts.map +0 -1
  69. package/dist/rest.js +0 -75
  70. package/dist/rest.js.map +0 -1
  71. package/dist/session.d.ts +0 -47
  72. package/dist/session.d.ts.map +0 -1
  73. package/dist/session.js +0 -136
  74. package/dist/session.js.map +0 -1
  75. package/dist/storage.d.ts +0 -239
  76. package/dist/storage.d.ts.map +0 -1
  77. package/dist/storage.js +0 -391
  78. package/dist/storage.js.map +0 -1
  79. package/dist/testing.d.ts +0 -38
  80. package/dist/testing.d.ts.map +0 -1
  81. package/dist/testing.js +0 -50
  82. package/dist/testing.js.map +0 -1
  83. package/dist/types.d.ts +0 -343
  84. package/dist/types.d.ts.map +0 -1
  85. package/dist/types.js +0 -2
  86. package/dist/types.js.map +0 -1
  87. package/dist/warn.d.ts +0 -4
  88. package/dist/warn.d.ts.map +0 -1
  89. package/dist/warn.js +0 -27
  90. package/dist/warn.js.map +0 -1
@@ -1,326 +0,0 @@
1
- import { HttpClient } from './http.js';
2
- import type { MotherbaseResponse } from './types.js';
3
- /**
4
- * PostgREST query builder, supabase-js shaped.
5
- *
6
- * Everything in this file is about ONE thing: emitting the query string
7
- * PostgREST (and the Motherbase REST dialect that mirrors it) reads. The
8
- * builder is awaitable, resolves `{ data, error, count }` and never rejects for
9
- * an expected API error. It has no runtime dependencies.
10
- *
11
- * Value encoding is the part that is easy to get wrong, so it lives in one
12
- * place (`encodeLiteral` / `encodeArrayLiteral`) and every method routes
13
- * through it:
14
- *
15
- * - A string value containing `,` `.` `:` `(` `)` `{` `}` `"` `\` or
16
- * whitespace, or the empty string, is double quoted, with inner `"` and `\`
17
- * backslash escaped. That is what makes `in.("a,b",c)` a two element list
18
- * instead of three, and it is why a value containing a double quote is
19
- * expressible at all.
20
- * - Numbers and booleans are never quoted: their string form cannot contain a
21
- * reserved character, and quoting them would make every `eq.3.14` read as a
22
- * quoted literal for no gain.
23
- * - `not()` and `filter()` take their value verbatim when it is a string.
24
- * They are the escape hatches, so `not('id', 'in', '(1,2)')` has to reach
25
- * the server as written, exactly as in supabase-js.
26
- */
27
- export type PostgrestPrimitive = string | number | boolean | null;
28
- /** Value accepted by the array/range operators (`cs`, `cd`, `ov`). */
29
- export type PostgrestArrayOperand = string | readonly PostgrestPrimitive[] | Record<string, unknown>;
30
- /** PostgREST's operator names. `filter()` also accepts modifier forms like `like(any)`. */
31
- export type PostgrestFilterOperator = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'like' | 'ilike' | 'match' | 'imatch' | 'in' | 'is' | 'isdistinct' | 'fts' | 'plfts' | 'phfts' | 'wfts' | 'cs' | 'cd' | 'ov' | 'sl' | 'sr' | 'nxr' | 'nxl' | 'adj';
32
- /** `is` reaches SQL NULL and the three-valued booleans, and nothing else. */
33
- export type PostgrestIsValue = null | boolean | 'null' | 'true' | 'false' | 'unknown';
34
- export type PostgrestCount = 'exact' | 'planned' | 'estimated';
35
- export type TextSearchType = 'plain' | 'phrase' | 'websearch';
36
- export interface ReferencedTableOption {
37
- /** Scope the modifier to an embedded resource: `comments.limit=5`. */
38
- referencedTable?: string;
39
- /** supabase-js's pre-2.x name for `referencedTable`. Accepted for parity. */
40
- foreignTable?: string;
41
- }
42
- export interface OrderOptions extends ReferencedTableOption {
43
- ascending?: boolean;
44
- nullsFirst?: boolean;
45
- }
46
- export interface PaginateOptions {
47
- /** Rows per request. Capped server side by `api.rest.maxRows`. Default 1000. */
48
- pageSize?: number;
49
- }
50
- export interface SelectOptions {
51
- count?: PostgrestCount;
52
- /** Send the request as HEAD: no rows come back, only the count. */
53
- head?: boolean;
54
- }
55
- export interface InsertOptions {
56
- count?: PostgrestCount;
57
- /**
58
- * `false` sends `Prefer: missing=default`, so columns absent from a row take
59
- * their column default instead of NULL.
60
- */
61
- defaultToNull?: boolean;
62
- }
63
- export interface UpsertOptions extends InsertOptions {
64
- /** Conflict target, defaulting server side to the primary key. */
65
- onConflict?: string;
66
- /** `true` sends `Prefer: resolution=ignore-duplicates`. */
67
- ignoreDuplicates?: boolean;
68
- }
69
- export interface MutateOptions {
70
- count?: PostgrestCount;
71
- }
72
- export interface ExplainOptions {
73
- analyze?: boolean;
74
- verbose?: boolean;
75
- settings?: boolean;
76
- buffers?: boolean;
77
- wal?: boolean;
78
- format?: 'text' | 'json';
79
- }
80
- /**
81
- * The result a query resolves to. `count` is `null` unless `{ count }` was
82
- * requested and the server answered with a `Content-Range` total.
83
- */
84
- export interface PostgrestResponse<T> extends MotherbaseResponse<T> {
85
- count: number | null;
86
- }
87
- /** One scalar value: quoted only when it has to be. */
88
- export declare function encodeLiteral(value: PostgrestPrimitive): string;
89
- /**
90
- * PostgREST-style, chainable, thenable query builder mapping onto the backend's
91
- * `/rest/v1/:model` query-param dialect. Awaiting it resolves to
92
- * `{ data, error, count }` and never rejects for expected API errors (only for
93
- * programmer misuse).
94
- *
95
- * @internal This is the implementation behind `client.from()`, not a surface to
96
- * construct directly. The public, typed entry point is `client.from(table)`,
97
- * whose return type (`TypedQuery`, from `database.ts`) is what user code should
98
- * name. It is exported only so the type can be referenced where inference needs
99
- * a name for it.
100
- */
101
- export declare class PostgrestQueryBuilder<Row extends object = Record<string, unknown>> implements PromiseLike<PostgrestResponse<Row[]>> {
102
- private readonly http;
103
- private readonly model;
104
- /** supabase-js semantic parity, from `createClient(..., { compat: 'supabase' })`. */
105
- private readonly compat;
106
- private method;
107
- private columns;
108
- /**
109
- * Repeated filters on one column must all survive: `?price=gt.10&price=lt.20`
110
- * is two conditions ANDed together, which is why every filter is `append`ed
111
- * and never `set`. Using `set` here (as this builder once did) silently
112
- * dropped the first of the two.
113
- */
114
- private readonly filters;
115
- /** Reserved params that are replaced rather than repeated (`columns`, `on_conflict`). */
116
- private readonly extras;
117
- /** Keyed by referenced table (`''` for the base relation). */
118
- private readonly orderParts;
119
- private readonly limits;
120
- private readonly offsets;
121
- private readonly prefer;
122
- private accept?;
123
- private responseKind;
124
- private countOption?;
125
- private headOnly;
126
- private signal?;
127
- private body?;
128
- private rowMode;
129
- private shouldThrow;
130
- /** Set by `select()`, so a write can tell "rows asked for" from "rows always returned". */
131
- private selectCalled;
132
- constructor(http: HttpClient, model: string,
133
- /** supabase-js semantic parity, from `createClient(..., { compat: 'supabase' })`. */
134
- compat?: boolean);
135
- /**
136
- * Choose the columns, and optionally ask for a row count.
137
- *
138
- * After a write, `.select()` is the supabase-js way of asking for the rows
139
- * back, so it also sends `Prefer: return=representation`.
140
- */
141
- select(columns?: string, options?: SelectOptions): this;
142
- insert(values: Partial<Row> | Array<Partial<Row>>, options?: InsertOptions): this;
143
- /**
144
- * `INSERT .. ON CONFLICT DO UPDATE`. The conflict target defaults to the
145
- * primary key server side; `onConflict` names another unique constraint.
146
- */
147
- upsert(values: Partial<Row> | Array<Partial<Row>>, options?: UpsertOptions): this;
148
- update(values: Partial<Row>, options?: MutateOptions): this;
149
- delete(options?: MutateOptions): this;
150
- /**
151
- * A bulk write states its column set explicitly, so a key missing from one
152
- * row is still written (as NULL, or as the column default under
153
- * `missing=default`) instead of being inferred from the first row alone.
154
- */
155
- private applyColumns;
156
- eq(column: string, value: PostgrestPrimitive): this;
157
- neq(column: string, value: PostgrestPrimitive): this;
158
- gt(column: string, value: PostgrestPrimitive): this;
159
- gte(column: string, value: PostgrestPrimitive): this;
160
- lt(column: string, value: PostgrestPrimitive): this;
161
- lte(column: string, value: PostgrestPrimitive): this;
162
- /** Case-sensitive LIKE. `*` is PostgREST's URL-friendly `%`. */
163
- like(column: string, pattern: string): this;
164
- ilike(column: string, pattern: string): this;
165
- likeAllOf(column: string, patterns: readonly string[]): this;
166
- likeAnyOf(column: string, patterns: readonly string[]): this;
167
- ilikeAllOf(column: string, patterns: readonly string[]): this;
168
- ilikeAnyOf(column: string, patterns: readonly string[]): this;
169
- in(column: string, values: readonly PostgrestPrimitive[]): this;
170
- is(column: string, value: PostgrestIsValue): this;
171
- /** Every key equal to its value, ANDed together. */
172
- match(query: Record<string, PostgrestPrimitive>): this;
173
- /**
174
- * Negate any operator: `not('status', 'eq', 'live')` emits
175
- * `status=not.eq.live`. The value is passed through verbatim for a string, so
176
- * composite operands (`not('id', 'in', '(1,2)')`) reach the server as written.
177
- */
178
- not(column: string, operator: PostgrestFilterOperator | (string & {}), value: PostgrestPrimitive | readonly PostgrestPrimitive[]): this;
179
- /**
180
- * The escape hatch: any operator, including the ones with no dedicated method
181
- * (`match`, `imatch`, `isdistinct`) and the modifier forms (`like(any)`).
182
- */
183
- filter(column: string, operator: PostgrestFilterOperator | (string & {}), value: PostgrestPrimitive | readonly PostgrestPrimitive[]): this;
184
- /**
185
- * A disjunction, written in PostgREST's own syntax and nestable:
186
- * `or('status.eq.live,and(price.gt.10,price.lt.20)')`.
187
- */
188
- or(filters: string, options?: ReferencedTableOption): this;
189
- /** Full-text search. `type` picks the tsquery parser, `config` the dictionary. */
190
- textSearch(column: string, query: string, options?: {
191
- type?: TextSearchType;
192
- config?: string;
193
- }): this;
194
- /** `@>`: the column contains the operand (array, range or jsonb). */
195
- contains(column: string, value: PostgrestArrayOperand): this;
196
- /** `<@`: the column is contained by the operand. */
197
- containedBy(column: string, value: PostgrestArrayOperand): this;
198
- /** `&&`: the column and the operand have an element (or a point) in common. */
199
- overlaps(column: string, value: PostgrestArrayOperand): this;
200
- /** `>>`: strictly right of the range. */
201
- rangeGt(column: string, range: string): this;
202
- /** `&>`: does not extend to the left of the range. */
203
- rangeGte(column: string, range: string): this;
204
- /** `<<`: strictly left of the range. */
205
- rangeLt(column: string, range: string): this;
206
- /** `&<`: does not extend to the right of the range. */
207
- rangeLte(column: string, range: string): this;
208
- /** `-|-`: adjacent to the range. */
209
- rangeAdjacent(column: string, range: string): this;
210
- private push;
211
- order(column: string, options?: OrderOptions): this;
212
- limit(count: number, options?: ReferencedTableOption): this;
213
- /** Inclusive range -> offset/limit. `range(0, 9)` fetches 10 rows from offset 0. */
214
- range(from: number, to: number, options?: ReferencedTableOption): this;
215
- /**
216
- * Every matching row, one page at a time.
217
- *
218
- * An unbounded `select()` stops at the server's `api.rest.maxRows` (1000 by
219
- * default) and says nothing about it: the caller gets a full-looking array
220
- * that is missing everything past the cap. This walks the result instead, so
221
- * "give me all of them" is expressible without knowing the cap exists.
222
- *
223
- * ```ts
224
- * for await (const row of client.from('events').select('*').stream()) { ... }
225
- * ```
226
- *
227
- * The pages are separate requests, so rows inserted while the walk is running
228
- * may be seen or missed depending on when they land. Order by a stable column
229
- * if that matters.
230
- */
231
- stream(options?: PaginateOptions): AsyncGenerator<Row, void, undefined>;
232
- /**
233
- * Like `stream()`, a page at a time rather than a row at a time, with the
234
- * total from `Content-Range` when the server sent one.
235
- *
236
- * An error ends the walk by throwing, unlike awaiting the builder, which
237
- * resolves `{ data, error }`. A `for await` loop has nowhere to put an error
238
- * value, and silently ending the iteration early would look exactly like
239
- * reaching the last page.
240
- */
241
- paginate(options?: PaginateOptions): AsyncGenerator<{
242
- rows: Row[];
243
- from: number;
244
- count: number | null;
245
- }, void, undefined>;
246
- /** Cancel the in-flight request when the signal aborts. */
247
- abortSignal(signal: AbortSignal): this;
248
- /**
249
- * Re-type the rows. Purely a compile-time cast, for cases the generated
250
- * `Database` cannot express (a computed column, an embedded shape).
251
- */
252
- returns<T extends object>(): PostgrestQueryBuilder<T>;
253
- /** supabase-js's newer name for `returns()`. Also a compile-time cast only. */
254
- overrideTypes<T extends object>(): PostgrestQueryBuilder<T>;
255
- /**
256
- * Reject the query instead of resolving `{ data: null, error }`.
257
- *
258
- * The `{ data, error }` envelope is the default in both SDKs because it makes
259
- * a failure impossible to skip by accident. `throwOnError()` is the opt-out
260
- * for code that would rather use try/catch, and ported Supabase code uses it
261
- * widely enough that its absence is a `TypeError: … is not a function` on the
262
- * first query.
263
- */
264
- throwOnError(): this;
265
- /**
266
- * Fail the write if it would touch more than `count` rows.
267
- *
268
- * A guard against the missing-filter class of accident (`update()` with a
269
- * typo'd `.eq()`), sent as `Prefer: max-affected`. A server that does not
270
- * implement it ignores the preference, so treat this as a safety net rather
271
- * than a guarantee, and keep the filter correct.
272
- */
273
- maxAffected(count: number): this;
274
- /**
275
- * Roll the transaction back after running the query, so nothing is persisted.
276
- * Useful for validating a write, or previewing what it would return.
277
- */
278
- rollback(): this;
279
- /** Ask for GeoJSON instead of rows. The result resolves to the parsed object. */
280
- geojson(): PostgrestExplainBuilder;
281
- /** Ask for `text/csv` instead of JSON. The result resolves to a string. */
282
- csv(): PostgrestTextBuilder;
283
- /** Ask the server for the query plan. Admin-only, and off by default. */
284
- explain(options?: ExplainOptions): PostgrestExplainBuilder;
285
- single(): PostgrestSingleBuilder<Row>;
286
- maybeSingle(): PostgrestSingleBuilder<Row>;
287
- /** The URL path (with query string) this builder targets. Exposed for tests. */
288
- toPath(): string;
289
- /**
290
- * The request this builder would send, as data.
291
- *
292
- * `client.transaction()` needs to describe several writes without issuing
293
- * them, and the method and body are otherwise private. Exposed rather than
294
- * reached into: a batch built from `(builder as any).method` would break the
295
- * first time this class was refactored.
296
- */
297
- toRequest(): {
298
- method: string;
299
- model: string;
300
- query: Record<string, string[]>;
301
- body: unknown;
302
- };
303
- /** The headers this builder sends. Exposed for tests alongside `toPath()`. */
304
- toHeaders(): Record<string, string>;
305
- private execute;
306
- private isWrite;
307
- /** Apply `single()` / `maybeSingle()` to a row list. The one place row mode is read. */
308
- private finish;
309
- then<TResult1 = PostgrestResponse<Row[]>, TResult2 = never>(onfulfilled?: ((value: PostgrestResponse<Row[]>) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): PromiseLike<TResult1 | TResult2>;
310
- }
311
- /** Same builder, typed to resolve a single row (from `.single()` / `.maybeSingle()`). */
312
- export interface PostgrestSingleBuilder<Row extends object> extends Omit<PostgrestQueryBuilder<Row>, 'then' | 'single' | 'maybeSingle' | 'returns'>, PromiseLike<PostgrestResponse<Row>> {
313
- returns<T extends object>(): PostgrestSingleBuilder<T>;
314
- then<TResult1 = PostgrestResponse<Row>, TResult2 = never>(onfulfilled?: ((value: PostgrestResponse<Row>) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): PromiseLike<TResult1 | TResult2>;
315
- }
316
- /** The builder after `.csv()`: the body is text, not rows. */
317
- export interface PostgrestTextBuilder extends PromiseLike<PostgrestResponse<string>> {
318
- toPath(): string;
319
- toHeaders(): Record<string, string>;
320
- }
321
- /** The builder after `.explain()`: text, or the parsed plan for `format: 'json'`. */
322
- export interface PostgrestExplainBuilder extends PromiseLike<PostgrestResponse<unknown>> {
323
- toPath(): string;
324
- toHeaders(): Record<string, string>;
325
- }
326
- //# sourceMappingURL=postgrest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postgrest.d.ts","sourceRoot":"","sources":["../src/postgrest.ts"],"names":[],"mappings":"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"}