@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.
- package/README.md +127 -13
- package/package.json +10 -2
- package/dist/admin.d.ts +0 -81
- package/dist/admin.d.ts.map +0 -1
- package/dist/admin.js +0 -85
- package/dist/admin.js.map +0 -1
- package/dist/auth.d.ts +0 -233
- package/dist/auth.d.ts.map +0 -1
- package/dist/auth.js +0 -418
- package/dist/auth.js.map +0 -1
- package/dist/channel.d.ts +0 -119
- package/dist/channel.d.ts.map +0 -1
- package/dist/channel.js +0 -213
- package/dist/channel.js.map +0 -1
- package/dist/cookie.d.ts +0 -60
- package/dist/cookie.d.ts.map +0 -1
- package/dist/cookie.js +0 -144
- package/dist/cookie.js.map +0 -1
- package/dist/database.d.ts +0 -169
- package/dist/database.d.ts.map +0 -1
- package/dist/database.js +0 -2
- package/dist/database.js.map +0 -1
- package/dist/devices.d.ts +0 -13
- package/dist/devices.d.ts.map +0 -1
- package/dist/devices.js +0 -13
- package/dist/devices.js.map +0 -1
- package/dist/edge.d.ts +0 -7
- package/dist/edge.d.ts.map +0 -1
- package/dist/edge.js +0 -13
- package/dist/edge.js.map +0 -1
- package/dist/functions.d.ts +0 -24
- package/dist/functions.d.ts.map +0 -1
- package/dist/functions.js +0 -24
- package/dist/functions.js.map +0 -1
- package/dist/http.d.ts +0 -96
- package/dist/http.d.ts.map +0 -1
- package/dist/http.js +0 -157
- package/dist/http.js.map +0 -1
- package/dist/index.d.ts +0 -118
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -180
- package/dist/index.js.map +0 -1
- package/dist/mfa.d.ts +0 -109
- package/dist/mfa.d.ts.map +0 -1
- package/dist/mfa.js +0 -134
- package/dist/mfa.js.map +0 -1
- package/dist/postgrest.d.ts +0 -239
- package/dist/postgrest.d.ts.map +0 -1
- package/dist/postgrest.js +0 -467
- package/dist/postgrest.js.map +0 -1
- package/dist/profile.d.ts +0 -16
- package/dist/profile.d.ts.map +0 -1
- package/dist/profile.js +0 -26
- package/dist/profile.js.map +0 -1
- package/dist/realtime.d.ts +0 -114
- package/dist/realtime.d.ts.map +0 -1
- package/dist/realtime.js +0 -372
- package/dist/realtime.js.map +0 -1
- package/dist/rest.d.ts +0 -50
- package/dist/rest.d.ts.map +0 -1
- package/dist/rest.js +0 -75
- package/dist/rest.js.map +0 -1
- package/dist/session.d.ts +0 -36
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js +0 -90
- package/dist/session.js.map +0 -1
- package/dist/storage.d.ts +0 -72
- package/dist/storage.d.ts.map +0 -1
- package/dist/storage.js +0 -148
- package/dist/storage.js.map +0 -1
- package/dist/types.d.ts +0 -106
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
package/dist/postgrest.js
DELETED
|
@@ -1,467 +0,0 @@
|
|
|
1
|
-
import { toError } from './http.js';
|
|
2
|
-
import { contractPath } from '@motherbase/contracts';
|
|
3
|
-
// ── value encoding ───────────────────────────────────────────────────────────
|
|
4
|
-
/**
|
|
5
|
-
* Characters that end a token in the PostgREST grammar (or in a Postgres array
|
|
6
|
-
* literal). A string value carrying any of them has to be quoted or the server
|
|
7
|
-
* reads a different filter than the caller wrote.
|
|
8
|
-
*/
|
|
9
|
-
const NEEDS_QUOTING = /[,.:()"\\{}\s]/;
|
|
10
|
-
function quoteLiteral(value) {
|
|
11
|
-
return `"${value.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
|
|
12
|
-
}
|
|
13
|
-
/** One scalar value: quoted only when it has to be. */
|
|
14
|
-
export function encodeLiteral(value) {
|
|
15
|
-
if (value === null)
|
|
16
|
-
return 'null';
|
|
17
|
-
if (typeof value !== 'string')
|
|
18
|
-
return String(value);
|
|
19
|
-
if (value === '' || NEEDS_QUOTING.test(value))
|
|
20
|
-
return quoteLiteral(value);
|
|
21
|
-
return value;
|
|
22
|
-
}
|
|
23
|
-
/** `in.(a,"b,c")` and the `(all)` / `(any)` modifier lists. */
|
|
24
|
-
function encodeList(values) {
|
|
25
|
-
return `(${values.map(encodeLiteral).join(',')})`;
|
|
26
|
-
}
|
|
27
|
-
/** A Postgres array literal: `{a,"b,c"}`. Used by `cs`, `cd`, `ov` and the like modifiers. */
|
|
28
|
-
function encodeArrayLiteral(values) {
|
|
29
|
-
return `{${values.map(encodeLiteral).join(',')}}`;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* The operand of `cs` / `cd` / `ov`, which is polymorphic in PostgREST:
|
|
33
|
-
* an array column takes `{a,b}`, a range column takes its own literal
|
|
34
|
-
* (`[2000-01-01,2000-01-31]`) and a jsonb column takes JSON. A string is passed
|
|
35
|
-
* through untouched because it is already one of the last two.
|
|
36
|
-
*/
|
|
37
|
-
function encodeArrayOperand(value) {
|
|
38
|
-
if (typeof value === 'string')
|
|
39
|
-
return value;
|
|
40
|
-
if (Array.isArray(value))
|
|
41
|
-
return encodeArrayLiteral(value);
|
|
42
|
-
return JSON.stringify(value);
|
|
43
|
-
}
|
|
44
|
-
/** Values handed to `not()` / `filter()`: strings verbatim, arrays as a list. */
|
|
45
|
-
function encodeRawOperand(value) {
|
|
46
|
-
if (Array.isArray(value))
|
|
47
|
-
return encodeList(value);
|
|
48
|
-
if (value === null)
|
|
49
|
-
return 'null';
|
|
50
|
-
return String(value);
|
|
51
|
-
}
|
|
52
|
-
function isValueOf(value) {
|
|
53
|
-
if (value === null)
|
|
54
|
-
return 'null';
|
|
55
|
-
if (value === true)
|
|
56
|
-
return 'true';
|
|
57
|
-
if (value === false)
|
|
58
|
-
return 'false';
|
|
59
|
-
if (value === 'null' || value === 'true' || value === 'false' || value === 'unknown')
|
|
60
|
-
return value;
|
|
61
|
-
// Programmer misuse, not an API error: fail loudly rather than emit a filter
|
|
62
|
-
// the server will reject with an opaque 400.
|
|
63
|
-
throw new TypeError(`is() accepts null, true, false or unknown, received ${JSON.stringify(value)}`);
|
|
64
|
-
}
|
|
65
|
-
function referenced(options) {
|
|
66
|
-
return options?.referencedTable ?? options?.foreignTable ?? '';
|
|
67
|
-
}
|
|
68
|
-
function scopedKey(prefix, name) {
|
|
69
|
-
return prefix ? `${prefix}.${name}` : name;
|
|
70
|
-
}
|
|
71
|
-
/** `0-9/57` -> 57. An unknown total (a star after the slash) and a missing header both give null. */
|
|
72
|
-
function parseContentRange(header) {
|
|
73
|
-
if (!header)
|
|
74
|
-
return null;
|
|
75
|
-
const total = header.split('/')[1];
|
|
76
|
-
if (!total || total === '*')
|
|
77
|
-
return null;
|
|
78
|
-
const parsed = Number(total);
|
|
79
|
-
return Number.isFinite(parsed) ? parsed : null;
|
|
80
|
-
}
|
|
81
|
-
// ── the builder ──────────────────────────────────────────────────────────────
|
|
82
|
-
/**
|
|
83
|
-
* PostgREST-style, chainable, thenable query builder mapping onto the backend's
|
|
84
|
-
* `/rest/v1/:model` query-param dialect. Awaiting it resolves to
|
|
85
|
-
* `{ data, error, count }` and never rejects for expected API errors (only for
|
|
86
|
-
* programmer misuse).
|
|
87
|
-
*
|
|
88
|
-
* @internal This is the implementation behind `client.from()`, not a surface to
|
|
89
|
-
* construct directly. The public, typed entry point is `client.from(table)`,
|
|
90
|
-
* whose return type (`TypedQuery`, from `database.ts`) is what user code should
|
|
91
|
-
* name. It is exported only so the type can be referenced where inference needs
|
|
92
|
-
* a name for it.
|
|
93
|
-
*/
|
|
94
|
-
export class PostgrestQueryBuilder {
|
|
95
|
-
constructor(http, model) {
|
|
96
|
-
this.http = http;
|
|
97
|
-
this.model = model;
|
|
98
|
-
this.method = 'GET';
|
|
99
|
-
this.columns = '*';
|
|
100
|
-
/**
|
|
101
|
-
* Repeated filters on one column must all survive: `?price=gt.10&price=lt.20`
|
|
102
|
-
* is two conditions ANDed together, which is why every filter is `append`ed
|
|
103
|
-
* and never `set`. Using `set` here (as this builder once did) silently
|
|
104
|
-
* dropped the first of the two.
|
|
105
|
-
*/
|
|
106
|
-
this.filters = new URLSearchParams();
|
|
107
|
-
/** Reserved params that are replaced rather than repeated (`columns`, `on_conflict`). */
|
|
108
|
-
this.extras = new Map();
|
|
109
|
-
/** Keyed by referenced table (`''` for the base relation). */
|
|
110
|
-
this.orderParts = new Map();
|
|
111
|
-
this.limits = new Map();
|
|
112
|
-
this.offsets = new Map();
|
|
113
|
-
this.prefer = [];
|
|
114
|
-
this.responseKind = 'json';
|
|
115
|
-
this.headOnly = false;
|
|
116
|
-
this.rowMode = 'many';
|
|
117
|
-
}
|
|
118
|
-
// --- verbs -------------------------------------------------------------
|
|
119
|
-
/**
|
|
120
|
-
* Choose the columns, and optionally ask for a row count.
|
|
121
|
-
*
|
|
122
|
-
* After a write, `.select()` is the supabase-js way of asking for the rows
|
|
123
|
-
* back, so it also sends `Prefer: return=representation`.
|
|
124
|
-
*/
|
|
125
|
-
select(columns = '*', options = {}) {
|
|
126
|
-
this.columns = columns;
|
|
127
|
-
if (this.method !== 'GET' && this.method !== 'HEAD')
|
|
128
|
-
this.prefer.push('return=representation');
|
|
129
|
-
if (options.count)
|
|
130
|
-
this.countOption = options.count;
|
|
131
|
-
if (options.head) {
|
|
132
|
-
this.headOnly = true;
|
|
133
|
-
if (this.method === 'GET')
|
|
134
|
-
this.method = 'HEAD';
|
|
135
|
-
}
|
|
136
|
-
return this;
|
|
137
|
-
}
|
|
138
|
-
insert(values, options = {}) {
|
|
139
|
-
this.method = 'POST';
|
|
140
|
-
this.body = values;
|
|
141
|
-
this.applyColumns(values);
|
|
142
|
-
if (options.count)
|
|
143
|
-
this.countOption = options.count;
|
|
144
|
-
if (options.defaultToNull === false)
|
|
145
|
-
this.prefer.push('missing=default');
|
|
146
|
-
return this;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* `INSERT .. ON CONFLICT DO UPDATE`. The conflict target defaults to the
|
|
150
|
-
* primary key server side; `onConflict` names another unique constraint.
|
|
151
|
-
*/
|
|
152
|
-
upsert(values, options = {}) {
|
|
153
|
-
this.method = 'POST';
|
|
154
|
-
this.body = values;
|
|
155
|
-
this.applyColumns(values);
|
|
156
|
-
this.prefer.push(`resolution=${options.ignoreDuplicates ? 'ignore' : 'merge'}-duplicates`);
|
|
157
|
-
if (options.onConflict !== undefined)
|
|
158
|
-
this.extras.set('on_conflict', options.onConflict);
|
|
159
|
-
if (options.count)
|
|
160
|
-
this.countOption = options.count;
|
|
161
|
-
if (options.defaultToNull === false)
|
|
162
|
-
this.prefer.push('missing=default');
|
|
163
|
-
return this;
|
|
164
|
-
}
|
|
165
|
-
update(values, options = {}) {
|
|
166
|
-
this.method = 'PATCH';
|
|
167
|
-
this.body = values;
|
|
168
|
-
if (options.count)
|
|
169
|
-
this.countOption = options.count;
|
|
170
|
-
return this;
|
|
171
|
-
}
|
|
172
|
-
delete(options = {}) {
|
|
173
|
-
this.method = 'DELETE';
|
|
174
|
-
if (options.count)
|
|
175
|
-
this.countOption = options.count;
|
|
176
|
-
return this;
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* A bulk write states its column set explicitly, so a key missing from one
|
|
180
|
-
* row is still written (as NULL, or as the column default under
|
|
181
|
-
* `missing=default`) instead of being inferred from the first row alone.
|
|
182
|
-
*/
|
|
183
|
-
applyColumns(values) {
|
|
184
|
-
if (!Array.isArray(values))
|
|
185
|
-
return;
|
|
186
|
-
const seen = new Set();
|
|
187
|
-
for (const row of values) {
|
|
188
|
-
if (row && typeof row === 'object')
|
|
189
|
-
for (const key of Object.keys(row))
|
|
190
|
-
seen.add(key);
|
|
191
|
-
}
|
|
192
|
-
if (seen.size) {
|
|
193
|
-
this.extras.set('columns', Array.from(seen, column => `"${column}"`).join(','));
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
// --- filters -----------------------------------------------------------
|
|
197
|
-
eq(column, value) {
|
|
198
|
-
return this.push(column, `eq.${encodeLiteral(value)}`);
|
|
199
|
-
}
|
|
200
|
-
neq(column, value) {
|
|
201
|
-
return this.push(column, `neq.${encodeLiteral(value)}`);
|
|
202
|
-
}
|
|
203
|
-
gt(column, value) {
|
|
204
|
-
return this.push(column, `gt.${encodeLiteral(value)}`);
|
|
205
|
-
}
|
|
206
|
-
gte(column, value) {
|
|
207
|
-
return this.push(column, `gte.${encodeLiteral(value)}`);
|
|
208
|
-
}
|
|
209
|
-
lt(column, value) {
|
|
210
|
-
return this.push(column, `lt.${encodeLiteral(value)}`);
|
|
211
|
-
}
|
|
212
|
-
lte(column, value) {
|
|
213
|
-
return this.push(column, `lte.${encodeLiteral(value)}`);
|
|
214
|
-
}
|
|
215
|
-
/** Case-sensitive LIKE. `*` is PostgREST's URL-friendly `%`. */
|
|
216
|
-
like(column, pattern) {
|
|
217
|
-
return this.push(column, `like.${encodeLiteral(pattern)}`);
|
|
218
|
-
}
|
|
219
|
-
ilike(column, pattern) {
|
|
220
|
-
return this.push(column, `ilike.${encodeLiteral(pattern)}`);
|
|
221
|
-
}
|
|
222
|
-
likeAllOf(column, patterns) {
|
|
223
|
-
return this.push(column, `like(all).${encodeArrayLiteral(patterns)}`);
|
|
224
|
-
}
|
|
225
|
-
likeAnyOf(column, patterns) {
|
|
226
|
-
return this.push(column, `like(any).${encodeArrayLiteral(patterns)}`);
|
|
227
|
-
}
|
|
228
|
-
ilikeAllOf(column, patterns) {
|
|
229
|
-
return this.push(column, `ilike(all).${encodeArrayLiteral(patterns)}`);
|
|
230
|
-
}
|
|
231
|
-
ilikeAnyOf(column, patterns) {
|
|
232
|
-
return this.push(column, `ilike(any).${encodeArrayLiteral(patterns)}`);
|
|
233
|
-
}
|
|
234
|
-
in(column, values) {
|
|
235
|
-
return this.push(column, `in.${encodeList(values)}`);
|
|
236
|
-
}
|
|
237
|
-
is(column, value) {
|
|
238
|
-
return this.push(column, `is.${isValueOf(value)}`);
|
|
239
|
-
}
|
|
240
|
-
/** Every key equal to its value, ANDed together. */
|
|
241
|
-
match(query) {
|
|
242
|
-
for (const [column, value] of Object.entries(query))
|
|
243
|
-
this.eq(column, value);
|
|
244
|
-
return this;
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Negate any operator: `not('status', 'eq', 'live')` emits
|
|
248
|
-
* `status=not.eq.live`. The value is passed through verbatim for a string, so
|
|
249
|
-
* composite operands (`not('id', 'in', '(1,2)')`) reach the server as written.
|
|
250
|
-
*/
|
|
251
|
-
not(column, operator, value) {
|
|
252
|
-
return this.push(column, `not.${operator}.${encodeRawOperand(value)}`);
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* The escape hatch: any operator, including the ones with no dedicated method
|
|
256
|
-
* (`match`, `imatch`, `isdistinct`) and the modifier forms (`like(any)`).
|
|
257
|
-
*/
|
|
258
|
-
filter(column, operator, value) {
|
|
259
|
-
return this.push(column, `${operator}.${encodeRawOperand(value)}`);
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* A disjunction, written in PostgREST's own syntax and nestable:
|
|
263
|
-
* `or('status.eq.live,and(price.gt.10,price.lt.20)')`.
|
|
264
|
-
*/
|
|
265
|
-
or(filters, options = {}) {
|
|
266
|
-
return this.push(scopedKey(referenced(options), 'or'), `(${filters})`);
|
|
267
|
-
}
|
|
268
|
-
/** Full-text search. `type` picks the tsquery parser, `config` the dictionary. */
|
|
269
|
-
textSearch(column, query, options = {}) {
|
|
270
|
-
const prefix = options.type === 'plain'
|
|
271
|
-
? 'pl'
|
|
272
|
-
: options.type === 'phrase'
|
|
273
|
-
? 'ph'
|
|
274
|
-
: options.type === 'websearch'
|
|
275
|
-
? 'w'
|
|
276
|
-
: '';
|
|
277
|
-
const config = options.config === undefined ? '' : `(${options.config})`;
|
|
278
|
-
return this.push(column, `${prefix}fts${config}.${encodeLiteral(query)}`);
|
|
279
|
-
}
|
|
280
|
-
/** `@>`: the column contains the operand (array, range or jsonb). */
|
|
281
|
-
contains(column, value) {
|
|
282
|
-
return this.push(column, `cs.${encodeArrayOperand(value)}`);
|
|
283
|
-
}
|
|
284
|
-
/** `<@`: the column is contained by the operand. */
|
|
285
|
-
containedBy(column, value) {
|
|
286
|
-
return this.push(column, `cd.${encodeArrayOperand(value)}`);
|
|
287
|
-
}
|
|
288
|
-
/** `&&`: the column and the operand have an element (or a point) in common. */
|
|
289
|
-
overlaps(column, value) {
|
|
290
|
-
return this.push(column, `ov.${encodeArrayOperand(value)}`);
|
|
291
|
-
}
|
|
292
|
-
/** `>>`: strictly right of the range. */
|
|
293
|
-
rangeGt(column, range) {
|
|
294
|
-
return this.push(column, `sr.${range}`);
|
|
295
|
-
}
|
|
296
|
-
/** `&>`: does not extend to the left of the range. */
|
|
297
|
-
rangeGte(column, range) {
|
|
298
|
-
return this.push(column, `nxl.${range}`);
|
|
299
|
-
}
|
|
300
|
-
/** `<<`: strictly left of the range. */
|
|
301
|
-
rangeLt(column, range) {
|
|
302
|
-
return this.push(column, `sl.${range}`);
|
|
303
|
-
}
|
|
304
|
-
/** `&<`: does not extend to the right of the range. */
|
|
305
|
-
rangeLte(column, range) {
|
|
306
|
-
return this.push(column, `nxr.${range}`);
|
|
307
|
-
}
|
|
308
|
-
/** `-|-`: adjacent to the range. */
|
|
309
|
-
rangeAdjacent(column, range) {
|
|
310
|
-
return this.push(column, `adj.${range}`);
|
|
311
|
-
}
|
|
312
|
-
push(key, value) {
|
|
313
|
-
this.filters.append(key, value);
|
|
314
|
-
return this;
|
|
315
|
-
}
|
|
316
|
-
// --- modifiers ---------------------------------------------------------
|
|
317
|
-
order(column, options = {}) {
|
|
318
|
-
const direction = options.ascending === false ? 'desc' : 'asc';
|
|
319
|
-
const nulls = options.nullsFirst === undefined ? '' : options.nullsFirst ? '.nullsfirst' : '.nullslast';
|
|
320
|
-
const prefix = referenced(options);
|
|
321
|
-
const parts = this.orderParts.get(prefix) ?? [];
|
|
322
|
-
parts.push(`${column}.${direction}${nulls}`);
|
|
323
|
-
this.orderParts.set(prefix, parts);
|
|
324
|
-
return this;
|
|
325
|
-
}
|
|
326
|
-
limit(count, options = {}) {
|
|
327
|
-
this.limits.set(referenced(options), count);
|
|
328
|
-
return this;
|
|
329
|
-
}
|
|
330
|
-
/** Inclusive range -> offset/limit. `range(0, 9)` fetches 10 rows from offset 0. */
|
|
331
|
-
range(from, to, options = {}) {
|
|
332
|
-
const prefix = referenced(options);
|
|
333
|
-
this.offsets.set(prefix, from);
|
|
334
|
-
this.limits.set(prefix, to - from + 1);
|
|
335
|
-
return this;
|
|
336
|
-
}
|
|
337
|
-
/** Cancel the in-flight request when the signal aborts. */
|
|
338
|
-
abortSignal(signal) {
|
|
339
|
-
this.signal = signal;
|
|
340
|
-
return this;
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* Re-type the rows. Purely a compile-time cast, for cases the generated
|
|
344
|
-
* `Database` cannot express (a computed column, an embedded shape).
|
|
345
|
-
*/
|
|
346
|
-
returns() {
|
|
347
|
-
return this;
|
|
348
|
-
}
|
|
349
|
-
/** Ask for `text/csv` instead of JSON. The result resolves to a string. */
|
|
350
|
-
csv() {
|
|
351
|
-
this.accept = 'text/csv';
|
|
352
|
-
this.responseKind = 'text';
|
|
353
|
-
return this;
|
|
354
|
-
}
|
|
355
|
-
/** Ask the server for the query plan. Admin-only, and off by default. */
|
|
356
|
-
explain(options = {}) {
|
|
357
|
-
const format = options.format ?? 'text';
|
|
358
|
-
const flags = ['analyze', 'verbose', 'settings', 'buffers', 'wal']
|
|
359
|
-
.filter(flag => options[flag])
|
|
360
|
-
.join('|');
|
|
361
|
-
const forMediatype = this.accept ?? 'application/json';
|
|
362
|
-
this.accept = `application/vnd.pgrst.plan+${format}; for="${forMediatype}"; options=${flags};`;
|
|
363
|
-
this.responseKind = format === 'json' ? 'text-json' : 'text';
|
|
364
|
-
return this;
|
|
365
|
-
}
|
|
366
|
-
single() {
|
|
367
|
-
this.rowMode = 'single';
|
|
368
|
-
return this;
|
|
369
|
-
}
|
|
370
|
-
maybeSingle() {
|
|
371
|
-
this.rowMode = 'maybeSingle';
|
|
372
|
-
return this;
|
|
373
|
-
}
|
|
374
|
-
// --- execution ---------------------------------------------------------
|
|
375
|
-
/** The URL path (with query string) this builder targets. Exposed for tests. */
|
|
376
|
-
toPath() {
|
|
377
|
-
const params = new URLSearchParams();
|
|
378
|
-
if (this.columns && this.columns !== '*')
|
|
379
|
-
params.set('select', this.columns);
|
|
380
|
-
for (const [key, value] of this.extras)
|
|
381
|
-
params.append(key, value);
|
|
382
|
-
// `append`, never `set`: two filters on one column are two conditions.
|
|
383
|
-
this.filters.forEach((value, key) => params.append(key, value));
|
|
384
|
-
for (const [prefix, parts] of this.orderParts) {
|
|
385
|
-
if (parts.length)
|
|
386
|
-
params.append(scopedKey(prefix, 'order'), parts.join(','));
|
|
387
|
-
}
|
|
388
|
-
for (const [prefix, value] of this.limits) {
|
|
389
|
-
params.append(scopedKey(prefix, 'limit'), String(value));
|
|
390
|
-
}
|
|
391
|
-
for (const [prefix, value] of this.offsets) {
|
|
392
|
-
params.append(scopedKey(prefix, 'offset'), String(value));
|
|
393
|
-
}
|
|
394
|
-
const query = params.toString();
|
|
395
|
-
return `${contractPath.rest(this.model)}${query ? `?${query}` : ''}`;
|
|
396
|
-
}
|
|
397
|
-
/** The headers this builder sends. Exposed for tests alongside `toPath()`. */
|
|
398
|
-
toHeaders() {
|
|
399
|
-
const headers = {};
|
|
400
|
-
const prefer = [...this.prefer];
|
|
401
|
-
if (this.countOption)
|
|
402
|
-
prefer.push(`count=${this.countOption}`);
|
|
403
|
-
if (prefer.length)
|
|
404
|
-
headers['Prefer'] = prefer.join(',');
|
|
405
|
-
if (this.accept)
|
|
406
|
-
headers['Accept'] = this.accept;
|
|
407
|
-
return headers;
|
|
408
|
-
}
|
|
409
|
-
async execute() {
|
|
410
|
-
const path = this.toPath();
|
|
411
|
-
const headers = this.toHeaders();
|
|
412
|
-
try {
|
|
413
|
-
if (this.responseKind !== 'json') {
|
|
414
|
-
const res = await this.http.requestRaw(path, {
|
|
415
|
-
method: this.method,
|
|
416
|
-
body: this.body,
|
|
417
|
-
headers,
|
|
418
|
-
signal: this.signal,
|
|
419
|
-
});
|
|
420
|
-
const text = await res.text();
|
|
421
|
-
const data = this.responseKind === 'text-json' ? safeJson(text) : text;
|
|
422
|
-
return { data, error: null, count: parseContentRange(res.headers.get('content-range')) };
|
|
423
|
-
}
|
|
424
|
-
const result = await this.http.requestWithHeaders(path, {
|
|
425
|
-
method: this.method,
|
|
426
|
-
body: this.body,
|
|
427
|
-
headers,
|
|
428
|
-
signal: this.signal,
|
|
429
|
-
});
|
|
430
|
-
const count = parseContentRange(result.headers.get('content-range'));
|
|
431
|
-
// A HEAD request has no body by definition: the count is the whole answer.
|
|
432
|
-
if (this.headOnly)
|
|
433
|
-
return { data: null, error: null, count };
|
|
434
|
-
const rows = result.data;
|
|
435
|
-
const list = Array.isArray(rows) ? rows : rows == null ? [] : [rows];
|
|
436
|
-
if (this.rowMode === 'single') {
|
|
437
|
-
if (list.length !== 1) {
|
|
438
|
-
const error = {
|
|
439
|
-
message: 'JSON object requested, multiple (or no) rows returned',
|
|
440
|
-
code: 'PGRST116',
|
|
441
|
-
};
|
|
442
|
-
return { data: null, error, count };
|
|
443
|
-
}
|
|
444
|
-
return { data: list[0], error: null, count };
|
|
445
|
-
}
|
|
446
|
-
if (this.rowMode === 'maybeSingle') {
|
|
447
|
-
return { data: list.length ? list[0] : null, error: null, count };
|
|
448
|
-
}
|
|
449
|
-
return { data: list, error: null, count };
|
|
450
|
-
}
|
|
451
|
-
catch (err) {
|
|
452
|
-
return { data: null, error: toError(err), count: null };
|
|
453
|
-
}
|
|
454
|
-
}
|
|
455
|
-
then(onfulfilled, onrejected) {
|
|
456
|
-
return this.execute().then(onfulfilled, onrejected);
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
function safeJson(text) {
|
|
460
|
-
try {
|
|
461
|
-
return JSON.parse(text);
|
|
462
|
-
}
|
|
463
|
-
catch {
|
|
464
|
-
return text;
|
|
465
|
-
}
|
|
466
|
-
}
|
|
467
|
-
//# sourceMappingURL=postgrest.js.map
|
package/dist/postgrest.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"postgrest.js","sourceRoot":"","sources":["../src/postgrest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAiIrD,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAEvC,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AAClE,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,KAAK,KAAK,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAC1E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+DAA+D;AAC/D,SAAS,UAAU,CAAC,MAAqC;IACvD,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACpD,CAAC;AAED,8FAA8F;AAC9F,SAAS,kBAAkB,CAAC,MAAqC;IAC/D,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,KAA4B;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAC,KAAsC,CAAC,CAAC;IAC5F,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,iFAAiF;AACjF,SAAS,gBAAgB,CAAC,KAAyD;IACjF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,KAAsC,CAAC,CAAC;IACpF,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,SAAS,CAAC,KAAuB;IACxC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC;IACpC,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACnG,6EAA6E;IAC7E,6CAA6C;IAC7C,MAAM,IAAI,SAAS,CAAC,uDAAuD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACtG,CAAC;AAED,SAAS,UAAU,CAAC,OAA0C;IAC5D,OAAO,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,YAAY,IAAI,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,SAAS,CAAC,MAAc,EAAE,IAAY;IAC7C,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,qGAAqG;AACrG,SAAS,iBAAiB,CAAC,MAAqB;IAC9C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED,gFAAgF;AAEhF;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,qBAAqB;IA2BhC,YAA6B,IAAgB,EAAmB,KAAa;QAAhD,SAAI,GAAJ,IAAI,CAAY;QAAmB,UAAK,GAAL,KAAK,CAAQ;QAxBrE,WAAM,GAAiD,KAAK,CAAC;QAC7D,YAAO,GAAG,GAAG,CAAC;QACtB;;;;;WAKG;QACc,YAAO,GAAG,IAAI,eAAe,EAAE,CAAC;QACjD,yFAAyF;QACxE,WAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACpD,8DAA8D;QAC7C,eAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;QACzC,WAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACnC,YAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QACpC,WAAM,GAAa,EAAE,CAAC;QAE/B,iBAAY,GAAiB,MAAM,CAAC;QAEpC,aAAQ,GAAG,KAAK,CAAC;QAGjB,YAAO,GAAY,MAAM,CAAC;IAE8C,CAAC;IAEjF,0EAA0E;IAE1E;;;;;OAKG;IACH,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,UAAyB,EAAE;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC/F,IAAI,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;QACpD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;gBAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAA0C,EAAE,UAAyB,EAAE;QAC5E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;QACpD,IAAI,OAAO,CAAC,aAAa,KAAK,KAAK;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,MAA0C,EAAE,UAAyB,EAAE;QAC5E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC;QAC3F,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACzF,IAAI,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;QACpD,IAAI,OAAO,CAAC,aAAa,KAAK,KAAK;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAoB,EAAE,UAAyB,EAAE;QACtD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,UAAyB,EAAE;QAChC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,YAAY,CAAC,MAAe;QAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO;QACnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;oBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,0EAA0E;IAE1E,EAAE,CAAC,MAAc,EAAE,KAAyB;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,GAAG,CAAC,MAAc,EAAE,KAAyB;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,EAAE,CAAC,MAAc,EAAE,KAAyB;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,GAAG,CAAC,MAAc,EAAE,KAAyB;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,EAAE,CAAC,MAAc,EAAE,KAAyB;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,GAAG,CAAC,MAAc,EAAE,KAAyB;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,gEAAgE;IAChE,IAAI,CAAC,MAAc,EAAE,OAAe;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,KAAK,CAAC,MAAc,EAAE,OAAe;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,SAAS,CAAC,MAAc,EAAE,QAA2B;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,SAAS,CAAC,MAAc,EAAE,QAA2B;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,UAAU,CAAC,MAAc,EAAE,QAA2B;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,UAAU,CAAC,MAAc,EAAE,QAA2B;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,EAAE,CAAC,MAAc,EAAE,MAAqC;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,EAAE,CAAC,MAAc,EAAE,KAAuB;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,oDAAoD;IACpD,KAAK,CAAC,KAAyC;QAC7C,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,GAAG,CACD,MAAc,EACd,QAAiD,EACjD,KAAyD;QAEzD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,QAAQ,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;OAGG;IACH,MAAM,CACJ,MAAc,EACd,QAAiD,EACjD,KAAyD;QAEzD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IAED;;;OAGG;IACH,EAAE,CAAC,OAAe,EAAE,UAAiC,EAAE;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC;IACzE,CAAC;IAED,kFAAkF;IAClF,UAAU,CACR,MAAc,EACd,KAAa,EACb,UAAsD,EAAE;QAExD,MAAM,MAAM,GACV,OAAO,CAAC,IAAI,KAAK,OAAO;YACtB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ;gBACzB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;oBAC5B,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QACzE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,MAAM,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,qEAAqE;IACrE,QAAQ,CAAC,MAAc,EAAE,KAA4B;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,oDAAoD;IACpD,WAAW,CAAC,MAAc,EAAE,KAA4B;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,+EAA+E;IAC/E,QAAQ,CAAC,MAAc,EAAE,KAA4B;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,yCAAyC;IACzC,OAAO,CAAC,MAAc,EAAE,KAAa;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,sDAAsD;IACtD,QAAQ,CAAC,MAAc,EAAE,KAAa;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,wCAAwC;IACxC,OAAO,CAAC,MAAc,EAAE,KAAa;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,uDAAuD;IACvD,QAAQ,CAAC,MAAc,EAAE,KAAa;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,oCAAoC;IACpC,aAAa,CAAC,MAAc,EAAE,KAAa;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC;IAC3C,CAAC;IAEO,IAAI,CAAC,GAAW,EAAE,KAAa;QACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0EAA0E;IAE1E,KAAK,CAAC,MAAc,EAAE,UAAwB,EAAE;QAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/D,MAAM,KAAK,GACT,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;QAC5F,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,SAAS,GAAG,KAAK,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,UAAiC,EAAE;QACtD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oFAAoF;IACpF,KAAK,CAAC,IAAY,EAAE,EAAU,EAAE,UAAiC,EAAE;QACjE,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2DAA2D;IAC3D,WAAW,CAAC,MAAmB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAA2C,CAAC;IACrD,CAAC;IAED,2EAA2E;IAC3E,GAAG;QACD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,OAAO,IAAuC,CAAC;IACjD,CAAC;IAED,yEAAyE;IACzE,OAAO,CAAC,UAA0B,EAAE;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;QACxC,MAAM,KAAK,GAAI,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAW;aAC1E,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,IAAI,kBAAkB,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,8BAA8B,MAAM,UAAU,YAAY,cAAc,KAAK,GAAG,CAAC;QAC/F,IAAI,CAAC,YAAY,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7D,OAAO,IAA0C,CAAC;IACpD,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACxB,OAAO,IAA8C,CAAC;IACxD,CAAC;IAED,WAAW;QACT,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;QAC7B,OAAO,IAA8C,CAAC;IACxD,CAAC;IAED,0EAA0E;IAE1E,gFAAgF;IAChF,MAAM;QACJ,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7E,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAClE,uEAAuE;QACvE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QAChE,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9C,IAAI,KAAK,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACvE,CAAC;IAED,8EAA8E;IAC9E,SAAS;QACP,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,WAAW;YAAE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,MAAM;YAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;gBACjC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;oBAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO;oBACP,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACvE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;YAC3F,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAQ,IAAI,EAAE;gBAC7D,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO;gBACP,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;YAErE,2EAA2E;YAC3E,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAE7D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACzB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAErE,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,MAAM,KAAK,GAAoB;wBAC7B,OAAO,EAAE,uDAAuD;wBAChE,IAAI,EAAE,UAAU;qBACjB,CAAC;oBACF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBACtC,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAC/C,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;gBACnC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACpE,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,IAAI,CACF,WAA4F,EAC5F,UAA2E;QAE3E,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,WAAoB,EAAE,UAAU,CAAC,CAAC;IAC/D,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/profile.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { HttpClient } from './http.js';
|
|
2
|
-
import type { User } from './types.js';
|
|
3
|
-
/** A file-ish value accepted by multipart uploads (browser File/Blob or RN asset). */
|
|
4
|
-
export type UploadInput = Blob | {
|
|
5
|
-
uri: string;
|
|
6
|
-
name?: string;
|
|
7
|
-
type?: string;
|
|
8
|
-
};
|
|
9
|
-
export declare class UsersModule {
|
|
10
|
-
private readonly http;
|
|
11
|
-
constructor(http: HttpClient);
|
|
12
|
-
updateUsername(username: string): Promise<User>;
|
|
13
|
-
updateImage(file: UploadInput): Promise<User>;
|
|
14
|
-
deleteAccount(): Promise<unknown>;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=profile.d.ts.map
|
package/dist/profile.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,sFAAsF;AACtF,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAW/E,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;CAGlC"}
|
package/dist/profile.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
function appendFile(form, field, file) {
|
|
2
|
-
if (typeof Blob !== 'undefined' && file instanceof Blob) {
|
|
3
|
-
form.append(field, file);
|
|
4
|
-
}
|
|
5
|
-
else {
|
|
6
|
-
// React Native style { uri, name, type }
|
|
7
|
-
form.append(field, file);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
export class UsersModule {
|
|
11
|
-
constructor(http) {
|
|
12
|
-
this.http = http;
|
|
13
|
-
}
|
|
14
|
-
updateUsername(username) {
|
|
15
|
-
return this.http.request('/api/users/username', { method: 'PUT', body: { username } });
|
|
16
|
-
}
|
|
17
|
-
updateImage(file) {
|
|
18
|
-
const form = new FormData();
|
|
19
|
-
appendFile(form, 'image', file);
|
|
20
|
-
return this.http.request('/api/users/image', { method: 'PUT', form });
|
|
21
|
-
}
|
|
22
|
-
deleteAccount() {
|
|
23
|
-
return this.http.request('/api/users/', { method: 'DELETE' });
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=profile.js.map
|
package/dist/profile.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAMA,SAAS,UAAU,CAAC,IAAc,EAAE,KAAa,EAAE,IAAiB;IAClE,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,yCAAyC;QACzC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAuB,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,MAAM,OAAO,WAAW;IACtB,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,cAAc,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAO,qBAAqB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,WAAW,CAAC,IAAiB;QAC3B,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAO,kBAAkB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;CACF"}
|
package/dist/realtime.d.ts
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import type { SessionStore } from './session.js';
|
|
2
|
-
import { type RealtimeJoinAck, type RealtimeJoinConfig, type RealtimeTopicEnvelope, type RealtimeTopicMessageType } from '@motherbase/contracts';
|
|
3
|
-
export type RealtimeStatus = 'idle' | 'connecting' | 'connected' | 'reconnecting' | 'polling' | 'disconnected' | 'error';
|
|
4
|
-
export type RealtimeStatusListener = (status: RealtimeStatus, detail?: unknown) => void;
|
|
5
|
-
export interface RealtimeConnectOptions {
|
|
6
|
-
timeoutMs?: number;
|
|
7
|
-
fallbackPolling?: boolean;
|
|
8
|
-
}
|
|
9
|
-
export interface RealtimeWatchOptions {
|
|
10
|
-
intervalMs?: number;
|
|
11
|
-
query?: string;
|
|
12
|
-
polling?: boolean;
|
|
13
|
-
}
|
|
14
|
-
/** Events received are pre-filtered by server-side REST policies for the current session. */
|
|
15
|
-
export type RealtimeWatchEvent<T> = {
|
|
16
|
-
type: 'created' | 'updated' | 'deleted';
|
|
17
|
-
source: 'socket';
|
|
18
|
-
payload: T;
|
|
19
|
-
} | {
|
|
20
|
-
type: 'snapshot';
|
|
21
|
-
source: 'polling';
|
|
22
|
-
rows: T[];
|
|
23
|
-
};
|
|
24
|
-
/** Minimal shape we rely on from socket.io-client's Socket. */
|
|
25
|
-
export interface SocketLike {
|
|
26
|
-
on(event: string, cb: (...args: unknown[]) => void): void;
|
|
27
|
-
off(event: string, cb?: (...args: unknown[]) => void): void;
|
|
28
|
-
emit(event: string, ...args: unknown[]): void;
|
|
29
|
-
disconnect(): void;
|
|
30
|
-
connected: boolean;
|
|
31
|
-
}
|
|
32
|
-
export type IoFactory = (url: string, opts: Record<string, unknown>) => SocketLike;
|
|
33
|
-
/** What RealtimeModule needs from a RealtimeChannel (avoids a circular import). */
|
|
34
|
-
export interface ChannelHandle {
|
|
35
|
-
_receive(envelope: RealtimeTopicEnvelope): void;
|
|
36
|
-
/** Called after a reconnect replayed (or failed to replay) this topic's join. */
|
|
37
|
-
_rejoined?(ok: boolean): void;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Lazy wrapper over socket.io-client. The dependency is optional: it is only
|
|
41
|
-
* imported when `connect()` is called, so apps that never use realtime do not
|
|
42
|
-
* need to install it.
|
|
43
|
-
*/
|
|
44
|
-
export declare class RealtimeModule {
|
|
45
|
-
private readonly baseUrl;
|
|
46
|
-
private readonly store;
|
|
47
|
-
private readonly fetchImpl;
|
|
48
|
-
/** Inject a socket factory (tests / custom transports). Falls back to socket.io-client. */
|
|
49
|
-
private readonly ioFactory?;
|
|
50
|
-
private socket;
|
|
51
|
-
private status;
|
|
52
|
-
private readonly statusListeners;
|
|
53
|
-
private readonly pollers;
|
|
54
|
-
private readonly tableSubscriptionRefs;
|
|
55
|
-
private pollerSeq;
|
|
56
|
-
private readonly channelsByTopic;
|
|
57
|
-
/** Topics joined on the current socket, replayed as-is after a reconnect. */
|
|
58
|
-
private readonly joinedTopics;
|
|
59
|
-
private topicRouterBound;
|
|
60
|
-
constructor(baseUrl: string, store: SessionStore, fetchImpl?: typeof fetch,
|
|
61
|
-
/** Inject a socket factory (tests / custom transports). Falls back to socket.io-client. */
|
|
62
|
-
ioFactory?: IoFactory | undefined);
|
|
63
|
-
/** True once a socket is connected. */
|
|
64
|
-
get connected(): boolean;
|
|
65
|
-
getStatus(): RealtimeStatus;
|
|
66
|
-
onStatusChange(listener: RealtimeStatusListener): () => void;
|
|
67
|
-
connect(options?: RealtimeConnectOptions): Promise<void>;
|
|
68
|
-
on(event: string, cb: (...args: unknown[]) => void): void;
|
|
69
|
-
off(event: string, cb?: (...args: unknown[]) => void): void;
|
|
70
|
-
emit(event: string, ...args: unknown[]): void;
|
|
71
|
-
/**
|
|
72
|
-
* @deprecated Legacy low-level table watcher. Prefer the Supabase-shaped
|
|
73
|
-
* `client.channel(topic).on('postgres_changes', { event, schema, table, filter }, cb)`.
|
|
74
|
-
* Kept for backwards compatibility; scheduled for removal.
|
|
75
|
-
*
|
|
76
|
-
* Subscribe to create/update/delete events for a model table.
|
|
77
|
-
*
|
|
78
|
-
* Events are filtered server-side: you will only receive events for rows
|
|
79
|
-
* your session is authorized to see (based on REST API SELECT policies).
|
|
80
|
-
* Anonymous sessions receive only public rows; authenticated sessions receive
|
|
81
|
-
* rows matching their access policies (e.g. owner-only rows they own).
|
|
82
|
-
*
|
|
83
|
-
* Falls back to polling the REST endpoint at subscribe time if the WebSocket
|
|
84
|
-
* is not yet connected (polling does not auto-start on later disconnects).
|
|
85
|
-
*/
|
|
86
|
-
watchTable<T>(model: string, cb: (event: RealtimeWatchEvent<T>) => void, options?: RealtimeWatchOptions): () => void;
|
|
87
|
-
disconnect(): void;
|
|
88
|
-
/** Register a channel so incoming rt:msg envelopes for its topic are routed to it. */
|
|
89
|
-
registerChannel(topic: string, channel: ChannelHandle): void;
|
|
90
|
-
unregisterChannel(topic: string): void;
|
|
91
|
-
/** Emit rt:join and resolve the server ack (or a timeout/error ack). */
|
|
92
|
-
joinTopic(topic: string, config: RealtimeJoinConfig, timeoutMs?: number): Promise<RealtimeJoinAck>;
|
|
93
|
-
leaveTopic(topic: string): void;
|
|
94
|
-
sendTopic(topic: string, type: RealtimeTopicMessageType, event: string, payload: unknown): void;
|
|
95
|
-
/** Emit an rt:msg and wait for the server ack (or resolve 'timed out'/'error'). */
|
|
96
|
-
sendTopicWithAck(topic: string, type: RealtimeTopicMessageType, event: string, payload: unknown, timeoutMs?: number): Promise<'ok' | 'timed out' | 'error'>;
|
|
97
|
-
private bindTopicRouter;
|
|
98
|
-
private retainTableSubscription;
|
|
99
|
-
private releaseTableSubscription;
|
|
100
|
-
private resubscribeTables;
|
|
101
|
-
/**
|
|
102
|
-
* Replay every joined topic on a fresh socket. The server keeps topic state on
|
|
103
|
-
* the socket, so without this a reconnected channel still reports SUBSCRIBED
|
|
104
|
-
* and receives nothing at all.
|
|
105
|
-
*/
|
|
106
|
-
private rejoinTopics;
|
|
107
|
-
private bindSocketStatus;
|
|
108
|
-
private waitForConnect;
|
|
109
|
-
private startPolling;
|
|
110
|
-
private stopPolling;
|
|
111
|
-
private fetchRows;
|
|
112
|
-
private setStatus;
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=realtime.d.ts.map
|
package/dist/realtime.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../src/realtime.ts"],"names":[],"mappings":"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"}
|