@ezwrld/ezbase 0.1.5 → 0.1.6

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/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ interface Document<T = Record<string, unknown>> {
9
9
  interface EzBaseOptions {
10
10
  url: string;
11
11
  adminKey?: string;
12
+ name?: string;
12
13
  }
13
14
  interface AuthUser {
14
15
  id: string;
@@ -46,12 +47,48 @@ declare class AuthClient {
46
47
  onAuthStateChanged(callback: AuthStateCallback): () => void;
47
48
  private _notify;
48
49
  }
50
+ declare class DatabaseRef {
51
+ private ez;
52
+ private name;
53
+ constructor(ez: EzBase, name: string);
54
+ /** @internal — base path for API calls to this database */
55
+ _basePath(): string;
56
+ collection<T = Record<string, unknown>>(name: string): CollectionRef<T>;
57
+ listCollections(): Promise<string[]>;
58
+ getPermission(collection: string): Promise<{
59
+ database: string;
60
+ collection: string;
61
+ level: string;
62
+ }>;
63
+ setPermission(collection: string, level: string): Promise<{
64
+ database: string;
65
+ collection: string;
66
+ level: string;
67
+ }>;
68
+ }
49
69
  declare class EzBase {
50
70
  private url;
51
71
  private adminKey?;
72
+ private _name;
73
+ private _defaultDb;
52
74
  readonly auth: AuthClient;
75
+ /** @internal */
76
+ get _errorPrefix(): string;
53
77
  constructor(urlOrOpts: string | EzBaseOptions);
78
+ database(name: string): DatabaseRef;
54
79
  collection<T = Record<string, unknown>>(name: string): CollectionRef<T>;
80
+ listDatabases(): Promise<string[]>;
81
+ listCollections(): Promise<string[]>;
82
+ getPermission(collection: string): Promise<{
83
+ database: string;
84
+ collection: string;
85
+ level: string;
86
+ }>;
87
+ setPermission(collection: string, level: string): Promise<{
88
+ database: string;
89
+ collection: string;
90
+ level: string;
91
+ }>;
55
92
  /** @internal */
56
93
  _getUrl(): string;
57
94
  /** @internal */
@@ -61,8 +98,10 @@ declare class EzBase {
61
98
  }
62
99
  declare class CollectionRef<T = Record<string, unknown>> {
63
100
  private ez;
101
+ private db;
64
102
  private name;
65
- constructor(ez: EzBase, name: string);
103
+ constructor(ez: EzBase, db: DatabaseRef, name: string);
104
+ private _basePath;
66
105
  doc(id: string): DocRef<T>;
67
106
  where(field: string, op: WhereOp, value: unknown): QueryRef<T>;
68
107
  orderBy(field: string, direction?: OrderDir): QueryRef<T>;
@@ -73,9 +112,10 @@ declare class CollectionRef<T = Record<string, unknown>> {
73
112
  }
74
113
  declare class DocRef<T = Record<string, unknown>> {
75
114
  private ez;
115
+ private db;
76
116
  private collection;
77
117
  private id;
78
- constructor(ez: EzBase, collection: string, id: string);
118
+ constructor(ez: EzBase, db: DatabaseRef, collection: string, id: string);
79
119
  private path;
80
120
  get(): Promise<Document<T> | null>;
81
121
  set(data: T): Promise<Document<T>>;
@@ -85,20 +125,22 @@ declare class DocRef<T = Record<string, unknown>> {
85
125
  }
86
126
  declare class QueryRef<T = Record<string, unknown>> {
87
127
  private ez;
128
+ private db;
88
129
  private collection;
89
130
  private wheres;
90
131
  private _orderBy?;
91
132
  private _order?;
92
133
  private _limit?;
93
- constructor(ez: EzBase, collection: string);
134
+ constructor(ez: EzBase, db: DatabaseRef, collection: string);
94
135
  where(field: string, op: WhereOp, value: unknown): this;
95
136
  orderBy(field: string, direction?: OrderDir): this;
96
137
  limit(n: number): this;
97
138
  private buildParams;
139
+ private _basePath;
98
140
  get(): Promise<Document<T>[]>;
99
141
  onSnapshot(callback: (docs: Document<T>[]) => void, onError?: (err: Error) => void): () => void;
100
142
  }
101
- export { EzBase, CollectionRef, DocRef, QueryRef, AuthClient };
143
+ export { EzBase, DatabaseRef, CollectionRef, DocRef, QueryRef, AuthClient };
102
144
  export type { Document, WhereOp, OrderDir, EzBaseOptions, AuthUser };
103
145
  export default EzBase;
104
146
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -71,7 +71,7 @@ class AuthClient {
71
71
  });
72
72
  if (!res.ok) {
73
73
  const body = await res.json().catch(() => ({ error: res.statusText }));
74
- throw new Error(`ezbase: ${body.error || body.message || res.statusText}`);
74
+ throw new Error(`${this.ez['_errorPrefix']}: ${body.error || body.message || res.statusText}`);
75
75
  }
76
76
  const data = await res.json();
77
77
  this._token = data.session?.token || data.token;
@@ -91,7 +91,7 @@ class AuthClient {
91
91
  });
92
92
  if (!res.ok) {
93
93
  const body = await res.json().catch(() => ({ error: res.statusText }));
94
- throw new Error(`ezbase: ${body.error || body.message || res.statusText}`);
94
+ throw new Error(`${this.ez['_errorPrefix']}: ${body.error || body.message || res.statusText}`);
95
95
  }
96
96
  const data = await res.json();
97
97
  this._token = data.session?.token || data.token;
@@ -133,23 +133,94 @@ class AuthClient {
133
133
  }
134
134
  }
135
135
  }
136
+ // ── Database reference ────────────────────────────────────────
137
+ class DatabaseRef {
138
+ ez;
139
+ name;
140
+ constructor(ez, name) {
141
+ this.ez = ez;
142
+ this.name = name;
143
+ }
144
+ /** @internal — base path for API calls to this database */
145
+ _basePath() {
146
+ if (this.name === 'default')
147
+ return `${this.ez._getUrl()}/api`;
148
+ return `${this.ez._getUrl()}/api/db/${encodeURIComponent(this.name)}`;
149
+ }
150
+ collection(name) {
151
+ return new CollectionRef(this.ez, this, name);
152
+ }
153
+ async listCollections() {
154
+ const res = await fetch(`${this._basePath()}/collections`, {
155
+ headers: this.ez._authHeaders(),
156
+ });
157
+ if (!res.ok)
158
+ throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`);
159
+ return res.json();
160
+ }
161
+ async getPermission(collection) {
162
+ const res = await fetch(`${this._basePath()}/collections/${encodeURIComponent(collection)}/permissions`, { headers: this.ez._authHeaders() });
163
+ if (!res.ok)
164
+ throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`);
165
+ return res.json();
166
+ }
167
+ async setPermission(collection, level) {
168
+ const res = await fetch(`${this._basePath()}/collections/${encodeURIComponent(collection)}/permissions`, {
169
+ method: 'PUT',
170
+ headers: { 'Content-Type': 'application/json', ...this.ez._authHeaders() },
171
+ body: JSON.stringify({ level }),
172
+ });
173
+ if (!res.ok)
174
+ throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`);
175
+ return res.json();
176
+ }
177
+ }
136
178
  // ── EzBase client ─────────────────────────────────────────────
137
179
  class EzBase {
138
180
  url;
139
181
  adminKey;
182
+ _name;
183
+ _defaultDb;
140
184
  auth;
185
+ /** @internal */
186
+ get _errorPrefix() {
187
+ return `ezbase [${this._name}]`;
188
+ }
141
189
  constructor(urlOrOpts) {
142
190
  if (typeof urlOrOpts === 'string') {
143
191
  this.url = urlOrOpts.replace(/\/$/, '');
192
+ this._name = 'default';
144
193
  }
145
194
  else {
146
195
  this.url = urlOrOpts.url.replace(/\/$/, '');
147
196
  this.adminKey = urlOrOpts.adminKey;
197
+ this._name = urlOrOpts.name || 'default';
148
198
  }
149
199
  this.auth = new AuthClient(this);
200
+ this._defaultDb = new DatabaseRef(this, 'default');
201
+ }
202
+ database(name) {
203
+ return new DatabaseRef(this, name);
150
204
  }
151
205
  collection(name) {
152
- return new CollectionRef(this, name);
206
+ return this._defaultDb.collection(name);
207
+ }
208
+ async listDatabases() {
209
+ const res = await fetch(`${this.url}/api/databases`, {
210
+ headers: this._authHeaders(),
211
+ });
212
+ if (!res.ok)
213
+ throw new Error(`${this._errorPrefix}: ${res.status} ${await res.text()}`);
214
+ return res.json();
215
+ }
216
+ async listCollections() {
217
+ return this._defaultDb.listCollections();
218
+ }
219
+ async getPermission(collection) {
220
+ return this._defaultDb.getPermission(collection);
221
+ }
222
+ async setPermission(collection, level) {
223
+ return this._defaultDb.setPermission(collection, level);
153
224
  }
154
225
  /** @internal */
155
226
  _getUrl() {
@@ -173,65 +244,72 @@ class EzBase {
173
244
  // ── Collection reference ──────────────────────────────────────
174
245
  class CollectionRef {
175
246
  ez;
247
+ db;
176
248
  name;
177
- constructor(ez, name) {
249
+ constructor(ez, db, name) {
178
250
  this.ez = ez;
251
+ this.db = db;
179
252
  this.name = name;
180
253
  }
254
+ _basePath() {
255
+ return `${this.db._basePath()}/collections/${encodeURIComponent(this.name)}`;
256
+ }
181
257
  doc(id) {
182
- return new DocRef(this.ez, this.name, id);
258
+ return new DocRef(this.ez, this.db, this.name, id);
183
259
  }
184
260
  where(field, op, value) {
185
- return new QueryRef(this.ez, this.name).where(field, op, value);
261
+ return new QueryRef(this.ez, this.db, this.name).where(field, op, value);
186
262
  }
187
263
  orderBy(field, direction) {
188
- return new QueryRef(this.ez, this.name).orderBy(field, direction);
264
+ return new QueryRef(this.ez, this.db, this.name).orderBy(field, direction);
189
265
  }
190
266
  limit(n) {
191
- return new QueryRef(this.ez, this.name).limit(n);
267
+ return new QueryRef(this.ez, this.db, this.name).limit(n);
192
268
  }
193
269
  async add(data) {
194
- const res = await fetch(`${this.ez._getUrl()}/api/collections/${encodeURIComponent(this.name)}`, {
270
+ const res = await fetch(this._basePath(), {
195
271
  method: 'POST',
196
272
  headers: { 'Content-Type': 'application/json', ...this.ez._authHeaders() },
197
273
  body: JSON.stringify(data),
198
274
  });
199
275
  if (!res.ok)
200
- throw new Error(`ezbase: ${res.status} ${await res.text()}`);
276
+ throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`);
201
277
  return res.json();
202
278
  }
