@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 +46 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +107 -24
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +119 -31
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;AAEpD,KAAK,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;AAE9B,UAAU,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5C,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,CAAC,CAAA;IACP,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;
|
|
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(
|
|
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(
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
280
|
+
const res = await fetch(this._basePath(), { headers: this.ez._authHeaders() });
|
|
205
281
|
if (!res.ok)
|
|
206
|
-
throw new Error(
|
|
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.
|
|
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.
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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.
|
|
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(
|
|
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.
|
|
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
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(
|
|
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(
|
|
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
|
|
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
|
-
|
|
241
|
-
{
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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.
|
|
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(
|
|
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.
|
|
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
|