@motherbase/client 1.3.1 → 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 (74) hide show
  1. package/README.md +127 -13
  2. package/package.json +10 -2
  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 -233
  8. package/dist/auth.d.ts.map +0 -1
  9. package/dist/auth.js +0 -418
  10. package/dist/auth.js.map +0 -1
  11. package/dist/channel.d.ts +0 -119
  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/cookie.d.ts +0 -60
  16. package/dist/cookie.d.ts.map +0 -1
  17. package/dist/cookie.js +0 -144
  18. package/dist/cookie.js.map +0 -1
  19. package/dist/database.d.ts +0 -169
  20. package/dist/database.d.ts.map +0 -1
  21. package/dist/database.js +0 -2
  22. package/dist/database.js.map +0 -1
  23. package/dist/devices.d.ts +0 -13
  24. package/dist/devices.d.ts.map +0 -1
  25. package/dist/devices.js +0 -13
  26. package/dist/devices.js.map +0 -1
  27. package/dist/edge.d.ts +0 -7
  28. package/dist/edge.d.ts.map +0 -1
  29. package/dist/edge.js +0 -13
  30. package/dist/edge.js.map +0 -1
  31. package/dist/functions.d.ts +0 -24
  32. package/dist/functions.d.ts.map +0 -1
  33. package/dist/functions.js +0 -24
  34. package/dist/functions.js.map +0 -1
  35. package/dist/http.d.ts +0 -96
  36. package/dist/http.d.ts.map +0 -1
  37. package/dist/http.js +0 -157
  38. package/dist/http.js.map +0 -1
  39. package/dist/index.d.ts +0 -118
  40. package/dist/index.d.ts.map +0 -1
  41. package/dist/index.js +0 -180
  42. package/dist/index.js.map +0 -1
  43. package/dist/mfa.d.ts +0 -109
  44. package/dist/mfa.d.ts.map +0 -1
  45. package/dist/mfa.js +0 -134
  46. package/dist/mfa.js.map +0 -1
  47. package/dist/postgrest.d.ts +0 -239
  48. package/dist/postgrest.d.ts.map +0 -1
  49. package/dist/postgrest.js +0 -467
  50. package/dist/postgrest.js.map +0 -1
  51. package/dist/profile.d.ts +0 -16
  52. package/dist/profile.d.ts.map +0 -1
  53. package/dist/profile.js +0 -26
  54. package/dist/profile.js.map +0 -1
  55. package/dist/realtime.d.ts +0 -114
  56. package/dist/realtime.d.ts.map +0 -1
  57. package/dist/realtime.js +0 -372
  58. package/dist/realtime.js.map +0 -1
  59. package/dist/rest.d.ts +0 -50
  60. package/dist/rest.d.ts.map +0 -1
  61. package/dist/rest.js +0 -75
  62. package/dist/rest.js.map +0 -1
  63. package/dist/session.d.ts +0 -36
  64. package/dist/session.d.ts.map +0 -1
  65. package/dist/session.js +0 -90
  66. package/dist/session.js.map +0 -1
  67. package/dist/storage.d.ts +0 -72
  68. package/dist/storage.d.ts.map +0 -1
  69. package/dist/storage.js +0 -148
  70. package/dist/storage.js.map +0 -1
  71. package/dist/types.d.ts +0 -106
  72. package/dist/types.d.ts.map +0 -1
  73. package/dist/types.js +0 -2
  74. package/dist/types.js.map +0 -1