203
279
  async get() {
204
- const res = await fetch(`${this.ez._getUrl()}/api/collections/${encodeURIComponent(this.name)}`, { headers: this.ez._authHeaders() });
280
+ const res = await fetch(this._basePath(), { headers: this.ez._authHeaders() });
205
281
  if (!res.ok)
206
- throw new Error(`ezbase: ${res.status} ${await res.text()}`);
282
+ throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`);
207
283
  return res.json();
208
284
  }
209
285
  onSnapshot(callback, onError) {
210
286
  const tp = this.ez._sseTokenParam();
211
287
  const sep = tp ? '?' : '';
212
- const url = `${this.ez._getUrl()}/api/collections/${encodeURIComponent(this.name)}/sse${sep}${tp}`;
288
+ const url = `${this._basePath()}/sse${sep}${tp}`;
213
289
  return sseConnect(url, this.ez._authHeaders(), (data) => callback(JSON.parse(data)), onError);
214
290
  }
215
291
  }
216
292
  // ── Document reference ────────────────────────────────────────
217
293
  class DocRef {
218
294
  ez;
295
+ db;
219
296
  collection;
220
297
  id;
221
- constructor(ez, collection, id) {
298
+ constructor(ez, db, collection, id) {
222
299
  this.ez = ez;
300
+ this.db = db;
223
301
  this.collection = collection;
224
302
  this.id = id;
225
303
  }
226
304
  path() {
227
- return `${this.ez._getUrl()}/api/collections/${encodeURIComponent(this.collection)}/${encodeURIComponent(this.id)}`;
305
+ return `${this.db._basePath()}/collections/${encodeURIComponent(this.collection)}/${encodeURIComponent(this.id)}`;
228
306
  }
229
307
  async get() {
230
308
  const res = await fetch(this.path(), { headers: this.ez._authHeaders() });
231
309
  if (res.status === 404)
232
310
  return null;
233
311
  if (!res.ok)
234
- throw new Error(`ezbase: ${res.status} ${await res.text()}`);
312
+ throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`);
235
313
  return res.json();
