@xata.io/client 0.0.0-alpha.vf28813b → 0.0.0-alpha.vf2f26ae
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/.turbo/turbo-add-version.log +4 -0
- package/.turbo/turbo-build.log +13 -0
- package/CHANGELOG.md +344 -0
- package/README.md +3 -267
- package/dist/index.cjs +3014 -867
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +6392 -1548
- package/dist/index.mjs +2957 -844
- package/dist/index.mjs.map +1 -1
- package/package.json +13 -11
- package/.eslintrc.cjs +0 -12
- package/Usage.md +0 -428
- package/rollup.config.js +0 -29
- package/tsconfig.json +0 -23
package/dist/index.mjs
CHANGED
@@ -1,3 +1,26 @@
|
|
1
|
+
const defaultTrace = async (name, fn, _options) => {
|
2
|
+
return await fn({
|
3
|
+
name,
|
4
|
+
setAttributes: () => {
|
5
|
+
return;
|
6
|
+
}
|
7
|
+
});
|
8
|
+
};
|
9
|
+
const TraceAttributes = {
|
10
|
+
KIND: "xata.trace.kind",
|
11
|
+
VERSION: "xata.sdk.version",
|
12
|
+
TABLE: "xata.table",
|
13
|
+
HTTP_REQUEST_ID: "http.request_id",
|
14
|
+
HTTP_STATUS_CODE: "http.status_code",
|
15
|
+
HTTP_HOST: "http.host",
|
16
|
+
HTTP_SCHEME: "http.scheme",
|
17
|
+
HTTP_USER_AGENT: "http.user_agent",
|
18
|
+
HTTP_METHOD: "http.method",
|
19
|
+
HTTP_URL: "http.url",
|
20
|
+
HTTP_ROUTE: "http.route",
|
21
|
+
HTTP_TARGET: "http.target"
|
22
|
+
};
|
23
|
+
|
1
24
|
function notEmpty(value) {
|
2
25
|
return value !== null && value !== void 0;
|
3
26
|
}
|
@@ -16,6 +39,21 @@ function isString(value) {
|
|
16
39
|
function isStringArray(value) {
|
17
40
|
return isDefined(value) && Array.isArray(value) && value.every(isString);
|
18
41
|
}
|
42
|
+
function isNumber(value) {
|
43
|
+
return isDefined(value) && typeof value === "number";
|
44
|
+
}
|
45
|
+
function parseNumber(value) {
|
46
|
+
if (isNumber(value)) {
|
47
|
+
return value;
|
48
|
+
}
|
49
|
+
if (isString(value)) {
|
50
|
+
const parsed = Number(value);
|
51
|
+
if (!Number.isNaN(parsed)) {
|
52
|
+
return parsed;
|
53
|
+
}
|
54
|
+
}
|
55
|
+
return void 0;
|
56
|
+
}
|
19
57
|
function toBase64(value) {
|
20
58
|
try {
|
21
59
|
return btoa(value);
|
@@ -24,16 +62,39 @@ function toBase64(value) {
|
|
24
62
|
return buf.from(value).toString("base64");
|
25
63
|
}
|
26
64
|
}
|
65
|
+
function deepMerge(a, b) {
|
66
|
+
const result = { ...a };
|
67
|
+
for (const [key, value] of Object.entries(b)) {
|
68
|
+
if (isObject(value) && isObject(result[key])) {
|
69
|
+
result[key] = deepMerge(result[key], value);
|
70
|
+
} else {
|
71
|
+
result[key] = value;
|
72
|
+
}
|
73
|
+
}
|
74
|
+
return result;
|
75
|
+
}
|
76
|
+
function chunk(array, chunkSize) {
|
77
|
+
const result = [];
|
78
|
+
for (let i = 0; i < array.length; i += chunkSize) {
|
79
|
+
result.push(array.slice(i, i + chunkSize));
|
80
|
+
}
|
81
|
+
return result;
|
82
|
+
}
|
83
|
+
async function timeout(ms) {
|
84
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
85
|
+
}
|
27
86
|
|
28
87
|
function getEnvironment() {
|
29
88
|
try {
|
30
|
-
if (
|
89
|
+
if (isDefined(process) && isDefined(process.env)) {
|
31
90
|
return {
|
32
91
|
apiKey: process.env.XATA_API_KEY ?? getGlobalApiKey(),
|
33
92
|
databaseURL: process.env.XATA_DATABASE_URL ?? getGlobalDatabaseURL(),
|
34
93
|
branch: process.env.XATA_BRANCH ?? getGlobalBranch(),
|
35
|
-
|
36
|
-
|
94
|
+
deployPreview: process.env.XATA_PREVIEW,
|
95
|
+
deployPreviewBranch: process.env.XATA_PREVIEW_BRANCH,
|
96
|
+
vercelGitCommitRef: process.env.VERCEL_GIT_COMMIT_REF,
|
97
|
+
vercelGitRepoOwner: process.env.VERCEL_GIT_REPO_OWNER
|
37
98
|
};
|
38
99
|
}
|
39
100
|
} catch (err) {
|
@@ -44,8 +105,10 @@ function getEnvironment() {
|
|
44
105
|
apiKey: Deno.env.get("XATA_API_KEY") ?? getGlobalApiKey(),
|
45
106
|
databaseURL: Deno.env.get("XATA_DATABASE_URL") ?? getGlobalDatabaseURL(),
|
46
107
|
branch: Deno.env.get("XATA_BRANCH") ?? getGlobalBranch(),
|
47
|
-
|
48
|
-
|
108
|
+
deployPreview: Deno.env.get("XATA_PREVIEW"),
|
109
|
+
deployPreviewBranch: Deno.env.get("XATA_PREVIEW_BRANCH"),
|
110
|
+
vercelGitCommitRef: Deno.env.get("VERCEL_GIT_COMMIT_REF"),
|
111
|
+
vercelGitRepoOwner: Deno.env.get("VERCEL_GIT_REPO_OWNER")
|
49
112
|
};
|
50
113
|
}
|
51
114
|
} catch (err) {
|
@@ -54,10 +117,31 @@ function getEnvironment() {
|
|
54
117
|
apiKey: getGlobalApiKey(),
|
55
118
|
databaseURL: getGlobalDatabaseURL(),
|
56
119
|
branch: getGlobalBranch(),
|
57
|
-
|
58
|
-
|
120
|
+
deployPreview: void 0,
|
121
|
+
deployPreviewBranch: void 0,
|
122
|
+
vercelGitCommitRef: void 0,
|
123
|
+
vercelGitRepoOwner: void 0
|
59
124
|
};
|
60
125
|
}
|
126
|
+
function getEnableBrowserVariable() {
|
127
|
+
try {
|
128
|
+
if (isObject(process) && isObject(process.env) && process.env.XATA_ENABLE_BROWSER !== void 0) {
|
129
|
+
return process.env.XATA_ENABLE_BROWSER === "true";
|
130
|
+
}
|
131
|
+
} catch (err) {
|
132
|
+
}
|
133
|
+
try {
|
134
|
+
if (isObject(Deno) && isObject(Deno.env) && Deno.env.get("XATA_ENABLE_BROWSER") !== void 0) {
|
135
|
+
return Deno.env.get("XATA_ENABLE_BROWSER") === "true";
|
136
|
+
}
|
137
|
+
} catch (err) {
|
138
|
+
}
|
139
|
+
try {
|
140
|
+
return XATA_ENABLE_BROWSER === true || XATA_ENABLE_BROWSER === "true";
|
141
|
+
} catch (err) {
|
142
|
+
return void 0;
|
143
|
+
}
|
144
|
+
}
|
61
145
|
function getGlobalApiKey() {
|
62
146
|
try {
|
63
147
|
return XATA_API_KEY;
|
@@ -79,56 +163,334 @@ function getGlobalBranch() {
|
|
79
163
|
return void 0;
|
80
164
|
}
|
81
165
|
}
|
82
|
-
function
|
166
|
+
function getDatabaseURL() {
|
83
167
|
try {
|
84
|
-
|
168
|
+
const { databaseURL } = getEnvironment();
|
169
|
+
return databaseURL;
|
85
170
|
} catch (err) {
|
86
171
|
return void 0;
|
87
172
|
}
|
88
173
|
}
|
89
|
-
|
90
|
-
const cmd = ["git", "branch", "--show-current"];
|
91
|
-
const fullCmd = cmd.join(" ");
|
92
|
-
const nodeModule = ["child", "process"].join("_");
|
93
|
-
const execOptions = { encoding: "utf-8", stdio: ["ignore", "pipe", "ignore"] };
|
174
|
+
function getAPIKey() {
|
94
175
|
try {
|
95
|
-
|
96
|
-
|
97
|
-
}
|
98
|
-
const { execSync } = await import(nodeModule);
|
99
|
-
return execSync(fullCmd, execOptions).toString().trim();
|
176
|
+
const { apiKey } = getEnvironment();
|
177
|
+
return apiKey;
|
100
178
|
} catch (err) {
|
179
|
+
return void 0;
|
101
180
|
}
|
181
|
+
}
|
182
|
+
function getBranch() {
|
102
183
|
try {
|
103
|
-
|
104
|
-
|
105
|
-
return new TextDecoder().decode(await process2.output()).trim();
|
106
|
-
}
|
184
|
+
const { branch } = getEnvironment();
|
185
|
+
return branch ?? "main";
|
107
186
|
} catch (err) {
|
187
|
+
return void 0;
|
108
188
|
}
|
109
189
|
}
|
110
|
-
|
111
|
-
|
190
|
+
function buildPreviewBranchName({ org, branch }) {
|
191
|
+
return `preview-${org}-${branch}`;
|
192
|
+
}
|
193
|
+
function getPreviewBranch() {
|
112
194
|
try {
|
113
|
-
const {
|
114
|
-
|
195
|
+
const { deployPreview, deployPreviewBranch, vercelGitCommitRef, vercelGitRepoOwner } = getEnvironment();
|
196
|
+
if (deployPreviewBranch)
|
197
|
+
return deployPreviewBranch;
|
198
|
+
switch (deployPreview) {
|
199
|
+
case "vercel": {
|
200
|
+
if (!vercelGitCommitRef || !vercelGitRepoOwner) {
|
201
|
+
console.warn("XATA_PREVIEW=vercel but VERCEL_GIT_COMMIT_REF or VERCEL_GIT_REPO_OWNER is not valid");
|
202
|
+
return void 0;
|
203
|
+
}
|
204
|
+
return buildPreviewBranchName({ org: vercelGitRepoOwner, branch: vercelGitCommitRef });
|
205
|
+
}
|
206
|
+
}
|
207
|
+
return void 0;
|
115
208
|
} catch (err) {
|
116
209
|
return void 0;
|
117
210
|
}
|
118
211
|
}
|
119
212
|
|
213
|
+
var __accessCheck$8 = (obj, member, msg) => {
|
214
|
+
if (!member.has(obj))
|
215
|
+
throw TypeError("Cannot " + msg);
|
216
|
+
};
|
217
|
+
var __privateGet$8 = (obj, member, getter) => {
|
218
|
+
__accessCheck$8(obj, member, "read from private field");
|
219
|
+
return getter ? getter.call(obj) : member.get(obj);
|
220
|
+
};
|
221
|
+
var __privateAdd$8 = (obj, member, value) => {
|
222
|
+
if (member.has(obj))
|
223
|
+
throw TypeError("Cannot add the same private member more than once");
|
224
|
+
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
225
|
+
};
|
226
|
+
var __privateSet$8 = (obj, member, value, setter) => {
|
227
|
+
__accessCheck$8(obj, member, "write to private field");
|
228
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
229
|
+
return value;
|
230
|
+
};
|
231
|
+
var __privateMethod$4 = (obj, member, method) => {
|
232
|
+
__accessCheck$8(obj, member, "access private method");
|
233
|
+
return method;
|
234
|
+
};
|
235
|
+
var _fetch, _queue, _concurrency, _enqueue, enqueue_fn;
|
120
236
|
function getFetchImplementation(userFetch) {
|
121
237
|
const globalFetch = typeof fetch !== "undefined" ? fetch : void 0;
|
122
238
|
const fetchImpl = userFetch ?? globalFetch;
|
123
239
|
if (!fetchImpl) {
|
124
240
|
throw new Error(
|
125
|
-
`
|
241
|
+
`Couldn't find \`fetch\`. Install a fetch implementation such as \`node-fetch\` and pass it explicitly.`
|
126
242
|
);
|
127
243
|
}
|
128
244
|
return fetchImpl;
|
129
245
|
}
|
246
|
+
class ApiRequestPool {
|
247
|
+
constructor(concurrency = 10) {
|
248
|
+
__privateAdd$8(this, _enqueue);
|
249
|
+
__privateAdd$8(this, _fetch, void 0);
|
250
|
+
__privateAdd$8(this, _queue, void 0);
|
251
|
+
__privateAdd$8(this, _concurrency, void 0);
|
252
|
+
__privateSet$8(this, _queue, []);
|
253
|
+
__privateSet$8(this, _concurrency, concurrency);
|
254
|
+
this.running = 0;
|
255
|
+
this.started = 0;
|
256
|
+
}
|
257
|
+
setFetch(fetch2) {
|
258
|
+
__privateSet$8(this, _fetch, fetch2);
|
259
|
+
}
|
260
|
+
getFetch() {
|
261
|
+
if (!__privateGet$8(this, _fetch)) {
|
262
|
+
throw new Error("Fetch not set");
|
263
|
+
}
|
264
|
+
return __privateGet$8(this, _fetch);
|
265
|
+
}
|
266
|
+
request(url, options) {
|
267
|
+
const start = /* @__PURE__ */ new Date();
|
268
|
+
const fetch2 = this.getFetch();
|
269
|
+
const runRequest = async (stalled = false) => {
|
270
|
+
const response = await fetch2(url, options);
|
271
|
+
if (response.status === 429) {
|
272
|
+
const rateLimitReset = parseNumber(response.headers?.get("x-ratelimit-reset")) ?? 1;
|
273
|
+
await timeout(rateLimitReset * 1e3);
|
274
|
+
return await runRequest(true);
|
275
|
+
}
|
276
|
+
if (stalled) {
|
277
|
+
const stalledTime = (/* @__PURE__ */ new Date()).getTime() - start.getTime();
|
278
|
+
console.warn(`A request to Xata hit your workspace limits, was retried and stalled for ${stalledTime}ms`);
|
279
|
+
}
|
280
|
+
return response;
|
281
|
+
};
|
282
|
+
return __privateMethod$4(this, _enqueue, enqueue_fn).call(this, async () => {
|
283
|
+
return await runRequest();
|
284
|
+
});
|
285
|
+
}
|
286
|
+
}
|
287
|
+
_fetch = new WeakMap();
|
288
|
+
_queue = new WeakMap();
|
289
|
+
_concurrency = new WeakMap();
|
290
|
+
_enqueue = new WeakSet();
|
291
|
+
enqueue_fn = function(task) {
|
292
|
+
const promise = new Promise((resolve) => __privateGet$8(this, _queue).push(resolve)).finally(() => {
|
293
|
+
this.started--;
|
294
|
+
this.running++;
|
295
|
+
}).then(() => task()).finally(() => {
|
296
|
+
this.running--;
|
297
|
+
const next = __privateGet$8(this, _queue).shift();
|
298
|
+
if (next !== void 0) {
|
299
|
+
this.started++;
|
300
|
+
next();
|
301
|
+
}
|
302
|
+
});
|
303
|
+
if (this.running + this.started < __privateGet$8(this, _concurrency)) {
|
304
|
+
const next = __privateGet$8(this, _queue).shift();
|
305
|
+
if (next !== void 0) {
|
306
|
+
this.started++;
|
307
|
+
next();
|
308
|
+
}
|
309
|
+
}
|
310
|
+
return promise;
|
311
|
+
};
|
312
|
+
|
313
|
+
function generateUUID() {
|
314
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
|
315
|
+
const r = Math.random() * 16 | 0, v = c == "x" ? r : r & 3 | 8;
|
316
|
+
return v.toString(16);
|
317
|
+
});
|
318
|
+
}
|
319
|
+
|
320
|
+
async function getBytes(stream, onChunk) {
|
321
|
+
const reader = stream.getReader();
|
322
|
+
let result;
|
323
|
+
while (!(result = await reader.read()).done) {
|
324
|
+
onChunk(result.value);
|
325
|
+
}
|
326
|
+
}
|
327
|
+
function getLines(onLine) {
|
328
|
+
let buffer;
|
329
|
+
let position;
|
330
|
+
let fieldLength;
|
331
|
+
let discardTrailingNewline = false;
|
332
|
+
return function onChunk(arr) {
|
333
|
+
if (buffer === void 0) {
|
334
|
+
buffer = arr;
|
335
|
+
position = 0;
|
336
|
+
fieldLength = -1;
|
337
|
+
} else {
|
338
|
+
buffer = concat(buffer, arr);
|
339
|
+
}
|
340
|
+
const bufLength = buffer.length;
|
341
|
+
let lineStart = 0;
|
342
|
+
while (position < bufLength) {
|
343
|
+
if (discardTrailingNewline) {
|
344
|
+
if (buffer[position] === 10 /* NewLine */) {
|
345
|
+
lineStart = ++position;
|
346
|
+
}
|
347
|
+
discardTrailingNewline = false;
|
348
|
+
}
|
349
|
+
let lineEnd = -1;
|
350
|
+
for (; position < bufLength && lineEnd === -1; ++position) {
|
351
|
+
switch (buffer[position]) {
|
352
|
+
case 58 /* Colon */:
|
353
|
+
if (fieldLength === -1) {
|
354
|
+
fieldLength = position - lineStart;
|
355
|
+
}
|
356
|
+
break;
|
357
|
+
case 13 /* CarriageReturn */:
|
358
|
+
discardTrailingNewline = true;
|
359
|
+
case 10 /* NewLine */:
|
360
|
+
lineEnd = position;
|
361
|
+
break;
|
362
|
+
}
|
363
|
+
}
|
364
|
+
if (lineEnd === -1) {
|
365
|
+
break;
|
366
|
+
}
|
367
|
+
onLine(buffer.subarray(lineStart, lineEnd), fieldLength);
|
368
|
+
lineStart = position;
|
369
|
+
fieldLength = -1;
|
370
|
+
}
|
371
|
+
if (lineStart === bufLength) {
|
372
|
+
buffer = void 0;
|
373
|
+
} else if (lineStart !== 0) {
|
374
|
+
buffer = buffer.subarray(lineStart);
|
375
|
+
position -= lineStart;
|
376
|
+
}
|
377
|
+
};
|
378
|
+
}
|
379
|
+
function getMessages(onId, onRetry, onMessage) {
|
380
|
+
let message = newMessage();
|
381
|
+
const decoder = new TextDecoder();
|
382
|
+
return function onLine(line, fieldLength) {
|
383
|
+
if (line.length === 0) {
|
384
|
+
onMessage?.(message);
|
385
|
+
message = newMessage();
|
386
|
+
} else if (fieldLength > 0) {
|
387
|
+
const field = decoder.decode(line.subarray(0, fieldLength));
|
388
|
+
const valueOffset = fieldLength + (line[fieldLength + 1] === 32 /* Space */ ? 2 : 1);
|
389
|
+
const value = decoder.decode(line.subarray(valueOffset));
|
390
|
+
switch (field) {
|
391
|
+
case "data":
|
392
|
+
message.data = message.data ? message.data + "\n" + value : value;
|
393
|
+
break;
|
394
|
+
case "event":
|
395
|
+
message.event = value;
|
396
|
+
break;
|
397
|
+
case "id":
|
398
|
+
onId(message.id = value);
|
399
|
+
break;
|
400
|
+
case "retry":
|
401
|
+
const retry = parseInt(value, 10);
|
402
|
+
if (!isNaN(retry)) {
|
403
|
+
onRetry(message.retry = retry);
|
404
|
+
}
|
405
|
+
break;
|
406
|
+
}
|
407
|
+
}
|
408
|
+
};
|
409
|
+
}
|
410
|
+
function concat(a, b) {
|
411
|
+
const res = new Uint8Array(a.length + b.length);
|
412
|
+
res.set(a);
|
413
|
+
res.set(b, a.length);
|
414
|
+
return res;
|
415
|
+
}
|
416
|
+
function newMessage() {
|
417
|
+
return {
|
418
|
+
data: "",
|
419
|
+
event: "",
|
420
|
+
id: "",
|
421
|
+
retry: void 0
|
422
|
+
};
|
423
|
+
}
|
424
|
+
const EventStreamContentType = "text/event-stream";
|
425
|
+
const LastEventId = "last-event-id";
|
426
|
+
function fetchEventSource(input, {
|
427
|
+
signal: inputSignal,
|
428
|
+
headers: inputHeaders,
|
429
|
+
onopen: inputOnOpen,
|
430
|
+
onmessage,
|
431
|
+
onclose,
|
432
|
+
onerror,
|
433
|
+
fetch: inputFetch,
|
434
|
+
...rest
|
435
|
+
}) {
|
436
|
+
return new Promise((resolve, reject) => {
|
437
|
+
const headers = { ...inputHeaders };
|
438
|
+
if (!headers.accept) {
|
439
|
+
headers.accept = EventStreamContentType;
|
440
|
+
}
|
441
|
+
let curRequestController;
|
442
|
+
function dispose() {
|
443
|
+
curRequestController.abort();
|
444
|
+
}
|
445
|
+
inputSignal?.addEventListener("abort", () => {
|
446
|
+
dispose();
|
447
|
+
resolve();
|
448
|
+
});
|
449
|
+
const fetchImpl = inputFetch ?? fetch;
|
450
|
+
const onopen = inputOnOpen ?? defaultOnOpen;
|
451
|
+
async function create() {
|
452
|
+
curRequestController = new AbortController();
|
453
|
+
try {
|
454
|
+
const response = await fetchImpl(input, {
|
455
|
+
...rest,
|
456
|
+
headers,
|
457
|
+
signal: curRequestController.signal
|
458
|
+
});
|
459
|
+
await onopen(response);
|
460
|
+
await getBytes(
|
461
|
+
response.body,
|
462
|
+
getLines(
|
463
|
+
getMessages(
|
464
|
+
(id) => {
|
465
|
+
if (id) {
|
466
|
+
headers[LastEventId] = id;
|
467
|
+
} else {
|
468
|
+
delete headers[LastEventId];
|
469
|
+
}
|
470
|
+
},
|
471
|
+
(_retry) => {
|
472
|
+
},
|
473
|
+
onmessage
|
474
|
+
)
|
475
|
+
)
|
476
|
+
);
|
477
|
+
onclose?.();
|
478
|
+
dispose();
|
479
|
+
resolve();
|
480
|
+
} catch (err) {
|
481
|
+
}
|
482
|
+
}
|
483
|
+
create();
|
484
|
+
});
|
485
|
+
}
|
486
|
+
function defaultOnOpen(response) {
|
487
|
+
const contentType = response.headers?.get("content-type");
|
488
|
+
if (!contentType?.startsWith(EventStreamContentType)) {
|
489
|
+
throw new Error(`Expected content-type to be ${EventStreamContentType}, Actual: ${contentType}`);
|
490
|
+
}
|
491
|
+
}
|
130
492
|
|
131
|
-
const VERSION = "0.
|
493
|
+
const VERSION = "0.24.0";
|
132
494
|
|
133
495
|
class ErrorWithCause extends Error {
|
134
496
|
constructor(message, options) {
|
@@ -139,7 +501,7 @@ class FetcherError extends ErrorWithCause {
|
|
139
501
|
constructor(status, data, requestId) {
|
140
502
|
super(getMessage(data));
|
141
503
|
this.status = status;
|
142
|
-
this.errors = isBulkError(data) ? data.errors :
|
504
|
+
this.errors = isBulkError(data) ? data.errors : [{ message: getMessage(data), status }];
|
143
505
|
this.requestId = requestId;
|
144
506
|
if (data instanceof Error) {
|
145
507
|
this.stack = data.stack;
|
@@ -171,6 +533,7 @@ function getMessage(data) {
|
|
171
533
|
}
|
172
534
|
}
|
173
535
|
|
536
|
+
const pool = new ApiRequestPool();
|
174
537
|
const resolveUrl = (url, queryParams = {}, pathParams = {}) => {
|
175
538
|
const cleanQueryParams = Object.entries(queryParams).reduce((acc, [key, value]) => {
|
176
539
|
if (value === void 0 || value === null)
|
@@ -179,316 +542,418 @@ const resolveUrl = (url, queryParams = {}, pathParams = {}) => {
|
|
179
542
|
}, {});
|
180
543
|
const query = new URLSearchParams(cleanQueryParams).toString();
|
181
544
|
const queryString = query.length > 0 ? `?${query}` : "";
|
182
|
-
|
545
|
+
const cleanPathParams = Object.entries(pathParams).reduce((acc, [key, value]) => {
|
546
|
+
return { ...acc, [key]: encodeURIComponent(String(value ?? "")).replace("%3A", ":") };
|
547
|
+
}, {});
|
548
|
+
return url.replace(/\{\w*\}/g, (key) => cleanPathParams[key.slice(1, -1)]) + queryString;
|
183
549
|
};
|
184
550
|
function buildBaseUrl({
|
551
|
+
endpoint,
|
185
552
|
path,
|
186
553
|
workspacesApiUrl,
|
187
554
|
apiUrl,
|
188
|
-
pathParams
|
555
|
+
pathParams = {}
|
189
556
|
}) {
|
190
|
-
if (
|
191
|
-
|
192
|
-
|
193
|
-
|
557
|
+
if (endpoint === "dataPlane") {
|
558
|
+
const url = isString(workspacesApiUrl) ? `${workspacesApiUrl}${path}` : workspacesApiUrl(path, pathParams);
|
559
|
+
const urlWithWorkspace = isString(pathParams.workspace) ? url.replace("{workspaceId}", String(pathParams.workspace)) : url;
|
560
|
+
return isString(pathParams.region) ? urlWithWorkspace.replace("{region}", String(pathParams.region)) : urlWithWorkspace;
|
561
|
+
}
|
562
|
+
return `${apiUrl}${path}`;
|
194
563
|
}
|
195
564
|
function hostHeader(url) {
|
196
565
|
const pattern = /.*:\/\/(?<host>[^/]+).*/;
|
197
566
|
const { groups } = pattern.exec(url) ?? {};
|
198
567
|
return groups?.host ? { Host: groups.host } : {};
|
199
568
|
}
|
569
|
+
const defaultClientID = generateUUID();
|
200
570
|
async function fetch$1({
|
201
571
|
url: path,
|
202
572
|
method,
|
203
573
|
body,
|
204
|
-
headers,
|
574
|
+
headers: customHeaders,
|
575
|
+
pathParams,
|
576
|
+
queryParams,
|
577
|
+
fetch: fetch2,
|
578
|
+
apiKey,
|
579
|
+
endpoint,
|
580
|
+
apiUrl,
|
581
|
+
workspacesApiUrl,
|
582
|
+
trace,
|
583
|
+
signal,
|
584
|
+
clientID,
|
585
|
+
sessionID,
|
586
|
+
clientName,
|
587
|
+
xataAgentExtra,
|
588
|
+
fetchOptions = {}
|
589
|
+
}) {
|
590
|
+
pool.setFetch(fetch2);
|
591
|
+
return await trace(
|
592
|
+
`${method.toUpperCase()} ${path}`,
|
593
|
+
async ({ setAttributes }) => {
|
594
|
+
const baseUrl = buildBaseUrl({ endpoint, path, workspacesApiUrl, pathParams, apiUrl });
|
595
|
+
const fullUrl = resolveUrl(baseUrl, queryParams, pathParams);
|
596
|
+
const url = fullUrl.includes("localhost") ? fullUrl.replace(/^[^.]+\./, "http://") : fullUrl;
|
597
|
+
setAttributes({
|
598
|
+
[TraceAttributes.HTTP_URL]: url,
|
599
|
+
[TraceAttributes.HTTP_TARGET]: resolveUrl(path, queryParams, pathParams)
|
600
|
+
});
|
601
|
+
const xataAgent = compact([
|
602
|
+
["client", "TS_SDK"],
|
603
|
+
["version", VERSION],
|
604
|
+
isDefined(clientName) ? ["service", clientName] : void 0,
|
605
|
+
...Object.entries(xataAgentExtra ?? {})
|
606
|
+
]).map(([key, value]) => `${key}=${value}`).join("; ");
|
607
|
+
const headers = {
|
608
|
+
"Accept-Encoding": "identity",
|
609
|
+
"Content-Type": "application/json",
|
610
|
+
"X-Xata-Client-ID": clientID ?? defaultClientID,
|
611
|
+
"X-Xata-Session-ID": sessionID ?? generateUUID(),
|
612
|
+
"X-Xata-Agent": xataAgent,
|
613
|
+
...customHeaders,
|
614
|
+
...hostHeader(fullUrl),
|
615
|
+
Authorization: `Bearer ${apiKey}`
|
616
|
+
};
|
617
|
+
const response = await pool.request(url, {
|
618
|
+
...fetchOptions,
|
619
|
+
method: method.toUpperCase(),
|
620
|
+
body: body ? JSON.stringify(body) : void 0,
|
621
|
+
headers,
|
622
|
+
signal
|
623
|
+
});
|
624
|
+
const { host, protocol } = parseUrl(response.url);
|
625
|
+
const requestId = response.headers?.get("x-request-id") ?? void 0;
|
626
|
+
setAttributes({
|
627
|
+
[TraceAttributes.KIND]: "http",
|
628
|
+
[TraceAttributes.HTTP_REQUEST_ID]: requestId,
|
629
|
+
[TraceAttributes.HTTP_STATUS_CODE]: response.status,
|
630
|
+
[TraceAttributes.HTTP_HOST]: host,
|
631
|
+
[TraceAttributes.HTTP_SCHEME]: protocol?.replace(":", "")
|
632
|
+
});
|
633
|
+
if (response.status === 204) {
|
634
|
+
return {};
|
635
|
+
}
|
636
|
+
if (response.status === 429) {
|
637
|
+
throw new FetcherError(response.status, "Rate limit exceeded", requestId);
|
638
|
+
}
|
639
|
+
try {
|
640
|
+
const jsonResponse = await response.json();
|
641
|
+
if (response.ok) {
|
642
|
+
return jsonResponse;
|
643
|
+
}
|
644
|
+
throw new FetcherError(response.status, jsonResponse, requestId);
|
645
|
+
} catch (error) {
|
646
|
+
throw new FetcherError(response.status, error, requestId);
|
647
|
+
}
|
648
|
+
},
|
649
|
+
{ [TraceAttributes.HTTP_METHOD]: method.toUpperCase(), [TraceAttributes.HTTP_ROUTE]: path }
|
650
|
+
);
|
651
|
+
}
|
652
|
+
function fetchSSERequest({
|
653
|
+
url: path,
|
654
|
+
method,
|
655
|
+
body,
|
656
|
+
headers: customHeaders,
|
205
657
|
pathParams,
|
206
658
|
queryParams,
|
207
|
-
|
659
|
+
fetch: fetch2,
|
208
660
|
apiKey,
|
661
|
+
endpoint,
|
209
662
|
apiUrl,
|
210
|
-
workspacesApiUrl
|
663
|
+
workspacesApiUrl,
|
664
|
+
onMessage,
|
665
|
+
onError,
|
666
|
+
onClose,
|
667
|
+
signal,
|
668
|
+
clientID,
|
669
|
+
sessionID,
|
670
|
+
clientName,
|
671
|
+
xataAgentExtra
|
211
672
|
}) {
|
212
|
-
const baseUrl = buildBaseUrl({ path, workspacesApiUrl, pathParams, apiUrl });
|
673
|
+
const baseUrl = buildBaseUrl({ endpoint, path, workspacesApiUrl, pathParams, apiUrl });
|
213
674
|
const fullUrl = resolveUrl(baseUrl, queryParams, pathParams);
|
214
675
|
const url = fullUrl.includes("localhost") ? fullUrl.replace(/^[^.]+\./, "http://") : fullUrl;
|
215
|
-
|
216
|
-
method
|
217
|
-
body:
|
676
|
+
void fetchEventSource(url, {
|
677
|
+
method,
|
678
|
+
body: JSON.stringify(body),
|
679
|
+
fetch: fetch2,
|
680
|
+
signal,
|
218
681
|
headers: {
|
219
|
-
"
|
220
|
-
"
|
221
|
-
|
222
|
-
|
223
|
-
|
682
|
+
"X-Xata-Client-ID": clientID ?? defaultClientID,
|
683
|
+
"X-Xata-Session-ID": sessionID ?? generateUUID(),
|
684
|
+
"X-Xata-Agent": compact([
|
685
|
+
["client", "TS_SDK"],
|
686
|
+
["version", VERSION],
|
687
|
+
isDefined(clientName) ? ["service", clientName] : void 0,
|
688
|
+
...Object.entries(xataAgentExtra ?? {})
|
689
|
+
]).map(([key, value]) => `${key}=${value}`).join("; "),
|
690
|
+
...customHeaders,
|
691
|
+
Authorization: `Bearer ${apiKey}`,
|
692
|
+
"Content-Type": "application/json"
|
693
|
+
},
|
694
|
+
onmessage(ev) {
|
695
|
+
onMessage?.(JSON.parse(ev.data));
|
696
|
+
},
|
697
|
+
onerror(ev) {
|
698
|
+
onError?.(JSON.parse(ev.data));
|
699
|
+
},
|
700
|
+
onclose() {
|
701
|
+
onClose?.();
|
224
702
|
}
|
225
703
|
});
|
226
|
-
|
227
|
-
|
228
|
-
}
|
229
|
-
const requestId = response.headers?.get("x-request-id") ?? void 0;
|
704
|
+
}
|
705
|
+
function parseUrl(url) {
|
230
706
|
try {
|
231
|
-
const
|
232
|
-
|
233
|
-
return jsonResponse;
|
234
|
-
}
|
235
|
-
throw new FetcherError(response.status, jsonResponse, requestId);
|
707
|
+
const { host, protocol } = new URL(url);
|
708
|
+
return { host, protocol };
|
236
709
|
} catch (error) {
|
237
|
-
|
710
|
+
return {};
|
238
711
|
}
|
239
712
|
}
|
240
713
|
|
241
|
-
const
|
242
|
-
|
243
|
-
const
|
244
|
-
const getUserAPIKeys = (variables) => fetch$1({
|
245
|
-
url: "/user/keys",
|
246
|
-
method: "get",
|
247
|
-
...variables
|
248
|
-
});
|
249
|
-
const createUserAPIKey = (variables) => fetch$1({
|
250
|
-
url: "/user/keys/{keyName}",
|
251
|
-
method: "post",
|
252
|
-
...variables
|
253
|
-
});
|
254
|
-
const deleteUserAPIKey = (variables) => fetch$1({
|
255
|
-
url: "/user/keys/{keyName}",
|
256
|
-
method: "delete",
|
257
|
-
...variables
|
258
|
-
});
|
259
|
-
const createWorkspace = (variables) => fetch$1({
|
260
|
-
url: "/workspaces",
|
261
|
-
method: "post",
|
262
|
-
...variables
|
263
|
-
});
|
264
|
-
const getWorkspacesList = (variables) => fetch$1({
|
265
|
-
url: "/workspaces",
|
266
|
-
method: "get",
|
267
|
-
...variables
|
268
|
-
});
|
269
|
-
const getWorkspace = (variables) => fetch$1({
|
270
|
-
url: "/workspaces/{workspaceId}",
|
271
|
-
method: "get",
|
272
|
-
...variables
|
273
|
-
});
|
274
|
-
const updateWorkspace = (variables) => fetch$1({
|
275
|
-
url: "/workspaces/{workspaceId}",
|
276
|
-
method: "put",
|
277
|
-
...variables
|
278
|
-
});
|
279
|
-
const deleteWorkspace = (variables) => fetch$1({
|
280
|
-
url: "/workspaces/{workspaceId}",
|
281
|
-
method: "delete",
|
282
|
-
...variables
|
283
|
-
});
|
284
|
-
const getWorkspaceMembersList = (variables) => fetch$1({
|
285
|
-
url: "/workspaces/{workspaceId}/members",
|
286
|
-
method: "get",
|
287
|
-
...variables
|
288
|
-
});
|
289
|
-
const updateWorkspaceMemberRole = (variables) => fetch$1({ url: "/workspaces/{workspaceId}/members/{userId}", method: "put", ...variables });
|
290
|
-
const removeWorkspaceMember = (variables) => fetch$1({
|
291
|
-
url: "/workspaces/{workspaceId}/members/{userId}",
|
292
|
-
method: "delete",
|
293
|
-
...variables
|
294
|
-
});
|
295
|
-
const inviteWorkspaceMember = (variables) => fetch$1({ url: "/workspaces/{workspaceId}/invites", method: "post", ...variables });
|
296
|
-
const updateWorkspaceMemberInvite = (variables) => fetch$1({ url: "/workspaces/{workspaceId}/invites/{inviteId}", method: "patch", ...variables });
|
297
|
-
const cancelWorkspaceMemberInvite = (variables) => fetch$1({
|
298
|
-
url: "/workspaces/{workspaceId}/invites/{inviteId}",
|
299
|
-
method: "delete",
|
300
|
-
...variables
|
301
|
-
});
|
302
|
-
const resendWorkspaceMemberInvite = (variables) => fetch$1({
|
303
|
-
url: "/workspaces/{workspaceId}/invites/{inviteId}/resend",
|
304
|
-
method: "post",
|
305
|
-
...variables
|
306
|
-
});
|
307
|
-
const acceptWorkspaceMemberInvite = (variables) => fetch$1({
|
308
|
-
url: "/workspaces/{workspaceId}/invites/{inviteKey}/accept",
|
309
|
-
method: "post",
|
310
|
-
...variables
|
311
|
-
});
|
312
|
-
const getDatabaseList = (variables) => fetch$1({
|
313
|
-
url: "/dbs",
|
314
|
-
method: "get",
|
315
|
-
...variables
|
316
|
-
});
|
317
|
-
const getBranchList = (variables) => fetch$1({
|
318
|
-
url: "/dbs/{dbName}",
|
319
|
-
method: "get",
|
320
|
-
...variables
|
321
|
-
});
|
322
|
-
const createDatabase = (variables) => fetch$1({
|
323
|
-
url: "/dbs/{dbName}",
|
324
|
-
method: "put",
|
325
|
-
...variables
|
326
|
-
});
|
327
|
-
const deleteDatabase = (variables) => fetch$1({
|
714
|
+
const dataPlaneFetch = async (options) => fetch$1({ ...options, endpoint: "dataPlane" });
|
715
|
+
|
716
|
+
const getBranchList = (variables, signal) => dataPlaneFetch({
|
328
717
|
url: "/dbs/{dbName}",
|
329
|
-
method: "delete",
|
330
|
-
...variables
|
331
|
-
});
|
332
|
-
const getDatabaseMetadata = (variables) => fetch$1({
|
333
|
-
url: "/dbs/{dbName}/metadata",
|
334
|
-
method: "get",
|
335
|
-
...variables
|
336
|
-
});
|
337
|
-
const getGitBranchesMapping = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "get", ...variables });
|
338
|
-
const addGitBranchesEntry = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "post", ...variables });
|
339
|
-
const removeGitBranchesEntry = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "delete", ...variables });
|
340
|
-
const resolveBranch = (variables) => fetch$1({
|
341
|
-
url: "/dbs/{dbName}/resolveBranch",
|
342
718
|
method: "get",
|
343
|
-
...variables
|
719
|
+
...variables,
|
720
|
+
signal
|
344
721
|
});
|
345
|
-
const getBranchDetails = (variables) =>
|
722
|
+
const getBranchDetails = (variables, signal) => dataPlaneFetch({
|
346
723
|
url: "/db/{dbBranchName}",
|
347
724
|
method: "get",
|
348
|
-
...variables
|
725
|
+
...variables,
|
726
|
+
signal
|
349
727
|
});
|
350
|
-
const createBranch = (variables) =>
|
351
|
-
const deleteBranch = (variables) =>
|
728
|
+
const createBranch = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}", method: "put", ...variables, signal });
|
729
|
+
const deleteBranch = (variables, signal) => dataPlaneFetch({
|
352
730
|
url: "/db/{dbBranchName}",
|
353
731
|
method: "delete",
|
354
|
-
...variables
|
732
|
+
...variables,
|
733
|
+
signal
|
734
|
+
});
|
735
|
+
const copyBranch = (variables, signal) => dataPlaneFetch({
|
736
|
+
url: "/db/{dbBranchName}/copy",
|
737
|
+
method: "post",
|
738
|
+
...variables,
|
739
|
+
signal
|
355
740
|
});
|
356
|
-
const updateBranchMetadata = (variables) =>
|
741
|
+
const updateBranchMetadata = (variables, signal) => dataPlaneFetch({
|
357
742
|
url: "/db/{dbBranchName}/metadata",
|
358
743
|
method: "put",
|
359
|
-
...variables
|
744
|
+
...variables,
|
745
|
+
signal
|
360
746
|
});
|
361
|
-
const getBranchMetadata = (variables) =>
|
747
|
+
const getBranchMetadata = (variables, signal) => dataPlaneFetch({
|
362
748
|
url: "/db/{dbBranchName}/metadata",
|
363
749
|
method: "get",
|
364
|
-
...variables
|
750
|
+
...variables,
|
751
|
+
signal
|
365
752
|
});
|
366
|
-
const
|
367
|
-
const executeBranchMigrationPlan = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations/execute", method: "post", ...variables });
|
368
|
-
const getBranchMigrationPlan = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations/plan", method: "post", ...variables });
|
369
|
-
const getBranchStats = (variables) => fetch$1({
|
753
|
+
const getBranchStats = (variables, signal) => dataPlaneFetch({
|
370
754
|
url: "/db/{dbBranchName}/stats",
|
371
755
|
method: "get",
|
372
|
-
...variables
|
756
|
+
...variables,
|
757
|
+
signal
|
758
|
+
});
|
759
|
+
const getGitBranchesMapping = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/gitBranches", method: "get", ...variables, signal });
|
760
|
+
const addGitBranchesEntry = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/gitBranches", method: "post", ...variables, signal });
|
761
|
+
const removeGitBranchesEntry = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/gitBranches", method: "delete", ...variables, signal });
|
762
|
+
const resolveBranch = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/resolveBranch", method: "get", ...variables, signal });
|
763
|
+
const getBranchMigrationHistory = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/migrations", method: "get", ...variables, signal });
|
764
|
+
const getBranchMigrationPlan = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/migrations/plan", method: "post", ...variables, signal });
|
765
|
+
const executeBranchMigrationPlan = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/migrations/execute", method: "post", ...variables, signal });
|
766
|
+
const queryMigrationRequests = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations/query", method: "post", ...variables, signal });
|
767
|
+
const createMigrationRequest = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations", method: "post", ...variables, signal });
|
768
|
+
const getMigrationRequest = (variables, signal) => dataPlaneFetch({
|
769
|
+
url: "/dbs/{dbName}/migrations/{mrNumber}",
|
770
|
+
method: "get",
|
771
|
+
...variables,
|
772
|
+
signal
|
773
|
+
});
|
774
|
+
const updateMigrationRequest = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations/{mrNumber}", method: "patch", ...variables, signal });
|
775
|
+
const listMigrationRequestsCommits = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations/{mrNumber}/commits", method: "post", ...variables, signal });
|
776
|
+
const compareMigrationRequest = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations/{mrNumber}/compare", method: "post", ...variables, signal });
|
777
|
+
const getMigrationRequestIsMerged = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations/{mrNumber}/merge", method: "get", ...variables, signal });
|
778
|
+
const mergeMigrationRequest = (variables, signal) => dataPlaneFetch({
|
779
|
+
url: "/dbs/{dbName}/migrations/{mrNumber}/merge",
|
780
|
+
method: "post",
|
781
|
+
...variables,
|
782
|
+
signal
|
373
783
|
});
|
374
|
-
const
|
784
|
+
const getBranchSchemaHistory = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/history", method: "post", ...variables, signal });
|
785
|
+
const compareBranchWithUserSchema = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/compare", method: "post", ...variables, signal });
|
786
|
+
const compareBranchSchemas = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/compare/{branchName}", method: "post", ...variables, signal });
|
787
|
+
const updateBranchSchema = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/update", method: "post", ...variables, signal });
|
788
|
+
const previewBranchSchemaEdit = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/preview", method: "post", ...variables, signal });
|
789
|
+
const applyBranchSchemaEdit = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/apply", method: "post", ...variables, signal });
|
790
|
+
const pushBranchMigrations = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/push", method: "post", ...variables, signal });
|
791
|
+
const createTable = (variables, signal) => dataPlaneFetch({
|
375
792
|
url: "/db/{dbBranchName}/tables/{tableName}",
|
376
793
|
method: "put",
|
377
|
-
...variables
|
794
|
+
...variables,
|
795
|
+
signal
|
378
796
|
});
|
379
|
-
const deleteTable = (variables) =>
|
797
|
+
const deleteTable = (variables, signal) => dataPlaneFetch({
|
380
798
|
url: "/db/{dbBranchName}/tables/{tableName}",
|
381
799
|
method: "delete",
|
382
|
-
...variables
|
383
|
-
|
384
|
-
const updateTable = (variables) => fetch$1({
|
385
|
-
url: "/db/{dbBranchName}/tables/{tableName}",
|
386
|
-
method: "patch",
|
387
|
-
...variables
|
800
|
+
...variables,
|
801
|
+
signal
|
388
802
|
});
|
389
|
-
const
|
803
|
+
const updateTable = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}", method: "patch", ...variables, signal });
|
804
|
+
const getTableSchema = (variables, signal) => dataPlaneFetch({
|
390
805
|
url: "/db/{dbBranchName}/tables/{tableName}/schema",
|
391
806
|
method: "get",
|
392
|
-
...variables
|
393
|
-
|
394
|
-
const setTableSchema = (variables) => fetch$1({
|
395
|
-
url: "/db/{dbBranchName}/tables/{tableName}/schema",
|
396
|
-
method: "put",
|
397
|
-
...variables
|
807
|
+
...variables,
|
808
|
+
signal
|
398
809
|
});
|
399
|
-
const
|
810
|
+
const setTableSchema = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/schema", method: "put", ...variables, signal });
|
811
|
+
const getTableColumns = (variables, signal) => dataPlaneFetch({
|
400
812
|
url: "/db/{dbBranchName}/tables/{tableName}/columns",
|
401
813
|
method: "get",
|
402
|
-
...variables
|
814
|
+
...variables,
|
815
|
+
signal
|
403
816
|
});
|
404
|
-
const addTableColumn = (variables) =>
|
405
|
-
url: "/db/{dbBranchName}/tables/{tableName}/columns",
|
406
|
-
|
407
|
-
|
408
|
-
});
|
409
|
-
const getColumn = (variables) => fetch$1({
|
817
|
+
const addTableColumn = (variables, signal) => dataPlaneFetch(
|
818
|
+
{ url: "/db/{dbBranchName}/tables/{tableName}/columns", method: "post", ...variables, signal }
|
819
|
+
);
|
820
|
+
const getColumn = (variables, signal) => dataPlaneFetch({
|
410
821
|
url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}",
|
411
822
|
method: "get",
|
412
|
-
...variables
|
823
|
+
...variables,
|
824
|
+
signal
|
413
825
|
});
|
414
|
-
const
|
826
|
+
const updateColumn = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}", method: "patch", ...variables, signal });
|
827
|
+
const deleteColumn = (variables, signal) => dataPlaneFetch({
|
415
828
|
url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}",
|
416
829
|
method: "delete",
|
417
|
-
...variables
|
830
|
+
...variables,
|
831
|
+
signal
|
418
832
|
});
|
419
|
-
const
|
420
|
-
|
421
|
-
|
422
|
-
|
833
|
+
const branchTransaction = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/transaction", method: "post", ...variables, signal });
|
834
|
+
const insertRecord = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/data", method: "post", ...variables, signal });
|
835
|
+
const getFileItem = (variables, signal) => dataPlaneFetch({
|
836
|
+
url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}/column/{columnName}/file/{fileId}",
|
837
|
+
method: "get",
|
838
|
+
...variables,
|
839
|
+
signal
|
423
840
|
});
|
424
|
-
const
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
841
|
+
const putFileItem = (variables, signal) => dataPlaneFetch({
|
842
|
+
url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}/column/{columnName}/file/{fileId}",
|
843
|
+
method: "put",
|
844
|
+
...variables,
|
845
|
+
signal
|
846
|
+
});
|
847
|
+
const deleteFileItem = (variables, signal) => dataPlaneFetch({
|
848
|
+
url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}/column/{columnName}/file/{fileId}",
|
849
|
+
method: "delete",
|
850
|
+
...variables,
|
851
|
+
signal
|
852
|
+
});
|
853
|
+
const getFile = (variables, signal) => dataPlaneFetch({
|
854
|
+
url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}/column/{columnName}/file",
|
855
|
+
method: "get",
|
856
|
+
...variables,
|
857
|
+
signal
|
858
|
+
});
|
859
|
+
const putFile = (variables, signal) => dataPlaneFetch({
|
860
|
+
url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}/column/{columnName}/file",
|
861
|
+
method: "put",
|
862
|
+
...variables,
|
863
|
+
signal
|
864
|
+
});
|
865
|
+
const deleteFile = (variables, signal) => dataPlaneFetch({
|
866
|
+
url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}/column/{columnName}/file",
|
430
867
|
method: "delete",
|
431
|
-
...variables
|
868
|
+
...variables,
|
869
|
+
signal
|
432
870
|
});
|
433
|
-
const getRecord = (variables) =>
|
871
|
+
const getRecord = (variables, signal) => dataPlaneFetch({
|
434
872
|
url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}",
|
435
873
|
method: "get",
|
436
|
-
...variables
|
874
|
+
...variables,
|
875
|
+
signal
|
437
876
|
});
|
438
|
-
const
|
439
|
-
const
|
877
|
+
const insertRecordWithID = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "put", ...variables, signal });
|
878
|
+
const updateRecordWithID = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "patch", ...variables, signal });
|
879
|
+
const upsertRecordWithID = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "post", ...variables, signal });
|
880
|
+
const deleteRecord = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "delete", ...variables, signal });
|
881
|
+
const bulkInsertTableRecords = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/bulk", method: "post", ...variables, signal });
|
882
|
+
const queryTable = (variables, signal) => dataPlaneFetch({
|
440
883
|
url: "/db/{dbBranchName}/tables/{tableName}/query",
|
441
884
|
method: "post",
|
442
|
-
...variables
|
885
|
+
...variables,
|
886
|
+
signal
|
887
|
+
});
|
888
|
+
const searchBranch = (variables, signal) => dataPlaneFetch({
|
889
|
+
url: "/db/{dbBranchName}/search",
|
890
|
+
method: "post",
|
891
|
+
...variables,
|
892
|
+
signal
|
443
893
|
});
|
444
|
-
const searchTable = (variables) =>
|
894
|
+
const searchTable = (variables, signal) => dataPlaneFetch({
|
445
895
|
url: "/db/{dbBranchName}/tables/{tableName}/search",
|
446
896
|
method: "post",
|
447
|
-
...variables
|
897
|
+
...variables,
|
898
|
+
signal
|
448
899
|
});
|
449
|
-
const
|
450
|
-
url: "/db/{dbBranchName}/
|
900
|
+
const sqlQuery = (variables, signal) => dataPlaneFetch({
|
901
|
+
url: "/db/{dbBranchName}/sql",
|
451
902
|
method: "post",
|
452
|
-
...variables
|
903
|
+
...variables,
|
904
|
+
signal
|
453
905
|
});
|
454
|
-
const
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
},
|
471
|
-
database: {
|
472
|
-
getDatabaseList,
|
473
|
-
createDatabase,
|
474
|
-
deleteDatabase,
|
475
|
-
getGitBranchesMapping,
|
476
|
-
addGitBranchesEntry,
|
477
|
-
removeGitBranchesEntry,
|
478
|
-
resolveBranch
|
479
|
-
},
|
906
|
+
const vectorSearchTable = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/vectorSearch", method: "post", ...variables, signal });
|
907
|
+
const askTable = (variables, signal) => dataPlaneFetch({
|
908
|
+
url: "/db/{dbBranchName}/tables/{tableName}/ask",
|
909
|
+
method: "post",
|
910
|
+
...variables,
|
911
|
+
signal
|
912
|
+
});
|
913
|
+
const summarizeTable = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/summarize", method: "post", ...variables, signal });
|
914
|
+
const aggregateTable = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/aggregate", method: "post", ...variables, signal });
|
915
|
+
const fileAccess = (variables, signal) => dataPlaneFetch({
|
916
|
+
url: "/file/{fileId}",
|
917
|
+
method: "get",
|
918
|
+
...variables,
|
919
|
+
signal
|
920
|
+
});
|
921
|
+
const operationsByTag$2 = {
|
480
922
|
branch: {
|
481
923
|
getBranchList,
|
482
|
-
getDatabaseMetadata,
|
483
924
|
getBranchDetails,
|
484
925
|
createBranch,
|
485
926
|
deleteBranch,
|
927
|
+
copyBranch,
|
486
928
|
updateBranchMetadata,
|
487
929
|
getBranchMetadata,
|
930
|
+
getBranchStats,
|
931
|
+
getGitBranchesMapping,
|
932
|
+
addGitBranchesEntry,
|
933
|
+
removeGitBranchesEntry,
|
934
|
+
resolveBranch
|
935
|
+
},
|
936
|
+
migrations: {
|
488
937
|
getBranchMigrationHistory,
|
489
|
-
executeBranchMigrationPlan,
|
490
938
|
getBranchMigrationPlan,
|
491
|
-
|
939
|
+
executeBranchMigrationPlan,
|
940
|
+
getBranchSchemaHistory,
|
941
|
+
compareBranchWithUserSchema,
|
942
|
+
compareBranchSchemas,
|
943
|
+
updateBranchSchema,
|
944
|
+
previewBranchSchemaEdit,
|
945
|
+
applyBranchSchemaEdit,
|
946
|
+
pushBranchMigrations
|
947
|
+
},
|
948
|
+
migrationRequests: {
|
949
|
+
queryMigrationRequests,
|
950
|
+
createMigrationRequest,
|
951
|
+
getMigrationRequest,
|
952
|
+
updateMigrationRequest,
|
953
|
+
listMigrationRequestsCommits,
|
954
|
+
compareMigrationRequest,
|
955
|
+
getMigrationRequestIsMerged,
|
956
|
+
mergeMigrationRequest
|
492
957
|
},
|
493
958
|
table: {
|
494
959
|
createTable,
|
@@ -499,27 +964,178 @@ const operationsByTag = {
|
|
499
964
|
getTableColumns,
|
500
965
|
addTableColumn,
|
501
966
|
getColumn,
|
502
|
-
|
503
|
-
|
967
|
+
updateColumn,
|
968
|
+
deleteColumn
|
504
969
|
},
|
505
970
|
records: {
|
971
|
+
branchTransaction,
|
506
972
|
insertRecord,
|
973
|
+
getRecord,
|
507
974
|
insertRecordWithID,
|
508
975
|
updateRecordWithID,
|
509
976
|
upsertRecordWithID,
|
510
977
|
deleteRecord,
|
511
|
-
|
512
|
-
|
978
|
+
bulkInsertTableRecords
|
979
|
+
},
|
980
|
+
files: { getFileItem, putFileItem, deleteFileItem, getFile, putFile, deleteFile, fileAccess },
|
981
|
+
searchAndFilter: {
|
513
982
|
queryTable,
|
983
|
+
searchBranch,
|
514
984
|
searchTable,
|
515
|
-
|
985
|
+
sqlQuery,
|
986
|
+
vectorSearchTable,
|
987
|
+
askTable,
|
988
|
+
summarizeTable,
|
989
|
+
aggregateTable
|
516
990
|
}
|
517
991
|
};
|
518
992
|
|
993
|
+
const controlPlaneFetch = async (options) => fetch$1({ ...options, endpoint: "controlPlane" });
|
994
|
+
|
995
|
+
const getUser = (variables, signal) => controlPlaneFetch({
|
996
|
+
url: "/user",
|
997
|
+
method: "get",
|
998
|
+
...variables,
|
999
|
+
signal
|
1000
|
+
});
|
1001
|
+
const updateUser = (variables, signal) => controlPlaneFetch({
|
1002
|
+
url: "/user",
|
1003
|
+
method: "put",
|
1004
|
+
...variables,
|
1005
|
+
signal
|
1006
|
+
});
|
1007
|
+
const deleteUser = (variables, signal) => controlPlaneFetch({
|
1008
|
+
url: "/user",
|
1009
|
+
method: "delete",
|
1010
|
+
...variables,
|
1011
|
+
signal
|
1012
|
+
});
|
1013
|
+
const getUserAPIKeys = (variables, signal) => controlPlaneFetch({
|
1014
|
+
url: "/user/keys",
|
1015
|
+
method: "get",
|
1016
|
+
...variables,
|
1017
|
+
signal
|
1018
|
+
});
|
1019
|
+
const createUserAPIKey = (variables, signal) => controlPlaneFetch({
|
1020
|
+
url: "/user/keys/{keyName}",
|
1021
|
+
method: "post",
|
1022
|
+
...variables,
|
1023
|
+
signal
|
1024
|
+
});
|
1025
|
+
const deleteUserAPIKey = (variables, signal) => controlPlaneFetch({
|
1026
|
+
url: "/user/keys/{keyName}",
|
1027
|
+
method: "delete",
|
1028
|
+
...variables,
|
1029
|
+
signal
|
1030
|
+
});
|
1031
|
+
const getWorkspacesList = (variables, signal) => controlPlaneFetch({
|
1032
|
+
url: "/workspaces",
|
1033
|
+
method: "get",
|
1034
|
+
...variables,
|
1035
|
+
signal
|
1036
|
+
});
|
1037
|
+
const createWorkspace = (variables, signal) => controlPlaneFetch({
|
1038
|
+
url: "/workspaces",
|
1039
|
+
method: "post",
|
1040
|
+
...variables,
|
1041
|
+
signal
|
1042
|
+
});
|
1043
|
+
const getWorkspace = (variables, signal) => controlPlaneFetch({
|
1044
|
+
url: "/workspaces/{workspaceId}",
|
1045
|
+
method: "get",
|
1046
|
+
...variables,
|
1047
|
+
signal
|
1048
|
+
});
|
1049
|
+
const updateWorkspace = (variables, signal) => controlPlaneFetch({
|
1050
|
+
url: "/workspaces/{workspaceId}",
|
1051
|
+
method: "put",
|
1052
|
+
...variables,
|
1053
|
+
signal
|
1054
|
+
});
|
1055
|
+
const deleteWorkspace = (variables, signal) => controlPlaneFetch({
|
1056
|
+
url: "/workspaces/{workspaceId}",
|
1057
|
+
method: "delete",
|
1058
|
+
...variables,
|
1059
|
+
signal
|
1060
|
+
});
|
1061
|
+
const getWorkspaceMembersList = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/members", method: "get", ...variables, signal });
|
1062
|
+
const updateWorkspaceMemberRole = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/members/{userId}", method: "put", ...variables, signal });
|
1063
|
+
const removeWorkspaceMember = (variables, signal) => controlPlaneFetch({
|
1064
|
+
url: "/workspaces/{workspaceId}/members/{userId}",
|
1065
|
+
method: "delete",
|
1066
|
+
...variables,
|
1067
|
+
signal
|
1068
|
+
});
|
1069
|
+
const inviteWorkspaceMember = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/invites", method: "post", ...variables, signal });
|
1070
|
+
const updateWorkspaceMemberInvite = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/invites/{inviteId}", method: "patch", ...variables, signal });
|
1071
|
+
const cancelWorkspaceMemberInvite = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/invites/{inviteId}", method: "delete", ...variables, signal });
|
1072
|
+
const acceptWorkspaceMemberInvite = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/invites/{inviteKey}/accept", method: "post", ...variables, signal });
|
1073
|
+
const resendWorkspaceMemberInvite = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/invites/{inviteId}/resend", method: "post", ...variables, signal });
|
1074
|
+
const getDatabaseList = (variables, signal) => controlPlaneFetch({
|
1075
|
+
url: "/workspaces/{workspaceId}/dbs",
|
1076
|
+
method: "get",
|
1077
|
+
...variables,
|
1078
|
+
signal
|
1079
|
+
});
|
1080
|
+
const createDatabase = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/dbs/{dbName}", method: "put", ...variables, signal });
|
1081
|
+
const deleteDatabase = (variables, signal) => controlPlaneFetch({
|
1082
|
+
url: "/workspaces/{workspaceId}/dbs/{dbName}",
|
1083
|
+
method: "delete",
|
1084
|
+
...variables,
|
1085
|
+
signal
|
1086
|
+
});
|
1087
|
+
const getDatabaseMetadata = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/dbs/{dbName}", method: "get", ...variables, signal });
|
1088
|
+
const updateDatabaseMetadata = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/dbs/{dbName}", method: "patch", ...variables, signal });
|
1089
|
+
const renameDatabase = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/dbs/{dbName}/rename", method: "post", ...variables, signal });
|
1090
|
+
const getDatabaseGithubSettings = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/dbs/{dbName}/github", method: "get", ...variables, signal });
|
1091
|
+
const updateDatabaseGithubSettings = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/dbs/{dbName}/github", method: "put", ...variables, signal });
|
1092
|
+
const deleteDatabaseGithubSettings = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/dbs/{dbName}/github", method: "delete", ...variables, signal });
|
1093
|
+
const listRegions = (variables, signal) => controlPlaneFetch({
|
1094
|
+
url: "/workspaces/{workspaceId}/regions",
|
1095
|
+
method: "get",
|
1096
|
+
...variables,
|
1097
|
+
signal
|
1098
|
+
});
|
1099
|
+
const operationsByTag$1 = {
|
1100
|
+
users: { getUser, updateUser, deleteUser },
|
1101
|
+
authentication: { getUserAPIKeys, createUserAPIKey, deleteUserAPIKey },
|
1102
|
+
workspaces: {
|
1103
|
+
getWorkspacesList,
|
1104
|
+
createWorkspace,
|
1105
|
+
getWorkspace,
|
1106
|
+
updateWorkspace,
|
1107
|
+
deleteWorkspace,
|
1108
|
+
getWorkspaceMembersList,
|
1109
|
+
updateWorkspaceMemberRole,
|
1110
|
+
removeWorkspaceMember
|
1111
|
+
},
|
1112
|
+
invites: {
|
1113
|
+
inviteWorkspaceMember,
|
1114
|
+
updateWorkspaceMemberInvite,
|
1115
|
+
cancelWorkspaceMemberInvite,
|
1116
|
+
acceptWorkspaceMemberInvite,
|
1117
|
+
resendWorkspaceMemberInvite
|
1118
|
+
},
|
1119
|
+
databases: {
|
1120
|
+
getDatabaseList,
|
1121
|
+
createDatabase,
|
1122
|
+
deleteDatabase,
|
1123
|
+
getDatabaseMetadata,
|
1124
|
+
updateDatabaseMetadata,
|
1125
|
+
renameDatabase,
|
1126
|
+
getDatabaseGithubSettings,
|
1127
|
+
updateDatabaseGithubSettings,
|
1128
|
+
deleteDatabaseGithubSettings,
|
1129
|
+
listRegions
|
1130
|
+
}
|
1131
|
+
};
|
1132
|
+
|
1133
|
+
const operationsByTag = deepMerge(operationsByTag$2, operationsByTag$1);
|
1134
|
+
|
519
1135
|
function getHostUrl(provider, type) {
|
520
|
-
if (
|
1136
|
+
if (isHostProviderAlias(provider)) {
|
521
1137
|
return providers[provider][type];
|
522
|
-
} else if (
|
1138
|
+
} else if (isHostProviderBuilder(provider)) {
|
523
1139
|
return provider[type];
|
524
1140
|
}
|
525
1141
|
throw new Error("Invalid API provider");
|
@@ -527,19 +1143,49 @@ function getHostUrl(provider, type) {
|
|
527
1143
|
const providers = {
|
528
1144
|
production: {
|
529
1145
|
main: "https://api.xata.io",
|
530
|
-
workspaces: "https://{workspaceId}.xata.sh"
|
1146
|
+
workspaces: "https://{workspaceId}.{region}.xata.sh"
|
531
1147
|
},
|
532
1148
|
staging: {
|
533
|
-
main: "https://staging.
|
534
|
-
workspaces: "https://{workspaceId}.staging.
|
1149
|
+
main: "https://api.staging-xata.dev",
|
1150
|
+
workspaces: "https://{workspaceId}.{region}.staging-xata.dev"
|
1151
|
+
},
|
1152
|
+
dev: {
|
1153
|
+
main: "https://api.dev-xata.dev",
|
1154
|
+
workspaces: "https://{workspaceId}.{region}.dev-xata.dev"
|
535
1155
|
}
|
536
1156
|
};
|
537
|
-
function
|
1157
|
+
function isHostProviderAlias(alias) {
|
538
1158
|
return isString(alias) && Object.keys(providers).includes(alias);
|
539
1159
|
}
|
540
|
-
function
|
1160
|
+
function isHostProviderBuilder(builder) {
|
541
1161
|
return isObject(builder) && isString(builder.main) && isString(builder.workspaces);
|
542
1162
|
}
|
1163
|
+
function parseProviderString(provider = "production") {
|
1164
|
+
if (isHostProviderAlias(provider)) {
|
1165
|
+
return provider;
|
1166
|
+
}
|
1167
|
+
const [main, workspaces] = provider.split(",");
|
1168
|
+
if (!main || !workspaces)
|
1169
|
+
return null;
|
1170
|
+
return { main, workspaces };
|
1171
|
+
}
|
1172
|
+
function buildProviderString(provider) {
|
1173
|
+
if (isHostProviderAlias(provider))
|
1174
|
+
return provider;
|
1175
|
+
return `${provider.main},${provider.workspaces}`;
|
1176
|
+
}
|
1177
|
+
function parseWorkspacesUrlParts(url) {
|
1178
|
+
if (!isString(url))
|
1179
|
+
return null;
|
1180
|
+
const regex = /(?:https:\/\/)?([^.]+)(?:\.([^.]+))\.xata\.sh.*/;
|
1181
|
+
const regexDev = /(?:https:\/\/)?([^.]+)(?:\.([^.]+))\.dev-xata\.dev.*/;
|
1182
|
+
const regexStaging = /(?:https:\/\/)?([^.]+)(?:\.([^.]+))\.staging-xata\.dev.*/;
|
1183
|
+
const regexProdTesting = /(?:https:\/\/)?([^.]+)(?:\.([^.]+))\.xata\.tech.*/;
|
1184
|
+
const match = url.match(regex) || url.match(regexDev) || url.match(regexStaging) || url.match(regexProdTesting);
|
1185
|
+
if (!match)
|
1186
|
+
return null;
|
1187
|
+
return { workspace: match[1], region: match[2] };
|
1188
|
+
}
|
543
1189
|
|
544
1190
|
var __accessCheck$7 = (obj, member, msg) => {
|
545
1191
|
if (!member.has(obj))
|
@@ -565,15 +1211,21 @@ class XataApiClient {
|
|
565
1211
|
__privateAdd$7(this, _extraProps, void 0);
|
566
1212
|
__privateAdd$7(this, _namespaces, {});
|
567
1213
|
const provider = options.host ?? "production";
|
568
|
-
const apiKey = options
|
1214
|
+
const apiKey = options.apiKey ?? getAPIKey();
|
1215
|
+
const trace = options.trace ?? defaultTrace;
|
1216
|
+
const clientID = generateUUID();
|
569
1217
|
if (!apiKey) {
|
570
1218
|
throw new Error("Could not resolve a valid apiKey");
|
571
1219
|
}
|
572
1220
|
__privateSet$7(this, _extraProps, {
|
573
1221
|
apiUrl: getHostUrl(provider, "main"),
|
574
1222
|
workspacesApiUrl: getHostUrl(provider, "workspaces"),
|
575
|
-
|
576
|
-
apiKey
|
1223
|
+
fetch: getFetchImplementation(options.fetch),
|
1224
|
+
apiKey,
|
1225
|
+
trace,
|
1226
|
+
clientName: options.clientName,
|
1227
|
+
xataAgentExtra: options.xataAgentExtra,
|
1228
|
+
clientID
|
577
1229
|
});
|
578
1230
|
}
|
579
1231
|
get user() {
|
@@ -581,21 +1233,41 @@ class XataApiClient {
|
|
581
1233
|
__privateGet$7(this, _namespaces).user = new UserApi(__privateGet$7(this, _extraProps));
|
582
1234
|
return __privateGet$7(this, _namespaces).user;
|
583
1235
|
}
|
1236
|
+
get authentication() {
|
1237
|
+
if (!__privateGet$7(this, _namespaces).authentication)
|
1238
|
+
__privateGet$7(this, _namespaces).authentication = new AuthenticationApi(__privateGet$7(this, _extraProps));
|
1239
|
+
return __privateGet$7(this, _namespaces).authentication;
|
1240
|
+
}
|
584
1241
|
get workspaces() {
|
585
1242
|
if (!__privateGet$7(this, _namespaces).workspaces)
|
586
1243
|
__privateGet$7(this, _namespaces).workspaces = new WorkspaceApi(__privateGet$7(this, _extraProps));
|
587
1244
|
return __privateGet$7(this, _namespaces).workspaces;
|
588
1245
|
}
|
589
|
-
get
|
590
|
-
if (!__privateGet$7(this, _namespaces).
|
591
|
-
__privateGet$7(this, _namespaces).
|
592
|
-
return __privateGet$7(this, _namespaces).
|
1246
|
+
get invites() {
|
1247
|
+
if (!__privateGet$7(this, _namespaces).invites)
|
1248
|
+
__privateGet$7(this, _namespaces).invites = new InvitesApi(__privateGet$7(this, _extraProps));
|
1249
|
+
return __privateGet$7(this, _namespaces).invites;
|
1250
|
+
}
|
1251
|
+
get database() {
|
1252
|
+
if (!__privateGet$7(this, _namespaces).database)
|
1253
|
+
__privateGet$7(this, _namespaces).database = new DatabaseApi(__privateGet$7(this, _extraProps));
|
1254
|
+
return __privateGet$7(this, _namespaces).database;
|
593
1255
|
}
|
594
1256
|
get branches() {
|
595
1257
|
if (!__privateGet$7(this, _namespaces).branches)
|
596
1258
|
__privateGet$7(this, _namespaces).branches = new BranchApi(__privateGet$7(this, _extraProps));
|
597
1259
|
return __privateGet$7(this, _namespaces).branches;
|
598
1260
|
}
|
1261
|
+
get migrations() {
|
1262
|
+
if (!__privateGet$7(this, _namespaces).migrations)
|
1263
|
+
__privateGet$7(this, _namespaces).migrations = new MigrationsApi(__privateGet$7(this, _extraProps));
|
1264
|
+
return __privateGet$7(this, _namespaces).migrations;
|
1265
|
+
}
|
1266
|
+
get migrationRequests() {
|
1267
|
+
if (!__privateGet$7(this, _namespaces).migrationRequests)
|
1268
|
+
__privateGet$7(this, _namespaces).migrationRequests = new MigrationRequestsApi(__privateGet$7(this, _extraProps));
|
1269
|
+
return __privateGet$7(this, _namespaces).migrationRequests;
|
1270
|
+
}
|
599
1271
|
get tables() {
|
600
1272
|
if (!__privateGet$7(this, _namespaces).tables)
|
601
1273
|
__privateGet$7(this, _namespaces).tables = new TableApi(__privateGet$7(this, _extraProps));
|
@@ -606,6 +1278,16 @@ class XataApiClient {
|
|
606
1278
|
__privateGet$7(this, _namespaces).records = new RecordsApi(__privateGet$7(this, _extraProps));
|
607
1279
|
return __privateGet$7(this, _namespaces).records;
|
608
1280
|
}
|
1281
|
+
get files() {
|
1282
|
+
if (!__privateGet$7(this, _namespaces).files)
|
1283
|
+
__privateGet$7(this, _namespaces).files = new FilesApi(__privateGet$7(this, _extraProps));
|
1284
|
+
return __privateGet$7(this, _namespaces).files;
|
1285
|
+
}
|
1286
|
+
get searchAndFilter() {
|
1287
|
+
if (!__privateGet$7(this, _namespaces).searchAndFilter)
|
1288
|
+
__privateGet$7(this, _namespaces).searchAndFilter = new SearchAndFilterApi(__privateGet$7(this, _extraProps));
|
1289
|
+
return __privateGet$7(this, _namespaces).searchAndFilter;
|
1290
|
+
}
|
609
1291
|
}
|
610
1292
|
_extraProps = new WeakMap();
|
611
1293
|
_namespaces = new WeakMap();
|
@@ -616,24 +1298,29 @@ class UserApi {
|
|
616
1298
|
getUser() {
|
617
1299
|
return operationsByTag.users.getUser({ ...this.extraProps });
|
618
1300
|
}
|
619
|
-
updateUser(user) {
|
1301
|
+
updateUser({ user }) {
|
620
1302
|
return operationsByTag.users.updateUser({ body: user, ...this.extraProps });
|
621
1303
|
}
|
622
1304
|
deleteUser() {
|
623
1305
|
return operationsByTag.users.deleteUser({ ...this.extraProps });
|
624
1306
|
}
|
1307
|
+
}
|
1308
|
+
class AuthenticationApi {
|
1309
|
+
constructor(extraProps) {
|
1310
|
+
this.extraProps = extraProps;
|
1311
|
+
}
|
625
1312
|
getUserAPIKeys() {
|
626
|
-
return operationsByTag.
|
1313
|
+
return operationsByTag.authentication.getUserAPIKeys({ ...this.extraProps });
|
627
1314
|
}
|
628
|
-
createUserAPIKey(
|
629
|
-
return operationsByTag.
|
630
|
-
pathParams: { keyName },
|
1315
|
+
createUserAPIKey({ name }) {
|
1316
|
+
return operationsByTag.authentication.createUserAPIKey({
|
1317
|
+
pathParams: { keyName: name },
|
631
1318
|
...this.extraProps
|
632
1319
|
});
|
633
1320
|
}
|
634
|
-
deleteUserAPIKey(
|
635
|
-
return operationsByTag.
|
636
|
-
pathParams: { keyName },
|
1321
|
+
deleteUserAPIKey({ name }) {
|
1322
|
+
return operationsByTag.authentication.deleteUserAPIKey({
|
1323
|
+
pathParams: { keyName: name },
|
637
1324
|
...this.extraProps
|
638
1325
|
});
|
639
1326
|
}
|
@@ -642,368 +1329,1178 @@ class WorkspaceApi {
|
|
642
1329
|
constructor(extraProps) {
|
643
1330
|
this.extraProps = extraProps;
|
644
1331
|
}
|
645
|
-
|
1332
|
+
getWorkspacesList() {
|
1333
|
+
return operationsByTag.workspaces.getWorkspacesList({ ...this.extraProps });
|
1334
|
+
}
|
1335
|
+
createWorkspace({ data }) {
|
646
1336
|
return operationsByTag.workspaces.createWorkspace({
|
647
|
-
body:
|
1337
|
+
body: data,
|
648
1338
|
...this.extraProps
|
649
1339
|
});
|
650
1340
|
}
|
651
|
-
|
652
|
-
return operationsByTag.workspaces.getWorkspacesList({ ...this.extraProps });
|
653
|
-
}
|
654
|
-
getWorkspace(workspaceId) {
|
1341
|
+
getWorkspace({ workspace }) {
|
655
1342
|
return operationsByTag.workspaces.getWorkspace({
|
656
|
-
pathParams: { workspaceId },
|
1343
|
+
pathParams: { workspaceId: workspace },
|
657
1344
|
...this.extraProps
|
658
1345
|
});
|
659
1346
|
}
|
660
|
-
updateWorkspace(
|
1347
|
+
updateWorkspace({
|
1348
|
+
workspace,
|
1349
|
+
update
|
1350
|
+
}) {
|
661
1351
|
return operationsByTag.workspaces.updateWorkspace({
|
662
|
-
pathParams: { workspaceId },
|
663
|
-
body:
|
1352
|
+
pathParams: { workspaceId: workspace },
|
1353
|
+
body: update,
|
664
1354
|
...this.extraProps
|
665
1355
|
});
|
666
1356
|
}
|
667
|
-
deleteWorkspace(
|
1357
|
+
deleteWorkspace({ workspace }) {
|
668
1358
|
return operationsByTag.workspaces.deleteWorkspace({
|
669
|
-
pathParams: { workspaceId },
|
1359
|
+
pathParams: { workspaceId: workspace },
|
670
1360
|
...this.extraProps
|
671
1361
|
});
|
672
1362
|
}
|
673
|
-
getWorkspaceMembersList(
|
1363
|
+
getWorkspaceMembersList({ workspace }) {
|
674
1364
|
return operationsByTag.workspaces.getWorkspaceMembersList({
|
675
|
-
pathParams: { workspaceId },
|
1365
|
+
pathParams: { workspaceId: workspace },
|
676
1366
|
...this.extraProps
|
677
1367
|
});
|
678
1368
|
}
|
679
|
-
updateWorkspaceMemberRole(
|
1369
|
+
updateWorkspaceMemberRole({
|
1370
|
+
workspace,
|
1371
|
+
user,
|
1372
|
+
role
|
1373
|
+
}) {
|
680
1374
|
return operationsByTag.workspaces.updateWorkspaceMemberRole({
|
681
|
-
pathParams: { workspaceId, userId },
|
1375
|
+
pathParams: { workspaceId: workspace, userId: user },
|
682
1376
|
body: { role },
|
683
1377
|
...this.extraProps
|
684
1378
|
});
|
685
1379
|
}
|
686
|
-
removeWorkspaceMember(
|
1380
|
+
removeWorkspaceMember({
|
1381
|
+
workspace,
|
1382
|
+
user
|
1383
|
+
}) {
|
687
1384
|
return operationsByTag.workspaces.removeWorkspaceMember({
|
688
|
-
pathParams: { workspaceId, userId },
|
1385
|
+
pathParams: { workspaceId: workspace, userId: user },
|
689
1386
|
...this.extraProps
|
690
1387
|
});
|
691
1388
|
}
|
692
|
-
|
693
|
-
|
694
|
-
|
1389
|
+
}
|
1390
|
+
class InvitesApi {
|
1391
|
+
constructor(extraProps) {
|
1392
|
+
this.extraProps = extraProps;
|
1393
|
+
}
|
1394
|
+
inviteWorkspaceMember({
|
1395
|
+
workspace,
|
1396
|
+
email,
|
1397
|
+
role
|
1398
|
+
}) {
|
1399
|
+
return operationsByTag.invites.inviteWorkspaceMember({
|
1400
|
+
pathParams: { workspaceId: workspace },
|
695
1401
|
body: { email, role },
|
696
1402
|
...this.extraProps
|
697
1403
|
});
|
698
1404
|
}
|
699
|
-
updateWorkspaceMemberInvite(
|
700
|
-
|
701
|
-
|
1405
|
+
updateWorkspaceMemberInvite({
|
1406
|
+
workspace,
|
1407
|
+
invite,
|
1408
|
+
role
|
1409
|
+
}) {
|
1410
|
+
return operationsByTag.invites.updateWorkspaceMemberInvite({
|
1411
|
+
pathParams: { workspaceId: workspace, inviteId: invite },
|
702
1412
|
body: { role },
|
703
1413
|
...this.extraProps
|
704
1414
|
});
|
705
1415
|
}
|
706
|
-
cancelWorkspaceMemberInvite(
|
707
|
-
|
708
|
-
|
1416
|
+
cancelWorkspaceMemberInvite({
|
1417
|
+
workspace,
|
1418
|
+
invite
|
1419
|
+
}) {
|
1420
|
+
return operationsByTag.invites.cancelWorkspaceMemberInvite({
|
1421
|
+
pathParams: { workspaceId: workspace, inviteId: invite },
|
709
1422
|
...this.extraProps
|
710
1423
|
});
|
711
1424
|
}
|
712
|
-
|
713
|
-
|
714
|
-
|
1425
|
+
acceptWorkspaceMemberInvite({
|
1426
|
+
workspace,
|
1427
|
+
key
|
1428
|
+
}) {
|
1429
|
+
return operationsByTag.invites.acceptWorkspaceMemberInvite({
|
1430
|
+
pathParams: { workspaceId: workspace, inviteKey: key },
|
715
1431
|
...this.extraProps
|
716
1432
|
});
|
717
1433
|
}
|
718
|
-
|
719
|
-
|
720
|
-
|
1434
|
+
resendWorkspaceMemberInvite({
|
1435
|
+
workspace,
|
1436
|
+
invite
|
1437
|
+
}) {
|
1438
|
+
return operationsByTag.invites.resendWorkspaceMemberInvite({
|
1439
|
+
pathParams: { workspaceId: workspace, inviteId: invite },
|
721
1440
|
...this.extraProps
|
722
1441
|
});
|
723
1442
|
}
|
724
1443
|
}
|
725
|
-
class
|
1444
|
+
class BranchApi {
|
726
1445
|
constructor(extraProps) {
|
727
1446
|
this.extraProps = extraProps;
|
728
1447
|
}
|
729
|
-
|
730
|
-
|
731
|
-
|
1448
|
+
getBranchList({
|
1449
|
+
workspace,
|
1450
|
+
region,
|
1451
|
+
database
|
1452
|
+
}) {
|
1453
|
+
return operationsByTag.branch.getBranchList({
|
1454
|
+
pathParams: { workspace, region, dbName: database },
|
732
1455
|
...this.extraProps
|
733
1456
|
});
|
734
1457
|
}
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
1458
|
+
getBranchDetails({
|
1459
|
+
workspace,
|
1460
|
+
region,
|
1461
|
+
database,
|
1462
|
+
branch
|
1463
|
+
}) {
|
1464
|
+
return operationsByTag.branch.getBranchDetails({
|
1465
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
739
1466
|
...this.extraProps
|
740
1467
|
});
|
741
1468
|
}
|
742
|
-
|
743
|
-
|
744
|
-
|
1469
|
+
createBranch({
|
1470
|
+
workspace,
|
1471
|
+
region,
|
1472
|
+
database,
|
1473
|
+
branch,
|
1474
|
+
from,
|
1475
|
+
metadata
|
1476
|
+
}) {
|
1477
|
+
return operationsByTag.branch.createBranch({
|
1478
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
1479
|
+
body: { from, metadata },
|
745
1480
|
...this.extraProps
|
746
1481
|
});
|
747
1482
|
}
|
748
|
-
|
749
|
-
|
750
|
-
|
1483
|
+
deleteBranch({
|
1484
|
+
workspace,
|
1485
|
+
region,
|
1486
|
+
database,
|
1487
|
+
branch
|
1488
|
+
}) {
|
1489
|
+
return operationsByTag.branch.deleteBranch({
|
1490
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
751
1491
|
...this.extraProps
|
752
1492
|
});
|
753
1493
|
}
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
|
1494
|
+
copyBranch({
|
1495
|
+
workspace,
|
1496
|
+
region,
|
1497
|
+
database,
|
1498
|
+
branch,
|
1499
|
+
destinationBranch,
|
1500
|
+
limit
|
1501
|
+
}) {
|
1502
|
+
return operationsByTag.branch.copyBranch({
|
1503
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
1504
|
+
body: { destinationBranch, limit },
|
1505
|
+
...this.extraProps
|
1506
|
+
});
|
1507
|
+
}
|
1508
|
+
updateBranchMetadata({
|
1509
|
+
workspace,
|
1510
|
+
region,
|
1511
|
+
database,
|
1512
|
+
branch,
|
1513
|
+
metadata
|
1514
|
+
}) {
|
1515
|
+
return operationsByTag.branch.updateBranchMetadata({
|
1516
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
1517
|
+
body: metadata,
|
1518
|
+
...this.extraProps
|
1519
|
+
});
|
1520
|
+
}
|
1521
|
+
getBranchMetadata({
|
1522
|
+
workspace,
|
1523
|
+
region,
|
1524
|
+
database,
|
1525
|
+
branch
|
1526
|
+
}) {
|
1527
|
+
return operationsByTag.branch.getBranchMetadata({
|
1528
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
758
1529
|
...this.extraProps
|
759
1530
|
});
|
760
1531
|
}
|
761
|
-
|
762
|
-
|
763
|
-
|
1532
|
+
getBranchStats({
|
1533
|
+
workspace,
|
1534
|
+
region,
|
1535
|
+
database,
|
1536
|
+
branch
|
1537
|
+
}) {
|
1538
|
+
return operationsByTag.branch.getBranchStats({
|
1539
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
1540
|
+
...this.extraProps
|
1541
|
+
});
|
1542
|
+
}
|
1543
|
+
getGitBranchesMapping({
|
1544
|
+
workspace,
|
1545
|
+
region,
|
1546
|
+
database
|
1547
|
+
}) {
|
1548
|
+
return operationsByTag.branch.getGitBranchesMapping({
|
1549
|
+
pathParams: { workspace, region, dbName: database },
|
1550
|
+
...this.extraProps
|
1551
|
+
});
|
1552
|
+
}
|
1553
|
+
addGitBranchesEntry({
|
1554
|
+
workspace,
|
1555
|
+
region,
|
1556
|
+
database,
|
1557
|
+
gitBranch,
|
1558
|
+
xataBranch
|
1559
|
+
}) {
|
1560
|
+
return operationsByTag.branch.addGitBranchesEntry({
|
1561
|
+
pathParams: { workspace, region, dbName: database },
|
1562
|
+
body: { gitBranch, xataBranch },
|
1563
|
+
...this.extraProps
|
1564
|
+
});
|
1565
|
+
}
|
1566
|
+
removeGitBranchesEntry({
|
1567
|
+
workspace,
|
1568
|
+
region,
|
1569
|
+
database,
|
1570
|
+
gitBranch
|
1571
|
+
}) {
|
1572
|
+
return operationsByTag.branch.removeGitBranchesEntry({
|
1573
|
+
pathParams: { workspace, region, dbName: database },
|
764
1574
|
queryParams: { gitBranch },
|
765
1575
|
...this.extraProps
|
766
1576
|
});
|
767
1577
|
}
|
768
|
-
resolveBranch(
|
769
|
-
|
770
|
-
|
1578
|
+
resolveBranch({
|
1579
|
+
workspace,
|
1580
|
+
region,
|
1581
|
+
database,
|
1582
|
+
gitBranch,
|
1583
|
+
fallbackBranch
|
1584
|
+
}) {
|
1585
|
+
return operationsByTag.branch.resolveBranch({
|
1586
|
+
pathParams: { workspace, region, dbName: database },
|
771
1587
|
queryParams: { gitBranch, fallbackBranch },
|
772
1588
|
...this.extraProps
|
773
1589
|
});
|
774
1590
|
}
|
775
1591
|
}
|
776
|
-
class
|
1592
|
+
class TableApi {
|
777
1593
|
constructor(extraProps) {
|
778
1594
|
this.extraProps = extraProps;
|
779
1595
|
}
|
780
|
-
|
781
|
-
|
782
|
-
|
1596
|
+
createTable({
|
1597
|
+
workspace,
|
1598
|
+
region,
|
1599
|
+
database,
|
1600
|
+
branch,
|
1601
|
+
table
|
1602
|
+
}) {
|
1603
|
+
return operationsByTag.table.createTable({
|
1604
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
783
1605
|
...this.extraProps
|
784
1606
|
});
|
785
1607
|
}
|
786
|
-
|
787
|
-
|
788
|
-
|
1608
|
+
deleteTable({
|
1609
|
+
workspace,
|
1610
|
+
region,
|
1611
|
+
database,
|
1612
|
+
branch,
|
1613
|
+
table
|
1614
|
+
}) {
|
1615
|
+
return operationsByTag.table.deleteTable({
|
1616
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
789
1617
|
...this.extraProps
|
790
1618
|
});
|
791
1619
|
}
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
1620
|
+
updateTable({
|
1621
|
+
workspace,
|
1622
|
+
region,
|
1623
|
+
database,
|
1624
|
+
branch,
|
1625
|
+
table,
|
1626
|
+
update
|
1627
|
+
}) {
|
1628
|
+
return operationsByTag.table.updateTable({
|
1629
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
1630
|
+
body: update,
|
797
1631
|
...this.extraProps
|
798
1632
|
});
|
799
1633
|
}
|
800
|
-
|
801
|
-
|
802
|
-
|
1634
|
+
getTableSchema({
|
1635
|
+
workspace,
|
1636
|
+
region,
|
1637
|
+
database,
|
1638
|
+
branch,
|
1639
|
+
table
|
1640
|
+
}) {
|
1641
|
+
return operationsByTag.table.getTableSchema({
|
1642
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
803
1643
|
...this.extraProps
|
804
1644
|
});
|
805
1645
|
}
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
1646
|
+
setTableSchema({
|
1647
|
+
workspace,
|
1648
|
+
region,
|
1649
|
+
database,
|
1650
|
+
branch,
|
1651
|
+
table,
|
1652
|
+
schema
|
1653
|
+
}) {
|
1654
|
+
return operationsByTag.table.setTableSchema({
|
1655
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
1656
|
+
body: schema,
|
810
1657
|
...this.extraProps
|
811
1658
|
});
|
812
1659
|
}
|
813
|
-
|
814
|
-
|
815
|
-
|
1660
|
+
getTableColumns({
|
1661
|
+
workspace,
|
1662
|
+
region,
|
1663
|
+
database,
|
1664
|
+
branch,
|
1665
|
+
table
|
1666
|
+
}) {
|
1667
|
+
return operationsByTag.table.getTableColumns({
|
1668
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
816
1669
|
...this.extraProps
|
817
1670
|
});
|
818
1671
|
}
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
1672
|
+
addTableColumn({
|
1673
|
+
workspace,
|
1674
|
+
region,
|
1675
|
+
database,
|
1676
|
+
branch,
|
1677
|
+
table,
|
1678
|
+
column
|
1679
|
+
}) {
|
1680
|
+
return operationsByTag.table.addTableColumn({
|
1681
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
1682
|
+
body: column,
|
823
1683
|
...this.extraProps
|
824
1684
|
});
|
825
1685
|
}
|
826
|
-
|
827
|
-
|
828
|
-
|
829
|
-
|
1686
|
+
getColumn({
|
1687
|
+
workspace,
|
1688
|
+
region,
|
1689
|
+
database,
|
1690
|
+
branch,
|
1691
|
+
table,
|
1692
|
+
column
|
1693
|
+
}) {
|
1694
|
+
return operationsByTag.table.getColumn({
|
1695
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, columnName: column },
|
830
1696
|
...this.extraProps
|
831
1697
|
});
|
832
1698
|
}
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
1699
|
+
updateColumn({
|
1700
|
+
workspace,
|
1701
|
+
region,
|
1702
|
+
database,
|
1703
|
+
branch,
|
1704
|
+
table,
|
1705
|
+
column,
|
1706
|
+
update
|
1707
|
+
}) {
|
1708
|
+
return operationsByTag.table.updateColumn({
|
1709
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, columnName: column },
|
1710
|
+
body: update,
|
837
1711
|
...this.extraProps
|
838
1712
|
});
|
839
1713
|
}
|
840
|
-
|
841
|
-
|
842
|
-
|
1714
|
+
deleteColumn({
|
1715
|
+
workspace,
|
1716
|
+
region,
|
1717
|
+
database,
|
1718
|
+
branch,
|
1719
|
+
table,
|
1720
|
+
column
|
1721
|
+
}) {
|
1722
|
+
return operationsByTag.table.deleteColumn({
|
1723
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, columnName: column },
|
843
1724
|
...this.extraProps
|
844
1725
|
});
|
845
1726
|
}
|
846
1727
|
}
|
847
|
-
class
|
1728
|
+
class RecordsApi {
|
848
1729
|
constructor(extraProps) {
|
849
1730
|
this.extraProps = extraProps;
|
850
1731
|
}
|
851
|
-
|
852
|
-
|
853
|
-
|
1732
|
+
insertRecord({
|
1733
|
+
workspace,
|
1734
|
+
region,
|
1735
|
+
database,
|
1736
|
+
branch,
|
1737
|
+
table,
|
1738
|
+
record,
|
1739
|
+
columns
|
1740
|
+
}) {
|
1741
|
+
return operationsByTag.records.insertRecord({
|
1742
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
1743
|
+
queryParams: { columns },
|
1744
|
+
body: record,
|
854
1745
|
...this.extraProps
|
855
1746
|
});
|
856
1747
|
}
|
857
|
-
|
858
|
-
|
859
|
-
|
1748
|
+
getRecord({
|
1749
|
+
workspace,
|
1750
|
+
region,
|
1751
|
+
database,
|
1752
|
+
branch,
|
1753
|
+
table,
|
1754
|
+
id,
|
1755
|
+
columns
|
1756
|
+
}) {
|
1757
|
+
return operationsByTag.records.getRecord({
|
1758
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
|
1759
|
+
queryParams: { columns },
|
860
1760
|
...this.extraProps
|
861
1761
|
});
|
862
1762
|
}
|
863
|
-
|
864
|
-
|
865
|
-
|
866
|
-
|
1763
|
+
insertRecordWithID({
|
1764
|
+
workspace,
|
1765
|
+
region,
|
1766
|
+
database,
|
1767
|
+
branch,
|
1768
|
+
table,
|
1769
|
+
id,
|
1770
|
+
record,
|
1771
|
+
columns,
|
1772
|
+
createOnly,
|
1773
|
+
ifVersion
|
1774
|
+
}) {
|
1775
|
+
return operationsByTag.records.insertRecordWithID({
|
1776
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
|
1777
|
+
queryParams: { columns, createOnly, ifVersion },
|
1778
|
+
body: record,
|
867
1779
|
...this.extraProps
|
868
1780
|
});
|
869
1781
|
}
|
870
|
-
|
871
|
-
|
872
|
-
|
1782
|
+
updateRecordWithID({
|
1783
|
+
workspace,
|
1784
|
+
region,
|
1785
|
+
database,
|
1786
|
+
branch,
|
1787
|
+
table,
|
1788
|
+
id,
|
1789
|
+
record,
|
1790
|
+
columns,
|
1791
|
+
ifVersion
|
1792
|
+
}) {
|
1793
|
+
return operationsByTag.records.updateRecordWithID({
|
1794
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
|
1795
|
+
queryParams: { columns, ifVersion },
|
1796
|
+
body: record,
|
873
1797
|
...this.extraProps
|
874
1798
|
});
|
875
1799
|
}
|
876
|
-
|
877
|
-
|
878
|
-
|
879
|
-
|
1800
|
+
upsertRecordWithID({
|
1801
|
+
workspace,
|
1802
|
+
region,
|
1803
|
+
database,
|
1804
|
+
branch,
|
1805
|
+
table,
|
1806
|
+
id,
|
1807
|
+
record,
|
1808
|
+
columns,
|
1809
|
+
ifVersion
|
1810
|
+
}) {
|
1811
|
+
return operationsByTag.records.upsertRecordWithID({
|
1812
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
|
1813
|
+
queryParams: { columns, ifVersion },
|
1814
|
+
body: record,
|
880
1815
|
...this.extraProps
|
881
1816
|
});
|
882
1817
|
}
|
883
|
-
|
884
|
-
|
885
|
-
|
1818
|
+
deleteRecord({
|
1819
|
+
workspace,
|
1820
|
+
region,
|
1821
|
+
database,
|
1822
|
+
branch,
|
1823
|
+
table,
|
1824
|
+
id,
|
1825
|
+
columns
|
1826
|
+
}) {
|
1827
|
+
return operationsByTag.records.deleteRecord({
|
1828
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
|
1829
|
+
queryParams: { columns },
|
886
1830
|
...this.extraProps
|
887
1831
|
});
|
888
1832
|
}
|
889
|
-
|
890
|
-
|
891
|
-
|
892
|
-
|
1833
|
+
bulkInsertTableRecords({
|
1834
|
+
workspace,
|
1835
|
+
region,
|
1836
|
+
database,
|
1837
|
+
branch,
|
1838
|
+
table,
|
1839
|
+
records,
|
1840
|
+
columns
|
1841
|
+
}) {
|
1842
|
+
return operationsByTag.records.bulkInsertTableRecords({
|
1843
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
1844
|
+
queryParams: { columns },
|
1845
|
+
body: { records },
|
893
1846
|
...this.extraProps
|
894
1847
|
});
|
895
1848
|
}
|
896
|
-
|
897
|
-
|
898
|
-
|
1849
|
+
branchTransaction({
|
1850
|
+
workspace,
|
1851
|
+
region,
|
1852
|
+
database,
|
1853
|
+
branch,
|
1854
|
+
operations
|
1855
|
+
}) {
|
1856
|
+
return operationsByTag.records.branchTransaction({
|
1857
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
1858
|
+
body: { operations },
|
899
1859
|
...this.extraProps
|
900
1860
|
});
|
901
1861
|
}
|
902
|
-
|
903
|
-
|
904
|
-
|
1862
|
+
}
|
1863
|
+
class FilesApi {
|
1864
|
+
constructor(extraProps) {
|
1865
|
+
this.extraProps = extraProps;
|
1866
|
+
}
|
1867
|
+
getFileItem({
|
1868
|
+
workspace,
|
1869
|
+
region,
|
1870
|
+
database,
|
1871
|
+
branch,
|
1872
|
+
table,
|
1873
|
+
record,
|
1874
|
+
column,
|
1875
|
+
fileId
|
1876
|
+
}) {
|
1877
|
+
return operationsByTag.files.getFileItem({
|
1878
|
+
pathParams: {
|
1879
|
+
workspace,
|
1880
|
+
region,
|
1881
|
+
dbBranchName: `${database}:${branch}`,
|
1882
|
+
tableName: table,
|
1883
|
+
recordId: record,
|
1884
|
+
columnName: column,
|
1885
|
+
fileId
|
1886
|
+
},
|
905
1887
|
...this.extraProps
|
906
1888
|
});
|
907
1889
|
}
|
908
|
-
|
909
|
-
|
910
|
-
|
911
|
-
|
1890
|
+
putFileItem({
|
1891
|
+
workspace,
|
1892
|
+
region,
|
1893
|
+
database,
|
1894
|
+
branch,
|
1895
|
+
table,
|
1896
|
+
record,
|
1897
|
+
column,
|
1898
|
+
fileId,
|
1899
|
+
file
|
1900
|
+
}) {
|
1901
|
+
return operationsByTag.files.putFileItem({
|
1902
|
+
pathParams: {
|
1903
|
+
workspace,
|
1904
|
+
region,
|
1905
|
+
dbBranchName: `${database}:${branch}`,
|
1906
|
+
tableName: table,
|
1907
|
+
recordId: record,
|
1908
|
+
columnName: column,
|
1909
|
+
fileId
|
1910
|
+
},
|
1911
|
+
// @ts-ignore
|
1912
|
+
body: file,
|
1913
|
+
...this.extraProps
|
1914
|
+
});
|
1915
|
+
}
|
1916
|
+
deleteFileItem({
|
1917
|
+
workspace,
|
1918
|
+
region,
|
1919
|
+
database,
|
1920
|
+
branch,
|
1921
|
+
table,
|
1922
|
+
record,
|
1923
|
+
column,
|
1924
|
+
fileId
|
1925
|
+
}) {
|
1926
|
+
return operationsByTag.files.deleteFileItem({
|
1927
|
+
pathParams: {
|
1928
|
+
workspace,
|
1929
|
+
region,
|
1930
|
+
dbBranchName: `${database}:${branch}`,
|
1931
|
+
tableName: table,
|
1932
|
+
recordId: record,
|
1933
|
+
columnName: column,
|
1934
|
+
fileId
|
1935
|
+
},
|
1936
|
+
...this.extraProps
|
1937
|
+
});
|
1938
|
+
}
|
1939
|
+
getFile({
|
1940
|
+
workspace,
|
1941
|
+
region,
|
1942
|
+
database,
|
1943
|
+
branch,
|
1944
|
+
table,
|
1945
|
+
record,
|
1946
|
+
column
|
1947
|
+
}) {
|
1948
|
+
return operationsByTag.files.getFile({
|
1949
|
+
pathParams: {
|
1950
|
+
workspace,
|
1951
|
+
region,
|
1952
|
+
dbBranchName: `${database}:${branch}`,
|
1953
|
+
tableName: table,
|
1954
|
+
recordId: record,
|
1955
|
+
columnName: column
|
1956
|
+
},
|
1957
|
+
...this.extraProps
|
1958
|
+
});
|
1959
|
+
}
|
1960
|
+
putFile({
|
1961
|
+
workspace,
|
1962
|
+
region,
|
1963
|
+
database,
|
1964
|
+
branch,
|
1965
|
+
table,
|
1966
|
+
record,
|
1967
|
+
column,
|
1968
|
+
file
|
1969
|
+
}) {
|
1970
|
+
return operationsByTag.files.putFile({
|
1971
|
+
pathParams: {
|
1972
|
+
workspace,
|
1973
|
+
region,
|
1974
|
+
dbBranchName: `${database}:${branch}`,
|
1975
|
+
tableName: table,
|
1976
|
+
recordId: record,
|
1977
|
+
columnName: column
|
1978
|
+
},
|
1979
|
+
body: file,
|
1980
|
+
...this.extraProps
|
1981
|
+
});
|
1982
|
+
}
|
1983
|
+
deleteFile({
|
1984
|
+
workspace,
|
1985
|
+
region,
|
1986
|
+
database,
|
1987
|
+
branch,
|
1988
|
+
table,
|
1989
|
+
record,
|
1990
|
+
column
|
1991
|
+
}) {
|
1992
|
+
return operationsByTag.files.deleteFile({
|
1993
|
+
pathParams: {
|
1994
|
+
workspace,
|
1995
|
+
region,
|
1996
|
+
dbBranchName: `${database}:${branch}`,
|
1997
|
+
tableName: table,
|
1998
|
+
recordId: record,
|
1999
|
+
columnName: column
|
2000
|
+
},
|
2001
|
+
...this.extraProps
|
2002
|
+
});
|
2003
|
+
}
|
2004
|
+
fileAccess({
|
2005
|
+
workspace,
|
2006
|
+
region,
|
2007
|
+
fileId,
|
2008
|
+
verify
|
2009
|
+
}) {
|
2010
|
+
return operationsByTag.files.fileAccess({
|
2011
|
+
pathParams: {
|
2012
|
+
workspace,
|
2013
|
+
region,
|
2014
|
+
fileId
|
2015
|
+
},
|
2016
|
+
queryParams: { verify },
|
912
2017
|
...this.extraProps
|
913
2018
|
});
|
914
2019
|
}
|
915
2020
|
}
|
916
|
-
class
|
2021
|
+
class SearchAndFilterApi {
|
2022
|
+
constructor(extraProps) {
|
2023
|
+
this.extraProps = extraProps;
|
2024
|
+
}
|
2025
|
+
queryTable({
|
2026
|
+
workspace,
|
2027
|
+
region,
|
2028
|
+
database,
|
2029
|
+
branch,
|
2030
|
+
table,
|
2031
|
+
filter,
|
2032
|
+
sort,
|
2033
|
+
page,
|
2034
|
+
columns,
|
2035
|
+
consistency
|
2036
|
+
}) {
|
2037
|
+
return operationsByTag.searchAndFilter.queryTable({
|
2038
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
2039
|
+
body: { filter, sort, page, columns, consistency },
|
2040
|
+
...this.extraProps
|
2041
|
+
});
|
2042
|
+
}
|
2043
|
+
searchTable({
|
2044
|
+
workspace,
|
2045
|
+
region,
|
2046
|
+
database,
|
2047
|
+
branch,
|
2048
|
+
table,
|
2049
|
+
query,
|
2050
|
+
fuzziness,
|
2051
|
+
target,
|
2052
|
+
prefix,
|
2053
|
+
filter,
|
2054
|
+
highlight,
|
2055
|
+
boosters
|
2056
|
+
}) {
|
2057
|
+
return operationsByTag.searchAndFilter.searchTable({
|
2058
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
2059
|
+
body: { query, fuzziness, target, prefix, filter, highlight, boosters },
|
2060
|
+
...this.extraProps
|
2061
|
+
});
|
2062
|
+
}
|
2063
|
+
searchBranch({
|
2064
|
+
workspace,
|
2065
|
+
region,
|
2066
|
+
database,
|
2067
|
+
branch,
|
2068
|
+
tables,
|
2069
|
+
query,
|
2070
|
+
fuzziness,
|
2071
|
+
prefix,
|
2072
|
+
highlight
|
2073
|
+
}) {
|
2074
|
+
return operationsByTag.searchAndFilter.searchBranch({
|
2075
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
2076
|
+
body: { tables, query, fuzziness, prefix, highlight },
|
2077
|
+
...this.extraProps
|
2078
|
+
});
|
2079
|
+
}
|
2080
|
+
vectorSearchTable({
|
2081
|
+
workspace,
|
2082
|
+
region,
|
2083
|
+
database,
|
2084
|
+
branch,
|
2085
|
+
table,
|
2086
|
+
queryVector,
|
2087
|
+
column,
|
2088
|
+
similarityFunction,
|
2089
|
+
size,
|
2090
|
+
filter
|
2091
|
+
}) {
|
2092
|
+
return operationsByTag.searchAndFilter.vectorSearchTable({
|
2093
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
2094
|
+
body: { queryVector, column, similarityFunction, size, filter },
|
2095
|
+
...this.extraProps
|
2096
|
+
});
|
2097
|
+
}
|
2098
|
+
askTable({
|
2099
|
+
workspace,
|
2100
|
+
region,
|
2101
|
+
database,
|
2102
|
+
branch,
|
2103
|
+
table,
|
2104
|
+
options
|
2105
|
+
}) {
|
2106
|
+
return operationsByTag.searchAndFilter.askTable({
|
2107
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
2108
|
+
body: { ...options },
|
2109
|
+
...this.extraProps
|
2110
|
+
});
|
2111
|
+
}
|
2112
|
+
summarizeTable({
|
2113
|
+
workspace,
|
2114
|
+
region,
|
2115
|
+
database,
|
2116
|
+
branch,
|
2117
|
+
table,
|
2118
|
+
filter,
|
2119
|
+
columns,
|
2120
|
+
summaries,
|
2121
|
+
sort,
|
2122
|
+
summariesFilter,
|
2123
|
+
page,
|
2124
|
+
consistency
|
2125
|
+
}) {
|
2126
|
+
return operationsByTag.searchAndFilter.summarizeTable({
|
2127
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
2128
|
+
body: { filter, columns, summaries, sort, summariesFilter, page, consistency },
|
2129
|
+
...this.extraProps
|
2130
|
+
});
|
2131
|
+
}
|
2132
|
+
aggregateTable({
|
2133
|
+
workspace,
|
2134
|
+
region,
|
2135
|
+
database,
|
2136
|
+
branch,
|
2137
|
+
table,
|
2138
|
+
filter,
|
2139
|
+
aggs
|
2140
|
+
}) {
|
2141
|
+
return operationsByTag.searchAndFilter.aggregateTable({
|
2142
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
2143
|
+
body: { filter, aggs },
|
2144
|
+
...this.extraProps
|
2145
|
+
});
|
2146
|
+
}
|
2147
|
+
}
|
2148
|
+
class MigrationRequestsApi {
|
2149
|
+
constructor(extraProps) {
|
2150
|
+
this.extraProps = extraProps;
|
2151
|
+
}
|
2152
|
+
queryMigrationRequests({
|
2153
|
+
workspace,
|
2154
|
+
region,
|
2155
|
+
database,
|
2156
|
+
filter,
|
2157
|
+
sort,
|
2158
|
+
page,
|
2159
|
+
columns
|
2160
|
+
}) {
|
2161
|
+
return operationsByTag.migrationRequests.queryMigrationRequests({
|
2162
|
+
pathParams: { workspace, region, dbName: database },
|
2163
|
+
body: { filter, sort, page, columns },
|
2164
|
+
...this.extraProps
|
2165
|
+
});
|
2166
|
+
}
|
2167
|
+
createMigrationRequest({
|
2168
|
+
workspace,
|
2169
|
+
region,
|
2170
|
+
database,
|
2171
|
+
migration
|
2172
|
+
}) {
|
2173
|
+
return operationsByTag.migrationRequests.createMigrationRequest({
|
2174
|
+
pathParams: { workspace, region, dbName: database },
|
2175
|
+
body: migration,
|
2176
|
+
...this.extraProps
|
2177
|
+
});
|
2178
|
+
}
|
2179
|
+
getMigrationRequest({
|
2180
|
+
workspace,
|
2181
|
+
region,
|
2182
|
+
database,
|
2183
|
+
migrationRequest
|
2184
|
+
}) {
|
2185
|
+
return operationsByTag.migrationRequests.getMigrationRequest({
|
2186
|
+
pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
|
2187
|
+
...this.extraProps
|
2188
|
+
});
|
2189
|
+
}
|
2190
|
+
updateMigrationRequest({
|
2191
|
+
workspace,
|
2192
|
+
region,
|
2193
|
+
database,
|
2194
|
+
migrationRequest,
|
2195
|
+
update
|
2196
|
+
}) {
|
2197
|
+
return operationsByTag.migrationRequests.updateMigrationRequest({
|
2198
|
+
pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
|
2199
|
+
body: update,
|
2200
|
+
...this.extraProps
|
2201
|
+
});
|
2202
|
+
}
|
2203
|
+
listMigrationRequestsCommits({
|
2204
|
+
workspace,
|
2205
|
+
region,
|
2206
|
+
database,
|
2207
|
+
migrationRequest,
|
2208
|
+
page
|
2209
|
+
}) {
|
2210
|
+
return operationsByTag.migrationRequests.listMigrationRequestsCommits({
|
2211
|
+
pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
|
2212
|
+
body: { page },
|
2213
|
+
...this.extraProps
|
2214
|
+
});
|
2215
|
+
}
|
2216
|
+
compareMigrationRequest({
|
2217
|
+
workspace,
|
2218
|
+
region,
|
2219
|
+
database,
|
2220
|
+
migrationRequest
|
2221
|
+
}) {
|
2222
|
+
return operationsByTag.migrationRequests.compareMigrationRequest({
|
2223
|
+
pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
|
2224
|
+
...this.extraProps
|
2225
|
+
});
|
2226
|
+
}
|
2227
|
+
getMigrationRequestIsMerged({
|
2228
|
+
workspace,
|
2229
|
+
region,
|
2230
|
+
database,
|
2231
|
+
migrationRequest
|
2232
|
+
}) {
|
2233
|
+
return operationsByTag.migrationRequests.getMigrationRequestIsMerged({
|
2234
|
+
pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
|
2235
|
+
...this.extraProps
|
2236
|
+
});
|
2237
|
+
}
|
2238
|
+
mergeMigrationRequest({
|
2239
|
+
workspace,
|
2240
|
+
region,
|
2241
|
+
database,
|
2242
|
+
migrationRequest
|
2243
|
+
}) {
|
2244
|
+
return operationsByTag.migrationRequests.mergeMigrationRequest({
|
2245
|
+
pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
|
2246
|
+
...this.extraProps
|
2247
|
+
});
|
2248
|
+
}
|
2249
|
+
}
|
2250
|
+
class MigrationsApi {
|
2251
|
+
constructor(extraProps) {
|
2252
|
+
this.extraProps = extraProps;
|
2253
|
+
}
|
2254
|
+
getBranchMigrationHistory({
|
2255
|
+
workspace,
|
2256
|
+
region,
|
2257
|
+
database,
|
2258
|
+
branch,
|
2259
|
+
limit,
|
2260
|
+
startFrom
|
2261
|
+
}) {
|
2262
|
+
return operationsByTag.migrations.getBranchMigrationHistory({
|
2263
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
2264
|
+
body: { limit, startFrom },
|
2265
|
+
...this.extraProps
|
2266
|
+
});
|
2267
|
+
}
|
2268
|
+
getBranchMigrationPlan({
|
2269
|
+
workspace,
|
2270
|
+
region,
|
2271
|
+
database,
|
2272
|
+
branch,
|
2273
|
+
schema
|
2274
|
+
}) {
|
2275
|
+
return operationsByTag.migrations.getBranchMigrationPlan({
|
2276
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
2277
|
+
body: schema,
|
2278
|
+
...this.extraProps
|
2279
|
+
});
|
2280
|
+
}
|
2281
|
+
executeBranchMigrationPlan({
|
2282
|
+
workspace,
|
2283
|
+
region,
|
2284
|
+
database,
|
2285
|
+
branch,
|
2286
|
+
plan
|
2287
|
+
}) {
|
2288
|
+
return operationsByTag.migrations.executeBranchMigrationPlan({
|
2289
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
2290
|
+
body: plan,
|
2291
|
+
...this.extraProps
|
2292
|
+
});
|
2293
|
+
}
|
2294
|
+
getBranchSchemaHistory({
|
2295
|
+
workspace,
|
2296
|
+
region,
|
2297
|
+
database,
|
2298
|
+
branch,
|
2299
|
+
page
|
2300
|
+
}) {
|
2301
|
+
return operationsByTag.migrations.getBranchSchemaHistory({
|
2302
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
2303
|
+
body: { page },
|
2304
|
+
...this.extraProps
|
2305
|
+
});
|
2306
|
+
}
|
2307
|
+
compareBranchWithUserSchema({
|
2308
|
+
workspace,
|
2309
|
+
region,
|
2310
|
+
database,
|
2311
|
+
branch,
|
2312
|
+
schema,
|
2313
|
+
schemaOperations,
|
2314
|
+
branchOperations
|
2315
|
+
}) {
|
2316
|
+
return operationsByTag.migrations.compareBranchWithUserSchema({
|
2317
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
2318
|
+
body: { schema, schemaOperations, branchOperations },
|
2319
|
+
...this.extraProps
|
2320
|
+
});
|
2321
|
+
}
|
2322
|
+
compareBranchSchemas({
|
2323
|
+
workspace,
|
2324
|
+
region,
|
2325
|
+
database,
|
2326
|
+
branch,
|
2327
|
+
compare,
|
2328
|
+
sourceBranchOperations,
|
2329
|
+
targetBranchOperations
|
2330
|
+
}) {
|
2331
|
+
return operationsByTag.migrations.compareBranchSchemas({
|
2332
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, branchName: compare },
|
2333
|
+
body: { sourceBranchOperations, targetBranchOperations },
|
2334
|
+
...this.extraProps
|
2335
|
+
});
|
2336
|
+
}
|
2337
|
+
updateBranchSchema({
|
2338
|
+
workspace,
|
2339
|
+
region,
|
2340
|
+
database,
|
2341
|
+
branch,
|
2342
|
+
migration
|
2343
|
+
}) {
|
2344
|
+
return operationsByTag.migrations.updateBranchSchema({
|
2345
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
2346
|
+
body: migration,
|
2347
|
+
...this.extraProps
|
2348
|
+
});
|
2349
|
+
}
|
2350
|
+
previewBranchSchemaEdit({
|
2351
|
+
workspace,
|
2352
|
+
region,
|
2353
|
+
database,
|
2354
|
+
branch,
|
2355
|
+
data
|
2356
|
+
}) {
|
2357
|
+
return operationsByTag.migrations.previewBranchSchemaEdit({
|
2358
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
2359
|
+
body: data,
|
2360
|
+
...this.extraProps
|
2361
|
+
});
|
2362
|
+
}
|
2363
|
+
applyBranchSchemaEdit({
|
2364
|
+
workspace,
|
2365
|
+
region,
|
2366
|
+
database,
|
2367
|
+
branch,
|
2368
|
+
edits
|
2369
|
+
}) {
|
2370
|
+
return operationsByTag.migrations.applyBranchSchemaEdit({
|
2371
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
2372
|
+
body: { edits },
|
2373
|
+
...this.extraProps
|
2374
|
+
});
|
2375
|
+
}
|
2376
|
+
pushBranchMigrations({
|
2377
|
+
workspace,
|
2378
|
+
region,
|
2379
|
+
database,
|
2380
|
+
branch,
|
2381
|
+
migrations
|
2382
|
+
}) {
|
2383
|
+
return operationsByTag.migrations.pushBranchMigrations({
|
2384
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
2385
|
+
body: { migrations },
|
2386
|
+
...this.extraProps
|
2387
|
+
});
|
2388
|
+
}
|
2389
|
+
}
|
2390
|
+
class DatabaseApi {
|
917
2391
|
constructor(extraProps) {
|
918
2392
|
this.extraProps = extraProps;
|
919
2393
|
}
|
920
|
-
|
921
|
-
return operationsByTag.
|
922
|
-
pathParams: {
|
923
|
-
queryParams: options,
|
924
|
-
body: record,
|
2394
|
+
getDatabaseList({ workspace }) {
|
2395
|
+
return operationsByTag.databases.getDatabaseList({
|
2396
|
+
pathParams: { workspaceId: workspace },
|
925
2397
|
...this.extraProps
|
926
2398
|
});
|
927
2399
|
}
|
928
|
-
|
929
|
-
|
930
|
-
|
931
|
-
|
932
|
-
|
2400
|
+
createDatabase({
|
2401
|
+
workspace,
|
2402
|
+
database,
|
2403
|
+
data
|
2404
|
+
}) {
|
2405
|
+
return operationsByTag.databases.createDatabase({
|
2406
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
2407
|
+
body: data,
|
933
2408
|
...this.extraProps
|
934
2409
|
});
|
935
2410
|
}
|
936
|
-
|
937
|
-
|
938
|
-
|
939
|
-
|
940
|
-
|
2411
|
+
deleteDatabase({
|
2412
|
+
workspace,
|
2413
|
+
database
|
2414
|
+
}) {
|
2415
|
+
return operationsByTag.databases.deleteDatabase({
|
2416
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
941
2417
|
...this.extraProps
|
942
2418
|
});
|
943
2419
|
}
|
944
|
-
|
945
|
-
|
946
|
-
|
947
|
-
|
948
|
-
|
2420
|
+
getDatabaseMetadata({
|
2421
|
+
workspace,
|
2422
|
+
database
|
2423
|
+
}) {
|
2424
|
+
return operationsByTag.databases.getDatabaseMetadata({
|
2425
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
949
2426
|
...this.extraProps
|
950
2427
|
});
|
951
2428
|
}
|
952
|
-
|
953
|
-
|
954
|
-
|
955
|
-
|
2429
|
+
updateDatabaseMetadata({
|
2430
|
+
workspace,
|
2431
|
+
database,
|
2432
|
+
metadata
|
2433
|
+
}) {
|
2434
|
+
return operationsByTag.databases.updateDatabaseMetadata({
|
2435
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
2436
|
+
body: metadata,
|
956
2437
|
...this.extraProps
|
957
2438
|
});
|
958
2439
|
}
|
959
|
-
|
960
|
-
|
961
|
-
|
962
|
-
|
2440
|
+
renameDatabase({
|
2441
|
+
workspace,
|
2442
|
+
database,
|
2443
|
+
newName
|
2444
|
+
}) {
|
2445
|
+
return operationsByTag.databases.renameDatabase({
|
2446
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
2447
|
+
body: { newName },
|
963
2448
|
...this.extraProps
|
964
2449
|
});
|
965
2450
|
}
|
966
|
-
|
967
|
-
|
968
|
-
|
969
|
-
|
970
|
-
|
2451
|
+
getDatabaseGithubSettings({
|
2452
|
+
workspace,
|
2453
|
+
database
|
2454
|
+
}) {
|
2455
|
+
return operationsByTag.databases.getDatabaseGithubSettings({
|
2456
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
971
2457
|
...this.extraProps
|
972
2458
|
});
|
973
2459
|
}
|
974
|
-
|
975
|
-
|
976
|
-
|
977
|
-
|
2460
|
+
updateDatabaseGithubSettings({
|
2461
|
+
workspace,
|
2462
|
+
database,
|
2463
|
+
settings
|
2464
|
+
}) {
|
2465
|
+
return operationsByTag.databases.updateDatabaseGithubSettings({
|
2466
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
2467
|
+
body: settings,
|
978
2468
|
...this.extraProps
|
979
2469
|
});
|
980
2470
|
}
|
981
|
-
|
982
|
-
|
983
|
-
|
984
|
-
|
2471
|
+
deleteDatabaseGithubSettings({
|
2472
|
+
workspace,
|
2473
|
+
database
|
2474
|
+
}) {
|
2475
|
+
return operationsByTag.databases.deleteDatabaseGithubSettings({
|
2476
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
985
2477
|
...this.extraProps
|
986
2478
|
});
|
987
2479
|
}
|
988
|
-
|
989
|
-
return operationsByTag.
|
990
|
-
pathParams: {
|
991
|
-
body: query,
|
2480
|
+
listRegions({ workspace }) {
|
2481
|
+
return operationsByTag.databases.listRegions({
|
2482
|
+
pathParams: { workspaceId: workspace },
|
992
2483
|
...this.extraProps
|
993
2484
|
});
|
994
2485
|
}
|
995
2486
|
}
|
996
2487
|
|
997
2488
|
class XataApiPlugin {
|
998
|
-
|
999
|
-
|
1000
|
-
return new XataApiClient({ fetch: fetchImpl, apiKey });
|
2489
|
+
build(options) {
|
2490
|
+
return new XataApiClient(options);
|
1001
2491
|
}
|
1002
2492
|
}
|
1003
2493
|
|
1004
2494
|
class XataPlugin {
|
1005
2495
|
}
|
1006
2496
|
|
2497
|
+
function cleanFilter(filter) {
|
2498
|
+
if (!filter)
|
2499
|
+
return void 0;
|
2500
|
+
const values = Object.values(filter).filter(Boolean).filter((value) => Array.isArray(value) ? value.length > 0 : true);
|
2501
|
+
return values.length > 0 ? filter : void 0;
|
2502
|
+
}
|
2503
|
+
|
1007
2504
|
var __accessCheck$6 = (obj, member, msg) => {
|
1008
2505
|
if (!member.has(obj))
|
1009
2506
|
throw TypeError("Cannot " + msg);
|
@@ -1030,18 +2527,46 @@ class Page {
|
|
1030
2527
|
this.meta = meta;
|
1031
2528
|
this.records = new RecordArray(this, records);
|
1032
2529
|
}
|
2530
|
+
/**
|
2531
|
+
* Retrieves the next page of results.
|
2532
|
+
* @param size Maximum number of results to be retrieved.
|
2533
|
+
* @param offset Number of results to skip when retrieving the results.
|
2534
|
+
* @returns The next page or results.
|
2535
|
+
*/
|
1033
2536
|
async nextPage(size, offset) {
|
1034
2537
|
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, after: this.meta.page.cursor } });
|
1035
2538
|
}
|
2539
|
+
/**
|
2540
|
+
* Retrieves the previous page of results.
|
2541
|
+
* @param size Maximum number of results to be retrieved.
|
2542
|
+
* @param offset Number of results to skip when retrieving the results.
|
2543
|
+
* @returns The previous page or results.
|
2544
|
+
*/
|
1036
2545
|
async previousPage(size, offset) {
|
1037
2546
|
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, before: this.meta.page.cursor } });
|
1038
2547
|
}
|
1039
|
-
|
1040
|
-
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
2548
|
+
/**
|
2549
|
+
* Retrieves the start page of results.
|
2550
|
+
* @param size Maximum number of results to be retrieved.
|
2551
|
+
* @param offset Number of results to skip when retrieving the results.
|
2552
|
+
* @returns The start page or results.
|
2553
|
+
*/
|
2554
|
+
async startPage(size, offset) {
|
2555
|
+
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, start: this.meta.page.cursor } });
|
2556
|
+
}
|
2557
|
+
/**
|
2558
|
+
* Retrieves the end page of results.
|
2559
|
+
* @param size Maximum number of results to be retrieved.
|
2560
|
+
* @param offset Number of results to skip when retrieving the results.
|
2561
|
+
* @returns The end page or results.
|
2562
|
+
*/
|
2563
|
+
async endPage(size, offset) {
|
2564
|
+
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, end: this.meta.page.cursor } });
|
2565
|
+
}
|
2566
|
+
/**
|
2567
|
+
* Shortcut method to check if there will be additional results if the next page of results is retrieved.
|
2568
|
+
* @returns Whether or not there will be additional results in the next page of results.
|
2569
|
+
*/
|
1045
2570
|
hasNextPage() {
|
1046
2571
|
return this.meta.page.more;
|
1047
2572
|
}
|
@@ -1052,7 +2577,7 @@ const PAGINATION_DEFAULT_SIZE = 20;
|
|
1052
2577
|
const PAGINATION_MAX_OFFSET = 800;
|
1053
2578
|
const PAGINATION_DEFAULT_OFFSET = 0;
|
1054
2579
|
function isCursorPaginationOptions(options) {
|
1055
|
-
return isDefined(options) && (isDefined(options.
|
2580
|
+
return isDefined(options) && (isDefined(options.start) || isDefined(options.end) || isDefined(options.after) || isDefined(options.before));
|
1056
2581
|
}
|
1057
2582
|
const _RecordArray = class extends Array {
|
1058
2583
|
constructor(...args) {
|
@@ -1073,25 +2598,54 @@ const _RecordArray = class extends Array {
|
|
1073
2598
|
toArray() {
|
1074
2599
|
return new Array(...this);
|
1075
2600
|
}
|
2601
|
+
toSerializable() {
|
2602
|
+
return JSON.parse(this.toString());
|
2603
|
+
}
|
2604
|
+
toString() {
|
2605
|
+
return JSON.stringify(this.toArray());
|
2606
|
+
}
|
1076
2607
|
map(callbackfn, thisArg) {
|
1077
2608
|
return this.toArray().map(callbackfn, thisArg);
|
1078
2609
|
}
|
2610
|
+
/**
|
2611
|
+
* Retrieve next page of records
|
2612
|
+
*
|
2613
|
+
* @returns A new array of objects
|
2614
|
+
*/
|
1079
2615
|
async nextPage(size, offset) {
|
1080
2616
|
const newPage = await __privateGet$6(this, _page).nextPage(size, offset);
|
1081
2617
|
return new _RecordArray(newPage);
|
1082
2618
|
}
|
2619
|
+
/**
|
2620
|
+
* Retrieve previous page of records
|
2621
|
+
*
|
2622
|
+
* @returns A new array of objects
|
2623
|
+
*/
|
1083
2624
|
async previousPage(size, offset) {
|
1084
2625
|
const newPage = await __privateGet$6(this, _page).previousPage(size, offset);
|
1085
2626
|
return new _RecordArray(newPage);
|
1086
2627
|
}
|
1087
|
-
|
1088
|
-
|
2628
|
+
/**
|
2629
|
+
* Retrieve start page of records
|
2630
|
+
*
|
2631
|
+
* @returns A new array of objects
|
2632
|
+
*/
|
2633
|
+
async startPage(size, offset) {
|
2634
|
+
const newPage = await __privateGet$6(this, _page).startPage(size, offset);
|
1089
2635
|
return new _RecordArray(newPage);
|
1090
2636
|
}
|
1091
|
-
|
1092
|
-
|
2637
|
+
/**
|
2638
|
+
* Retrieve end page of records
|
2639
|
+
*
|
2640
|
+
* @returns A new array of objects
|
2641
|
+
*/
|
2642
|
+
async endPage(size, offset) {
|
2643
|
+
const newPage = await __privateGet$6(this, _page).endPage(size, offset);
|
1093
2644
|
return new _RecordArray(newPage);
|
1094
2645
|
}
|
2646
|
+
/**
|
2647
|
+
* @returns Boolean indicating if there is a next page
|
2648
|
+
*/
|
1095
2649
|
hasNextPage() {
|
1096
2650
|
return __privateGet$6(this, _page).meta.page.more;
|
1097
2651
|
}
|
@@ -1117,13 +2671,19 @@ var __privateSet$5 = (obj, member, value, setter) => {
|
|
1117
2671
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
1118
2672
|
return value;
|
1119
2673
|
};
|
1120
|
-
var
|
2674
|
+
var __privateMethod$3 = (obj, member, method) => {
|
2675
|
+
__accessCheck$5(obj, member, "access private method");
|
2676
|
+
return method;
|
2677
|
+
};
|
2678
|
+
var _table$1, _repository, _data, _cleanFilterConstraint, cleanFilterConstraint_fn;
|
1121
2679
|
const _Query = class {
|
1122
2680
|
constructor(repository, table, data, rawParent) {
|
2681
|
+
__privateAdd$5(this, _cleanFilterConstraint);
|
1123
2682
|
__privateAdd$5(this, _table$1, void 0);
|
1124
2683
|
__privateAdd$5(this, _repository, void 0);
|
1125
2684
|
__privateAdd$5(this, _data, { filter: {} });
|
1126
|
-
|
2685
|
+
// Implements pagination
|
2686
|
+
this.meta = { page: { cursor: "start", more: true, size: PAGINATION_DEFAULT_SIZE } };
|
1127
2687
|
this.records = new RecordArray(this, []);
|
1128
2688
|
__privateSet$5(this, _table$1, table);
|
1129
2689
|
if (repository) {
|
@@ -1138,9 +2698,11 @@ const _Query = class {
|
|
1138
2698
|
__privateGet$5(this, _data).filter.$not = data.filter?.$not ?? parent?.filter?.$not;
|
1139
2699
|
__privateGet$5(this, _data).filter.$none = data.filter?.$none ?? parent?.filter?.$none;
|
1140
2700
|
__privateGet$5(this, _data).sort = data.sort ?? parent?.sort;
|
1141
|
-
__privateGet$5(this, _data).columns = data.columns ?? parent?.columns
|
2701
|
+
__privateGet$5(this, _data).columns = data.columns ?? parent?.columns;
|
2702
|
+
__privateGet$5(this, _data).consistency = data.consistency ?? parent?.consistency;
|
1142
2703
|
__privateGet$5(this, _data).pagination = data.pagination ?? parent?.pagination;
|
1143
2704
|
__privateGet$5(this, _data).cache = data.cache ?? parent?.cache;
|
2705
|
+
__privateGet$5(this, _data).fetchOptions = data.fetchOptions ?? parent?.fetchOptions;
|
1144
2706
|
this.any = this.any.bind(this);
|
1145
2707
|
this.all = this.all.bind(this);
|
1146
2708
|
this.not = this.not.bind(this);
|
@@ -1158,37 +2720,65 @@ const _Query = class {
|
|
1158
2720
|
const key = JSON.stringify({ columns, filter, sort, pagination });
|
1159
2721
|
return toBase64(key);
|
1160
2722
|
}
|
2723
|
+
/**
|
2724
|
+
* Builds a new query object representing a logical OR between the given subqueries.
|
2725
|
+
* @param queries An array of subqueries.
|
2726
|
+
* @returns A new Query object.
|
2727
|
+
*/
|
1161
2728
|
any(...queries) {
|
1162
2729
|
const $any = queries.map((query) => query.getQueryOptions().filter ?? {});
|
1163
2730
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $any } }, __privateGet$5(this, _data));
|
1164
2731
|
}
|
2732
|
+
/**
|
2733
|
+
* Builds a new query object representing a logical AND between the given subqueries.
|
2734
|
+
* @param queries An array of subqueries.
|
2735
|
+
* @returns A new Query object.
|
2736
|
+
*/
|
1165
2737
|
all(...queries) {
|
1166
2738
|
const $all = queries.map((query) => query.getQueryOptions().filter ?? {});
|
1167
2739
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
1168
2740
|
}
|
2741
|
+
/**
|
2742
|
+
* Builds a new query object representing a logical OR negating each subquery. In pseudo-code: !q1 OR !q2
|
2743
|
+
* @param queries An array of subqueries.
|
2744
|
+
* @returns A new Query object.
|
2745
|
+
*/
|
1169
2746
|
not(...queries) {
|
1170
2747
|
const $not = queries.map((query) => query.getQueryOptions().filter ?? {});
|
1171
2748
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $not } }, __privateGet$5(this, _data));
|
1172
2749
|
}
|
2750
|
+
/**
|
2751
|
+
* Builds a new query object representing a logical AND negating each subquery. In pseudo-code: !q1 AND !q2
|
2752
|
+
* @param queries An array of subqueries.
|
2753
|
+
* @returns A new Query object.
|
2754
|
+
*/
|
1173
2755
|
none(...queries) {
|
1174
2756
|
const $none = queries.map((query) => query.getQueryOptions().filter ?? {});
|
1175
2757
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $none } }, __privateGet$5(this, _data));
|
1176
2758
|
}
|
1177
2759
|
filter(a, b) {
|
1178
2760
|
if (arguments.length === 1) {
|
1179
|
-
const constraints = Object.entries(a).map(([column, constraint]) => ({
|
2761
|
+
const constraints = Object.entries(a ?? {}).map(([column, constraint]) => ({
|
2762
|
+
[column]: __privateMethod$3(this, _cleanFilterConstraint, cleanFilterConstraint_fn).call(this, column, constraint)
|
2763
|
+
}));
|
1180
2764
|
const $all = compact([__privateGet$5(this, _data).filter?.$all].flat().concat(constraints));
|
1181
2765
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
1182
2766
|
} else {
|
1183
|
-
const
|
2767
|
+
const constraints = isDefined(a) && isDefined(b) ? [{ [a]: __privateMethod$3(this, _cleanFilterConstraint, cleanFilterConstraint_fn).call(this, a, b) }] : void 0;
|
2768
|
+
const $all = compact([__privateGet$5(this, _data).filter?.$all].flat().concat(constraints));
|
1184
2769
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
1185
2770
|
}
|
1186
2771
|
}
|
1187
|
-
sort(column, direction) {
|
2772
|
+
sort(column, direction = "asc") {
|
1188
2773
|
const originalSort = [__privateGet$5(this, _data).sort ?? []].flat();
|
1189
2774
|
const sort = [...originalSort, { column, direction }];
|
1190
2775
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { sort }, __privateGet$5(this, _data));
|
1191
2776
|
}
|
2777
|
+
/**
|
2778
|
+
* Builds a new query specifying the set of columns to be returned in the query response.
|
2779
|
+
* @param columns Array of column names to be returned by the query.
|
2780
|
+
* @returns A new Query object.
|
2781
|
+
*/
|
1192
2782
|
select(columns) {
|
1193
2783
|
return new _Query(
|
1194
2784
|
__privateGet$5(this, _repository),
|
@@ -1201,6 +2791,12 @@ const _Query = class {
|
|
1201
2791
|
const query = new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), options, __privateGet$5(this, _data));
|
1202
2792
|
return __privateGet$5(this, _repository).query(query);
|
1203
2793
|
}
|
2794
|
+
/**
|
2795
|
+
* Get results in an iterator
|
2796
|
+
*
|
2797
|
+
* @async
|
2798
|
+
* @returns Async interable of results
|
2799
|
+
*/
|
1204
2800
|
async *[Symbol.asyncIterator]() {
|
1205
2801
|
for await (const [record] of this.getIterator({ batchSize: 1 })) {
|
1206
2802
|
yield record;
|
@@ -1218,11 +2814,20 @@ const _Query = class {
|
|
1218
2814
|
}
|
1219
2815
|
}
|
1220
2816
|
async getMany(options = {}) {
|
1221
|
-
const
|
2817
|
+
const { pagination = {}, ...rest } = options;
|
2818
|
+
const { size = PAGINATION_DEFAULT_SIZE, offset } = pagination;
|
2819
|
+
const batchSize = size <= PAGINATION_MAX_SIZE ? size : PAGINATION_MAX_SIZE;
|
2820
|
+
let page = await this.getPaginated({ ...rest, pagination: { size: batchSize, offset } });
|
2821
|
+
const results = [...page.records];
|
2822
|
+
while (page.hasNextPage() && results.length < size) {
|
2823
|
+
page = await page.nextPage();
|
2824
|
+
results.push(...page.records);
|
2825
|
+
}
|
1222
2826
|
if (page.hasNextPage() && options.pagination?.size === void 0) {
|
1223
2827
|
console.trace("Calling getMany does not return all results. Paginate to get all results or call getAll.");
|
1224
2828
|
}
|
1225
|
-
|
2829
|
+
const array = new RecordArray(page, results.slice(0, size));
|
2830
|
+
return array;
|
1226
2831
|
}
|
1227
2832
|
async getAll(options = {}) {
|
1228
2833
|
const { batchSize = PAGINATION_MAX_SIZE, ...rest } = options;
|
@@ -1236,21 +2841,65 @@ const _Query = class {
|
|
1236
2841
|
const records = await this.getMany({ ...options, pagination: { size: 1 } });
|
1237
2842
|
return records[0] ?? null;
|
1238
2843
|
}
|
2844
|
+
async getFirstOrThrow(options = {}) {
|
2845
|
+
const records = await this.getMany({ ...options, pagination: { size: 1 } });
|
2846
|
+
if (records[0] === void 0)
|
2847
|
+
throw new Error("No results found.");
|
2848
|
+
return records[0];
|
2849
|
+
}
|
2850
|
+
async summarize(params = {}) {
|
2851
|
+
const { summaries, summariesFilter, ...options } = params;
|
2852
|
+
const query = new _Query(
|
2853
|
+
__privateGet$5(this, _repository),
|
2854
|
+
__privateGet$5(this, _table$1),
|
2855
|
+
options,
|
2856
|
+
__privateGet$5(this, _data)
|
2857
|
+
);
|
2858
|
+
return __privateGet$5(this, _repository).summarizeTable(query, summaries, summariesFilter);
|
2859
|
+
}
|
2860
|
+
/**
|
2861
|
+
* Builds a new query object adding a cache TTL in milliseconds.
|
2862
|
+
* @param ttl The cache TTL in milliseconds.
|
2863
|
+
* @returns A new Query object.
|
2864
|
+
*/
|
1239
2865
|
cache(ttl) {
|
1240
2866
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { cache: ttl }, __privateGet$5(this, _data));
|
1241
2867
|
}
|
2868
|
+
/**
|
2869
|
+
* Retrieve next page of records
|
2870
|
+
*
|
2871
|
+
* @returns A new page object.
|
2872
|
+
*/
|
1242
2873
|
nextPage(size, offset) {
|
1243
|
-
return this.
|
2874
|
+
return this.startPage(size, offset);
|
1244
2875
|
}
|
2876
|
+
/**
|
2877
|
+
* Retrieve previous page of records
|
2878
|
+
*
|
2879
|
+
* @returns A new page object
|
2880
|
+
*/
|
1245
2881
|
previousPage(size, offset) {
|
1246
|
-
return this.
|
1247
|
-
}
|
1248
|
-
|
2882
|
+
return this.startPage(size, offset);
|
2883
|
+
}
|
2884
|
+
/**
|
2885
|
+
* Retrieve start page of records
|
2886
|
+
*
|
2887
|
+
* @returns A new page object
|
2888
|
+
*/
|
2889
|
+
startPage(size, offset) {
|
1249
2890
|
return this.getPaginated({ pagination: { size, offset } });
|
1250
2891
|
}
|
1251
|
-
|
2892
|
+
/**
|
2893
|
+
* Retrieve last page of records
|
2894
|
+
*
|
2895
|
+
* @returns A new page object
|
2896
|
+
*/
|
2897
|
+
endPage(size, offset) {
|
1252
2898
|
return this.getPaginated({ pagination: { size, offset, before: "end" } });
|
1253
2899
|
}
|
2900
|
+
/**
|
2901
|
+
* @returns Boolean indicating if there is a next page
|
2902
|
+
*/
|
1254
2903
|
hasNextPage() {
|
1255
2904
|
return this.meta.page.more;
|
1256
2905
|
}
|
@@ -1259,9 +2908,20 @@ let Query = _Query;
|
|
1259
2908
|
_table$1 = new WeakMap();
|
1260
2909
|
_repository = new WeakMap();
|
1261
2910
|
_data = new WeakMap();
|
2911
|
+
_cleanFilterConstraint = new WeakSet();
|
2912
|
+
cleanFilterConstraint_fn = function(column, value) {
|
2913
|
+
const columnType = __privateGet$5(this, _table$1).schema?.columns.find(({ name }) => name === column)?.type;
|
2914
|
+
if (columnType === "multiple" && (isString(value) || isStringArray(value))) {
|
2915
|
+
return { $includes: value };
|
2916
|
+
}
|
2917
|
+
if (columnType === "link" && isObject(value) && isString(value.id)) {
|
2918
|
+
return value.id;
|
2919
|
+
}
|
2920
|
+
return value;
|
2921
|
+
};
|
1262
2922
|
function cleanParent(data, parent) {
|
1263
2923
|
if (isCursorPaginationOptions(data.pagination)) {
|
1264
|
-
return { ...parent,
|
2924
|
+
return { ...parent, sort: void 0, filter: void 0 };
|
1265
2925
|
}
|
1266
2926
|
return parent;
|
1267
2927
|
}
|
@@ -1279,7 +2939,11 @@ function isSortFilterString(value) {
|
|
1279
2939
|
return isString(value);
|
1280
2940
|
}
|
1281
2941
|
function isSortFilterBase(filter) {
|
1282
|
-
return isObject(filter) && Object.
|
2942
|
+
return isObject(filter) && Object.entries(filter).every(([key, value]) => {
|
2943
|
+
if (key === "*")
|
2944
|
+
return value === "random";
|
2945
|
+
return value === "asc" || value === "desc";
|
2946
|
+
});
|
1283
2947
|
}
|
1284
2948
|
function isSortFilterObject(filter) {
|
1285
2949
|
return isObject(filter) && !isSortFilterBase(filter) && filter.column !== void 0;
|
@@ -1320,288 +2984,621 @@ var __privateMethod$2 = (obj, member, method) => {
|
|
1320
2984
|
__accessCheck$4(obj, member, "access private method");
|
1321
2985
|
return method;
|
1322
2986
|
};
|
1323
|
-
var _table, _getFetchProps, _cache, _schemaTables$2, _insertRecordWithoutId, insertRecordWithoutId_fn, _insertRecordWithId, insertRecordWithId_fn,
|
2987
|
+
var _table, _getFetchProps, _db, _cache, _schemaTables$2, _trace, _insertRecordWithoutId, insertRecordWithoutId_fn, _insertRecordWithId, insertRecordWithId_fn, _insertRecords, insertRecords_fn, _updateRecordWithID, updateRecordWithID_fn, _updateRecords, updateRecords_fn, _upsertRecordWithID, upsertRecordWithID_fn, _deleteRecord, deleteRecord_fn, _deleteRecords, deleteRecords_fn, _setCacheQuery, setCacheQuery_fn, _getCacheQuery, getCacheQuery_fn, _getSchemaTables$1, getSchemaTables_fn$1;
|
2988
|
+
const BULK_OPERATION_MAX_SIZE = 1e3;
|
1324
2989
|
class Repository extends Query {
|
1325
2990
|
}
|
1326
2991
|
class RestRepository extends Query {
|
1327
2992
|
constructor(options) {
|
1328
|
-
super(
|
2993
|
+
super(
|
2994
|
+
null,
|
2995
|
+
{ name: options.table, schema: options.schemaTables?.find((table) => table.name === options.table) },
|
2996
|
+
{}
|
2997
|
+
);
|
1329
2998
|
__privateAdd$4(this, _insertRecordWithoutId);
|
1330
2999
|
__privateAdd$4(this, _insertRecordWithId);
|
1331
|
-
__privateAdd$4(this,
|
3000
|
+
__privateAdd$4(this, _insertRecords);
|
1332
3001
|
__privateAdd$4(this, _updateRecordWithID);
|
3002
|
+
__privateAdd$4(this, _updateRecords);
|
1333
3003
|
__privateAdd$4(this, _upsertRecordWithID);
|
1334
3004
|
__privateAdd$4(this, _deleteRecord);
|
3005
|
+
__privateAdd$4(this, _deleteRecords);
|
1335
3006
|
__privateAdd$4(this, _setCacheQuery);
|
1336
3007
|
__privateAdd$4(this, _getCacheQuery);
|
1337
3008
|
__privateAdd$4(this, _getSchemaTables$1);
|
1338
3009
|
__privateAdd$4(this, _table, void 0);
|
1339
3010
|
__privateAdd$4(this, _getFetchProps, void 0);
|
3011
|
+
__privateAdd$4(this, _db, void 0);
|
1340
3012
|
__privateAdd$4(this, _cache, void 0);
|
1341
3013
|
__privateAdd$4(this, _schemaTables$2, void 0);
|
3014
|
+
__privateAdd$4(this, _trace, void 0);
|
1342
3015
|
__privateSet$4(this, _table, options.table);
|
1343
|
-
__privateSet$4(this,
|
1344
|
-
this.db = options.db;
|
3016
|
+
__privateSet$4(this, _db, options.db);
|
1345
3017
|
__privateSet$4(this, _cache, options.pluginOptions.cache);
|
1346
3018
|
__privateSet$4(this, _schemaTables$2, options.schemaTables);
|
3019
|
+
__privateSet$4(this, _getFetchProps, () => ({ ...options.pluginOptions, sessionID: generateUUID() }));
|
3020
|
+
const trace = options.pluginOptions.trace ?? defaultTrace;
|
3021
|
+
__privateSet$4(this, _trace, async (name, fn, options2 = {}) => {
|
3022
|
+
return trace(name, fn, {
|
3023
|
+
...options2,
|
3024
|
+
[TraceAttributes.TABLE]: __privateGet$4(this, _table),
|
3025
|
+
[TraceAttributes.KIND]: "sdk-operation",
|
3026
|
+
[TraceAttributes.VERSION]: VERSION
|
3027
|
+
});
|
3028
|
+
});
|
1347
3029
|
}
|
1348
|
-
async create(a, b, c) {
|
1349
|
-
|
1350
|
-
|
1351
|
-
|
1352
|
-
|
1353
|
-
|
1354
|
-
|
1355
|
-
|
1356
|
-
|
1357
|
-
|
1358
|
-
|
1359
|
-
|
1360
|
-
|
1361
|
-
|
1362
|
-
|
1363
|
-
|
1364
|
-
|
1365
|
-
|
1366
|
-
|
1367
|
-
|
1368
|
-
|
1369
|
-
|
1370
|
-
|
1371
|
-
|
3030
|
+
async create(a, b, c, d) {
|
3031
|
+
return __privateGet$4(this, _trace).call(this, "create", async () => {
|
3032
|
+
const ifVersion = parseIfVersion(b, c, d);
|
3033
|
+
if (Array.isArray(a)) {
|
3034
|
+
if (a.length === 0)
|
3035
|
+
return [];
|
3036
|
+
const ids = await __privateMethod$2(this, _insertRecords, insertRecords_fn).call(this, a, { ifVersion, createOnly: true });
|
3037
|
+
const columns = isStringArray(b) ? b : ["*"];
|
3038
|
+
const result = await this.read(ids, columns);
|
3039
|
+
return result;
|
3040
|
+
}
|
3041
|
+
if (isString(a) && isObject(b)) {
|
3042
|
+
if (a === "")
|
3043
|
+
throw new Error("The id can't be empty");
|
3044
|
+
const columns = isStringArray(c) ? c : void 0;
|
3045
|
+
return await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a, b, columns, { createOnly: true, ifVersion });
|
3046
|
+
}
|
3047
|
+
if (isObject(a) && isString(a.id)) {
|
3048
|
+
if (a.id === "")
|
3049
|
+
throw new Error("The id can't be empty");
|
3050
|
+
const columns = isStringArray(b) ? b : void 0;
|
3051
|
+
return await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a.id, { ...a, id: void 0 }, columns, { createOnly: true, ifVersion });
|
3052
|
+
}
|
3053
|
+
if (isObject(a)) {
|
3054
|
+
const columns = isStringArray(b) ? b : void 0;
|
3055
|
+
return __privateMethod$2(this, _insertRecordWithoutId, insertRecordWithoutId_fn).call(this, a, columns);
|
3056
|
+
}
|
3057
|
+
throw new Error("Invalid arguments for create method");
|
3058
|
+
});
|
1372
3059
|
}
|
1373
3060
|
async read(a, b) {
|
1374
|
-
|
1375
|
-
|
1376
|
-
if (a
|
1377
|
-
|
1378
|
-
|
1379
|
-
|
1380
|
-
|
1381
|
-
acc
|
1382
|
-
|
1383
|
-
|
1384
|
-
|
1385
|
-
|
1386
|
-
|
1387
|
-
|
1388
|
-
|
1389
|
-
|
1390
|
-
|
1391
|
-
|
1392
|
-
|
1393
|
-
|
3061
|
+
return __privateGet$4(this, _trace).call(this, "read", async () => {
|
3062
|
+
const columns = isStringArray(b) ? b : ["*"];
|
3063
|
+
if (Array.isArray(a)) {
|
3064
|
+
if (a.length === 0)
|
3065
|
+
return [];
|
3066
|
+
const ids = a.map((item) => extractId(item));
|
3067
|
+
const finalObjects = await this.getAll({ filter: { id: { $any: compact(ids) } }, columns });
|
3068
|
+
const dictionary = finalObjects.reduce((acc, object) => {
|
3069
|
+
acc[object.id] = object;
|
3070
|
+
return acc;
|
3071
|
+
}, {});
|
3072
|
+
return ids.map((id2) => dictionary[id2 ?? ""] ?? null);
|
3073
|
+
}
|
3074
|
+
const id = extractId(a);
|
3075
|
+
if (id) {
|
3076
|
+
try {
|
3077
|
+
const response = await getRecord({
|
3078
|
+
pathParams: {
|
3079
|
+
workspace: "{workspaceId}",
|
3080
|
+
dbBranchName: "{dbBranch}",
|
3081
|
+
region: "{region}",
|
3082
|
+
tableName: __privateGet$4(this, _table),
|
3083
|
+
recordId: id
|
3084
|
+
},
|
3085
|
+
queryParams: { columns },
|
3086
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3087
|
+
});
|
3088
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
3089
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
3090
|
+
} catch (e) {
|
3091
|
+
if (isObject(e) && e.status === 404) {
|
3092
|
+
return null;
|
3093
|
+
}
|
3094
|
+
throw e;
|
3095
|
+
}
|
3096
|
+
}
|
3097
|
+
return null;
|
3098
|
+
});
|
3099
|
+
}
|
3100
|
+
async readOrThrow(a, b) {
|
3101
|
+
return __privateGet$4(this, _trace).call(this, "readOrThrow", async () => {
|
3102
|
+
const result = await this.read(a, b);
|
3103
|
+
if (Array.isArray(result)) {
|
3104
|
+
const missingIds = compact(
|
3105
|
+
a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
|
3106
|
+
);
|
3107
|
+
if (missingIds.length > 0) {
|
3108
|
+
throw new Error(`Could not find records with ids: ${missingIds.join(", ")}`);
|
3109
|
+
}
|
3110
|
+
return result;
|
3111
|
+
}
|
3112
|
+
if (result === null) {
|
3113
|
+
const id = extractId(a) ?? "unknown";
|
3114
|
+
throw new Error(`Record with id ${id} not found`);
|
3115
|
+
}
|
3116
|
+
return result;
|
3117
|
+
});
|
3118
|
+
}
|
3119
|
+
async update(a, b, c, d) {
|
3120
|
+
return __privateGet$4(this, _trace).call(this, "update", async () => {
|
3121
|
+
const ifVersion = parseIfVersion(b, c, d);
|
3122
|
+
if (Array.isArray(a)) {
|
3123
|
+
if (a.length === 0)
|
3124
|
+
return [];
|
3125
|
+
const existing = await this.read(a, ["id"]);
|
3126
|
+
const updates = a.filter((_item, index) => existing[index] !== null);
|
3127
|
+
await __privateMethod$2(this, _updateRecords, updateRecords_fn).call(this, updates, {
|
3128
|
+
ifVersion,
|
3129
|
+
upsert: false
|
1394
3130
|
});
|
1395
|
-
const
|
1396
|
-
|
1397
|
-
|
1398
|
-
|
3131
|
+
const columns = isStringArray(b) ? b : ["*"];
|
3132
|
+
const result = await this.read(a, columns);
|
3133
|
+
return result;
|
3134
|
+
}
|
3135
|
+
try {
|
3136
|
+
if (isString(a) && isObject(b)) {
|
3137
|
+
const columns = isStringArray(c) ? c : void 0;
|
3138
|
+
return await __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a, b, columns, { ifVersion });
|
3139
|
+
}
|
3140
|
+
if (isObject(a) && isString(a.id)) {
|
3141
|
+
const columns = isStringArray(b) ? b : void 0;
|
3142
|
+
return await __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns, { ifVersion });
|
3143
|
+
}
|
3144
|
+
} catch (error) {
|
3145
|
+
if (error.status === 422)
|
1399
3146
|
return null;
|
3147
|
+
throw error;
|
3148
|
+
}
|
3149
|
+
throw new Error("Invalid arguments for update method");
|
3150
|
+
});
|
3151
|
+
}
|
3152
|
+
async updateOrThrow(a, b, c, d) {
|
3153
|
+
return __privateGet$4(this, _trace).call(this, "updateOrThrow", async () => {
|
3154
|
+
const result = await this.update(a, b, c, d);
|
3155
|
+
if (Array.isArray(result)) {
|
3156
|
+
const missingIds = compact(
|
3157
|
+
a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
|
3158
|
+
);
|
3159
|
+
if (missingIds.length > 0) {
|
3160
|
+
throw new Error(`Could not find records with ids: ${missingIds.join(", ")}`);
|
1400
3161
|
}
|
1401
|
-
|
3162
|
+
return result;
|
1402
3163
|
}
|
1403
|
-
|
1404
|
-
|
3164
|
+
if (result === null) {
|
3165
|
+
const id = extractId(a) ?? "unknown";
|
3166
|
+
throw new Error(`Record with id ${id} not found`);
|
3167
|
+
}
|
3168
|
+
return result;
|
3169
|
+
});
|
1405
3170
|
}
|
1406
|
-
async
|
1407
|
-
|
1408
|
-
|
1409
|
-
|
1410
|
-
|
1411
|
-
|
3171
|
+
async createOrUpdate(a, b, c, d) {
|
3172
|
+
return __privateGet$4(this, _trace).call(this, "createOrUpdate", async () => {
|
3173
|
+
const ifVersion = parseIfVersion(b, c, d);
|
3174
|
+
if (Array.isArray(a)) {
|
3175
|
+
if (a.length === 0)
|
3176
|
+
return [];
|
3177
|
+
await __privateMethod$2(this, _updateRecords, updateRecords_fn).call(this, a, {
|
3178
|
+
ifVersion,
|
3179
|
+
upsert: true
|
3180
|
+
});
|
3181
|
+
const columns = isStringArray(b) ? b : ["*"];
|
3182
|
+
const result = await this.read(a, columns);
|
3183
|
+
return result;
|
1412
3184
|
}
|
1413
|
-
|
1414
|
-
|
1415
|
-
|
1416
|
-
if (isString(a) && isObject(b)) {
|
1417
|
-
const columns = isStringArray(c) ? c : void 0;
|
1418
|
-
return __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a, b, columns);
|
1419
|
-
}
|
1420
|
-
if (isObject(a) && isString(a.id)) {
|
1421
|
-
const columns = isStringArray(b) ? b : void 0;
|
1422
|
-
return __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns);
|
1423
|
-
}
|
1424
|
-
throw new Error("Invalid arguments for update method");
|
1425
|
-
}
|
1426
|
-
async createOrUpdate(a, b, c) {
|
1427
|
-
if (Array.isArray(a)) {
|
1428
|
-
if (a.length === 0)
|
1429
|
-
return [];
|
1430
|
-
if (a.length > 100) {
|
1431
|
-
console.warn("Bulk update operation is not optimized in the Xata API yet, this request might be slow");
|
3185
|
+
if (isString(a) && isObject(b)) {
|
3186
|
+
const columns = isStringArray(c) ? c : void 0;
|
3187
|
+
return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a, b, columns, { ifVersion });
|
1432
3188
|
}
|
1433
|
-
|
1434
|
-
|
1435
|
-
|
1436
|
-
if (isString(a) && isObject(b)) {
|
1437
|
-
const columns = isStringArray(c) ? c : void 0;
|
1438
|
-
return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a, b, columns);
|
1439
|
-
}
|
1440
|
-
if (isObject(a) && isString(a.id)) {
|
1441
|
-
const columns = isStringArray(c) ? c : void 0;
|
1442
|
-
return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns);
|
1443
|
-
}
|
1444
|
-
throw new Error("Invalid arguments for createOrUpdate method");
|
1445
|
-
}
|
1446
|
-
async delete(a) {
|
1447
|
-
if (Array.isArray(a)) {
|
1448
|
-
if (a.length === 0)
|
1449
|
-
return;
|
1450
|
-
if (a.length > 100) {
|
1451
|
-
console.warn("Bulk delete operation is not optimized in the Xata API yet, this request might be slow");
|
3189
|
+
if (isObject(a) && isString(a.id)) {
|
3190
|
+
const columns = isStringArray(c) ? c : void 0;
|
3191
|
+
return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns, { ifVersion });
|
1452
3192
|
}
|
1453
|
-
|
1454
|
-
|
1455
|
-
|
1456
|
-
|
1457
|
-
|
1458
|
-
|
1459
|
-
|
1460
|
-
|
1461
|
-
|
1462
|
-
|
1463
|
-
|
1464
|
-
|
3193
|
+
throw new Error("Invalid arguments for createOrUpdate method");
|
3194
|
+
});
|
3195
|
+
}
|
3196
|
+
async createOrReplace(a, b, c, d) {
|
3197
|
+
return __privateGet$4(this, _trace).call(this, "createOrReplace", async () => {
|
3198
|
+
const ifVersion = parseIfVersion(b, c, d);
|
3199
|
+
if (Array.isArray(a)) {
|
3200
|
+
if (a.length === 0)
|
3201
|
+
return [];
|
3202
|
+
const ids = await __privateMethod$2(this, _insertRecords, insertRecords_fn).call(this, a, { ifVersion, createOnly: false });
|
3203
|
+
const columns = isStringArray(b) ? b : ["*"];
|
3204
|
+
const result = await this.read(ids, columns);
|
3205
|
+
return result;
|
3206
|
+
}
|
3207
|
+
if (isString(a) && isObject(b)) {
|
3208
|
+
const columns = isStringArray(c) ? c : void 0;
|
3209
|
+
return __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a, b, columns, { createOnly: false, ifVersion });
|
3210
|
+
}
|
3211
|
+
if (isObject(a) && isString(a.id)) {
|
3212
|
+
const columns = isStringArray(c) ? c : void 0;
|
3213
|
+
return __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a.id, { ...a, id: void 0 }, columns, { createOnly: false, ifVersion });
|
3214
|
+
}
|
3215
|
+
throw new Error("Invalid arguments for createOrReplace method");
|
3216
|
+
});
|
3217
|
+
}
|
3218
|
+
async delete(a, b) {
|
3219
|
+
return __privateGet$4(this, _trace).call(this, "delete", async () => {
|
3220
|
+
if (Array.isArray(a)) {
|
3221
|
+
if (a.length === 0)
|
3222
|
+
return [];
|
3223
|
+
const ids = a.map((o) => {
|
3224
|
+
if (isString(o))
|
3225
|
+
return o;
|
3226
|
+
if (isString(o.id))
|
3227
|
+
return o.id;
|
3228
|
+
throw new Error("Invalid arguments for delete method");
|
3229
|
+
});
|
3230
|
+
const columns = isStringArray(b) ? b : ["*"];
|
3231
|
+
const result = await this.read(a, columns);
|
3232
|
+
await __privateMethod$2(this, _deleteRecords, deleteRecords_fn).call(this, ids);
|
3233
|
+
return result;
|
3234
|
+
}
|
3235
|
+
if (isString(a)) {
|
3236
|
+
return __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a, b);
|
3237
|
+
}
|
3238
|
+
if (isObject(a) && isString(a.id)) {
|
3239
|
+
return __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a.id, b);
|
3240
|
+
}
|
3241
|
+
throw new Error("Invalid arguments for delete method");
|
3242
|
+
});
|
3243
|
+
}
|
3244
|
+
async deleteOrThrow(a, b) {
|
3245
|
+
return __privateGet$4(this, _trace).call(this, "deleteOrThrow", async () => {
|
3246
|
+
const result = await this.delete(a, b);
|
3247
|
+
if (Array.isArray(result)) {
|
3248
|
+
const missingIds = compact(
|
3249
|
+
a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
|
3250
|
+
);
|
3251
|
+
if (missingIds.length > 0) {
|
3252
|
+
throw new Error(`Could not find records with ids: ${missingIds.join(", ")}`);
|
3253
|
+
}
|
3254
|
+
return result;
|
3255
|
+
} else if (result === null) {
|
3256
|
+
const id = extractId(a) ?? "unknown";
|
3257
|
+
throw new Error(`Record with id ${id} not found`);
|
3258
|
+
}
|
3259
|
+
return result;
|
3260
|
+
});
|
1465
3261
|
}
|
1466
3262
|
async search(query, options = {}) {
|
1467
|
-
|
1468
|
-
|
1469
|
-
|
1470
|
-
|
1471
|
-
|
1472
|
-
|
1473
|
-
|
1474
|
-
|
1475
|
-
|
1476
|
-
|
1477
|
-
|
1478
|
-
|
3263
|
+
return __privateGet$4(this, _trace).call(this, "search", async () => {
|
3264
|
+
const { records } = await searchTable({
|
3265
|
+
pathParams: {
|
3266
|
+
workspace: "{workspaceId}",
|
3267
|
+
dbBranchName: "{dbBranch}",
|
3268
|
+
region: "{region}",
|
3269
|
+
tableName: __privateGet$4(this, _table)
|
3270
|
+
},
|
3271
|
+
body: {
|
3272
|
+
query,
|
3273
|
+
fuzziness: options.fuzziness,
|
3274
|
+
prefix: options.prefix,
|
3275
|
+
highlight: options.highlight,
|
3276
|
+
filter: options.filter,
|
3277
|
+
boosters: options.boosters,
|
3278
|
+
page: options.page,
|
3279
|
+
target: options.target
|
3280
|
+
},
|
3281
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3282
|
+
});
|
3283
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
3284
|
+
return records.map((item) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), item, ["*"]));
|
3285
|
+
});
|
3286
|
+
}
|
3287
|
+
async vectorSearch(column, query, options) {
|
3288
|
+
return __privateGet$4(this, _trace).call(this, "vectorSearch", async () => {
|
3289
|
+
const { records } = await vectorSearchTable({
|
3290
|
+
pathParams: {
|
3291
|
+
workspace: "{workspaceId}",
|
3292
|
+
dbBranchName: "{dbBranch}",
|
3293
|
+
region: "{region}",
|
3294
|
+
tableName: __privateGet$4(this, _table)
|
3295
|
+
},
|
3296
|
+
body: {
|
3297
|
+
column,
|
3298
|
+
queryVector: query,
|
3299
|
+
similarityFunction: options?.similarityFunction,
|
3300
|
+
size: options?.size,
|
3301
|
+
filter: options?.filter
|
3302
|
+
},
|
3303
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3304
|
+
});
|
3305
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
3306
|
+
return records.map((item) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), item, ["*"]));
|
3307
|
+
});
|
3308
|
+
}
|
3309
|
+
async aggregate(aggs, filter) {
|
3310
|
+
return __privateGet$4(this, _trace).call(this, "aggregate", async () => {
|
3311
|
+
const result = await aggregateTable({
|
3312
|
+
pathParams: {
|
3313
|
+
workspace: "{workspaceId}",
|
3314
|
+
dbBranchName: "{dbBranch}",
|
3315
|
+
region: "{region}",
|
3316
|
+
tableName: __privateGet$4(this, _table)
|
3317
|
+
},
|
3318
|
+
body: { aggs, filter },
|
3319
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3320
|
+
});
|
3321
|
+
return result;
|
1479
3322
|
});
|
1480
|
-
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1481
|
-
return records.map((item) => initObject(this.db, schemaTables, __privateGet$4(this, _table), item));
|
1482
3323
|
}
|
1483
3324
|
async query(query) {
|
1484
|
-
|
1485
|
-
|
1486
|
-
|
1487
|
-
|
1488
|
-
|
1489
|
-
|
1490
|
-
|
1491
|
-
|
1492
|
-
|
1493
|
-
|
1494
|
-
|
1495
|
-
|
1496
|
-
|
1497
|
-
|
1498
|
-
|
3325
|
+
return __privateGet$4(this, _trace).call(this, "query", async () => {
|
3326
|
+
const cacheQuery = await __privateMethod$2(this, _getCacheQuery, getCacheQuery_fn).call(this, query);
|
3327
|
+
if (cacheQuery)
|
3328
|
+
return new Page(query, cacheQuery.meta, cacheQuery.records);
|
3329
|
+
const data = query.getQueryOptions();
|
3330
|
+
const { meta, records: objects } = await queryTable({
|
3331
|
+
pathParams: {
|
3332
|
+
workspace: "{workspaceId}",
|
3333
|
+
dbBranchName: "{dbBranch}",
|
3334
|
+
region: "{region}",
|
3335
|
+
tableName: __privateGet$4(this, _table)
|
3336
|
+
},
|
3337
|
+
body: {
|
3338
|
+
filter: cleanFilter(data.filter),
|
3339
|
+
sort: data.sort !== void 0 ? buildSortFilter(data.sort) : void 0,
|
3340
|
+
page: data.pagination,
|
3341
|
+
columns: data.columns ?? ["*"],
|
3342
|
+
consistency: data.consistency
|
3343
|
+
},
|
3344
|
+
fetchOptions: data.fetchOptions,
|
3345
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3346
|
+
});
|
3347
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
3348
|
+
const records = objects.map(
|
3349
|
+
(record) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), record, data.columns ?? ["*"])
|
3350
|
+
);
|
3351
|
+
await __privateMethod$2(this, _setCacheQuery, setCacheQuery_fn).call(this, query, meta, records);
|
3352
|
+
return new Page(query, meta, records);
|
3353
|
+
});
|
3354
|
+
}
|
3355
|
+
async summarizeTable(query, summaries, summariesFilter) {
|
3356
|
+
return __privateGet$4(this, _trace).call(this, "summarize", async () => {
|
3357
|
+
const data = query.getQueryOptions();
|
3358
|
+
const result = await summarizeTable({
|
3359
|
+
pathParams: {
|
3360
|
+
workspace: "{workspaceId}",
|
3361
|
+
dbBranchName: "{dbBranch}",
|
3362
|
+
region: "{region}",
|
3363
|
+
tableName: __privateGet$4(this, _table)
|
3364
|
+
},
|
3365
|
+
body: {
|
3366
|
+
filter: cleanFilter(data.filter),
|
3367
|
+
sort: data.sort !== void 0 ? buildSortFilter(data.sort) : void 0,
|
3368
|
+
columns: data.columns,
|
3369
|
+
consistency: data.consistency,
|
3370
|
+
page: data.pagination?.size !== void 0 ? { size: data.pagination?.size } : void 0,
|
3371
|
+
summaries,
|
3372
|
+
summariesFilter
|
3373
|
+
},
|
3374
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3375
|
+
});
|
3376
|
+
return result;
|
1499
3377
|
});
|
1500
|
-
|
1501
|
-
|
1502
|
-
|
1503
|
-
|
3378
|
+
}
|
3379
|
+
ask(question, options) {
|
3380
|
+
const params = {
|
3381
|
+
pathParams: {
|
3382
|
+
workspace: "{workspaceId}",
|
3383
|
+
dbBranchName: "{dbBranch}",
|
3384
|
+
region: "{region}",
|
3385
|
+
tableName: __privateGet$4(this, _table)
|
3386
|
+
},
|
3387
|
+
body: {
|
3388
|
+
question,
|
3389
|
+
...options
|
3390
|
+
},
|
3391
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3392
|
+
};
|
3393
|
+
if (options?.onMessage) {
|
3394
|
+
fetchSSERequest({
|
3395
|
+
endpoint: "dataPlane",
|
3396
|
+
url: "/db/{dbBranchName}/tables/{tableName}/ask",
|
3397
|
+
method: "POST",
|
3398
|
+
onMessage: (message) => {
|
3399
|
+
options.onMessage?.({ answer: message.text, records: message.records });
|
3400
|
+
},
|
3401
|
+
...params
|
3402
|
+
});
|
3403
|
+
} else {
|
3404
|
+
return askTable(params);
|
3405
|
+
}
|
1504
3406
|
}
|
1505
3407
|
}
|
1506
3408
|
_table = new WeakMap();
|
1507
3409
|
_getFetchProps = new WeakMap();
|
3410
|
+
_db = new WeakMap();
|
1508
3411
|
_cache = new WeakMap();
|
1509
3412
|
_schemaTables$2 = new WeakMap();
|
3413
|
+
_trace = new WeakMap();
|
1510
3414
|
_insertRecordWithoutId = new WeakSet();
|
1511
3415
|
insertRecordWithoutId_fn = async function(object, columns = ["*"]) {
|
1512
|
-
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1513
3416
|
const record = transformObjectLinks(object);
|
1514
3417
|
const response = await insertRecord({
|
1515
3418
|
pathParams: {
|
1516
3419
|
workspace: "{workspaceId}",
|
1517
3420
|
dbBranchName: "{dbBranch}",
|
3421
|
+
region: "{region}",
|
1518
3422
|
tableName: __privateGet$4(this, _table)
|
1519
3423
|
},
|
1520
3424
|
queryParams: { columns },
|
1521
3425
|
body: record,
|
1522
|
-
...
|
3426
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
1523
3427
|
});
|
1524
3428
|
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1525
|
-
return initObject(this
|
3429
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
1526
3430
|
};
|
1527
3431
|
_insertRecordWithId = new WeakSet();
|
1528
|
-
insertRecordWithId_fn = async function(recordId, object, columns = ["*"]) {
|
1529
|
-
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
3432
|
+
insertRecordWithId_fn = async function(recordId, object, columns = ["*"], { createOnly, ifVersion }) {
|
1530
3433
|
const record = transformObjectLinks(object);
|
1531
3434
|
const response = await insertRecordWithID({
|
1532
3435
|
pathParams: {
|
1533
3436
|
workspace: "{workspaceId}",
|
1534
3437
|
dbBranchName: "{dbBranch}",
|
3438
|
+
region: "{region}",
|
1535
3439
|
tableName: __privateGet$4(this, _table),
|
1536
3440
|
recordId
|
1537
3441
|
},
|
1538
3442
|
body: record,
|
1539
|
-
queryParams: { createOnly
|
1540
|
-
...
|
3443
|
+
queryParams: { createOnly, columns, ifVersion },
|
3444
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
1541
3445
|
});
|
1542
3446
|
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1543
|
-
return initObject(this
|
1544
|
-
};
|
1545
|
-
|
1546
|
-
|
1547
|
-
const
|
1548
|
-
|
1549
|
-
|
1550
|
-
|
1551
|
-
|
1552
|
-
|
1553
|
-
|
1554
|
-
|
1555
|
-
|
1556
|
-
|
3447
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
3448
|
+
};
|
3449
|
+
_insertRecords = new WeakSet();
|
3450
|
+
insertRecords_fn = async function(objects, { createOnly, ifVersion }) {
|
3451
|
+
const chunkedOperations = chunk(
|
3452
|
+
objects.map((object) => ({
|
3453
|
+
insert: { table: __privateGet$4(this, _table), record: transformObjectLinks(object), createOnly, ifVersion }
|
3454
|
+
})),
|
3455
|
+
BULK_OPERATION_MAX_SIZE
|
3456
|
+
);
|
3457
|
+
const ids = [];
|
3458
|
+
for (const operations of chunkedOperations) {
|
3459
|
+
const { results } = await branchTransaction({
|
3460
|
+
pathParams: {
|
3461
|
+
workspace: "{workspaceId}",
|
3462
|
+
dbBranchName: "{dbBranch}",
|
3463
|
+
region: "{region}"
|
3464
|
+
},
|
3465
|
+
body: { operations },
|
3466
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3467
|
+
});
|
3468
|
+
for (const result of results) {
|
3469
|
+
if (result.operation === "insert") {
|
3470
|
+
ids.push(result.id);
|
3471
|
+
} else {
|
3472
|
+
ids.push(null);
|
3473
|
+
}
|
3474
|
+
}
|
1557
3475
|
}
|
1558
|
-
|
1559
|
-
return response.records?.map((item) => initObject(this.db, schemaTables, __privateGet$4(this, _table), item));
|
3476
|
+
return ids;
|
1560
3477
|
};
|
1561
3478
|
_updateRecordWithID = new WeakSet();
|
1562
|
-
updateRecordWithID_fn = async function(recordId, object, columns = ["*"]) {
|
1563
|
-
const
|
1564
|
-
|
1565
|
-
|
1566
|
-
|
1567
|
-
|
1568
|
-
|
1569
|
-
|
1570
|
-
|
1571
|
-
|
1572
|
-
|
3479
|
+
updateRecordWithID_fn = async function(recordId, object, columns = ["*"], { ifVersion }) {
|
3480
|
+
const { id: _id, ...record } = transformObjectLinks(object);
|
3481
|
+
try {
|
3482
|
+
const response = await updateRecordWithID({
|
3483
|
+
pathParams: {
|
3484
|
+
workspace: "{workspaceId}",
|
3485
|
+
dbBranchName: "{dbBranch}",
|
3486
|
+
region: "{region}",
|
3487
|
+
tableName: __privateGet$4(this, _table),
|
3488
|
+
recordId
|
3489
|
+
},
|
3490
|
+
queryParams: { columns, ifVersion },
|
3491
|
+
body: record,
|
3492
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3493
|
+
});
|
3494
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
3495
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
3496
|
+
} catch (e) {
|
3497
|
+
if (isObject(e) && e.status === 404) {
|
3498
|
+
return null;
|
3499
|
+
}
|
3500
|
+
throw e;
|
3501
|
+
}
|
3502
|
+
};
|
3503
|
+
_updateRecords = new WeakSet();
|
3504
|
+
updateRecords_fn = async function(objects, { ifVersion, upsert }) {
|
3505
|
+
const chunkedOperations = chunk(
|
3506
|
+
objects.map(({ id, ...object }) => ({
|
3507
|
+
update: { table: __privateGet$4(this, _table), id, ifVersion, upsert, fields: transformObjectLinks(object) }
|
3508
|
+
})),
|
3509
|
+
BULK_OPERATION_MAX_SIZE
|
3510
|
+
);
|
3511
|
+
const ids = [];
|
3512
|
+
for (const operations of chunkedOperations) {
|
3513
|
+
const { results } = await branchTransaction({
|
3514
|
+
pathParams: {
|
3515
|
+
workspace: "{workspaceId}",
|
3516
|
+
dbBranchName: "{dbBranch}",
|
3517
|
+
region: "{region}"
|
3518
|
+
},
|
3519
|
+
body: { operations },
|
3520
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3521
|
+
});
|
3522
|
+
for (const result of results) {
|
3523
|
+
if (result.operation === "update") {
|
3524
|
+
ids.push(result.id);
|
3525
|
+
} else {
|
3526
|
+
ids.push(null);
|
3527
|
+
}
|
3528
|
+
}
|
3529
|
+
}
|
3530
|
+
return ids;
|
1573
3531
|
};
|
1574
3532
|
_upsertRecordWithID = new WeakSet();
|
1575
|
-
upsertRecordWithID_fn = async function(recordId, object, columns = ["*"]) {
|
1576
|
-
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
3533
|
+
upsertRecordWithID_fn = async function(recordId, object, columns = ["*"], { ifVersion }) {
|
1577
3534
|
const response = await upsertRecordWithID({
|
1578
|
-
pathParams: {
|
1579
|
-
|
3535
|
+
pathParams: {
|
3536
|
+
workspace: "{workspaceId}",
|
3537
|
+
dbBranchName: "{dbBranch}",
|
3538
|
+
region: "{region}",
|
3539
|
+
tableName: __privateGet$4(this, _table),
|
3540
|
+
recordId
|
3541
|
+
},
|
3542
|
+
queryParams: { columns, ifVersion },
|
1580
3543
|
body: object,
|
1581
|
-
...
|
3544
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
1582
3545
|
});
|
1583
3546
|
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1584
|
-
return initObject(this
|
3547
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
1585
3548
|
};
|
1586
3549
|
_deleteRecord = new WeakSet();
|
1587
|
-
deleteRecord_fn = async function(recordId) {
|
1588
|
-
|
1589
|
-
|
1590
|
-
|
1591
|
-
|
1592
|
-
|
3550
|
+
deleteRecord_fn = async function(recordId, columns = ["*"]) {
|
3551
|
+
try {
|
3552
|
+
const response = await deleteRecord({
|
3553
|
+
pathParams: {
|
3554
|
+
workspace: "{workspaceId}",
|
3555
|
+
dbBranchName: "{dbBranch}",
|
3556
|
+
region: "{region}",
|
3557
|
+
tableName: __privateGet$4(this, _table),
|
3558
|
+
recordId
|
3559
|
+
},
|
3560
|
+
queryParams: { columns },
|
3561
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3562
|
+
});
|
3563
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
3564
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
3565
|
+
} catch (e) {
|
3566
|
+
if (isObject(e) && e.status === 404) {
|
3567
|
+
return null;
|
3568
|
+
}
|
3569
|
+
throw e;
|
3570
|
+
}
|
3571
|
+
};
|
3572
|
+
_deleteRecords = new WeakSet();
|
3573
|
+
deleteRecords_fn = async function(recordIds) {
|
3574
|
+
const chunkedOperations = chunk(
|
3575
|
+
recordIds.map((id) => ({ delete: { table: __privateGet$4(this, _table), id } })),
|
3576
|
+
BULK_OPERATION_MAX_SIZE
|
3577
|
+
);
|
3578
|
+
for (const operations of chunkedOperations) {
|
3579
|
+
await branchTransaction({
|
3580
|
+
pathParams: {
|
3581
|
+
workspace: "{workspaceId}",
|
3582
|
+
dbBranchName: "{dbBranch}",
|
3583
|
+
region: "{region}"
|
3584
|
+
},
|
3585
|
+
body: { operations },
|
3586
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3587
|
+
});
|
3588
|
+
}
|
1593
3589
|
};
|
1594
3590
|
_setCacheQuery = new WeakSet();
|
1595
3591
|
setCacheQuery_fn = async function(query, meta, records) {
|
1596
|
-
await __privateGet$4(this, _cache)
|
3592
|
+
await __privateGet$4(this, _cache)?.set(`query_${__privateGet$4(this, _table)}:${query.key()}`, { date: /* @__PURE__ */ new Date(), meta, records });
|
1597
3593
|
};
|
1598
3594
|
_getCacheQuery = new WeakSet();
|
1599
3595
|
getCacheQuery_fn = async function(query) {
|
1600
3596
|
const key = `query_${__privateGet$4(this, _table)}:${query.key()}`;
|
1601
|
-
const result = await __privateGet$4(this, _cache)
|
3597
|
+
const result = await __privateGet$4(this, _cache)?.get(key);
|
1602
3598
|
if (!result)
|
1603
3599
|
return null;
|
1604
|
-
const
|
3600
|
+
const defaultTTL = __privateGet$4(this, _cache)?.defaultQueryTTL ?? -1;
|
3601
|
+
const { cache: ttl = defaultTTL } = query.getQueryOptions();
|
1605
3602
|
if (ttl < 0)
|
1606
3603
|
return null;
|
1607
3604
|
const hasExpired = result.date.getTime() + ttl < Date.now();
|
@@ -1611,10 +3608,9 @@ _getSchemaTables$1 = new WeakSet();
|
|
1611
3608
|
getSchemaTables_fn$1 = async function() {
|
1612
3609
|
if (__privateGet$4(this, _schemaTables$2))
|
1613
3610
|
return __privateGet$4(this, _schemaTables$2);
|
1614
|
-
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1615
3611
|
const { schema } = await getBranchDetails({
|
1616
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
1617
|
-
...
|
3612
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
|
3613
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
1618
3614
|
});
|
1619
3615
|
__privateSet$4(this, _schemaTables$2, schema.tables);
|
1620
3616
|
return schema.tables;
|
@@ -1626,22 +3622,24 @@ const transformObjectLinks = (object) => {
|
|
1626
3622
|
return { ...acc, [key]: isIdentifiable(value) ? value.id : value };
|
1627
3623
|
}, {});
|
1628
3624
|
};
|
1629
|
-
const initObject = (db, schemaTables, table, object) => {
|
1630
|
-
const
|
3625
|
+
const initObject = (db, schemaTables, table, object, selectedColumns) => {
|
3626
|
+
const data = {};
|
1631
3627
|
const { xata, ...rest } = object ?? {};
|
1632
|
-
Object.assign(
|
3628
|
+
Object.assign(data, rest);
|
1633
3629
|
const { columns } = schemaTables.find(({ name }) => name === table) ?? {};
|
1634
3630
|
if (!columns)
|
1635
3631
|
console.error(`Table ${table} not found in schema`);
|
1636
3632
|
for (const column of columns ?? []) {
|
1637
|
-
|
3633
|
+
if (!isValidColumn(selectedColumns, column))
|
3634
|
+
continue;
|
3635
|
+
const value = data[column.name];
|
1638
3636
|
switch (column.type) {
|
1639
3637
|
case "datetime": {
|
1640
|
-
const date = value !== void 0 ? new Date(value) :
|
1641
|
-
if (date && isNaN(date.getTime())) {
|
3638
|
+
const date = value !== void 0 ? new Date(value) : null;
|
3639
|
+
if (date !== null && isNaN(date.getTime())) {
|
1642
3640
|
console.error(`Failed to parse date ${value} for field ${column.name}`);
|
1643
|
-
} else
|
1644
|
-
|
3641
|
+
} else {
|
3642
|
+
data[column.name] = date;
|
1645
3643
|
}
|
1646
3644
|
break;
|
1647
3645
|
}
|
@@ -1650,32 +3648,88 @@ const initObject = (db, schemaTables, table, object) => {
|
|
1650
3648
|
if (!linkTable) {
|
1651
3649
|
console.error(`Failed to parse link for field ${column.name}`);
|
1652
3650
|
} else if (isObject(value)) {
|
1653
|
-
|
3651
|
+
const selectedLinkColumns = selectedColumns.reduce((acc, item) => {
|
3652
|
+
if (item === column.name) {
|
3653
|
+
return [...acc, "*"];
|
3654
|
+
}
|
3655
|
+
if (item.startsWith(`${column.name}.`)) {
|
3656
|
+
const [, ...path] = item.split(".");
|
3657
|
+
return [...acc, path.join(".")];
|
3658
|
+
}
|
3659
|
+
return acc;
|
3660
|
+
}, []);
|
3661
|
+
data[column.name] = initObject(db, schemaTables, linkTable, value, selectedLinkColumns);
|
3662
|
+
} else {
|
3663
|
+
data[column.name] = null;
|
1654
3664
|
}
|
1655
3665
|
break;
|
1656
3666
|
}
|
3667
|
+
default:
|
3668
|
+
data[column.name] = value ?? null;
|
3669
|
+
if (column.notNull === true && value === null) {
|
3670
|
+
console.error(`Parse error, column ${column.name} is non nullable and value resolves null`);
|
3671
|
+
}
|
3672
|
+
break;
|
1657
3673
|
}
|
1658
3674
|
}
|
1659
|
-
|
1660
|
-
|
3675
|
+
const record = { ...data };
|
3676
|
+
const serializable = { xata, ...transformObjectLinks(data) };
|
3677
|
+
const metadata = xata !== void 0 ? { ...xata, createdAt: new Date(xata.createdAt), updatedAt: new Date(xata.updatedAt) } : void 0;
|
3678
|
+
record.read = function(columns2) {
|
3679
|
+
return db[table].read(record["id"], columns2);
|
3680
|
+
};
|
3681
|
+
record.update = function(data2, b, c) {
|
3682
|
+
const columns2 = isStringArray(b) ? b : ["*"];
|
3683
|
+
const ifVersion = parseIfVersion(b, c);
|
3684
|
+
return db[table].update(record["id"], data2, columns2, { ifVersion });
|
3685
|
+
};
|
3686
|
+
record.replace = function(data2, b, c) {
|
3687
|
+
const columns2 = isStringArray(b) ? b : ["*"];
|
3688
|
+
const ifVersion = parseIfVersion(b, c);
|
3689
|
+
return db[table].createOrReplace(record["id"], data2, columns2, { ifVersion });
|
3690
|
+
};
|
3691
|
+
record.delete = function() {
|
3692
|
+
return db[table].delete(record["id"]);
|
1661
3693
|
};
|
1662
|
-
|
1663
|
-
|
3694
|
+
record.xata = Object.freeze(metadata);
|
3695
|
+
record.getMetadata = function() {
|
3696
|
+
return record.xata;
|
1664
3697
|
};
|
1665
|
-
|
1666
|
-
return
|
3698
|
+
record.toSerializable = function() {
|
3699
|
+
return JSON.parse(JSON.stringify(serializable));
|
1667
3700
|
};
|
1668
|
-
|
1669
|
-
return
|
3701
|
+
record.toString = function() {
|
3702
|
+
return JSON.stringify(transformObjectLinks(serializable));
|
1670
3703
|
};
|
1671
|
-
for (const prop of ["read", "update", "delete", "getMetadata"]) {
|
1672
|
-
Object.defineProperty(
|
3704
|
+
for (const prop of ["read", "update", "replace", "delete", "getMetadata", "toSerializable", "toString"]) {
|
3705
|
+
Object.defineProperty(record, prop, { enumerable: false });
|
1673
3706
|
}
|
1674
|
-
Object.freeze(
|
1675
|
-
return
|
3707
|
+
Object.freeze(record);
|
3708
|
+
return record;
|
1676
3709
|
};
|
1677
|
-
function
|
1678
|
-
|
3710
|
+
function extractId(value) {
|
3711
|
+
if (isString(value))
|
3712
|
+
return value;
|
3713
|
+
if (isObject(value) && isString(value.id))
|
3714
|
+
return value.id;
|
3715
|
+
return void 0;
|
3716
|
+
}
|
3717
|
+
function isValidColumn(columns, column) {
|
3718
|
+
if (columns.includes("*"))
|
3719
|
+
return true;
|
3720
|
+
if (column.type === "link") {
|
3721
|
+
const linkColumns = columns.filter((item) => item.startsWith(column.name));
|
3722
|
+
return linkColumns.length > 0;
|
3723
|
+
}
|
3724
|
+
return columns.includes(column.name);
|
3725
|
+
}
|
3726
|
+
function parseIfVersion(...args) {
|
3727
|
+
for (const arg of args) {
|
3728
|
+
if (isObject(arg) && isNumber(arg.ifVersion)) {
|
3729
|
+
return arg.ifVersion;
|
3730
|
+
}
|
3731
|
+
}
|
3732
|
+
return void 0;
|
1679
3733
|
}
|
1680
3734
|
|
1681
3735
|
var __accessCheck$3 = (obj, member, msg) => {
|
@@ -1727,18 +3781,25 @@ class SimpleCache {
|
|
1727
3781
|
}
|
1728
3782
|
_map = new WeakMap();
|
1729
3783
|
|
1730
|
-
const
|
1731
|
-
const
|
1732
|
-
const
|
1733
|
-
const
|
1734
|
-
const
|
1735
|
-
const
|
3784
|
+
const greaterThan = (value) => ({ $gt: value });
|
3785
|
+
const gt = greaterThan;
|
3786
|
+
const greaterThanEquals = (value) => ({ $ge: value });
|
3787
|
+
const greaterEquals = greaterThanEquals;
|
3788
|
+
const gte = greaterThanEquals;
|
3789
|
+
const ge = greaterThanEquals;
|
3790
|
+
const lessThan = (value) => ({ $lt: value });
|
3791
|
+
const lt = lessThan;
|
3792
|
+
const lessThanEquals = (value) => ({ $le: value });
|
3793
|
+
const lessEquals = lessThanEquals;
|
3794
|
+
const lte = lessThanEquals;
|
3795
|
+
const le = lessThanEquals;
|
1736
3796
|
const exists = (column) => ({ $exists: column });
|
1737
3797
|
const notExists = (column) => ({ $notExists: column });
|
1738
3798
|
const startsWith = (value) => ({ $startsWith: value });
|
1739
3799
|
const endsWith = (value) => ({ $endsWith: value });
|
1740
3800
|
const pattern = (value) => ({ $pattern: value });
|
1741
3801
|
const is = (value) => ({ $is: value });
|
3802
|
+
const equals = is;
|
1742
3803
|
const isNot = (value) => ({ $isNot: value });
|
1743
3804
|
const contains = (value) => ({ $contains: value });
|
1744
3805
|
const includes = (value) => ({ $includes: value });
|
@@ -1828,23 +3889,23 @@ class SearchPlugin extends XataPlugin {
|
|
1828
3889
|
__privateAdd$1(this, _schemaTables, void 0);
|
1829
3890
|
__privateSet$1(this, _schemaTables, schemaTables);
|
1830
3891
|
}
|
1831
|
-
build(
|
3892
|
+
build(pluginOptions) {
|
1832
3893
|
return {
|
1833
3894
|
all: async (query, options = {}) => {
|
1834
|
-
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options,
|
1835
|
-
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this,
|
3895
|
+
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options, pluginOptions);
|
3896
|
+
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, pluginOptions);
|
1836
3897
|
return records.map((record) => {
|
1837
3898
|
const { table = "orphan" } = record.xata;
|
1838
|
-
return { table, record: initObject(this.db, schemaTables, table, record) };
|
3899
|
+
return { table, record: initObject(this.db, schemaTables, table, record, ["*"]) };
|
1839
3900
|
});
|
1840
3901
|
},
|
1841
3902
|
byTable: async (query, options = {}) => {
|
1842
|
-
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options,
|
1843
|
-
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this,
|
3903
|
+
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options, pluginOptions);
|
3904
|
+
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, pluginOptions);
|
1844
3905
|
return records.reduce((acc, record) => {
|
1845
3906
|
const { table = "orphan" } = record.xata;
|
1846
3907
|
const items = acc[table] ?? [];
|
1847
|
-
const item = initObject(this.db, schemaTables, table, record);
|
3908
|
+
const item = initObject(this.db, schemaTables, table, record, ["*"]);
|
1848
3909
|
return { ...acc, [table]: [...items, item] };
|
1849
3910
|
}, {});
|
1850
3911
|
}
|
@@ -1853,106 +3914,40 @@ class SearchPlugin extends XataPlugin {
|
|
1853
3914
|
}
|
1854
3915
|
_schemaTables = new WeakMap();
|
1855
3916
|
_search = new WeakSet();
|
1856
|
-
search_fn = async function(query, options,
|
1857
|
-
const
|
1858
|
-
const { tables, fuzziness, highlight, prefix } = options ?? {};
|
3917
|
+
search_fn = async function(query, options, pluginOptions) {
|
3918
|
+
const { tables, fuzziness, highlight, prefix, page } = options ?? {};
|
1859
3919
|
const { records } = await searchBranch({
|
1860
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
1861
|
-
|
1862
|
-
|
3920
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
|
3921
|
+
// @ts-ignore https://github.com/xataio/client-ts/issues/313
|
3922
|
+
body: { tables, query, fuzziness, prefix, highlight, page },
|
3923
|
+
...pluginOptions
|
1863
3924
|
});
|
1864
3925
|
return records;
|
1865
3926
|
};
|
1866
3927
|
_getSchemaTables = new WeakSet();
|
1867
|
-
getSchemaTables_fn = async function(
|
3928
|
+
getSchemaTables_fn = async function(pluginOptions) {
|
1868
3929
|
if (__privateGet$1(this, _schemaTables))
|
1869
3930
|
return __privateGet$1(this, _schemaTables);
|
1870
|
-
const fetchProps = await getFetchProps();
|
1871
3931
|
const { schema } = await getBranchDetails({
|
1872
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
1873
|
-
...
|
3932
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
|
3933
|
+
...pluginOptions
|
1874
3934
|
});
|
1875
3935
|
__privateSet$1(this, _schemaTables, schema.tables);
|
1876
3936
|
return schema.tables;
|
1877
3937
|
};
|
1878
3938
|
|
1879
|
-
|
1880
|
-
|
1881
|
-
|
1882
|
-
|
1883
|
-
|
1884
|
-
|
1885
|
-
|
1886
|
-
|
1887
|
-
|
1888
|
-
|
1889
|
-
|
1890
|
-
|
1891
|
-
const gitBranch = envBranch || await getGitBranch();
|
1892
|
-
return resolveXataBranch(gitBranch, options);
|
1893
|
-
}
|
1894
|
-
async function getCurrentBranchDetails(options) {
|
1895
|
-
const branch = await getCurrentBranchName(options);
|
1896
|
-
return getDatabaseBranch(branch, options);
|
1897
|
-
}
|
1898
|
-
async function resolveXataBranch(gitBranch, options) {
|
1899
|
-
const databaseURL = options?.databaseURL || getDatabaseURL();
|
1900
|
-
const apiKey = options?.apiKey || getAPIKey();
|
1901
|
-
if (!databaseURL)
|
1902
|
-
throw new Error(
|
1903
|
-
"A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely"
|
1904
|
-
);
|
1905
|
-
if (!apiKey)
|
1906
|
-
throw new Error(
|
1907
|
-
"An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely"
|
1908
|
-
);
|
1909
|
-
const [protocol, , host, , dbName] = databaseURL.split("/");
|
1910
|
-
const [workspace] = host.split(".");
|
1911
|
-
const { fallbackBranch } = getEnvironment();
|
1912
|
-
const { branch } = await resolveBranch({
|
1913
|
-
apiKey,
|
1914
|
-
apiUrl: databaseURL,
|
1915
|
-
fetchImpl: getFetchImplementation(options?.fetchImpl),
|
1916
|
-
workspacesApiUrl: `${protocol}//${host}`,
|
1917
|
-
pathParams: { dbName, workspace },
|
1918
|
-
queryParams: { gitBranch, fallbackBranch }
|
1919
|
-
});
|
1920
|
-
return branch;
|
1921
|
-
}
|
1922
|
-
async function getDatabaseBranch(branch, options) {
|
1923
|
-
const databaseURL = options?.databaseURL || getDatabaseURL();
|
1924
|
-
const apiKey = options?.apiKey || getAPIKey();
|
1925
|
-
if (!databaseURL)
|
1926
|
-
throw new Error(
|
1927
|
-
"A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely"
|
1928
|
-
);
|
1929
|
-
if (!apiKey)
|
1930
|
-
throw new Error(
|
1931
|
-
"An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely"
|
1932
|
-
);
|
1933
|
-
const [protocol, , host, , database] = databaseURL.split("/");
|
1934
|
-
const [workspace] = host.split(".");
|
1935
|
-
const dbBranchName = `${database}:${branch}`;
|
1936
|
-
try {
|
1937
|
-
return await getBranchDetails({
|
1938
|
-
apiKey,
|
1939
|
-
apiUrl: databaseURL,
|
1940
|
-
fetchImpl: getFetchImplementation(options?.fetchImpl),
|
1941
|
-
workspacesApiUrl: `${protocol}//${host}`,
|
1942
|
-
pathParams: { dbBranchName, workspace }
|
1943
|
-
});
|
1944
|
-
} catch (err) {
|
1945
|
-
if (isObject(err) && err.status === 404)
|
1946
|
-
return null;
|
1947
|
-
throw err;
|
1948
|
-
}
|
1949
|
-
}
|
1950
|
-
function getDatabaseURL() {
|
1951
|
-
try {
|
1952
|
-
const { databaseURL } = getEnvironment();
|
1953
|
-
return databaseURL;
|
1954
|
-
} catch (err) {
|
1955
|
-
return void 0;
|
3939
|
+
class TransactionPlugin extends XataPlugin {
|
3940
|
+
build(pluginOptions) {
|
3941
|
+
return {
|
3942
|
+
run: async (operations) => {
|
3943
|
+
const response = await branchTransaction({
|
3944
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
|
3945
|
+
body: { operations },
|
3946
|
+
...pluginOptions
|
3947
|
+
});
|
3948
|
+
return response;
|
3949
|
+
}
|
3950
|
+
};
|
1956
3951
|
}
|
1957
3952
|
}
|
1958
3953
|
|
@@ -1979,85 +3974,203 @@ var __privateMethod = (obj, member, method) => {
|
|
1979
3974
|
return method;
|
1980
3975
|
};
|
1981
3976
|
const buildClient = (plugins) => {
|
1982
|
-
var
|
3977
|
+
var _options, _parseOptions, parseOptions_fn, _getFetchProps, getFetchProps_fn, _a;
|
1983
3978
|
return _a = class {
|
1984
3979
|
constructor(options = {}, schemaTables) {
|
1985
3980
|
__privateAdd(this, _parseOptions);
|
1986
3981
|
__privateAdd(this, _getFetchProps);
|
1987
|
-
__privateAdd(this,
|
1988
|
-
__privateAdd(this, _branch, void 0);
|
3982
|
+
__privateAdd(this, _options, void 0);
|
1989
3983
|
const safeOptions = __privateMethod(this, _parseOptions, parseOptions_fn).call(this, options);
|
3984
|
+
__privateSet(this, _options, safeOptions);
|
1990
3985
|
const pluginOptions = {
|
1991
|
-
|
1992
|
-
cache: safeOptions.cache
|
3986
|
+
...__privateMethod(this, _getFetchProps, getFetchProps_fn).call(this, safeOptions),
|
3987
|
+
cache: safeOptions.cache,
|
3988
|
+
host: safeOptions.host
|
1993
3989
|
};
|
1994
3990
|
const db = new SchemaPlugin(schemaTables).build(pluginOptions);
|
1995
3991
|
const search = new SearchPlugin(db, schemaTables).build(pluginOptions);
|
3992
|
+
const transactions = new TransactionPlugin().build(pluginOptions);
|
1996
3993
|
this.db = db;
|
1997
3994
|
this.search = search;
|
3995
|
+
this.transactions = transactions;
|
1998
3996
|
for (const [key, namespace] of Object.entries(plugins ?? {})) {
|
1999
3997
|
if (namespace === void 0)
|
2000
3998
|
continue;
|
2001
|
-
|
2002
|
-
if (result instanceof Promise) {
|
2003
|
-
void result.then((namespace2) => {
|
2004
|
-
this[key] = namespace2;
|
2005
|
-
});
|
2006
|
-
} else {
|
2007
|
-
this[key] = result;
|
2008
|
-
}
|
3999
|
+
this[key] = namespace.build(pluginOptions);
|
2009
4000
|
}
|
2010
4001
|
}
|
2011
|
-
|
4002
|
+
async getConfig() {
|
4003
|
+
const databaseURL = __privateGet(this, _options).databaseURL;
|
4004
|
+
const branch = __privateGet(this, _options).branch;
|
4005
|
+
return { databaseURL, branch };
|
4006
|
+
}
|
4007
|
+
}, _options = new WeakMap(), _parseOptions = new WeakSet(), parseOptions_fn = function(options) {
|
4008
|
+
const enableBrowser = options?.enableBrowser ?? getEnableBrowserVariable() ?? false;
|
4009
|
+
const isBrowser = typeof window !== "undefined" && typeof Deno === "undefined";
|
4010
|
+
if (isBrowser && !enableBrowser) {
|
4011
|
+
throw new Error(
|
4012
|
+
"You are trying to use Xata from the browser, which is potentially a non-secure environment. If you understand the security concerns, such as leaking your credentials, pass `enableBrowser: true` to the client options to remove this error."
|
4013
|
+
);
|
4014
|
+
}
|
2012
4015
|
const fetch = getFetchImplementation(options?.fetch);
|
2013
4016
|
const databaseURL = options?.databaseURL || getDatabaseURL();
|
2014
4017
|
const apiKey = options?.apiKey || getAPIKey();
|
2015
4018
|
const cache = options?.cache ?? new SimpleCache({ defaultQueryTTL: 0 });
|
2016
|
-
const
|
2017
|
-
|
2018
|
-
|
4019
|
+
const trace = options?.trace ?? defaultTrace;
|
4020
|
+
const clientName = options?.clientName;
|
4021
|
+
const host = options?.host ?? "production";
|
4022
|
+
const xataAgentExtra = options?.xataAgentExtra;
|
4023
|
+
if (!apiKey) {
|
4024
|
+
throw new Error("Option apiKey is required");
|
4025
|
+
}
|
4026
|
+
if (!databaseURL) {
|
4027
|
+
throw new Error("Option databaseURL is required");
|
2019
4028
|
}
|
2020
|
-
|
2021
|
-
|
4029
|
+
const envBranch = getBranch();
|
4030
|
+
const previewBranch = getPreviewBranch();
|
4031
|
+
const branch = options?.branch || previewBranch || envBranch || "main";
|
4032
|
+
if (!!previewBranch && branch !== previewBranch) {
|
4033
|
+
console.warn(
|
4034
|
+
`Ignoring preview branch ${previewBranch} because branch option was passed to the client constructor with value ${branch}`
|
4035
|
+
);
|
4036
|
+
} else if (!!envBranch && branch !== envBranch) {
|
4037
|
+
console.warn(
|
4038
|
+
`Ignoring branch ${envBranch} because branch option was passed to the client constructor with value ${branch}`
|
4039
|
+
);
|
4040
|
+
} else if (!!previewBranch && !!envBranch && previewBranch !== envBranch) {
|
4041
|
+
console.warn(
|
4042
|
+
`Ignoring preview branch ${previewBranch} and branch ${envBranch} because branch option was passed to the client constructor with value ${branch}`
|
4043
|
+
);
|
4044
|
+
} else if (!previewBranch && !envBranch && options?.branch === void 0) {
|
4045
|
+
console.warn(
|
4046
|
+
`No branch was passed to the client constructor. Using default branch ${branch}. You can set the branch with the environment variable XATA_BRANCH or by passing the branch option to the client constructor.`
|
4047
|
+
);
|
4048
|
+
}
|
4049
|
+
return {
|
4050
|
+
fetch,
|
4051
|
+
databaseURL,
|
4052
|
+
apiKey,
|
4053
|
+
branch,
|
4054
|
+
cache,
|
4055
|
+
trace,
|
4056
|
+
host,
|
4057
|
+
clientID: generateUUID(),
|
4058
|
+
enableBrowser,
|
4059
|
+
clientName,
|
4060
|
+
xataAgentExtra
|
4061
|
+
};
|
4062
|
+
}, _getFetchProps = new WeakSet(), getFetchProps_fn = function({
|
2022
4063
|
fetch,
|
2023
4064
|
apiKey,
|
2024
4065
|
databaseURL,
|
2025
|
-
branch
|
4066
|
+
branch,
|
4067
|
+
trace,
|
4068
|
+
clientID,
|
4069
|
+
clientName,
|
4070
|
+
xataAgentExtra
|
2026
4071
|
}) {
|
2027
|
-
const branchValue = await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, branch);
|
2028
|
-
if (!branchValue)
|
2029
|
-
throw new Error("Unable to resolve branch value");
|
2030
4072
|
return {
|
2031
|
-
|
4073
|
+
fetch,
|
2032
4074
|
apiKey,
|
2033
4075
|
apiUrl: "",
|
4076
|
+
// Instead of using workspace and dbBranch, we inject a probably CNAME'd URL
|
2034
4077
|
workspacesApiUrl: (path, params) => {
|
2035
4078
|
const hasBranch = params.dbBranchName ?? params.branch;
|
2036
|
-
const newPath = path.replace(/^\/db\/[^/]+/, hasBranch ? `:${
|
4079
|
+
const newPath = path.replace(/^\/db\/[^/]+/, hasBranch !== void 0 ? `:${branch}` : "");
|
2037
4080
|
return databaseURL + newPath;
|
2038
|
-
}
|
2039
|
-
|
2040
|
-
|
2041
|
-
|
2042
|
-
|
2043
|
-
if (param === void 0)
|
2044
|
-
return void 0;
|
2045
|
-
const strategies = Array.isArray(param) ? [...param] : [param];
|
2046
|
-
const evaluateBranch = async (strategy) => {
|
2047
|
-
return isBranchStrategyBuilder(strategy) ? await strategy() : strategy;
|
4081
|
+
},
|
4082
|
+
trace,
|
4083
|
+
clientID,
|
4084
|
+
clientName,
|
4085
|
+
xataAgentExtra
|
2048
4086
|
};
|
2049
|
-
for await (const strategy of strategies) {
|
2050
|
-
const branch = await evaluateBranch(strategy);
|
2051
|
-
if (branch) {
|
2052
|
-
__privateSet(this, _branch, branch);
|
2053
|
-
return branch;
|
2054
|
-
}
|
2055
|
-
}
|
2056
4087
|
}, _a;
|
2057
4088
|
};
|
2058
4089
|
class BaseClient extends buildClient() {
|
2059
4090
|
}
|
2060
4091
|
|
4092
|
+
const META = "__";
|
4093
|
+
const VALUE = "___";
|
4094
|
+
class Serializer {
|
4095
|
+
constructor() {
|
4096
|
+
this.classes = {};
|
4097
|
+
}
|
4098
|
+
add(clazz) {
|
4099
|
+
this.classes[clazz.name] = clazz;
|
4100
|
+
}
|
4101
|
+
toJSON(data) {
|
4102
|
+
function visit(obj) {
|
4103
|
+
if (Array.isArray(obj))
|
4104
|
+
return obj.map(visit);
|
4105
|
+
const type = typeof obj;
|
4106
|
+
if (type === "undefined")
|
4107
|
+
return { [META]: "undefined" };
|
4108
|
+
if (type === "bigint")
|
4109
|
+
return { [META]: "bigint", [VALUE]: obj.toString() };
|
4110
|
+
if (obj === null || type !== "object")
|
4111
|
+
return obj;
|
4112
|
+
const constructor = obj.constructor;
|
4113
|
+
const o = { [META]: constructor.name };
|
4114
|
+
for (const [key, value] of Object.entries(obj)) {
|
4115
|
+
o[key] = visit(value);
|
4116
|
+
}
|
4117
|
+
if (constructor === Date)
|
4118
|
+
o[VALUE] = obj.toISOString();
|
4119
|
+
if (constructor === Map)
|
4120
|
+
o[VALUE] = Object.fromEntries(obj);
|
4121
|
+
if (constructor === Set)
|
4122
|
+
o[VALUE] = [...obj];
|
4123
|
+
return o;
|
4124
|
+
}
|
4125
|
+
return JSON.stringify(visit(data));
|
4126
|
+
}
|
4127
|
+
fromJSON(json) {
|
4128
|
+
return JSON.parse(json, (key, value) => {
|
4129
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
4130
|
+
const { [META]: clazz, [VALUE]: val, ...rest } = value;
|
4131
|
+
const constructor = this.classes[clazz];
|
4132
|
+
if (constructor) {
|
4133
|
+
return Object.assign(Object.create(constructor.prototype), rest);
|
4134
|
+
}
|
4135
|
+
if (clazz === "Date")
|
4136
|
+
return new Date(val);
|
4137
|
+
if (clazz === "Set")
|
4138
|
+
return new Set(val);
|
4139
|
+
if (clazz === "Map")
|
4140
|
+
return new Map(Object.entries(val));
|
4141
|
+
if (clazz === "bigint")
|
4142
|
+
return BigInt(val);
|
4143
|
+
if (clazz === "undefined")
|
4144
|
+
return void 0;
|
4145
|
+
return rest;
|
4146
|
+
}
|
4147
|
+
return value;
|
4148
|
+
});
|
4149
|
+
}
|
4150
|
+
}
|
4151
|
+
const defaultSerializer = new Serializer();
|
4152
|
+
const serialize = (data) => {
|
4153
|
+
return defaultSerializer.toJSON(data);
|
4154
|
+
};
|
4155
|
+
const deserialize = (json) => {
|
4156
|
+
return defaultSerializer.fromJSON(json);
|
4157
|
+
};
|
4158
|
+
|
4159
|
+
function buildWorkerRunner(config) {
|
4160
|
+
return function xataWorker(name, worker) {
|
4161
|
+
return async (...args) => {
|
4162
|
+
const url = process.env.NODE_ENV === "development" ? `http://localhost:64749/${name}` : `https://dispatcher.xata.workers.dev/${config.workspace}/${config.worker}/${name}`;
|
4163
|
+
const result = await fetch(url, {
|
4164
|
+
method: "POST",
|
4165
|
+
headers: { "Content-Type": "application/json" },
|
4166
|
+
body: serialize({ args })
|
4167
|
+
});
|
4168
|
+
const text = await result.text();
|
4169
|
+
return deserialize(text);
|
4170
|
+
};
|
4171
|
+
};
|
4172
|
+
}
|
4173
|
+
|
2061
4174
|
class XataError extends Error {
|
2062
4175
|
constructor(message, status) {
|
2063
4176
|
super(message);
|
@@ -2065,5 +4178,5 @@ class XataError extends Error {
|
|
2065
4178
|
}
|
2066
4179
|
}
|
2067
4180
|
|
2068
|
-
export { BaseClient, operationsByTag as Operations, PAGINATION_DEFAULT_OFFSET, PAGINATION_DEFAULT_SIZE, PAGINATION_MAX_OFFSET, PAGINATION_MAX_SIZE, Page, Query, RecordArray, Repository, RestRepository, SchemaPlugin, SearchPlugin, SimpleCache, XataApiClient, XataApiPlugin, XataError, XataPlugin, acceptWorkspaceMemberInvite, addGitBranchesEntry, addTableColumn, buildClient, bulkInsertTableRecords, cancelWorkspaceMemberInvite, contains, createBranch, createDatabase, createTable, createUserAPIKey, createWorkspace, deleteBranch, deleteColumn, deleteDatabase, deleteRecord, deleteTable, deleteUser, deleteUserAPIKey, deleteWorkspace, endsWith, executeBranchMigrationPlan, exists, ge, getAPIKey, getBranchDetails, getBranchList, getBranchMetadata, getBranchMigrationHistory, getBranchMigrationPlan, getBranchStats, getColumn,
|
4181
|
+
export { BaseClient, FetcherError, operationsByTag as Operations, PAGINATION_DEFAULT_OFFSET, PAGINATION_DEFAULT_SIZE, PAGINATION_MAX_OFFSET, PAGINATION_MAX_SIZE, Page, Query, RecordArray, Repository, RestRepository, SchemaPlugin, SearchPlugin, Serializer, SimpleCache, XataApiClient, XataApiPlugin, XataError, XataPlugin, acceptWorkspaceMemberInvite, addGitBranchesEntry, addTableColumn, aggregateTable, applyBranchSchemaEdit, askTable, branchTransaction, buildClient, buildPreviewBranchName, buildProviderString, buildWorkerRunner, bulkInsertTableRecords, cancelWorkspaceMemberInvite, compareBranchSchemas, compareBranchWithUserSchema, compareMigrationRequest, contains, copyBranch, createBranch, createDatabase, createMigrationRequest, createTable, createUserAPIKey, createWorkspace, deleteBranch, deleteColumn, deleteDatabase, deleteDatabaseGithubSettings, deleteFile, deleteFileItem, deleteRecord, deleteTable, deleteUser, deleteUserAPIKey, deleteWorkspace, deserialize, endsWith, equals, executeBranchMigrationPlan, exists, fileAccess, ge, getAPIKey, getBranch, getBranchDetails, getBranchList, getBranchMetadata, getBranchMigrationHistory, getBranchMigrationPlan, getBranchSchemaHistory, getBranchStats, getColumn, getDatabaseGithubSettings, getDatabaseList, getDatabaseMetadata, getDatabaseURL, getFile, getFileItem, getGitBranchesMapping, getHostUrl, getMigrationRequest, getMigrationRequestIsMerged, getPreviewBranch, getRecord, getTableColumns, getTableSchema, getUser, getUserAPIKeys, getWorkspace, getWorkspaceMembersList, getWorkspacesList, greaterEquals, greaterThan, greaterThanEquals, gt, gte, includes, includesAll, includesAny, includesNone, insertRecord, insertRecordWithID, inviteWorkspaceMember, is, isCursorPaginationOptions, isHostProviderAlias, isHostProviderBuilder, isIdentifiable, isNot, isXataRecord, le, lessEquals, lessThan, lessThanEquals, listMigrationRequestsCommits, listRegions, lt, lte, mergeMigrationRequest, notExists, operationsByTag, parseProviderString, parseWorkspacesUrlParts, pattern, previewBranchSchemaEdit, pushBranchMigrations, putFile, putFileItem, queryMigrationRequests, queryTable, removeGitBranchesEntry, removeWorkspaceMember, renameDatabase, resendWorkspaceMemberInvite, resolveBranch, searchBranch, searchTable, serialize, setTableSchema, sqlQuery, startsWith, summarizeTable, updateBranchMetadata, updateBranchSchema, updateColumn, updateDatabaseGithubSettings, updateDatabaseMetadata, updateMigrationRequest, updateRecordWithID, updateTable, updateUser, updateWorkspace, updateWorkspaceMemberInvite, updateWorkspaceMemberRole, upsertRecordWithID, vectorSearchTable };
|
2069
4182
|
//# sourceMappingURL=index.mjs.map
|