@@ -1,239 +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 SelectOptions {
47
- count?: PostgrestCount;
48
- /** Send the request as HEAD: no rows come back, only the count. */
49
- head?: boolean;
50
- }
51
- export interface InsertOptions {
52
- count?: PostgrestCount;
53
- /**
54
- * `false` sends `Prefer: missing=default`, so columns absent from a row take
55
- * their column default instead of NULL.
56
- */
57
- defaultToNull?: boolean;
58
- }
59
- export interface UpsertOptions extends InsertOptions {
60
- /** Conflict target, defaulting server side to the primary key. */
61
- onConflict?: string;
62
- /** `true` sends `Prefer: resolution=ignore-duplicates`. */
63
- ignoreDuplicates?: boolean;
64
- }
65
- export interface MutateOptions {
66
- count?: PostgrestCount;
67
- }
68
- export interface ExplainOptions {
69
- analyze?: boolean;
70
- verbose?: boolean;
71
- settings?: boolean;
72
- buffers?: boolean;
73
- wal?: boolean;
74
- format?: 'text' | 'json';
75
- }
76
- /**
77
- * The result a query resolves to. `count` is `null` unless `{ count }` was
78
- * requested and the server answered with a `Content-Range` total.
79
- */
80
- export interface PostgrestResponse<T> extends MotherbaseResponse<T> {
81
- count: number | null;
82
- }
83
- /** One scalar value: quoted only when it has to be. */
84
- export declare function encodeLiteral(value: PostgrestPrimitive): string;
85
- /**
86
- * PostgREST-style, chainable, thenable query builder mapping onto the backend's
87
- * `/rest/v1/:model` query-param dialect. Awaiting it resolves to
88
- * `{ data, error, count }` and never rejects for expected API errors (only for
89
- * programmer misuse).
90
- *
91
- * @internal This is the implementation behind `client.from()`, not a surface to
92
- * construct directly. The public, typed entry point is `client.from(table)`,
93
- * whose return type (`TypedQuery`, from `database.ts`) is what user code should
94
- * name. It is exported only so the type can be referenced where inference needs
95
- * a name for it.
96
- */
97
- export declare class PostgrestQueryBuilder<Row extends object = Record<string, unknown>> implements PromiseLike<PostgrestResponse<Row[]>> {
98
- private readonly http;
99
- private readonly model;
100
- private method;
101
- private columns;
102
- /**
103
- * Repeated filters on one column must all survive: `?price=gt.10&price=lt.20`
104
- * is two conditions ANDed together, which is why every filter is `append`ed
105
- * and never `set`. Using `set` here (as this builder once did) silently
106
- * dropped the first of the two.
107
- */
108
- private readonly filters;
109
- /** Reserved params that are replaced rather than repeated (`columns`, `on_conflict`). */
110
- private readonly extras;
111
- /** Keyed by referenced table (`''` for the base relation). */
112
- private readonly orderParts;
113
- private readonly limits;
114
- private readonly offsets;
115
- private readonly prefer;
116
- private accept?;
117
- private responseKind;
118
- private countOption?;
119
- private headOnly;
120
- private signal?;
121
- private body?;
122
- private rowMode;
123
- constructor(http: HttpClient, model: string);
124
- /**
125
- * Choose the columns, and optionally ask for a row count.
126
- *
127
- * After a write, `.select()` is the supabase-js way of asking for the rows
128
- * back, so it also sends `Prefer: return=representation`.
129
- */
130
- select(columns?: string, options?: SelectOptions): this;
131
- insert(values: Partial<Row> | Array<Partial<Row>>, options?: InsertOptions): this;
132
- /**
133
- * `INSERT .. ON CONFLICT DO UPDATE`. The conflict target defaults to the
134
- * primary key server side; `onConflict` names another unique constraint.
135
- */
136
- upsert(values: Partial<Row> | Array<Partial<Row>>, options?: UpsertOptions): this;
137
- update(values: Partial<Row>, options?: MutateOptions): this;
138
- delete(options?: MutateOptions): this;
139
- /**
140
- * A bulk write states its column set explicitly, so a key missing from one
141
- * row is still written (as NULL, or as the column default under
142
- * `missing=default`) instead of being inferred from the first row alone.
143
- */
144
- private applyColumns;
145
- eq(column: string, value: PostgrestPrimitive): this;
146
- neq(column: string, value: PostgrestPrimitive): this;
147
- gt(column: string, value: PostgrestPrimitive): this;
148
- gte(column: string, value: PostgrestPrimitive): this;
149
- lt(column: string, value: PostgrestPrimitive): this;
150
- lte(column: string, value: PostgrestPrimitive): this;
151
- /** Case-sensitive LIKE. `*` is PostgREST's URL-friendly `%`. */
152
- like(column: string, pattern: string): this;
153
- ilike(column: string, pattern: string): this;
154
- likeAllOf(column: string, patterns: readonly string[]): this;
155
- likeAnyOf(column: string, patterns: readonly string[]): this;
156
- ilikeAllOf(column: string, patterns: readonly string[]): this;
157
- ilikeAnyOf(column: string, patterns: readonly string[]): this;
158
- in(column: string, values: readonly PostgrestPrimitive[]): this;
159
- is(column: string, value: PostgrestIsValue): this;
160
- /** Every key equal to its value, ANDed together. */
161
- match(query: Record<string, PostgrestPrimitive>): this;
162
- /**
163
- * Negate any operator: `not('status', 'eq', 'live')` emits
164
- * `status=not.eq.live`. The value is passed through verbatim for a string, so
165
- * composite operands (`not('id', 'in', '(1,2)')`) reach the server as written.
166
- */
167
- not(column: string, operator: PostgrestFilterOperator | (string & {}), value: PostgrestPrimitive | readonly PostgrestPrimitive[]): this;
168
- /**
169
- * The escape hatch: any operator, including the ones with no dedicated method
170
- * (`match`, `imatch`, `isdistinct`) and the modifier forms (`like(any)`).
171
- */
172
- filter(column: string, operator: PostgrestFilterOperator | (string & {}), value: PostgrestPrimitive | readonly PostgrestPrimitive[]): this;
173
- /**
174
- * A disjunction, written in PostgREST's own syntax and nestable:
175
- * `or('status.eq.live,and(price.gt.10,price.lt.20)')`.
176
- */
177
- or(filters: string, options?: ReferencedTableOption): this;
178
- /** Full-text search. `type` picks the tsquery parser, `config` the dictionary. */
179
- textSearch(column: string, query: string, options?: {
180
- type?: TextSearchType;
181
- config?: string;
182
- }): this;
183
- /** `@>`: the column contains the operand (array, range or jsonb). */
184
- contains(column: string, value: PostgrestArrayOperand): this;
185
- /** `<@`: the column is contained by the operand. */
186
- containedBy(column: string, value: PostgrestArrayOperand): this;
187
- /** `&&`: the column and the operand have an element (or a point) in common. */
188
- overlaps(column: string, value: PostgrestArrayOperand): this;
189
- /** `>>`: strictly right of the range. */
190
- rangeGt(column: string, range: string): this;
191
- /** `&>`: does not extend to the left of the range. */
192
- rangeGte(column: string, range: string): this;
193
- /** `<<`: strictly left of the range. */
194
- rangeLt(column: string, range: string): this;
195
- /** `&<`: does not extend to the right of the range. */
196
- rangeLte(column: string, range: string): this;
197
- /** `-|-`: adjacent to the range. */
198
- rangeAdjacent(column: string, range: string): this;
199
- private push;
200
- order(column: string, options?: OrderOptions): this;
201
- limit(count: number, options?: ReferencedTableOption): this;
202
- /** Inclusive range -> offset/limit. `range(0, 9)` fetches 10 rows from offset 0. */
203
- range(from: number, to: number, options?: ReferencedTableOption): this;
204
- /** Cancel the in-flight request when the signal aborts. */
205
- abortSignal(signal: AbortSignal): this;
206
- /**
207
- * Re-type the rows. Purely a compile-time cast, for cases the generated
208
- * `Database` cannot express (a computed column, an embedded shape).
209
- */
210
- returns<T extends object>(): PostgrestQueryBuilder<T>;
211
- /** Ask for `text/csv` instead of JSON. The result resolves to a string. */
212
- csv(): PostgrestTextBuilder;
213
- /** Ask the server for the query plan. Admin-only, and off by default. */
214
- explain(options?: ExplainOptions): PostgrestExplainBuilder;
215
- single(): PostgrestSingleBuilder<Row>;
216
- maybeSingle(): PostgrestSingleBuilder<Row>;
217
- /** The URL path (with query string) this builder targets. Exposed for tests. */
218
- toPath(): string;
219
- /** The headers this builder sends. Exposed for tests alongside `toPath()`. */
220
- toHeaders(): Record<string, string>;
221
- private execute;
222
- then<TResult1 = PostgrestResponse<Row[]>, TResult2 = never>(onfulfilled?: ((value: PostgrestResponse<Row[]>) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): PromiseLike<TResult1 | TResult2>;
223
- }
224
- /** Same builder, typed to resolve a single row (from `.single()` / `.maybeSingle()`). */
225
- export interface PostgrestSingleBuilder<Row extends object> extends Omit<PostgrestQueryBuilder<Row>, 'then' | 'single' | 'maybeSingle' | 'returns'>, PromiseLike<PostgrestResponse<Row>> {
226
- returns<T extends object>(): PostgrestSingleBuilder<T>;
227
- then<TResult1 = PostgrestResponse<Row>, TResult2 = never>(onfulfilled?: ((value: PostgrestResponse<Row>) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): PromiseLike<TResult1 | TResult2>;
228
- }
229
- /** The builder after `.csv()`: the body is text, not rows. */
230
- export interface PostgrestTextBuilder extends PromiseLike<PostgrestResponse<string>> {
231
- toPath(): string;
232
- toHeaders(): Record<string, string>;
233
- }
234
- /** The builder after `.explain()`: text, or the parsed plan for `format: 'json'`. */
235
- export interface PostgrestExplainBuilder extends PromiseLike<PostgrestResponse<unknown>> {
236
- toPath(): string;
237
- toHeaders(): Record<string, string>;
238
- }
239
- //# 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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"}