236
314
  }
237
315
  async set(data) {
@@ -241,7 +319,7 @@ class DocRef {
241
319
  body: JSON.stringify(data),
242
320
  });
243
321
  if (!res.ok)
244
- throw new Error(`ezbase: ${res.status} ${await res.text()}`);
322
+ throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`);
245
323
  return res.json();
246
324
  }
247
325
  async update(data) {
@@ -251,7 +329,7 @@ class DocRef {
251
329
  body: JSON.stringify(data),
252
330
  });
253
331
  if (!res.ok)
254
- throw new Error(`ezbase: ${res.status} ${await res.text()}`);
332
+ throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`);
255
333
  return res.json();
256
334
  }
257
335
  async delete() {
@@ -260,7 +338,7 @@ class DocRef {
260
338
  headers: this.ez._authHeaders(),
261
339
  });
262
340
  if (!res.ok)
263
- throw new Error(`ezbase: ${res.status} ${await res.text()}`);
341
+ throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`);
264
342
  }
265
343
  onSnapshot(callback, onError) {
266
344
  const tp = this.ez._sseTokenParam();
@@ -272,13 +350,15 @@ class DocRef {
272
350
  // ── Query reference (chainable) ──────────────────────────────
273
351
  class QueryRef {
274
352
  ez;
353
+ db;
275
354
  collection;
276
355
  wheres = [];
277
356
  _orderBy;
278
357
  _order;
279
358
  _limit;
280
- constructor(ez, collection) {
359
+ constructor(ez, db, collection) {
281
360
  this.ez = ez;
361
+ this.db = db;
282
362
  this.collection = collection;
283
363
  }
284
364
  where(field, op, value) {
@@ -310,21 +390,24 @@ class QueryRef {
310
390
  const qs = params.toString();
311
391
  return qs ? '?' + qs : '';
312
392
  }
393
+ _basePath() {
394
+ return `${this.db._basePath()}/collections/${encodeURIComponent(this.collection)}`;
395
+ }
313
396
  async get() {
314
- const url = `${this.ez._getUrl()}/api/collections/${encodeURIComponent(this.collection)}${this.buildParams()}`;
397
+ const url = `${this._basePath()}${this.buildParams()}`;
315
398
  const res = await fetch(url, { headers: this.ez._authHeaders() });
316
399
  if (!res.ok)
317
- throw new Error(`ezbase: ${res.status} ${await res.text()}`);
400
+ throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`);
318
401
  return res.json();
319
402
  }
320
403
  onSnapshot(callback, onError) {
321
- const base = `${this.ez._getUrl()}/api/collections/${encodeURIComponent(this.collection)}/sse${this.buildParams()}`;
404
+ const base = `${this._basePath()}/sse${this.buildParams()}`;
322
405
  const tp = this.ez._sseTokenParam();
323
406
  const sep = base.includes('?') ? '&' : '?';
324
407
  const url = tp ? `${base}${sep}${tp}` : base;
325
408
  return sseConnect(url, this.ez._authHeaders(), (data) => callback(JSON.parse(data)), onError);
326
409
  }
327
410
  }
328
- export { EzBase, CollectionRef, DocRef, QueryRef, AuthClient };
411
+ export { EzBase, DatabaseRef, CollectionRef, DocRef, QueryRef, AuthClient };
329
412
  export default EzBase;
330
413
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ezwrld/ezbase",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "Client SDK for ezbase — a self-hosted document database with real-time subscriptions",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/index.ts CHANGED
@@ -12,6 +12,7 @@ interface Document<T = Record<string, unknown>> {
12
12
  interface EzBaseOptions {
13
13
  url: string
14
14
  adminKey?: string
15
+ name?: string
15
16
  }
16
17
 
17
18
  interface AuthUser {
@@ -107,7 +108,7 @@ class AuthClient {
107
108
  })
108
109
  if (!res.ok) {
109
110
  const body = await res.json().catch(() => ({ error: res.statusText }))
110
- throw new Error(`ezbase: ${body.error || body.message || res.statusText}`)
111
+ throw new Error(`${this.ez['_errorPrefix']}: ${body.error || body.message || res.statusText}`)
111
112
  }
112
113
  const data = await res.json()
113
114
  this._token = data.session?.token || data.token
@@ -128,7 +129,7 @@ class AuthClient {
128
129
  })
129
130
  if (!res.ok) {
130
131
  const body = await res.json().catch(() => ({ error: res.statusText }))
131
- throw new Error(`ezbase: ${body.error || body.message || res.statusText}`)
132
+ throw new Error(`${this.ez['_errorPrefix']}: ${body.error || body.message || res.statusText}`)
132
133
  }
133
134
  const data = await res.json()
134
135
  this._token = data.session?.token || data.token
@@ -172,24 +173,106 @@ class AuthClient {
172
173
  }
173
174
  }
174
175
 
176
+ // ── Database reference ────────────────────────────────────────
177
+ class DatabaseRef {
178
+ constructor(
179
+ private ez: EzBase,
180
+ private name: string
181
+ ) {}
182
+
183
+ /** @internal — base path for API calls to this database */
184
+ _basePath(): string {
185
+ if (this.name === 'default') return `${this.ez._getUrl()}/api`
186
+ return `${this.ez._getUrl()}/api/db/${encodeURIComponent(this.name)}`
187
+ }
188
+
189
+ collection<T = Record<string, unknown>>(name: string): CollectionRef<T> {
190
+ return new CollectionRef<T>(this.ez, this, name)
191
+ }
192
+
193
+ async listCollections(): Promise<string[]> {
194
+ const res = await fetch(`${this._basePath()}/collections`, {
195
+ headers: this.ez._authHeaders(),
196
+ })
197
+ if (!res.ok) throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`)
198
+ return res.json()
199
+ }
200
+
201
+ async getPermission(collection: string): Promise<{ database: string; collection: string; level: string }> {
202
+ const res = await fetch(
203
+ `${this._basePath()}/collections/${encodeURIComponent(collection)}/permissions`,
204
+ { headers: this.ez._authHeaders() }
205
+ )
206
+ if (!res.ok) throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`)
207
+ return res.json()
208
+ }
209
+
210
+ async setPermission(collection: string, level: string): Promise<{ database: string; collection: string; level: string }> {
211
+ const res = await fetch(
212
+ `${this._basePath()}/collections/${encodeURIComponent(collection)}/permissions`,
213
+ {
214
+ method: 'PUT',
215
+ headers: { 'Content-Type': 'application/json', ...this.ez._authHeaders() },
216
+ body: JSON.stringify({ level }),
217
+ }
218
+ )
219
+ if (!res.ok) throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`)
220
+ return res.json()
221
+ }
222
+ }
223
+
175
224
  // ── EzBase client ─────────────────────────────────────────────
176
225
  class EzBase {
177
226
  private url: string
178
227
  private adminKey?: string
228
+ private _name: string
229
+ private _defaultDb: DatabaseRef
179
230
  readonly auth: AuthClient
180
231
 
232
+ /** @internal */
233
+ get _errorPrefix(): string {
234
+ return `ezbase [${this._name}]`
235
+ }
236
+
181
237
  constructor(urlOrOpts: string | EzBaseOptions) {
182
238
  if (typeof urlOrOpts === 'string') {
183
239
  this.url = urlOrOpts.replace(/\/$/, '')
240
+ this._name = 'default'
184
241
  } else {
185
242
  this.url = urlOrOpts.url.replace(/\/$/, '')
186
243
  this.adminKey = urlOrOpts.adminKey
244
+ this._name = urlOrOpts.name || 'default'
187
245
  }
188
246
  this.auth = new AuthClient(this)
247
+ this._defaultDb = new DatabaseRef(this, 'default')
248
+ }
249
+
250
+ database(name: string): DatabaseRef {
251
+ return new DatabaseRef(this, name)
189
252
  }
190
253
 
191
254
  collection<T = Record<string, unknown>>(name: string): CollectionRef<T> {
192
- return new CollectionRef<T>(this, name)
255
+ return this._defaultDb.collection<T>(name)
256
+ }
257
+
258
+ async listDatabases(): Promise<string[]> {
259
+ const res = await fetch(`${this.url}/api/databases`, {
260
+ headers: this._authHeaders(),
261
+ })
262
+ if (!res.ok) throw new Error(`${this._errorPrefix}: ${res.status} ${await res.text()}`)
263
+ return res.json()
264
+ }
265
+
266
+ async listCollections(): Promise<string[]> {
267
+ return this._defaultDb.listCollections()
268
+ }
269
+
270
+ async getPermission(collection: string) {
271
+ return this._defaultDb.getPermission(collection)
272
+ }
273
+
274
+ async setPermission(collection: string, level: string) {
275
+ return this._defaultDb.setPermission(collection, level)
193
276
  }
194
277
 
195
278
  /** @internal */
@@ -216,44 +299,43 @@ class EzBase {
216
299
  class CollectionRef<T = Record<string, unknown>> {
217
300
  constructor(
218
301
  private ez: EzBase,
302
+ private db: DatabaseRef,
219
303
  private name: string
220
304
  ) {}
221
305
 
306
+ private _basePath(): string {
307
+ return `${this.db._basePath()}/collections/${encodeURIComponent(this.name)}`
308
+ }
309
+
222
310
  doc(id: string): DocRef<T> {
223
- return new DocRef<T>(this.ez, this.name, id)
311
+ return new DocRef<T>(this.ez, this.db, this.name, id)
224
312
  }
225
313
 
226
314
  where(field: string, op: WhereOp, value: unknown): QueryRef<T> {
227
- return new QueryRef<T>(this.ez, this.name).where(field, op, value)
315
+ return new QueryRef<T>(this.ez, this.db, this.name).where(field, op, value)
228
316
  }
229
317
 
230
318
  orderBy(field: string, direction?: OrderDir): QueryRef<T> {
231
- return new QueryRef<T>(this.ez, this.name).orderBy(field, direction)
319
+ return new QueryRef<T>(this.ez, this.db, this.name).orderBy(field, direction)
232
320
  }
233
321
 
234
322
  limit(n: number): QueryRef<T> {
235
- return new QueryRef<T>(this.ez, this.name).limit(n)
323
+ return new QueryRef<T>(this.ez, this.db, this.name).limit(n)
236
324
  }
237
325
 
238
326
  async add(data: Partial<T>): Promise<Document<T>> {
239
- const res = await fetch(
240
- `${this.ez._getUrl()}/api/collections/${encodeURIComponent(this.name)}`,
241
- {
242
- method: 'POST',
243
- headers: { 'Content-Type': 'application/json', ...this.ez._authHeaders() },
244
- body: JSON.stringify(data),
245
- }
246
- )
247
- if (!res.ok) throw new Error(`ezbase: ${res.status} ${await res.text()}`)
327
+ const res = await fetch(this._basePath(), {
328
+ method: 'POST',
329
+ headers: { 'Content-Type': 'application/json', ...this.ez._authHeaders() },
330
+ body: JSON.stringify(data),
331
+ })
332
+ if (!res.ok) throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`)
248
333
  return res.json()
249
334
  }
250
335
 
251
336
  async get(): Promise<Document<T>[]> {
252
- const res = await fetch(
253
- `${this.ez._getUrl()}/api/collections/${encodeURIComponent(this.name)}`,
254
- { headers: this.ez._authHeaders() }
255
- )
256
- if (!res.ok) throw new Error(`ezbase: ${res.status} ${await res.text()}`)
337
+ const res = await fetch(this._basePath(), { headers: this.ez._authHeaders() })
338
+ if (!res.ok) throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`)
257
339
  return res.json()
258
340
  }
259
341
 
@@ -263,7 +345,7 @@ class CollectionRef<T = Record<string, unknown>> {
263
345
  ): () => void {
264
346
  const tp = this.ez._sseTokenParam()
265
347
  const sep = tp ? '?' : ''
266
- const url = `${this.ez._getUrl()}/api/collections/${encodeURIComponent(this.name)}/sse${sep}${tp}`
348
+ const url = `${this._basePath()}/sse${sep}${tp}`
267
349
  return sseConnect(url, this.ez._authHeaders(), (data) => callback(JSON.parse(data)), onError)
268
350
  }
269
351
  }
@@ -272,18 +354,19 @@ class CollectionRef<T = Record<string, unknown>> {
272
354
  class DocRef<T = Record<string, unknown>> {
273
355
  constructor(
274
356
  private ez: EzBase,
357
+ private db: DatabaseRef,
275
358
  private collection: string,
276
359
  private id: string
277
360
  ) {}
278
361
 
279
362
  private path(): string {
280
- return `${this.ez._getUrl()}/api/collections/${encodeURIComponent(this.collection)}/${encodeURIComponent(this.id)}`
363
+ return `${this.db._basePath()}/collections/${encodeURIComponent(this.collection)}/${encodeURIComponent(this.id)}`
281
364
  }
282
365
 
283
366
  async get(): Promise<Document<T> | null> {
284
367
  const res = await fetch(this.path(), { headers: this.ez._authHeaders() })
285
368
  if (res.status === 404) return null
286
- if (!res.ok) throw new Error(`ezbase: ${res.status} ${await res.text()}`)
369
+ if (!res.ok) throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`)
287
370
  return res.json()
288
371
  }
289
372
 
@@ -293,7 +376,7 @@ class DocRef<T = Record<string, unknown>> {
293
376
  headers: { 'Content-Type': 'application/json', ...this.ez._authHeaders() },
294
377
  body: JSON.stringify(data),
295
378
  })
296
- if (!res.ok) throw new Error(`ezbase: ${res.status} ${await res.text()}`)
379
+ if (!res.ok) throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`)
297
380
  return res.json()
298
381
  }
299
382
 
@@ -303,7 +386,7 @@ class DocRef<T = Record<string, unknown>> {
303
386
  headers: { 'Content-Type': 'application/json', ...this.ez._authHeaders() },
304
387
  body: JSON.stringify(data),
305
388
  })
306
- if (!res.ok) throw new Error(`ezbase: ${res.status} ${await res.text()}`)
389
+ if (!res.ok) throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`)
307
390
  return res.json()
308
391
  }
309
392
 
@@ -312,7 +395,7 @@ class DocRef<T = Record<string, unknown>> {
312
395
  method: 'DELETE',
313
396
  headers: this.ez._authHeaders(),
314
397
  })
315
- if (!res.ok) throw new Error(`ezbase: ${res.status} ${await res.text()}`)
398
+ if (!res.ok) throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`)
316
399
  }
317
400
 
318
401
  onSnapshot(
@@ -335,6 +418,7 @@ class QueryRef<T = Record<string, unknown>> {
335
418
 
336
419
  constructor(
337
420
  private ez: EzBase,
421
+ private db: DatabaseRef,
338
422
  private collection: string
339
423
  ) {}
340
424
 
@@ -370,10 +454,14 @@ class QueryRef<T = Record<string, unknown>> {
370
454
  return qs ? '?' + qs : ''
371
455
  }
372
456
 
457
+ private _basePath(): string {
458
+ return `${this.db._basePath()}/collections/${encodeURIComponent(this.collection)}`
459
+ }
460
+
373
461
  async get(): Promise<Document<T>[]> {
374
- const url = `${this.ez._getUrl()}/api/collections/${encodeURIComponent(this.collection)}${this.buildParams()}`
462
+ const url = `${this._basePath()}${this.buildParams()}`
375
463
  const res = await fetch(url, { headers: this.ez._authHeaders() })
376
- if (!res.ok) throw new Error(`ezbase: ${res.status} ${await res.text()}`)
464
+ if (!res.ok) throw new Error(`${this.ez['_errorPrefix']}: ${res.status} ${await res.text()}`)
377
465
  return res.json()
378
466
  }
379
467
 
@@ -381,7 +469,7 @@ class QueryRef<T = Record<string, unknown>> {
381
469
  callback: (docs: Document<T>[]) => void,
382
470
  onError?: (err: Error) => void
383
471
  ): () => void {
384
- const base = `${this.ez._getUrl()}/api/collections/${encodeURIComponent(this.collection)}/sse${this.buildParams()}`
472
+ const base = `${this._basePath()}/sse${this.buildParams()}`
385
473
  const tp = this.ez._sseTokenParam()
386
474
  const sep = base.includes('?') ? '&' : '?'
387
475
  const url = tp ? `${base}${sep}${tp}` : base
@@ -389,6 +477,6 @@ class QueryRef<T = Record<string, unknown>> {
389
477
  }
390
478
  }
391
479
 
392
- export { EzBase, CollectionRef, DocRef, QueryRef, AuthClient }
480
+ export { EzBase, DatabaseRef, CollectionRef, DocRef, QueryRef, AuthClient }
393
481
  export type { Document, WhereOp, OrderDir, EzBaseOptions, AuthUser }
394
482
  export default EzBase