@xata.io/client 0.0.0-alpha.vfe4ae98 → 0.0.0-alpha.vfe4b459
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 +18 -0
- package/CHANGELOG.md +402 -0
- package/README.md +3 -267
- package/dist/index.cjs +3119 -901
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +6661 -1494
- package/dist/index.mjs +3063 -899
- package/dist/index.mjs.map +1 -1
- package/package.json +14 -12
- package/.eslintrc.cjs +0 -12
- package/Usage.md +0 -395
- 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
|
}
|
@@ -13,6 +36,24 @@ function isDefined(value) {
|
|
13
36
|
function isString(value) {
|
14
37
|
return isDefined(value) && typeof value === "string";
|
15
38
|
}
|
39
|
+
function isStringArray(value) {
|
40
|
+
return isDefined(value) && Array.isArray(value) && value.every(isString);
|
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
|
+
}
|
16
57
|
function toBase64(value) {
|
17
58
|
try {
|
18
59
|
return btoa(value);
|
@@ -21,60 +62,435 @@ function toBase64(value) {
|
|
21
62
|
return buf.from(value).toString("base64");
|
22
63
|
}
|
23
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
|
+
}
|
24
86
|
|
25
|
-
function
|
87
|
+
function getEnvironment() {
|
26
88
|
try {
|
27
|
-
if (
|
28
|
-
return
|
89
|
+
if (isDefined(process) && isDefined(process.env)) {
|
90
|
+
return {
|
91
|
+
apiKey: process.env.XATA_API_KEY ?? getGlobalApiKey(),
|
92
|
+
databaseURL: process.env.XATA_DATABASE_URL ?? getGlobalDatabaseURL(),
|
93
|
+
branch: process.env.XATA_BRANCH ?? getGlobalBranch(),
|
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
|
98
|
+
};
|
29
99
|
}
|
30
100
|
} catch (err) {
|
31
101
|
}
|
32
102
|
try {
|
33
|
-
if (isObject(Deno) &&
|
34
|
-
return
|
103
|
+
if (isObject(Deno) && isObject(Deno.env)) {
|
104
|
+
return {
|
105
|
+
apiKey: Deno.env.get("XATA_API_KEY") ?? getGlobalApiKey(),
|
106
|
+
databaseURL: Deno.env.get("XATA_DATABASE_URL") ?? getGlobalDatabaseURL(),
|
107
|
+
branch: Deno.env.get("XATA_BRANCH") ?? getGlobalBranch(),
|
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")
|
112
|
+
};
|
35
113
|
}
|
36
114
|
} catch (err) {
|
37
115
|
}
|
116
|
+
return {
|
117
|
+
apiKey: getGlobalApiKey(),
|
118
|
+
databaseURL: getGlobalDatabaseURL(),
|
119
|
+
branch: getGlobalBranch(),
|
120
|
+
deployPreview: void 0,
|
121
|
+
deployPreviewBranch: void 0,
|
122
|
+
vercelGitCommitRef: void 0,
|
123
|
+
vercelGitRepoOwner: void 0
|
124
|
+
};
|
38
125
|
}
|
39
|
-
|
126
|
+
function getEnableBrowserVariable() {
|
40
127
|
try {
|
41
|
-
if (
|
42
|
-
|
43
|
-
return req("child_process").execSync("git branch --show-current", { encoding: "utf-8" }).trim();
|
128
|
+
if (isObject(process) && isObject(process.env) && process.env.XATA_ENABLE_BROWSER !== void 0) {
|
129
|
+
return process.env.XATA_ENABLE_BROWSER === "true";
|
44
130
|
}
|
45
131
|
} catch (err) {
|
46
132
|
}
|
47
133
|
try {
|
48
|
-
if (isObject(Deno)) {
|
49
|
-
|
50
|
-
cmd: ["git", "branch", "--show-current"],
|
51
|
-
stdout: "piped",
|
52
|
-
stderr: "piped"
|
53
|
-
});
|
54
|
-
return new TextDecoder().decode(await process2.output()).trim();
|
134
|
+
if (isObject(Deno) && isObject(Deno.env) && Deno.env.get("XATA_ENABLE_BROWSER") !== void 0) {
|
135
|
+
return Deno.env.get("XATA_ENABLE_BROWSER") === "true";
|
55
136
|
}
|
56
137
|
} catch (err) {
|
57
138
|
}
|
139
|
+
try {
|
140
|
+
return XATA_ENABLE_BROWSER === true || XATA_ENABLE_BROWSER === "true";
|
141
|
+
} catch (err) {
|
142
|
+
return void 0;
|
143
|
+
}
|
144
|
+
}
|
145
|
+
function getGlobalApiKey() {
|
146
|
+
try {
|
147
|
+
return XATA_API_KEY;
|
148
|
+
} catch (err) {
|
149
|
+
return void 0;
|
150
|
+
}
|
151
|
+
}
|
152
|
+
function getGlobalDatabaseURL() {
|
153
|
+
try {
|
154
|
+
return XATA_DATABASE_URL;
|
155
|
+
} catch (err) {
|
156
|
+
return void 0;
|
157
|
+
}
|
158
|
+
}
|
159
|
+
function getGlobalBranch() {
|
160
|
+
try {
|
161
|
+
return XATA_BRANCH;
|
162
|
+
} catch (err) {
|
163
|
+
return void 0;
|
164
|
+
}
|
165
|
+
}
|
166
|
+
function getDatabaseURL() {
|
167
|
+
try {
|
168
|
+
const { databaseURL } = getEnvironment();
|
169
|
+
return databaseURL;
|
170
|
+
} catch (err) {
|
171
|
+
return void 0;
|
172
|
+
}
|
58
173
|
}
|
59
|
-
|
60
174
|
function getAPIKey() {
|
61
175
|
try {
|
62
|
-
|
176
|
+
const { apiKey } = getEnvironment();
|
177
|
+
return apiKey;
|
178
|
+
} catch (err) {
|
179
|
+
return void 0;
|
180
|
+
}
|
181
|
+
}
|
182
|
+
function getBranch() {
|
183
|
+
try {
|
184
|
+
const { branch } = getEnvironment();
|
185
|
+
return branch ?? "main";
|
186
|
+
} catch (err) {
|
187
|
+
return void 0;
|
188
|
+
}
|
189
|
+
}
|
190
|
+
function buildPreviewBranchName({ org, branch }) {
|
191
|
+
return `preview-${org}-${branch}`;
|
192
|
+
}
|
193
|
+
function getPreviewBranch() {
|
194
|
+
try {
|
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;
|
63
208
|
} catch (err) {
|
64
209
|
return void 0;
|
65
210
|
}
|
66
211
|
}
|
67
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;
|
68
236
|
function getFetchImplementation(userFetch) {
|
69
237
|
const globalFetch = typeof fetch !== "undefined" ? fetch : void 0;
|
70
238
|
const fetchImpl = userFetch ?? globalFetch;
|
71
239
|
if (!fetchImpl) {
|
72
|
-
throw new Error(
|
240
|
+
throw new Error(
|
241
|
+
`Couldn't find \`fetch\`. Install a fetch implementation such as \`node-fetch\` and pass it explicitly.`
|
242
|
+
);
|
73
243
|
}
|
74
244
|
return fetchImpl;
|
75
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
|
+
}
|
76
492
|
|
77
|
-
const VERSION = "0.
|
493
|
+
const VERSION = "0.24.3";
|
78
494
|
|
79
495
|
class ErrorWithCause extends Error {
|
80
496
|
constructor(message, options) {
|
@@ -85,7 +501,7 @@ class FetcherError extends ErrorWithCause {
|
|
85
501
|
constructor(status, data, requestId) {
|
86
502
|
super(getMessage(data));
|
87
503
|
this.status = status;
|
88
|
-
this.errors = isBulkError(data) ? data.errors :
|
504
|
+
this.errors = isBulkError(data) ? data.errors : [{ message: getMessage(data), status }];
|
89
505
|
this.requestId = requestId;
|
90
506
|
if (data instanceof Error) {
|
91
507
|
this.stack = data.stack;
|
@@ -117,6 +533,7 @@ function getMessage(data) {
|
|
117
533
|
}
|
118
534
|
}
|
119
535
|
|
536
|
+
const pool = new ApiRequestPool();
|
120
537
|
const resolveUrl = (url, queryParams = {}, pathParams = {}) => {
|
121
538
|
const cleanQueryParams = Object.entries(queryParams).reduce((acc, [key, value]) => {
|
122
539
|
if (value === void 0 || value === null)
|
@@ -125,316 +542,418 @@ const resolveUrl = (url, queryParams = {}, pathParams = {}) => {
|
|
125
542
|
}, {});
|
126
543
|
const query = new URLSearchParams(cleanQueryParams).toString();
|
127
544
|
const queryString = query.length > 0 ? `?${query}` : "";
|
128
|
-
|
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;
|
129
549
|
};
|
130
550
|
function buildBaseUrl({
|
551
|
+
endpoint,
|
131
552
|
path,
|
132
553
|
workspacesApiUrl,
|
133
554
|
apiUrl,
|
134
|
-
pathParams
|
555
|
+
pathParams = {}
|
135
556
|
}) {
|
136
|
-
if (
|
137
|
-
|
138
|
-
|
139
|
-
|
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}`;
|
140
563
|
}
|
141
564
|
function hostHeader(url) {
|
142
565
|
const pattern = /.*:\/\/(?<host>[^/]+).*/;
|
143
566
|
const { groups } = pattern.exec(url) ?? {};
|
144
567
|
return groups?.host ? { Host: groups.host } : {};
|
145
568
|
}
|
569
|
+
const defaultClientID = generateUUID();
|
146
570
|
async function fetch$1({
|
147
571
|
url: path,
|
148
572
|
method,
|
149
573
|
body,
|
150
|
-
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,
|
151
657
|
pathParams,
|
152
658
|
queryParams,
|
153
|
-
|
659
|
+
fetch: fetch2,
|
154
660
|
apiKey,
|
661
|
+
endpoint,
|
155
662
|
apiUrl,
|
156
|
-
workspacesApiUrl
|
663
|
+
workspacesApiUrl,
|
664
|
+
onMessage,
|
665
|
+
onError,
|
666
|
+
onClose,
|
667
|
+
signal,
|
668
|
+
clientID,
|
669
|
+
sessionID,
|
670
|
+
clientName,
|
671
|
+
xataAgentExtra
|
157
672
|
}) {
|
158
|
-
const baseUrl = buildBaseUrl({ path, workspacesApiUrl, pathParams, apiUrl });
|
673
|
+
const baseUrl = buildBaseUrl({ endpoint, path, workspacesApiUrl, pathParams, apiUrl });
|
159
674
|
const fullUrl = resolveUrl(baseUrl, queryParams, pathParams);
|
160
675
|
const url = fullUrl.includes("localhost") ? fullUrl.replace(/^[^.]+\./, "http://") : fullUrl;
|
161
|
-
|
162
|
-
method
|
163
|
-
body:
|
676
|
+
void fetchEventSource(url, {
|
677
|
+
method,
|
678
|
+
body: JSON.stringify(body),
|
679
|
+
fetch: fetch2,
|
680
|
+
signal,
|
164
681
|
headers: {
|
165
|
-
"
|
166
|
-
"
|
167
|
-
|
168
|
-
|
169
|
-
|
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?.();
|
170
702
|
}
|
171
703
|
});
|
172
|
-
|
173
|
-
|
174
|
-
}
|
175
|
-
const requestId = response.headers?.get("x-request-id") ?? void 0;
|
704
|
+
}
|
705
|
+
function parseUrl(url) {
|
176
706
|
try {
|
177
|
-
const
|
178
|
-
|
179
|
-
return jsonResponse;
|
180
|
-
}
|
181
|
-
throw new FetcherError(response.status, jsonResponse, requestId);
|
707
|
+
const { host, protocol } = new URL(url);
|
708
|
+
return { host, protocol };
|
182
709
|
} catch (error) {
|
183
|
-
|
710
|
+
return {};
|
184
711
|
}
|
185
712
|
}
|
186
713
|
|
187
|
-
const
|
188
|
-
|
189
|
-
const
|
190
|
-
const getUserAPIKeys = (variables) => fetch$1({
|
191
|
-
url: "/user/keys",
|
192
|
-
method: "get",
|
193
|
-
...variables
|
194
|
-
});
|
195
|
-
const createUserAPIKey = (variables) => fetch$1({
|
196
|
-
url: "/user/keys/{keyName}",
|
197
|
-
method: "post",
|
198
|
-
...variables
|
199
|
-
});
|
200
|
-
const deleteUserAPIKey = (variables) => fetch$1({
|
201
|
-
url: "/user/keys/{keyName}",
|
202
|
-
method: "delete",
|
203
|
-
...variables
|
204
|
-
});
|
205
|
-
const createWorkspace = (variables) => fetch$1({
|
206
|
-
url: "/workspaces",
|
207
|
-
method: "post",
|
208
|
-
...variables
|
209
|
-
});
|
210
|
-
const getWorkspacesList = (variables) => fetch$1({
|
211
|
-
url: "/workspaces",
|
212
|
-
method: "get",
|
213
|
-
...variables
|
214
|
-
});
|
215
|
-
const getWorkspace = (variables) => fetch$1({
|
216
|
-
url: "/workspaces/{workspaceId}",
|
217
|
-
method: "get",
|
218
|
-
...variables
|
219
|
-
});
|
220
|
-
const updateWorkspace = (variables) => fetch$1({
|
221
|
-
url: "/workspaces/{workspaceId}",
|
222
|
-
method: "put",
|
223
|
-
...variables
|
224
|
-
});
|
225
|
-
const deleteWorkspace = (variables) => fetch$1({
|
226
|
-
url: "/workspaces/{workspaceId}",
|
227
|
-
method: "delete",
|
228
|
-
...variables
|
229
|
-
});
|
230
|
-
const getWorkspaceMembersList = (variables) => fetch$1({
|
231
|
-
url: "/workspaces/{workspaceId}/members",
|
232
|
-
method: "get",
|
233
|
-
...variables
|
234
|
-
});
|
235
|
-
const updateWorkspaceMemberRole = (variables) => fetch$1({ url: "/workspaces/{workspaceId}/members/{userId}", method: "put", ...variables });
|
236
|
-
const removeWorkspaceMember = (variables) => fetch$1({
|
237
|
-
url: "/workspaces/{workspaceId}/members/{userId}",
|
238
|
-
method: "delete",
|
239
|
-
...variables
|
240
|
-
});
|
241
|
-
const inviteWorkspaceMember = (variables) => fetch$1({ url: "/workspaces/{workspaceId}/invites", method: "post", ...variables });
|
242
|
-
const cancelWorkspaceMemberInvite = (variables) => fetch$1({
|
243
|
-
url: "/workspaces/{workspaceId}/invites/{inviteId}",
|
244
|
-
method: "delete",
|
245
|
-
...variables
|
246
|
-
});
|
247
|
-
const resendWorkspaceMemberInvite = (variables) => fetch$1({
|
248
|
-
url: "/workspaces/{workspaceId}/invites/{inviteId}/resend",
|
249
|
-
method: "post",
|
250
|
-
...variables
|
251
|
-
});
|
252
|
-
const acceptWorkspaceMemberInvite = (variables) => fetch$1({
|
253
|
-
url: "/workspaces/{workspaceId}/invites/{inviteKey}/accept",
|
254
|
-
method: "post",
|
255
|
-
...variables
|
256
|
-
});
|
257
|
-
const getDatabaseList = (variables) => fetch$1({
|
258
|
-
url: "/dbs",
|
259
|
-
method: "get",
|
260
|
-
...variables
|
261
|
-
});
|
262
|
-
const getBranchList = (variables) => fetch$1({
|
263
|
-
url: "/dbs/{dbName}",
|
264
|
-
method: "get",
|
265
|
-
...variables
|
266
|
-
});
|
267
|
-
const createDatabase = (variables) => fetch$1({
|
268
|
-
url: "/dbs/{dbName}",
|
269
|
-
method: "put",
|
270
|
-
...variables
|
271
|
-
});
|
272
|
-
const deleteDatabase = (variables) => fetch$1({
|
714
|
+
const dataPlaneFetch = async (options) => fetch$1({ ...options, endpoint: "dataPlane" });
|
715
|
+
|
716
|
+
const getBranchList = (variables, signal) => dataPlaneFetch({
|
273
717
|
url: "/dbs/{dbName}",
|
274
|
-
method: "delete",
|
275
|
-
...variables
|
276
|
-
});
|
277
|
-
const getGitBranchesMapping = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "get", ...variables });
|
278
|
-
const addGitBranchesEntry = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "post", ...variables });
|
279
|
-
const removeGitBranchesEntry = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "delete", ...variables });
|
280
|
-
const resolveBranch = (variables) => fetch$1({
|
281
|
-
url: "/dbs/{dbName}/resolveBranch",
|
282
718
|
method: "get",
|
283
|
-
...variables
|
719
|
+
...variables,
|
720
|
+
signal
|
284
721
|
});
|
285
|
-
const getBranchDetails = (variables) =>
|
722
|
+
const getBranchDetails = (variables, signal) => dataPlaneFetch({
|
286
723
|
url: "/db/{dbBranchName}",
|
287
724
|
method: "get",
|
288
|
-
...variables
|
289
|
-
|
290
|
-
const createBranch = (variables) => fetch$1({
|
291
|
-
url: "/db/{dbBranchName}",
|
292
|
-
method: "put",
|
293
|
-
...variables
|
725
|
+
...variables,
|
726
|
+
signal
|
294
727
|
});
|
295
|
-
const
|
728
|
+
const createBranch = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}", method: "put", ...variables, signal });
|
729
|
+
const deleteBranch = (variables, signal) => dataPlaneFetch({
|
296
730
|
url: "/db/{dbBranchName}",
|
297
731
|
method: "delete",
|
298
|
-
...variables
|
732
|
+
...variables,
|
733
|
+
signal
|
734
|
+
});
|
735
|
+
const copyBranch = (variables, signal) => dataPlaneFetch({
|
736
|
+
url: "/db/{dbBranchName}/copy",
|
737
|
+
method: "post",
|
738
|
+
...variables,
|
739
|
+
signal
|
299
740
|
});
|
300
|
-
const updateBranchMetadata = (variables) =>
|
741
|
+
const updateBranchMetadata = (variables, signal) => dataPlaneFetch({
|
301
742
|
url: "/db/{dbBranchName}/metadata",
|
302
743
|
method: "put",
|
303
|
-
...variables
|
744
|
+
...variables,
|
745
|
+
signal
|
304
746
|
});
|
305
|
-
const getBranchMetadata = (variables) =>
|
747
|
+
const getBranchMetadata = (variables, signal) => dataPlaneFetch({
|
306
748
|
url: "/db/{dbBranchName}/metadata",
|
307
749
|
method: "get",
|
308
|
-
...variables
|
750
|
+
...variables,
|
751
|
+
signal
|
309
752
|
});
|
310
|
-
const
|
311
|
-
const executeBranchMigrationPlan = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations/execute", method: "post", ...variables });
|
312
|
-
const getBranchMigrationPlan = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations/plan", method: "post", ...variables });
|
313
|
-
const getBranchStats = (variables) => fetch$1({
|
753
|
+
const getBranchStats = (variables, signal) => dataPlaneFetch({
|
314
754
|
url: "/db/{dbBranchName}/stats",
|
315
755
|
method: "get",
|
316
|
-
...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
|
317
783
|
});
|
318
|
-
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({
|
319
792
|
url: "/db/{dbBranchName}/tables/{tableName}",
|
320
793
|
method: "put",
|
321
|
-
...variables
|
794
|
+
...variables,
|
795
|
+
signal
|
322
796
|
});
|
323
|
-
const deleteTable = (variables) =>
|
797
|
+
const deleteTable = (variables, signal) => dataPlaneFetch({
|
324
798
|
url: "/db/{dbBranchName}/tables/{tableName}",
|
325
799
|
method: "delete",
|
326
|
-
...variables
|
327
|
-
|
328
|
-
const updateTable = (variables) => fetch$1({
|
329
|
-
url: "/db/{dbBranchName}/tables/{tableName}",
|
330
|
-
method: "patch",
|
331
|
-
...variables
|
800
|
+
...variables,
|
801
|
+
signal
|
332
802
|
});
|
333
|
-
const
|
803
|
+
const updateTable = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}", method: "patch", ...variables, signal });
|
804
|
+
const getTableSchema = (variables, signal) => dataPlaneFetch({
|
334
805
|
url: "/db/{dbBranchName}/tables/{tableName}/schema",
|
335
806
|
method: "get",
|
336
|
-
...variables
|
337
|
-
|
338
|
-
const setTableSchema = (variables) => fetch$1({
|
339
|
-
url: "/db/{dbBranchName}/tables/{tableName}/schema",
|
340
|
-
method: "put",
|
341
|
-
...variables
|
807
|
+
...variables,
|
808
|
+
signal
|
342
809
|
});
|
343
|
-
const
|
810
|
+
const setTableSchema = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/schema", method: "put", ...variables, signal });
|
811
|
+
const getTableColumns = (variables, signal) => dataPlaneFetch({
|
344
812
|
url: "/db/{dbBranchName}/tables/{tableName}/columns",
|
345
813
|
method: "get",
|
346
|
-
...variables
|
814
|
+
...variables,
|
815
|
+
signal
|
347
816
|
});
|
348
|
-
const addTableColumn = (variables) =>
|
349
|
-
url: "/db/{dbBranchName}/tables/{tableName}/columns",
|
350
|
-
|
351
|
-
|
352
|
-
});
|
353
|
-
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({
|
354
821
|
url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}",
|
355
822
|
method: "get",
|
356
|
-
...variables
|
823
|
+
...variables,
|
824
|
+
signal
|
357
825
|
});
|
358
|
-
const
|
826
|
+
const updateColumn = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}", method: "patch", ...variables, signal });
|
827
|
+
const deleteColumn = (variables, signal) => dataPlaneFetch({
|
359
828
|
url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}",
|
360
829
|
method: "delete",
|
361
|
-
...variables
|
830
|
+
...variables,
|
831
|
+
signal
|
362
832
|
});
|
363
|
-
const
|
364
|
-
|
365
|
-
|
366
|
-
|
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
|
367
840
|
});
|
368
|
-
const
|
369
|
-
url: "/db/{dbBranchName}/tables/{tableName}/data",
|
370
|
-
method: "
|
371
|
-
...variables
|
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
|
372
846
|
});
|
373
|
-
const
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
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",
|
378
867
|
method: "delete",
|
379
|
-
...variables
|
868
|
+
...variables,
|
869
|
+
signal
|
380
870
|
});
|
381
|
-
const getRecord = (variables) =>
|
871
|
+
const getRecord = (variables, signal) => dataPlaneFetch({
|
382
872
|
url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}",
|
383
873
|
method: "get",
|
384
|
-
...variables
|
874
|
+
...variables,
|
875
|
+
signal
|
385
876
|
});
|
386
|
-
const
|
387
|
-
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({
|
388
883
|
url: "/db/{dbBranchName}/tables/{tableName}/query",
|
389
884
|
method: "post",
|
390
|
-
...variables
|
885
|
+
...variables,
|
886
|
+
signal
|
887
|
+
});
|
888
|
+
const searchBranch = (variables, signal) => dataPlaneFetch({
|
889
|
+
url: "/db/{dbBranchName}/search",
|
890
|
+
method: "post",
|
891
|
+
...variables,
|
892
|
+
signal
|
391
893
|
});
|
392
|
-
const searchTable = (variables) =>
|
894
|
+
const searchTable = (variables, signal) => dataPlaneFetch({
|
393
895
|
url: "/db/{dbBranchName}/tables/{tableName}/search",
|
394
896
|
method: "post",
|
395
|
-
...variables
|
897
|
+
...variables,
|
898
|
+
signal
|
396
899
|
});
|
397
|
-
const
|
398
|
-
url: "/db/{dbBranchName}/
|
900
|
+
const sqlQuery = (variables, signal) => dataPlaneFetch({
|
901
|
+
url: "/db/{dbBranchName}/sql",
|
399
902
|
method: "post",
|
400
|
-
...variables
|
903
|
+
...variables,
|
904
|
+
signal
|
401
905
|
});
|
402
|
-
const
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
database: {
|
419
|
-
getDatabaseList,
|
420
|
-
createDatabase,
|
421
|
-
deleteDatabase,
|
422
|
-
getGitBranchesMapping,
|
423
|
-
addGitBranchesEntry,
|
424
|
-
removeGitBranchesEntry,
|
425
|
-
resolveBranch
|
426
|
-
},
|
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 = {
|
427
922
|
branch: {
|
428
923
|
getBranchList,
|
429
924
|
getBranchDetails,
|
430
925
|
createBranch,
|
431
926
|
deleteBranch,
|
927
|
+
copyBranch,
|
432
928
|
updateBranchMetadata,
|
433
929
|
getBranchMetadata,
|
930
|
+
getBranchStats,
|
931
|
+
getGitBranchesMapping,
|
932
|
+
addGitBranchesEntry,
|
933
|
+
removeGitBranchesEntry,
|
934
|
+
resolveBranch
|
935
|
+
},
|
936
|
+
migrations: {
|
434
937
|
getBranchMigrationHistory,
|
435
|
-
executeBranchMigrationPlan,
|
436
938
|
getBranchMigrationPlan,
|
437
|
-
|
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
|
438
957
|
},
|
439
958
|
table: {
|
440
959
|
createTable,
|
@@ -445,27 +964,178 @@ const operationsByTag = {
|
|
445
964
|
getTableColumns,
|
446
965
|
addTableColumn,
|
447
966
|
getColumn,
|
448
|
-
|
449
|
-
|
967
|
+
updateColumn,
|
968
|
+
deleteColumn
|
450
969
|
},
|
451
970
|
records: {
|
971
|
+
branchTransaction,
|
452
972
|
insertRecord,
|
973
|
+
getRecord,
|
453
974
|
insertRecordWithID,
|
454
975
|
updateRecordWithID,
|
455
976
|
upsertRecordWithID,
|
456
977
|
deleteRecord,
|
457
|
-
|
458
|
-
|
978
|
+
bulkInsertTableRecords
|
979
|
+
},
|
980
|
+
files: { getFileItem, putFileItem, deleteFileItem, getFile, putFile, deleteFile, fileAccess },
|
981
|
+
searchAndFilter: {
|
459
982
|
queryTable,
|
983
|
+
searchBranch,
|
460
984
|
searchTable,
|
461
|
-
|
985
|
+
sqlQuery,
|
986
|
+
vectorSearchTable,
|
987
|
+
askTable,
|
988
|
+
summarizeTable,
|
989
|
+
aggregateTable
|
990
|
+
}
|
991
|
+
};
|
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
|
462
1130
|
}
|
463
1131
|
};
|
464
1132
|
|
1133
|
+
const operationsByTag = deepMerge(operationsByTag$2, operationsByTag$1);
|
1134
|
+
|
465
1135
|
function getHostUrl(provider, type) {
|
466
|
-
if (
|
1136
|
+
if (isHostProviderAlias(provider)) {
|
467
1137
|
return providers[provider][type];
|
468
|
-
} else if (
|
1138
|
+
} else if (isHostProviderBuilder(provider)) {
|
469
1139
|
return provider[type];
|
470
1140
|
}
|
471
1141
|
throw new Error("Invalid API provider");
|
@@ -473,19 +1143,49 @@ function getHostUrl(provider, type) {
|
|
473
1143
|
const providers = {
|
474
1144
|
production: {
|
475
1145
|
main: "https://api.xata.io",
|
476
|
-
workspaces: "https://{workspaceId}.xata.sh"
|
1146
|
+
workspaces: "https://{workspaceId}.{region}.xata.sh"
|
477
1147
|
},
|
478
1148
|
staging: {
|
479
|
-
main: "https://staging.
|
480
|
-
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"
|
481
1155
|
}
|
482
1156
|
};
|
483
|
-
function
|
1157
|
+
function isHostProviderAlias(alias) {
|
484
1158
|
return isString(alias) && Object.keys(providers).includes(alias);
|
485
1159
|
}
|
486
|
-
function
|
1160
|
+
function isHostProviderBuilder(builder) {
|
487
1161
|
return isObject(builder) && isString(builder.main) && isString(builder.workspaces);
|
488
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
|
+
}
|
489
1189
|
|
490
1190
|
var __accessCheck$7 = (obj, member, msg) => {
|
491
1191
|
if (!member.has(obj))
|
@@ -511,15 +1211,21 @@ class XataApiClient {
|
|
511
1211
|
__privateAdd$7(this, _extraProps, void 0);
|
512
1212
|
__privateAdd$7(this, _namespaces, {});
|
513
1213
|
const provider = options.host ?? "production";
|
514
|
-
const apiKey = options
|
1214
|
+
const apiKey = options.apiKey ?? getAPIKey();
|
1215
|
+
const trace = options.trace ?? defaultTrace;
|
1216
|
+
const clientID = generateUUID();
|
515
1217
|
if (!apiKey) {
|
516
1218
|
throw new Error("Could not resolve a valid apiKey");
|
517
1219
|
}
|
518
1220
|
__privateSet$7(this, _extraProps, {
|
519
1221
|
apiUrl: getHostUrl(provider, "main"),
|
520
1222
|
workspacesApiUrl: getHostUrl(provider, "workspaces"),
|
521
|
-
|
522
|
-
apiKey
|
1223
|
+
fetch: getFetchImplementation(options.fetch),
|
1224
|
+
apiKey,
|
1225
|
+
trace,
|
1226
|
+
clientName: options.clientName,
|
1227
|
+
xataAgentExtra: options.xataAgentExtra,
|
1228
|
+
clientID
|
523
1229
|
});
|
524
1230
|
}
|
525
1231
|
get user() {
|
@@ -527,21 +1233,41 @@ class XataApiClient {
|
|
527
1233
|
__privateGet$7(this, _namespaces).user = new UserApi(__privateGet$7(this, _extraProps));
|
528
1234
|
return __privateGet$7(this, _namespaces).user;
|
529
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
|
+
}
|
530
1241
|
get workspaces() {
|
531
1242
|
if (!__privateGet$7(this, _namespaces).workspaces)
|
532
1243
|
__privateGet$7(this, _namespaces).workspaces = new WorkspaceApi(__privateGet$7(this, _extraProps));
|
533
1244
|
return __privateGet$7(this, _namespaces).workspaces;
|
534
1245
|
}
|
535
|
-
get
|
536
|
-
if (!__privateGet$7(this, _namespaces).
|
537
|
-
__privateGet$7(this, _namespaces).
|
538
|
-
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;
|
539
1255
|
}
|
540
1256
|
get branches() {
|
541
1257
|
if (!__privateGet$7(this, _namespaces).branches)
|
542
1258
|
__privateGet$7(this, _namespaces).branches = new BranchApi(__privateGet$7(this, _extraProps));
|
543
1259
|
return __privateGet$7(this, _namespaces).branches;
|
544
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
|
+
}
|
545
1271
|
get tables() {
|
546
1272
|
if (!__privateGet$7(this, _namespaces).tables)
|
547
1273
|
__privateGet$7(this, _namespaces).tables = new TableApi(__privateGet$7(this, _extraProps));
|
@@ -552,6 +1278,16 @@ class XataApiClient {
|
|
552
1278
|
__privateGet$7(this, _namespaces).records = new RecordsApi(__privateGet$7(this, _extraProps));
|
553
1279
|
return __privateGet$7(this, _namespaces).records;
|
554
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
|
+
}
|
555
1291
|
}
|
556
1292
|
_extraProps = new WeakMap();
|
557
1293
|
_namespaces = new WeakMap();
|
@@ -562,24 +1298,29 @@ class UserApi {
|
|
562
1298
|
getUser() {
|
563
1299
|
return operationsByTag.users.getUser({ ...this.extraProps });
|
564
1300
|
}
|
565
|
-
updateUser(user) {
|
1301
|
+
updateUser({ user }) {
|
566
1302
|
return operationsByTag.users.updateUser({ body: user, ...this.extraProps });
|
567
1303
|
}
|
568
1304
|
deleteUser() {
|
569
1305
|
return operationsByTag.users.deleteUser({ ...this.extraProps });
|
570
1306
|
}
|
1307
|
+
}
|
1308
|
+
class AuthenticationApi {
|
1309
|
+
constructor(extraProps) {
|
1310
|
+
this.extraProps = extraProps;
|
1311
|
+
}
|
571
1312
|
getUserAPIKeys() {
|
572
|
-
return operationsByTag.
|
1313
|
+
return operationsByTag.authentication.getUserAPIKeys({ ...this.extraProps });
|
573
1314
|
}
|
574
|
-
createUserAPIKey(
|
575
|
-
return operationsByTag.
|
576
|
-
pathParams: { keyName },
|
1315
|
+
createUserAPIKey({ name }) {
|
1316
|
+
return operationsByTag.authentication.createUserAPIKey({
|
1317
|
+
pathParams: { keyName: name },
|
577
1318
|
...this.extraProps
|
578
1319
|
});
|
579
1320
|
}
|
580
|
-
deleteUserAPIKey(
|
581
|
-
return operationsByTag.
|
582
|
-
pathParams: { keyName },
|
1321
|
+
deleteUserAPIKey({ name }) {
|
1322
|
+
return operationsByTag.authentication.deleteUserAPIKey({
|
1323
|
+
pathParams: { keyName: name },
|
583
1324
|
...this.extraProps
|
584
1325
|
});
|
585
1326
|
}
|
@@ -588,126 +1329,114 @@ class WorkspaceApi {
|
|
588
1329
|
constructor(extraProps) {
|
589
1330
|
this.extraProps = extraProps;
|
590
1331
|
}
|
591
|
-
|
1332
|
+
getWorkspacesList() {
|
1333
|
+
return operationsByTag.workspaces.getWorkspacesList({ ...this.extraProps });
|
1334
|
+
}
|
1335
|
+
createWorkspace({ data }) {
|
592
1336
|
return operationsByTag.workspaces.createWorkspace({
|
593
|
-
body:
|
1337
|
+
body: data,
|
594
1338
|
...this.extraProps
|
595
1339
|
});
|
596
1340
|
}
|
597
|
-
|
598
|
-
return operationsByTag.workspaces.getWorkspacesList({ ...this.extraProps });
|
599
|
-
}
|
600
|
-
getWorkspace(workspaceId) {
|
1341
|
+
getWorkspace({ workspace }) {
|
601
1342
|
return operationsByTag.workspaces.getWorkspace({
|
602
|
-
pathParams: { workspaceId },
|
1343
|
+
pathParams: { workspaceId: workspace },
|
603
1344
|
...this.extraProps
|
604
1345
|
});
|
605
1346
|
}
|
606
|
-
updateWorkspace(
|
1347
|
+
updateWorkspace({
|
1348
|
+
workspace,
|
1349
|
+
update
|
1350
|
+
}) {
|
607
1351
|
return operationsByTag.workspaces.updateWorkspace({
|
608
|
-
pathParams: { workspaceId },
|
609
|
-
body:
|
1352
|
+
pathParams: { workspaceId: workspace },
|
1353
|
+
body: update,
|
610
1354
|
...this.extraProps
|
611
1355
|
});
|
612
1356
|
}
|
613
|
-
deleteWorkspace(
|
1357
|
+
deleteWorkspace({ workspace }) {
|
614
1358
|
return operationsByTag.workspaces.deleteWorkspace({
|
615
|
-
pathParams: { workspaceId },
|
1359
|
+
pathParams: { workspaceId: workspace },
|
616
1360
|
...this.extraProps
|
617
1361
|
});
|
618
1362
|
}
|
619
|
-
getWorkspaceMembersList(
|
1363
|
+
getWorkspaceMembersList({ workspace }) {
|
620
1364
|
return operationsByTag.workspaces.getWorkspaceMembersList({
|
621
|
-
pathParams: { workspaceId },
|
1365
|
+
pathParams: { workspaceId: workspace },
|
622
1366
|
...this.extraProps
|
623
1367
|
});
|
624
1368
|
}
|
625
|
-
updateWorkspaceMemberRole(
|
1369
|
+
updateWorkspaceMemberRole({
|
1370
|
+
workspace,
|
1371
|
+
user,
|
1372
|
+
role
|
1373
|
+
}) {
|
626
1374
|
return operationsByTag.workspaces.updateWorkspaceMemberRole({
|
627
|
-
pathParams: { workspaceId, userId },
|
1375
|
+
pathParams: { workspaceId: workspace, userId: user },
|
628
1376
|
body: { role },
|
629
1377
|
...this.extraProps
|
630
1378
|
});
|
631
1379
|
}
|
632
|
-
removeWorkspaceMember(
|
1380
|
+
removeWorkspaceMember({
|
1381
|
+
workspace,
|
1382
|
+
user
|
1383
|
+
}) {
|
633
1384
|
return operationsByTag.workspaces.removeWorkspaceMember({
|
634
|
-
pathParams: { workspaceId, userId },
|
635
|
-
...this.extraProps
|
636
|
-
});
|
637
|
-
}
|
638
|
-
inviteWorkspaceMember(workspaceId, email, role) {
|
639
|
-
return operationsByTag.workspaces.inviteWorkspaceMember({
|
640
|
-
pathParams: { workspaceId },
|
641
|
-
body: { email, role },
|
642
|
-
...this.extraProps
|
643
|
-
});
|
644
|
-
}
|
645
|
-
cancelWorkspaceMemberInvite(workspaceId, inviteId) {
|
646
|
-
return operationsByTag.workspaces.cancelWorkspaceMemberInvite({
|
647
|
-
pathParams: { workspaceId, inviteId },
|
648
|
-
...this.extraProps
|
649
|
-
});
|
650
|
-
}
|
651
|
-
resendWorkspaceMemberInvite(workspaceId, inviteId) {
|
652
|
-
return operationsByTag.workspaces.resendWorkspaceMemberInvite({
|
653
|
-
pathParams: { workspaceId, inviteId },
|
654
|
-
...this.extraProps
|
655
|
-
});
|
656
|
-
}
|
657
|
-
acceptWorkspaceMemberInvite(workspaceId, inviteKey) {
|
658
|
-
return operationsByTag.workspaces.acceptWorkspaceMemberInvite({
|
659
|
-
pathParams: { workspaceId, inviteKey },
|
1385
|
+
pathParams: { workspaceId: workspace, userId: user },
|
660
1386
|
...this.extraProps
|
661
1387
|
});
|
662
1388
|
}
|
663
1389
|
}
|
664
|
-
class
|
1390
|
+
class InvitesApi {
|
665
1391
|
constructor(extraProps) {
|
666
1392
|
this.extraProps = extraProps;
|
667
1393
|
}
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
pathParams: { workspace, dbName },
|
677
|
-
body: options,
|
678
|
-
...this.extraProps
|
679
|
-
});
|
680
|
-
}
|
681
|
-
deleteDatabase(workspace, dbName) {
|
682
|
-
return operationsByTag.database.deleteDatabase({
|
683
|
-
pathParams: { workspace, dbName },
|
1394
|
+
inviteWorkspaceMember({
|
1395
|
+
workspace,
|
1396
|
+
email,
|
1397
|
+
role
|
1398
|
+
}) {
|
1399
|
+
return operationsByTag.invites.inviteWorkspaceMember({
|
1400
|
+
pathParams: { workspaceId: workspace },
|
1401
|
+
body: { email, role },
|
684
1402
|
...this.extraProps
|
685
1403
|
});
|
686
1404
|
}
|
687
|
-
|
688
|
-
|
689
|
-
|
1405
|
+
updateWorkspaceMemberInvite({
|
1406
|
+
workspace,
|
1407
|
+
invite,
|
1408
|
+
role
|
1409
|
+
}) {
|
1410
|
+
return operationsByTag.invites.updateWorkspaceMemberInvite({
|
1411
|
+
pathParams: { workspaceId: workspace, inviteId: invite },
|
1412
|
+
body: { role },
|
690
1413
|
...this.extraProps
|
691
1414
|
});
|
692
1415
|
}
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
1416
|
+
cancelWorkspaceMemberInvite({
|
1417
|
+
workspace,
|
1418
|
+
invite
|
1419
|
+
}) {
|
1420
|
+
return operationsByTag.invites.cancelWorkspaceMemberInvite({
|
1421
|
+
pathParams: { workspaceId: workspace, inviteId: invite },
|
697
1422
|
...this.extraProps
|
698
1423
|
});
|
699
1424
|
}
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
1425
|
+
acceptWorkspaceMemberInvite({
|
1426
|
+
workspace,
|
1427
|
+
key
|
1428
|
+
}) {
|
1429
|
+
return operationsByTag.invites.acceptWorkspaceMemberInvite({
|
1430
|
+
pathParams: { workspaceId: workspace, inviteKey: key },
|
704
1431
|
...this.extraProps
|
705
1432
|
});
|
706
1433
|
}
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
1434
|
+
resendWorkspaceMemberInvite({
|
1435
|
+
workspace,
|
1436
|
+
invite
|
1437
|
+
}) {
|
1438
|
+
return operationsByTag.invites.resendWorkspaceMemberInvite({
|
1439
|
+
pathParams: { workspaceId: workspace, inviteId: invite },
|
711
1440
|
...this.extraProps
|
712
1441
|
});
|
713
1442
|
}
|
@@ -716,69 +1445,146 @@ class BranchApi {
|
|
716
1445
|
constructor(extraProps) {
|
717
1446
|
this.extraProps = extraProps;
|
718
1447
|
}
|
719
|
-
getBranchList(
|
1448
|
+
getBranchList({
|
1449
|
+
workspace,
|
1450
|
+
region,
|
1451
|
+
database
|
1452
|
+
}) {
|
720
1453
|
return operationsByTag.branch.getBranchList({
|
721
|
-
pathParams: { workspace, dbName },
|
1454
|
+
pathParams: { workspace, region, dbName: database },
|
722
1455
|
...this.extraProps
|
723
1456
|
});
|
724
1457
|
}
|
725
|
-
getBranchDetails(
|
1458
|
+
getBranchDetails({
|
1459
|
+
workspace,
|
1460
|
+
region,
|
1461
|
+
database,
|
1462
|
+
branch
|
1463
|
+
}) {
|
726
1464
|
return operationsByTag.branch.getBranchDetails({
|
727
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
1465
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
728
1466
|
...this.extraProps
|
729
1467
|
});
|
730
1468
|
}
|
731
|
-
createBranch(
|
1469
|
+
createBranch({
|
1470
|
+
workspace,
|
1471
|
+
region,
|
1472
|
+
database,
|
1473
|
+
branch,
|
1474
|
+
from,
|
1475
|
+
metadata
|
1476
|
+
}) {
|
732
1477
|
return operationsByTag.branch.createBranch({
|
733
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
734
|
-
|
735
|
-
body: options,
|
1478
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
1479
|
+
body: { from, metadata },
|
736
1480
|
...this.extraProps
|
737
1481
|
});
|
738
1482
|
}
|
739
|
-
deleteBranch(
|
1483
|
+
deleteBranch({
|
1484
|
+
workspace,
|
1485
|
+
region,
|
1486
|
+
database,
|
1487
|
+
branch
|
1488
|
+
}) {
|
740
1489
|
return operationsByTag.branch.deleteBranch({
|
741
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
1490
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
742
1491
|
...this.extraProps
|
743
1492
|
});
|
744
1493
|
}
|
745
|
-
|
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
|
+
}) {
|
746
1515
|
return operationsByTag.branch.updateBranchMetadata({
|
747
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
1516
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
748
1517
|
body: metadata,
|
749
1518
|
...this.extraProps
|
750
1519
|
});
|
751
1520
|
}
|
752
|
-
getBranchMetadata(
|
1521
|
+
getBranchMetadata({
|
1522
|
+
workspace,
|
1523
|
+
region,
|
1524
|
+
database,
|
1525
|
+
branch
|
1526
|
+
}) {
|
753
1527
|
return operationsByTag.branch.getBranchMetadata({
|
754
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
1528
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
755
1529
|
...this.extraProps
|
756
1530
|
});
|
757
1531
|
}
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
1532
|
+
getBranchStats({
|
1533
|
+
workspace,
|
1534
|
+
region,
|
1535
|
+
database,
|
1536
|
+
branch
|
1537
|
+
}) {
|
1538
|
+
return operationsByTag.branch.getBranchStats({
|
1539
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
762
1540
|
...this.extraProps
|
763
1541
|
});
|
764
1542
|
}
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
|
1543
|
+
getGitBranchesMapping({
|
1544
|
+
workspace,
|
1545
|
+
region,
|
1546
|
+
database
|
1547
|
+
}) {
|
1548
|
+
return operationsByTag.branch.getGitBranchesMapping({
|
1549
|
+
pathParams: { workspace, region, dbName: database },
|
769
1550
|
...this.extraProps
|
770
1551
|
});
|
771
1552
|
}
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
|
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 },
|
776
1563
|
...this.extraProps
|
777
1564
|
});
|
778
1565
|
}
|
779
|
-
|
780
|
-
|
781
|
-
|
1566
|
+
removeGitBranchesEntry({
|
1567
|
+
workspace,
|
1568
|
+
region,
|
1569
|
+
database,
|
1570
|
+
gitBranch
|
1571
|
+
}) {
|
1572
|
+
return operationsByTag.branch.removeGitBranchesEntry({
|
1573
|
+
pathParams: { workspace, region, dbName: database },
|
1574
|
+
queryParams: { gitBranch },
|
1575
|
+
...this.extraProps
|
1576
|
+
});
|
1577
|
+
}
|
1578
|
+
resolveBranch({
|
1579
|
+
workspace,
|
1580
|
+
region,
|
1581
|
+
database,
|
1582
|
+
gitBranch,
|
1583
|
+
fallbackBranch
|
1584
|
+
}) {
|
1585
|
+
return operationsByTag.branch.resolveBranch({
|
1586
|
+
pathParams: { workspace, region, dbName: database },
|
1587
|
+
queryParams: { gitBranch, fallbackBranch },
|
782
1588
|
...this.extraProps
|
783
1589
|
});
|
784
1590
|
}
|
@@ -787,67 +1593,134 @@ class TableApi {
|
|
787
1593
|
constructor(extraProps) {
|
788
1594
|
this.extraProps = extraProps;
|
789
1595
|
}
|
790
|
-
createTable(
|
1596
|
+
createTable({
|
1597
|
+
workspace,
|
1598
|
+
region,
|
1599
|
+
database,
|
1600
|
+
branch,
|
1601
|
+
table
|
1602
|
+
}) {
|
791
1603
|
return operationsByTag.table.createTable({
|
792
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1604
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
793
1605
|
...this.extraProps
|
794
1606
|
});
|
795
1607
|
}
|
796
|
-
deleteTable(
|
1608
|
+
deleteTable({
|
1609
|
+
workspace,
|
1610
|
+
region,
|
1611
|
+
database,
|
1612
|
+
branch,
|
1613
|
+
table
|
1614
|
+
}) {
|
797
1615
|
return operationsByTag.table.deleteTable({
|
798
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1616
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
799
1617
|
...this.extraProps
|
800
1618
|
});
|
801
1619
|
}
|
802
|
-
updateTable(
|
1620
|
+
updateTable({
|
1621
|
+
workspace,
|
1622
|
+
region,
|
1623
|
+
database,
|
1624
|
+
branch,
|
1625
|
+
table,
|
1626
|
+
update
|
1627
|
+
}) {
|
803
1628
|
return operationsByTag.table.updateTable({
|
804
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
805
|
-
body:
|
1629
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
1630
|
+
body: update,
|
806
1631
|
...this.extraProps
|
807
1632
|
});
|
808
1633
|
}
|
809
|
-
getTableSchema(
|
1634
|
+
getTableSchema({
|
1635
|
+
workspace,
|
1636
|
+
region,
|
1637
|
+
database,
|
1638
|
+
branch,
|
1639
|
+
table
|
1640
|
+
}) {
|
810
1641
|
return operationsByTag.table.getTableSchema({
|
811
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1642
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
812
1643
|
...this.extraProps
|
813
1644
|
});
|
814
1645
|
}
|
815
|
-
setTableSchema(
|
1646
|
+
setTableSchema({
|
1647
|
+
workspace,
|
1648
|
+
region,
|
1649
|
+
database,
|
1650
|
+
branch,
|
1651
|
+
table,
|
1652
|
+
schema
|
1653
|
+
}) {
|
816
1654
|
return operationsByTag.table.setTableSchema({
|
817
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
818
|
-
body:
|
1655
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
1656
|
+
body: schema,
|
819
1657
|
...this.extraProps
|
820
1658
|
});
|
821
1659
|
}
|
822
|
-
getTableColumns(
|
1660
|
+
getTableColumns({
|
1661
|
+
workspace,
|
1662
|
+
region,
|
1663
|
+
database,
|
1664
|
+
branch,
|
1665
|
+
table
|
1666
|
+
}) {
|
823
1667
|
return operationsByTag.table.getTableColumns({
|
824
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1668
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
825
1669
|
...this.extraProps
|
826
1670
|
});
|
827
1671
|
}
|
828
|
-
addTableColumn(
|
1672
|
+
addTableColumn({
|
1673
|
+
workspace,
|
1674
|
+
region,
|
1675
|
+
database,
|
1676
|
+
branch,
|
1677
|
+
table,
|
1678
|
+
column
|
1679
|
+
}) {
|
829
1680
|
return operationsByTag.table.addTableColumn({
|
830
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1681
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
831
1682
|
body: column,
|
832
1683
|
...this.extraProps
|
833
1684
|
});
|
834
1685
|
}
|
835
|
-
getColumn(
|
1686
|
+
getColumn({
|
1687
|
+
workspace,
|
1688
|
+
region,
|
1689
|
+
database,
|
1690
|
+
branch,
|
1691
|
+
table,
|
1692
|
+
column
|
1693
|
+
}) {
|
836
1694
|
return operationsByTag.table.getColumn({
|
837
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, columnName },
|
1695
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, columnName: column },
|
838
1696
|
...this.extraProps
|
839
1697
|
});
|
840
1698
|
}
|
841
|
-
|
842
|
-
|
843
|
-
|
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,
|
844
1711
|
...this.extraProps
|
845
1712
|
});
|
846
1713
|
}
|
847
|
-
|
848
|
-
|
849
|
-
|
850
|
-
|
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 },
|
851
1724
|
...this.extraProps
|
852
1725
|
});
|
853
1726
|
}
|
@@ -856,89 +1729,778 @@ class RecordsApi {
|
|
856
1729
|
constructor(extraProps) {
|
857
1730
|
this.extraProps = extraProps;
|
858
1731
|
}
|
859
|
-
insertRecord(
|
1732
|
+
insertRecord({
|
1733
|
+
workspace,
|
1734
|
+
region,
|
1735
|
+
database,
|
1736
|
+
branch,
|
1737
|
+
table,
|
1738
|
+
record,
|
1739
|
+
columns
|
1740
|
+
}) {
|
860
1741
|
return operationsByTag.records.insertRecord({
|
861
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1742
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
1743
|
+
queryParams: { columns },
|
862
1744
|
body: record,
|
863
1745
|
...this.extraProps
|
864
1746
|
});
|
865
1747
|
}
|
866
|
-
|
867
|
-
|
868
|
-
|
869
|
-
|
870
|
-
|
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 },
|
1760
|
+
...this.extraProps
|
1761
|
+
});
|
1762
|
+
}
|
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,
|
1779
|
+
...this.extraProps
|
1780
|
+
});
|
1781
|
+
}
|
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,
|
1797
|
+
...this.extraProps
|
1798
|
+
});
|
1799
|
+
}
|
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,
|
1815
|
+
...this.extraProps
|
1816
|
+
});
|
1817
|
+
}
|
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 },
|
1830
|
+
...this.extraProps
|
1831
|
+
});
|
1832
|
+
}
|
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 },
|
1846
|
+
...this.extraProps
|
1847
|
+
});
|
1848
|
+
}
|
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 },
|
1859
|
+
...this.extraProps
|
1860
|
+
});
|
1861
|
+
}
|
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
|
+
},
|
1887
|
+
...this.extraProps
|
1888
|
+
});
|
1889
|
+
}
|
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 },
|
2017
|
+
...this.extraProps
|
2018
|
+
});
|
2019
|
+
}
|
2020
|
+
}
|
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 {
|
2391
|
+
constructor(extraProps) {
|
2392
|
+
this.extraProps = extraProps;
|
2393
|
+
}
|
2394
|
+
getDatabaseList({ workspace }) {
|
2395
|
+
return operationsByTag.databases.getDatabaseList({
|
2396
|
+
pathParams: { workspaceId: workspace },
|
2397
|
+
...this.extraProps
|
2398
|
+
});
|
2399
|
+
}
|
2400
|
+
createDatabase({
|
2401
|
+
workspace,
|
2402
|
+
database,
|
2403
|
+
data
|
2404
|
+
}) {
|
2405
|
+
return operationsByTag.databases.createDatabase({
|
2406
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
2407
|
+
body: data,
|
871
2408
|
...this.extraProps
|
872
2409
|
});
|
873
2410
|
}
|
874
|
-
|
875
|
-
|
876
|
-
|
877
|
-
|
878
|
-
|
2411
|
+
deleteDatabase({
|
2412
|
+
workspace,
|
2413
|
+
database
|
2414
|
+
}) {
|
2415
|
+
return operationsByTag.databases.deleteDatabase({
|
2416
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
879
2417
|
...this.extraProps
|
880
2418
|
});
|
881
2419
|
}
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
|
2420
|
+
getDatabaseMetadata({
|
2421
|
+
workspace,
|
2422
|
+
database
|
2423
|
+
}) {
|
2424
|
+
return operationsByTag.databases.getDatabaseMetadata({
|
2425
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
887
2426
|
...this.extraProps
|
888
2427
|
});
|
889
2428
|
}
|
890
|
-
|
891
|
-
|
892
|
-
|
2429
|
+
updateDatabaseMetadata({
|
2430
|
+
workspace,
|
2431
|
+
database,
|
2432
|
+
metadata
|
2433
|
+
}) {
|
2434
|
+
return operationsByTag.databases.updateDatabaseMetadata({
|
2435
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
2436
|
+
body: metadata,
|
893
2437
|
...this.extraProps
|
894
2438
|
});
|
895
2439
|
}
|
896
|
-
|
897
|
-
|
898
|
-
|
2440
|
+
renameDatabase({
|
2441
|
+
workspace,
|
2442
|
+
database,
|
2443
|
+
newName
|
2444
|
+
}) {
|
2445
|
+
return operationsByTag.databases.renameDatabase({
|
2446
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
2447
|
+
body: { newName },
|
899
2448
|
...this.extraProps
|
900
2449
|
});
|
901
2450
|
}
|
902
|
-
|
903
|
-
|
904
|
-
|
905
|
-
|
2451
|
+
getDatabaseGithubSettings({
|
2452
|
+
workspace,
|
2453
|
+
database
|
2454
|
+
}) {
|
2455
|
+
return operationsByTag.databases.getDatabaseGithubSettings({
|
2456
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
906
2457
|
...this.extraProps
|
907
2458
|
});
|
908
2459
|
}
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
2460
|
+
updateDatabaseGithubSettings({
|
2461
|
+
workspace,
|
2462
|
+
database,
|
2463
|
+
settings
|
2464
|
+
}) {
|
2465
|
+
return operationsByTag.databases.updateDatabaseGithubSettings({
|
2466
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
2467
|
+
body: settings,
|
913
2468
|
...this.extraProps
|
914
2469
|
});
|
915
2470
|
}
|
916
|
-
|
917
|
-
|
918
|
-
|
919
|
-
|
2471
|
+
deleteDatabaseGithubSettings({
|
2472
|
+
workspace,
|
2473
|
+
database
|
2474
|
+
}) {
|
2475
|
+
return operationsByTag.databases.deleteDatabaseGithubSettings({
|
2476
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
920
2477
|
...this.extraProps
|
921
2478
|
});
|
922
2479
|
}
|
923
|
-
|
924
|
-
return operationsByTag.
|
925
|
-
pathParams: {
|
926
|
-
body: query,
|
2480
|
+
listRegions({ workspace }) {
|
2481
|
+
return operationsByTag.databases.listRegions({
|
2482
|
+
pathParams: { workspaceId: workspace },
|
927
2483
|
...this.extraProps
|
928
2484
|
});
|
929
2485
|
}
|
930
2486
|
}
|
931
2487
|
|
932
2488
|
class XataApiPlugin {
|
933
|
-
|
934
|
-
|
935
|
-
return new XataApiClient({ fetch: fetchImpl, apiKey });
|
2489
|
+
build(options) {
|
2490
|
+
return new XataApiClient(options);
|
936
2491
|
}
|
937
2492
|
}
|
938
2493
|
|
939
2494
|
class XataPlugin {
|
940
2495
|
}
|
941
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
|
+
|
942
2504
|
var __accessCheck$6 = (obj, member, msg) => {
|
943
2505
|
if (!member.has(obj))
|
944
2506
|
throw TypeError("Cannot " + msg);
|
@@ -965,18 +2527,46 @@ class Page {
|
|
965
2527
|
this.meta = meta;
|
966
2528
|
this.records = new RecordArray(this, records);
|
967
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
|
+
*/
|
968
2536
|
async nextPage(size, offset) {
|
969
2537
|
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, after: this.meta.page.cursor } });
|
970
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
|
+
*/
|
971
2545
|
async previousPage(size, offset) {
|
972
2546
|
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, before: this.meta.page.cursor } });
|
973
2547
|
}
|
974
|
-
|
975
|
-
|
976
|
-
|
977
|
-
|
978
|
-
|
979
|
-
|
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
|
+
*/
|
980
2570
|
hasNextPage() {
|
981
2571
|
return this.meta.page.more;
|
982
2572
|
}
|
@@ -987,13 +2577,13 @@ const PAGINATION_DEFAULT_SIZE = 20;
|
|
987
2577
|
const PAGINATION_MAX_OFFSET = 800;
|
988
2578
|
const PAGINATION_DEFAULT_OFFSET = 0;
|
989
2579
|
function isCursorPaginationOptions(options) {
|
990
|
-
return isDefined(options) && (isDefined(options.
|
2580
|
+
return isDefined(options) && (isDefined(options.start) || isDefined(options.end) || isDefined(options.after) || isDefined(options.before));
|
991
2581
|
}
|
992
2582
|
const _RecordArray = class extends Array {
|
993
2583
|
constructor(...args) {
|
994
2584
|
super(..._RecordArray.parseConstructorParams(...args));
|
995
2585
|
__privateAdd$6(this, _page, void 0);
|
996
|
-
__privateSet$6(this, _page, args[0]);
|
2586
|
+
__privateSet$6(this, _page, isObject(args[0]?.meta) ? args[0] : { meta: { page: { cursor: "", more: false } }, records: [] });
|
997
2587
|
}
|
998
2588
|
static parseConstructorParams(...args) {
|
999
2589
|
if (args.length === 1 && typeof args[0] === "number") {
|
@@ -1005,22 +2595,57 @@ const _RecordArray = class extends Array {
|
|
1005
2595
|
}
|
1006
2596
|
return new Array(...args);
|
1007
2597
|
}
|
2598
|
+
toArray() {
|
2599
|
+
return new Array(...this);
|
2600
|
+
}
|
2601
|
+
toSerializable() {
|
2602
|
+
return JSON.parse(this.toString());
|
2603
|
+
}
|
2604
|
+
toString() {
|
2605
|
+
return JSON.stringify(this.toArray());
|
2606
|
+
}
|
2607
|
+
map(callbackfn, thisArg) {
|
2608
|
+
return this.toArray().map(callbackfn, thisArg);
|
2609
|
+
}
|
2610
|
+
/**
|
2611
|
+
* Retrieve next page of records
|
2612
|
+
*
|
2613
|
+
* @returns A new array of objects
|
2614
|
+
*/
|
1008
2615
|
async nextPage(size, offset) {
|
1009
2616
|
const newPage = await __privateGet$6(this, _page).nextPage(size, offset);
|
1010
2617
|
return new _RecordArray(newPage);
|
1011
2618
|
}
|
2619
|
+
/**
|
2620
|
+
* Retrieve previous page of records
|
2621
|
+
*
|
2622
|
+
* @returns A new array of objects
|
2623
|
+
*/
|
1012
2624
|
async previousPage(size, offset) {
|
1013
2625
|
const newPage = await __privateGet$6(this, _page).previousPage(size, offset);
|
1014
2626
|
return new _RecordArray(newPage);
|
1015
2627
|
}
|
1016
|
-
|
1017
|
-
|
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);
|
1018
2635
|
return new _RecordArray(newPage);
|
1019
2636
|
}
|
1020
|
-
|
1021
|
-
|
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);
|
1022
2644
|
return new _RecordArray(newPage);
|
1023
2645
|
}
|
2646
|
+
/**
|
2647
|
+
* @returns Boolean indicating if there is a next page
|
2648
|
+
*/
|
1024
2649
|
hasNextPage() {
|
1025
2650
|
return __privateGet$6(this, _page).meta.page.more;
|
1026
2651
|
}
|
@@ -1046,13 +2671,19 @@ var __privateSet$5 = (obj, member, value, setter) => {
|
|
1046
2671
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
1047
2672
|
return value;
|
1048
2673
|
};
|
1049
|
-
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;
|
1050
2679
|
const _Query = class {
|
1051
2680
|
constructor(repository, table, data, rawParent) {
|
2681
|
+
__privateAdd$5(this, _cleanFilterConstraint);
|
1052
2682
|
__privateAdd$5(this, _table$1, void 0);
|
1053
2683
|
__privateAdd$5(this, _repository, void 0);
|
1054
2684
|
__privateAdd$5(this, _data, { filter: {} });
|
1055
|
-
|
2685
|
+
// Implements pagination
|
2686
|
+
this.meta = { page: { cursor: "start", more: true, size: PAGINATION_DEFAULT_SIZE } };
|
1056
2687
|
this.records = new RecordArray(this, []);
|
1057
2688
|
__privateSet$5(this, _table$1, table);
|
1058
2689
|
if (repository) {
|
@@ -1067,9 +2698,11 @@ const _Query = class {
|
|
1067
2698
|
__privateGet$5(this, _data).filter.$not = data.filter?.$not ?? parent?.filter?.$not;
|
1068
2699
|
__privateGet$5(this, _data).filter.$none = data.filter?.$none ?? parent?.filter?.$none;
|
1069
2700
|
__privateGet$5(this, _data).sort = data.sort ?? parent?.sort;
|
1070
|
-
__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;
|
1071
2703
|
__privateGet$5(this, _data).pagination = data.pagination ?? parent?.pagination;
|
1072
2704
|
__privateGet$5(this, _data).cache = data.cache ?? parent?.cache;
|
2705
|
+
__privateGet$5(this, _data).fetchOptions = data.fetchOptions ?? parent?.fetchOptions;
|
1073
2706
|
this.any = this.any.bind(this);
|
1074
2707
|
this.all = this.all.bind(this);
|
1075
2708
|
this.not = this.not.bind(this);
|
@@ -1087,44 +2720,83 @@ const _Query = class {
|
|
1087
2720
|
const key = JSON.stringify({ columns, filter, sort, pagination });
|
1088
2721
|
return toBase64(key);
|
1089
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
|
+
*/
|
1090
2728
|
any(...queries) {
|
1091
2729
|
const $any = queries.map((query) => query.getQueryOptions().filter ?? {});
|
1092
2730
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $any } }, __privateGet$5(this, _data));
|
1093
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
|
+
*/
|
1094
2737
|
all(...queries) {
|
1095
2738
|
const $all = queries.map((query) => query.getQueryOptions().filter ?? {});
|
1096
2739
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
1097
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
|
+
*/
|
1098
2746
|
not(...queries) {
|
1099
2747
|
const $not = queries.map((query) => query.getQueryOptions().filter ?? {});
|
1100
2748
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $not } }, __privateGet$5(this, _data));
|
1101
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
|
+
*/
|
1102
2755
|
none(...queries) {
|
1103
2756
|
const $none = queries.map((query) => query.getQueryOptions().filter ?? {});
|
1104
2757
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $none } }, __privateGet$5(this, _data));
|
1105
2758
|
}
|
1106
2759
|
filter(a, b) {
|
1107
2760
|
if (arguments.length === 1) {
|
1108
|
-
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
|
+
}));
|
1109
2764
|
const $all = compact([__privateGet$5(this, _data).filter?.$all].flat().concat(constraints));
|
1110
2765
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
1111
2766
|
} else {
|
1112
|
-
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));
|
1113
2769
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
1114
2770
|
}
|
1115
2771
|
}
|
1116
|
-
sort(column, direction) {
|
2772
|
+
sort(column, direction = "asc") {
|
1117
2773
|
const originalSort = [__privateGet$5(this, _data).sort ?? []].flat();
|
1118
2774
|
const sort = [...originalSort, { column, direction }];
|
1119
2775
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { sort }, __privateGet$5(this, _data));
|
1120
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
|
+
*/
|
1121
2782
|
select(columns) {
|
1122
|
-
return new _Query(
|
2783
|
+
return new _Query(
|
2784
|
+
__privateGet$5(this, _repository),
|
2785
|
+
__privateGet$5(this, _table$1),
|
2786
|
+
{ columns },
|
2787
|
+
__privateGet$5(this, _data)
|
2788
|
+
);
|
1123
2789
|
}
|
1124
2790
|
getPaginated(options = {}) {
|
1125
2791
|
const query = new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), options, __privateGet$5(this, _data));
|
1126
2792
|
return __privateGet$5(this, _repository).query(query);
|
1127
2793
|
}
|
2794
|
+
/**
|
2795
|
+
* Get results in an iterator
|
2796
|
+
*
|
2797
|
+
* @async
|
2798
|
+
* @returns Async interable of results
|
2799
|
+
*/
|
1128
2800
|
async *[Symbol.asyncIterator]() {
|
1129
2801
|
for await (const [record] of this.getIterator({ batchSize: 1 })) {
|
1130
2802
|
yield record;
|
@@ -1142,11 +2814,20 @@ const _Query = class {
|
|
1142
2814
|
}
|
1143
2815
|
}
|
1144
2816
|
async getMany(options = {}) {
|
1145
|
-
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
|
+
}
|
1146
2826
|
if (page.hasNextPage() && options.pagination?.size === void 0) {
|
1147
2827
|
console.trace("Calling getMany does not return all results. Paginate to get all results or call getAll.");
|
1148
2828
|
}
|
1149
|
-
|
2829
|
+
const array = new RecordArray(page, results.slice(0, size));
|
2830
|
+
return array;
|
1150
2831
|
}
|
1151
2832
|
async getAll(options = {}) {
|
1152
2833
|
const { batchSize = PAGINATION_MAX_SIZE, ...rest } = options;
|
@@ -1160,21 +2841,65 @@ const _Query = class {
|
|
1160
2841
|
const records = await this.getMany({ ...options, pagination: { size: 1 } });
|
1161
2842
|
return records[0] ?? null;
|
1162
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
|
+
*/
|
1163
2865
|
cache(ttl) {
|
1164
2866
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { cache: ttl }, __privateGet$5(this, _data));
|
1165
2867
|
}
|
2868
|
+
/**
|
2869
|
+
* Retrieve next page of records
|
2870
|
+
*
|
2871
|
+
* @returns A new page object.
|
2872
|
+
*/
|
1166
2873
|
nextPage(size, offset) {
|
1167
|
-
return this.
|
2874
|
+
return this.startPage(size, offset);
|
1168
2875
|
}
|
2876
|
+
/**
|
2877
|
+
* Retrieve previous page of records
|
2878
|
+
*
|
2879
|
+
* @returns A new page object
|
2880
|
+
*/
|
1169
2881
|
previousPage(size, offset) {
|
1170
|
-
return this.
|
1171
|
-
}
|
1172
|
-
|
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) {
|
1173
2890
|
return this.getPaginated({ pagination: { size, offset } });
|
1174
2891
|
}
|
1175
|
-
|
2892
|
+
/**
|
2893
|
+
* Retrieve last page of records
|
2894
|
+
*
|
2895
|
+
* @returns A new page object
|
2896
|
+
*/
|
2897
|
+
endPage(size, offset) {
|
1176
2898
|
return this.getPaginated({ pagination: { size, offset, before: "end" } });
|
1177
2899
|
}
|
2900
|
+
/**
|
2901
|
+
* @returns Boolean indicating if there is a next page
|
2902
|
+
*/
|
1178
2903
|
hasNextPage() {
|
1179
2904
|
return this.meta.page.more;
|
1180
2905
|
}
|
@@ -1183,9 +2908,20 @@ let Query = _Query;
|
|
1183
2908
|
_table$1 = new WeakMap();
|
1184
2909
|
_repository = new WeakMap();
|
1185
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
|
+
};
|
1186
2922
|
function cleanParent(data, parent) {
|
1187
2923
|
if (isCursorPaginationOptions(data.pagination)) {
|
1188
|
-
return { ...parent,
|
2924
|
+
return { ...parent, sort: void 0, filter: void 0 };
|
1189
2925
|
}
|
1190
2926
|
return parent;
|
1191
2927
|
}
|
@@ -1203,7 +2939,11 @@ function isSortFilterString(value) {
|
|
1203
2939
|
return isString(value);
|
1204
2940
|
}
|
1205
2941
|
function isSortFilterBase(filter) {
|
1206
|
-
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
|
+
});
|
1207
2947
|
}
|
1208
2948
|
function isSortFilterObject(filter) {
|
1209
2949
|
return isObject(filter) && !isSortFilterBase(filter) && filter.column !== void 0;
|
@@ -1244,329 +2984,649 @@ var __privateMethod$2 = (obj, member, method) => {
|
|
1244
2984
|
__accessCheck$4(obj, member, "access private method");
|
1245
2985
|
return method;
|
1246
2986
|
};
|
1247
|
-
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;
|
1248
2989
|
class Repository extends Query {
|
1249
2990
|
}
|
1250
2991
|
class RestRepository extends Query {
|
1251
2992
|
constructor(options) {
|
1252
|
-
super(
|
2993
|
+
super(
|
2994
|
+
null,
|
2995
|
+
{ name: options.table, schema: options.schemaTables?.find((table) => table.name === options.table) },
|
2996
|
+
{}
|
2997
|
+
);
|
1253
2998
|
__privateAdd$4(this, _insertRecordWithoutId);
|
1254
2999
|
__privateAdd$4(this, _insertRecordWithId);
|
1255
|
-
__privateAdd$4(this,
|
3000
|
+
__privateAdd$4(this, _insertRecords);
|
1256
3001
|
__privateAdd$4(this, _updateRecordWithID);
|
3002
|
+
__privateAdd$4(this, _updateRecords);
|
1257
3003
|
__privateAdd$4(this, _upsertRecordWithID);
|
1258
3004
|
__privateAdd$4(this, _deleteRecord);
|
1259
|
-
__privateAdd$4(this,
|
1260
|
-
__privateAdd$4(this, _setCacheRecord);
|
1261
|
-
__privateAdd$4(this, _getCacheRecord);
|
3005
|
+
__privateAdd$4(this, _deleteRecords);
|
1262
3006
|
__privateAdd$4(this, _setCacheQuery);
|
1263
3007
|
__privateAdd$4(this, _getCacheQuery);
|
1264
3008
|
__privateAdd$4(this, _getSchemaTables$1);
|
1265
3009
|
__privateAdd$4(this, _table, void 0);
|
1266
3010
|
__privateAdd$4(this, _getFetchProps, void 0);
|
3011
|
+
__privateAdd$4(this, _db, void 0);
|
1267
3012
|
__privateAdd$4(this, _cache, void 0);
|
1268
3013
|
__privateAdd$4(this, _schemaTables$2, void 0);
|
3014
|
+
__privateAdd$4(this, _trace, void 0);
|
1269
3015
|
__privateSet$4(this, _table, options.table);
|
1270
|
-
__privateSet$4(this,
|
1271
|
-
this.db = options.db;
|
3016
|
+
__privateSet$4(this, _db, options.db);
|
1272
3017
|
__privateSet$4(this, _cache, options.pluginOptions.cache);
|
1273
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
|
+
});
|
1274
3029
|
}
|
1275
|
-
async create(a, b) {
|
1276
|
-
|
1277
|
-
|
1278
|
-
|
1279
|
-
|
1280
|
-
|
1281
|
-
|
1282
|
-
|
1283
|
-
|
1284
|
-
|
1285
|
-
|
1286
|
-
|
1287
|
-
|
1288
|
-
|
1289
|
-
|
1290
|
-
|
1291
|
-
|
1292
|
-
|
1293
|
-
|
1294
|
-
|
1295
|
-
|
1296
|
-
|
1297
|
-
|
1298
|
-
|
1299
|
-
|
1300
|
-
|
1301
|
-
|
1302
|
-
|
1303
|
-
|
1304
|
-
|
1305
|
-
|
1306
|
-
|
1307
|
-
|
1308
|
-
|
1309
|
-
|
1310
|
-
|
1311
|
-
|
1312
|
-
|
1313
|
-
|
1314
|
-
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
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
|
+
});
|
3059
|
+
}
|
3060
|
+
async read(a, b) {
|
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
|
1321
3130
|
});
|
1322
|
-
const
|
1323
|
-
|
1324
|
-
|
1325
|
-
|
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)
|
1326
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(", ")}`);
|
1327
3161
|
}
|
1328
|
-
|
3162
|
+
return result;
|
1329
3163
|
}
|
1330
|
-
|
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
|
+
});
|
1331
3170
|
}
|
1332
|
-
async
|
1333
|
-
|
1334
|
-
|
1335
|
-
|
1336
|
-
|
1337
|
-
|
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;
|
1338
3184
|
}
|
1339
|
-
|
1340
|
-
|
1341
|
-
|
1342
|
-
|
1343
|
-
|
1344
|
-
await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
|
1345
|
-
return record;
|
1346
|
-
}
|
1347
|
-
if (isObject(a) && isString(a.id)) {
|
1348
|
-
await __privateMethod$2(this, _invalidateCache, invalidateCache_fn).call(this, a.id);
|
1349
|
-
const record = await __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a.id, { ...a, id: void 0 });
|
1350
|
-
await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
|
1351
|
-
return record;
|
1352
|
-
}
|
1353
|
-
throw new Error("Invalid arguments for update method");
|
1354
|
-
}
|
1355
|
-
async createOrUpdate(a, b) {
|
1356
|
-
if (Array.isArray(a)) {
|
1357
|
-
if (a.length === 0)
|
1358
|
-
return [];
|
1359
|
-
if (a.length > 100) {
|
1360
|
-
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
|
+
if (a === "")
|
3187
|
+
throw new Error("The id can't be empty");
|
3188
|
+
const columns = isStringArray(c) ? c : void 0;
|
3189
|
+
return await __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a, b, columns, { ifVersion });
|
1361
3190
|
}
|
1362
|
-
|
1363
|
-
|
1364
|
-
|
1365
|
-
|
1366
|
-
|
1367
|
-
await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
|
1368
|
-
return record;
|
1369
|
-
}
|
1370
|
-
if (isObject(a) && isString(a.id)) {
|
1371
|
-
await __privateMethod$2(this, _invalidateCache, invalidateCache_fn).call(this, a.id);
|
1372
|
-
const record = await __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a.id, { ...a, id: void 0 });
|
1373
|
-
await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
|
1374
|
-
return record;
|
1375
|
-
}
|
1376
|
-
throw new Error("Invalid arguments for createOrUpdate method");
|
1377
|
-
}
|
1378
|
-
async delete(a) {
|
1379
|
-
if (Array.isArray(a)) {
|
1380
|
-
if (a.length === 0)
|
1381
|
-
return;
|
1382
|
-
if (a.length > 100) {
|
1383
|
-
console.warn("Bulk delete operation is not optimized in the Xata API yet, this request might be slow");
|
3191
|
+
if (isObject(a) && isString(a.id)) {
|
3192
|
+
if (a.id === "")
|
3193
|
+
throw new Error("The id can't be empty");
|
3194
|
+
const columns = isStringArray(c) ? c : void 0;
|
3195
|
+
return await __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns, { ifVersion });
|
1384
3196
|
}
|
1385
|
-
|
1386
|
-
|
1387
|
-
|
1388
|
-
|
1389
|
-
|
1390
|
-
|
1391
|
-
|
1392
|
-
}
|
1393
|
-
|
1394
|
-
|
1395
|
-
|
1396
|
-
|
1397
|
-
|
1398
|
-
|
3197
|
+
if (!isDefined(a) && isObject(b)) {
|
3198
|
+
return await this.create(b, c);
|
3199
|
+
}
|
3200
|
+
if (isObject(a) && !isDefined(a.id)) {
|
3201
|
+
return await this.create(a, b);
|
3202
|
+
}
|
3203
|
+
throw new Error("Invalid arguments for createOrUpdate method");
|
3204
|
+
});
|
3205
|
+
}
|
3206
|
+
async createOrReplace(a, b, c, d) {
|
3207
|
+
return __privateGet$4(this, _trace).call(this, "createOrReplace", async () => {
|
3208
|
+
const ifVersion = parseIfVersion(b, c, d);
|
3209
|
+
if (Array.isArray(a)) {
|
3210
|
+
if (a.length === 0)
|
3211
|
+
return [];
|
3212
|
+
const ids = await __privateMethod$2(this, _insertRecords, insertRecords_fn).call(this, a, { ifVersion, createOnly: false });
|
3213
|
+
const columns = isStringArray(b) ? b : ["*"];
|
3214
|
+
const result = await this.read(ids, columns);
|
3215
|
+
return result;
|
3216
|
+
}
|
3217
|
+
if (isString(a) && isObject(b)) {
|
3218
|
+
if (a === "")
|
3219
|
+
throw new Error("The id can't be empty");
|
3220
|
+
const columns = isStringArray(c) ? c : void 0;
|
3221
|
+
return await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a, b, columns, { createOnly: false, ifVersion });
|
3222
|
+
}
|
3223
|
+
if (isObject(a) && isString(a.id)) {
|
3224
|
+
if (a.id === "")
|
3225
|
+
throw new Error("The id can't be empty");
|
3226
|
+
const columns = isStringArray(c) ? c : void 0;
|
3227
|
+
return await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a.id, { ...a, id: void 0 }, columns, { createOnly: false, ifVersion });
|
3228
|
+
}
|
3229
|
+
if (!isDefined(a) && isObject(b)) {
|
3230
|
+
return await this.create(b, c);
|
3231
|
+
}
|
3232
|
+
if (isObject(a) && !isDefined(a.id)) {
|
3233
|
+
return await this.create(a, b);
|
3234
|
+
}
|
3235
|
+
throw new Error("Invalid arguments for createOrReplace method");
|
3236
|
+
});
|
3237
|
+
}
|
3238
|
+
async delete(a, b) {
|
3239
|
+
return __privateGet$4(this, _trace).call(this, "delete", async () => {
|
3240
|
+
if (Array.isArray(a)) {
|
3241
|
+
if (a.length === 0)
|
3242
|
+
return [];
|
3243
|
+
const ids = a.map((o) => {
|
3244
|
+
if (isString(o))
|
3245
|
+
return o;
|
3246
|
+
if (isString(o.id))
|
3247
|
+
return o.id;
|
3248
|
+
throw new Error("Invalid arguments for delete method");
|
3249
|
+
});
|
3250
|
+
const columns = isStringArray(b) ? b : ["*"];
|
3251
|
+
const result = await this.read(a, columns);
|
3252
|
+
await __privateMethod$2(this, _deleteRecords, deleteRecords_fn).call(this, ids);
|
3253
|
+
return result;
|
3254
|
+
}
|
3255
|
+
if (isString(a)) {
|
3256
|
+
return __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a, b);
|
3257
|
+
}
|
3258
|
+
if (isObject(a) && isString(a.id)) {
|
3259
|
+
return __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a.id, b);
|
3260
|
+
}
|
3261
|
+
throw new Error("Invalid arguments for delete method");
|
3262
|
+
});
|
3263
|
+
}
|
3264
|
+
async deleteOrThrow(a, b) {
|
3265
|
+
return __privateGet$4(this, _trace).call(this, "deleteOrThrow", async () => {
|
3266
|
+
const result = await this.delete(a, b);
|
3267
|
+
if (Array.isArray(result)) {
|
3268
|
+
const missingIds = compact(
|
3269
|
+
a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
|
3270
|
+
);
|
3271
|
+
if (missingIds.length > 0) {
|
3272
|
+
throw new Error(`Could not find records with ids: ${missingIds.join(", ")}`);
|
3273
|
+
}
|
3274
|
+
return result;
|
3275
|
+
} else if (result === null) {
|
3276
|
+
const id = extractId(a) ?? "unknown";
|
3277
|
+
throw new Error(`Record with id ${id} not found`);
|
3278
|
+
}
|
3279
|
+
return result;
|
3280
|
+
});
|
1399
3281
|
}
|
1400
3282
|
async search(query, options = {}) {
|
1401
|
-
|
1402
|
-
|
1403
|
-
|
1404
|
-
|
1405
|
-
|
1406
|
-
|
1407
|
-
|
1408
|
-
|
1409
|
-
|
1410
|
-
|
3283
|
+
return __privateGet$4(this, _trace).call(this, "search", async () => {
|
3284
|
+
const { records } = await searchTable({
|
3285
|
+
pathParams: {
|
3286
|
+
workspace: "{workspaceId}",
|
3287
|
+
dbBranchName: "{dbBranch}",
|
3288
|
+
region: "{region}",
|
3289
|
+
tableName: __privateGet$4(this, _table)
|
3290
|
+
},
|
3291
|
+
body: {
|
3292
|
+
query,
|
3293
|
+
fuzziness: options.fuzziness,
|
3294
|
+
prefix: options.prefix,
|
3295
|
+
highlight: options.highlight,
|
3296
|
+
filter: options.filter,
|
3297
|
+
boosters: options.boosters,
|
3298
|
+
page: options.page,
|
3299
|
+
target: options.target
|
3300
|
+
},
|
3301
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3302
|
+
});
|
3303
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
3304
|
+
return records.map((item) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), item, ["*"]));
|
3305
|
+
});
|
3306
|
+
}
|
3307
|
+
async vectorSearch(column, query, options) {
|
3308
|
+
return __privateGet$4(this, _trace).call(this, "vectorSearch", async () => {
|
3309
|
+
const { records } = await vectorSearchTable({
|
3310
|
+
pathParams: {
|
3311
|
+
workspace: "{workspaceId}",
|
3312
|
+
dbBranchName: "{dbBranch}",
|
3313
|
+
region: "{region}",
|
3314
|
+
tableName: __privateGet$4(this, _table)
|
3315
|
+
},
|
3316
|
+
body: {
|
3317
|
+
column,
|
3318
|
+
queryVector: query,
|
3319
|
+
similarityFunction: options?.similarityFunction,
|
3320
|
+
size: options?.size,
|
3321
|
+
filter: options?.filter
|
3322
|
+
},
|
3323
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3324
|
+
});
|
3325
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
3326
|
+
return records.map((item) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), item, ["*"]));
|
3327
|
+
});
|
3328
|
+
}
|
3329
|
+
async aggregate(aggs, filter) {
|
3330
|
+
return __privateGet$4(this, _trace).call(this, "aggregate", async () => {
|
3331
|
+
const result = await aggregateTable({
|
3332
|
+
pathParams: {
|
3333
|
+
workspace: "{workspaceId}",
|
3334
|
+
dbBranchName: "{dbBranch}",
|
3335
|
+
region: "{region}",
|
3336
|
+
tableName: __privateGet$4(this, _table)
|
3337
|
+
},
|
3338
|
+
body: { aggs, filter },
|
3339
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3340
|
+
});
|
3341
|
+
return result;
|
1411
3342
|
});
|
1412
|
-
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1413
|
-
return records.map((item) => initObject(this.db, schemaTables, __privateGet$4(this, _table), item));
|
1414
3343
|
}
|
1415
3344
|
async query(query) {
|
1416
|
-
|
1417
|
-
|
1418
|
-
|
1419
|
-
|
1420
|
-
|
1421
|
-
|
1422
|
-
|
1423
|
-
|
1424
|
-
|
1425
|
-
|
1426
|
-
|
1427
|
-
|
1428
|
-
|
1429
|
-
|
1430
|
-
|
3345
|
+
return __privateGet$4(this, _trace).call(this, "query", async () => {
|
3346
|
+
const cacheQuery = await __privateMethod$2(this, _getCacheQuery, getCacheQuery_fn).call(this, query);
|
3347
|
+
if (cacheQuery)
|
3348
|
+
return new Page(query, cacheQuery.meta, cacheQuery.records);
|
3349
|
+
const data = query.getQueryOptions();
|
3350
|
+
const { meta, records: objects } = await queryTable({
|
3351
|
+
pathParams: {
|
3352
|
+
workspace: "{workspaceId}",
|
3353
|
+
dbBranchName: "{dbBranch}",
|
3354
|
+
region: "{region}",
|
3355
|
+
tableName: __privateGet$4(this, _table)
|
3356
|
+
},
|
3357
|
+
body: {
|
3358
|
+
filter: cleanFilter(data.filter),
|
3359
|
+
sort: data.sort !== void 0 ? buildSortFilter(data.sort) : void 0,
|
3360
|
+
page: data.pagination,
|
3361
|
+
columns: data.columns ?? ["*"],
|
3362
|
+
consistency: data.consistency
|
3363
|
+
},
|
3364
|
+
fetchOptions: data.fetchOptions,
|
3365
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3366
|
+
});
|
3367
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
3368
|
+
const records = objects.map(
|
3369
|
+
(record) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), record, data.columns ?? ["*"])
|
3370
|
+
);
|
3371
|
+
await __privateMethod$2(this, _setCacheQuery, setCacheQuery_fn).call(this, query, meta, records);
|
3372
|
+
return new Page(query, meta, records);
|
1431
3373
|
});
|
1432
|
-
|
1433
|
-
|
1434
|
-
|
1435
|
-
|
3374
|
+
}
|
3375
|
+
async summarizeTable(query, summaries, summariesFilter) {
|
3376
|
+
return __privateGet$4(this, _trace).call(this, "summarize", async () => {
|
3377
|
+
const data = query.getQueryOptions();
|
3378
|
+
const result = await summarizeTable({
|
3379
|
+
pathParams: {
|
3380
|
+
workspace: "{workspaceId}",
|
3381
|
+
dbBranchName: "{dbBranch}",
|
3382
|
+
region: "{region}",
|
3383
|
+
tableName: __privateGet$4(this, _table)
|
3384
|
+
},
|
3385
|
+
body: {
|
3386
|
+
filter: cleanFilter(data.filter),
|
3387
|
+
sort: data.sort !== void 0 ? buildSortFilter(data.sort) : void 0,
|
3388
|
+
columns: data.columns,
|
3389
|
+
consistency: data.consistency,
|
3390
|
+
page: data.pagination?.size !== void 0 ? { size: data.pagination?.size } : void 0,
|
3391
|
+
summaries,
|
3392
|
+
summariesFilter
|
3393
|
+
},
|
3394
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3395
|
+
});
|
3396
|
+
return result;
|
3397
|
+
});
|
3398
|
+
}
|
3399
|
+
ask(question, options) {
|
3400
|
+
const params = {
|
3401
|
+
pathParams: {
|
3402
|
+
workspace: "{workspaceId}",
|
3403
|
+
dbBranchName: "{dbBranch}",
|
3404
|
+
region: "{region}",
|
3405
|
+
tableName: __privateGet$4(this, _table)
|
3406
|
+
},
|
3407
|
+
body: {
|
3408
|
+
question,
|
3409
|
+
...options
|
3410
|
+
},
|
3411
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3412
|
+
};
|
3413
|
+
if (options?.onMessage) {
|
3414
|
+
fetchSSERequest({
|
3415
|
+
endpoint: "dataPlane",
|
3416
|
+
url: "/db/{dbBranchName}/tables/{tableName}/ask",
|
3417
|
+
method: "POST",
|
3418
|
+
onMessage: (message) => {
|
3419
|
+
options.onMessage?.({ answer: message.text, records: message.records });
|
3420
|
+
},
|
3421
|
+
...params
|
3422
|
+
});
|
3423
|
+
} else {
|
3424
|
+
return askTable(params);
|
3425
|
+
}
|
1436
3426
|
}
|
1437
3427
|
}
|
1438
3428
|
_table = new WeakMap();
|
1439
3429
|
_getFetchProps = new WeakMap();
|
3430
|
+
_db = new WeakMap();
|
1440
3431
|
_cache = new WeakMap();
|
1441
3432
|
_schemaTables$2 = new WeakMap();
|
3433
|
+
_trace = new WeakMap();
|
1442
3434
|
_insertRecordWithoutId = new WeakSet();
|
1443
|
-
insertRecordWithoutId_fn = async function(object) {
|
1444
|
-
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
3435
|
+
insertRecordWithoutId_fn = async function(object, columns = ["*"]) {
|
1445
3436
|
const record = transformObjectLinks(object);
|
1446
3437
|
const response = await insertRecord({
|
1447
3438
|
pathParams: {
|
1448
3439
|
workspace: "{workspaceId}",
|
1449
3440
|
dbBranchName: "{dbBranch}",
|
3441
|
+
region: "{region}",
|
1450
3442
|
tableName: __privateGet$4(this, _table)
|
1451
3443
|
},
|
3444
|
+
queryParams: { columns },
|
1452
3445
|
body: record,
|
1453
|
-
...
|
3446
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
1454
3447
|
});
|
1455
|
-
const
|
1456
|
-
|
1457
|
-
throw new Error("The server failed to save the record");
|
1458
|
-
}
|
1459
|
-
return finalObject;
|
3448
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
3449
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
1460
3450
|
};
|
1461
3451
|
_insertRecordWithId = new WeakSet();
|
1462
|
-
insertRecordWithId_fn = async function(recordId, object) {
|
1463
|
-
|
3452
|
+
insertRecordWithId_fn = async function(recordId, object, columns = ["*"], { createOnly, ifVersion }) {
|
3453
|
+
if (!recordId)
|
3454
|
+
return null;
|
1464
3455
|
const record = transformObjectLinks(object);
|
1465
3456
|
const response = await insertRecordWithID({
|
1466
3457
|
pathParams: {
|
1467
3458
|
workspace: "{workspaceId}",
|
1468
3459
|
dbBranchName: "{dbBranch}",
|
3460
|
+
region: "{region}",
|
1469
3461
|
tableName: __privateGet$4(this, _table),
|
1470
3462
|
recordId
|
1471
3463
|
},
|
1472
3464
|
body: record,
|
1473
|
-
queryParams: { createOnly
|
1474
|
-
...
|
1475
|
-
});
|
1476
|
-
const finalObject = await this.read(response.id);
|
1477
|
-
if (!finalObject) {
|
1478
|
-
throw new Error("The server failed to save the record");
|
1479
|
-
}
|
1480
|
-
return finalObject;
|
1481
|
-
};
|
1482
|
-
_bulkInsertTableRecords = new WeakSet();
|
1483
|
-
bulkInsertTableRecords_fn = async function(objects) {
|
1484
|
-
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1485
|
-
const records = objects.map((object) => transformObjectLinks(object));
|
1486
|
-
const { recordIDs } = await bulkInsertTableRecords({
|
1487
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table) },
|
1488
|
-
body: { records },
|
1489
|
-
...fetchProps
|
3465
|
+
queryParams: { createOnly, columns, ifVersion },
|
3466
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
1490
3467
|
});
|
1491
|
-
const
|
1492
|
-
|
1493
|
-
|
3468
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
3469
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
3470
|
+
};
|
3471
|
+
_insertRecords = new WeakSet();
|
3472
|
+
insertRecords_fn = async function(objects, { createOnly, ifVersion }) {
|
3473
|
+
const chunkedOperations = chunk(
|
3474
|
+
objects.map((object) => ({
|
3475
|
+
insert: { table: __privateGet$4(this, _table), record: transformObjectLinks(object), createOnly, ifVersion }
|
3476
|
+
})),
|
3477
|
+
BULK_OPERATION_MAX_SIZE
|
3478
|
+
);
|
3479
|
+
const ids = [];
|
3480
|
+
for (const operations of chunkedOperations) {
|
3481
|
+
const { results } = await branchTransaction({
|
3482
|
+
pathParams: {
|
3483
|
+
workspace: "{workspaceId}",
|
3484
|
+
dbBranchName: "{dbBranch}",
|
3485
|
+
region: "{region}"
|
3486
|
+
},
|
3487
|
+
body: { operations },
|
3488
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3489
|
+
});
|
3490
|
+
for (const result of results) {
|
3491
|
+
if (result.operation === "insert") {
|
3492
|
+
ids.push(result.id);
|
3493
|
+
} else {
|
3494
|
+
ids.push(null);
|
3495
|
+
}
|
3496
|
+
}
|
1494
3497
|
}
|
1495
|
-
|
1496
|
-
acc[object.id] = object;
|
1497
|
-
return acc;
|
1498
|
-
}, {});
|
1499
|
-
return recordIDs.map((id) => dictionary[id]);
|
3498
|
+
return ids;
|
1500
3499
|
};
|
1501
3500
|
_updateRecordWithID = new WeakSet();
|
1502
|
-
updateRecordWithID_fn = async function(recordId, object) {
|
1503
|
-
|
1504
|
-
|
1505
|
-
const
|
1506
|
-
|
1507
|
-
|
1508
|
-
|
1509
|
-
|
1510
|
-
|
1511
|
-
|
1512
|
-
|
1513
|
-
|
3501
|
+
updateRecordWithID_fn = async function(recordId, object, columns = ["*"], { ifVersion }) {
|
3502
|
+
if (!recordId)
|
3503
|
+
return null;
|
3504
|
+
const { id: _id, ...record } = transformObjectLinks(object);
|
3505
|
+
try {
|
3506
|
+
const response = await updateRecordWithID({
|
3507
|
+
pathParams: {
|
3508
|
+
workspace: "{workspaceId}",
|
3509
|
+
dbBranchName: "{dbBranch}",
|
3510
|
+
region: "{region}",
|
3511
|
+
tableName: __privateGet$4(this, _table),
|
3512
|
+
recordId
|
3513
|
+
},
|
3514
|
+
queryParams: { columns, ifVersion },
|
3515
|
+
body: record,
|
3516
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3517
|
+
});
|
3518
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
3519
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
3520
|
+
} catch (e) {
|
3521
|
+
if (isObject(e) && e.status === 404) {
|
3522
|
+
return null;
|
3523
|
+
}
|
3524
|
+
throw e;
|
3525
|
+
}
|
3526
|
+
};
|
3527
|
+
_updateRecords = new WeakSet();
|
3528
|
+
updateRecords_fn = async function(objects, { ifVersion, upsert }) {
|
3529
|
+
const chunkedOperations = chunk(
|
3530
|
+
objects.map(({ id, ...object }) => ({
|
3531
|
+
update: { table: __privateGet$4(this, _table), id, ifVersion, upsert, fields: transformObjectLinks(object) }
|
3532
|
+
})),
|
3533
|
+
BULK_OPERATION_MAX_SIZE
|
3534
|
+
);
|
3535
|
+
const ids = [];
|
3536
|
+
for (const operations of chunkedOperations) {
|
3537
|
+
const { results } = await branchTransaction({
|
3538
|
+
pathParams: {
|
3539
|
+
workspace: "{workspaceId}",
|
3540
|
+
dbBranchName: "{dbBranch}",
|
3541
|
+
region: "{region}"
|
3542
|
+
},
|
3543
|
+
body: { operations },
|
3544
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3545
|
+
});
|
3546
|
+
for (const result of results) {
|
3547
|
+
if (result.operation === "update") {
|
3548
|
+
ids.push(result.id);
|
3549
|
+
} else {
|
3550
|
+
ids.push(null);
|
3551
|
+
}
|
3552
|
+
}
|
3553
|
+
}
|
3554
|
+
return ids;
|
1514
3555
|
};
|
1515
3556
|
_upsertRecordWithID = new WeakSet();
|
1516
|
-
upsertRecordWithID_fn = async function(recordId, object) {
|
1517
|
-
|
3557
|
+
upsertRecordWithID_fn = async function(recordId, object, columns = ["*"], { ifVersion }) {
|
3558
|
+
if (!recordId)
|
3559
|
+
return null;
|
1518
3560
|
const response = await upsertRecordWithID({
|
1519
|
-
pathParams: {
|
3561
|
+
pathParams: {
|
3562
|
+
workspace: "{workspaceId}",
|
3563
|
+
dbBranchName: "{dbBranch}",
|
3564
|
+
region: "{region}",
|
3565
|
+
tableName: __privateGet$4(this, _table),
|
3566
|
+
recordId
|
3567
|
+
},
|
3568
|
+
queryParams: { columns, ifVersion },
|
1520
3569
|
body: object,
|
1521
|
-
...
|
3570
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
1522
3571
|
});
|
1523
|
-
const
|
1524
|
-
|
1525
|
-
throw new Error("The server failed to save the record");
|
1526
|
-
return item;
|
3572
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
3573
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
1527
3574
|
};
|
1528
3575
|
_deleteRecord = new WeakSet();
|
1529
|
-
deleteRecord_fn = async function(recordId) {
|
1530
|
-
|
1531
|
-
await deleteRecord({
|
1532
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
|
1533
|
-
...fetchProps
|
1534
|
-
});
|
1535
|
-
};
|
1536
|
-
_invalidateCache = new WeakSet();
|
1537
|
-
invalidateCache_fn = async function(recordId) {
|
1538
|
-
await __privateGet$4(this, _cache).delete(`rec_${__privateGet$4(this, _table)}:${recordId}`);
|
1539
|
-
const cacheItems = await __privateGet$4(this, _cache).getAll();
|
1540
|
-
const queries = Object.entries(cacheItems).filter(([key]) => key.startsWith("query_"));
|
1541
|
-
for (const [key, value] of queries) {
|
1542
|
-
const ids = getIds(value);
|
1543
|
-
if (ids.includes(recordId))
|
1544
|
-
await __privateGet$4(this, _cache).delete(key);
|
1545
|
-
}
|
1546
|
-
};
|
1547
|
-
_setCacheRecord = new WeakSet();
|
1548
|
-
setCacheRecord_fn = async function(record) {
|
1549
|
-
if (!__privateGet$4(this, _cache).cacheRecords)
|
1550
|
-
return;
|
1551
|
-
await __privateGet$4(this, _cache).set(`rec_${__privateGet$4(this, _table)}:${record.id}`, record);
|
1552
|
-
};
|
1553
|
-
_getCacheRecord = new WeakSet();
|
1554
|
-
getCacheRecord_fn = async function(recordId) {
|
1555
|
-
if (!__privateGet$4(this, _cache).cacheRecords)
|
3576
|
+
deleteRecord_fn = async function(recordId, columns = ["*"]) {
|
3577
|
+
if (!recordId)
|
1556
3578
|
return null;
|
1557
|
-
|
3579
|
+
try {
|
3580
|
+
const response = await deleteRecord({
|
3581
|
+
pathParams: {
|
3582
|
+
workspace: "{workspaceId}",
|
3583
|
+
dbBranchName: "{dbBranch}",
|
3584
|
+
region: "{region}",
|
3585
|
+
tableName: __privateGet$4(this, _table),
|
3586
|
+
recordId
|
3587
|
+
},
|
3588
|
+
queryParams: { columns },
|
3589
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3590
|
+
});
|
3591
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
3592
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
3593
|
+
} catch (e) {
|
3594
|
+
if (isObject(e) && e.status === 404) {
|
3595
|
+
return null;
|
3596
|
+
}
|
3597
|
+
throw e;
|
3598
|
+
}
|
3599
|
+
};
|
3600
|
+
_deleteRecords = new WeakSet();
|
3601
|
+
deleteRecords_fn = async function(recordIds) {
|
3602
|
+
const chunkedOperations = chunk(
|
3603
|
+
compact(recordIds).map((id) => ({ delete: { table: __privateGet$4(this, _table), id } })),
|
3604
|
+
BULK_OPERATION_MAX_SIZE
|
3605
|
+
);
|
3606
|
+
for (const operations of chunkedOperations) {
|
3607
|
+
await branchTransaction({
|
3608
|
+
pathParams: {
|
3609
|
+
workspace: "{workspaceId}",
|
3610
|
+
dbBranchName: "{dbBranch}",
|
3611
|
+
region: "{region}"
|
3612
|
+
},
|
3613
|
+
body: { operations },
|
3614
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
3615
|
+
});
|
3616
|
+
}
|
1558
3617
|
};
|
1559
3618
|
_setCacheQuery = new WeakSet();
|
1560
3619
|
setCacheQuery_fn = async function(query, meta, records) {
|
1561
|
-
await __privateGet$4(this, _cache)
|
3620
|
+
await __privateGet$4(this, _cache)?.set(`query_${__privateGet$4(this, _table)}:${query.key()}`, { date: /* @__PURE__ */ new Date(), meta, records });
|
1562
3621
|
};
|
1563
3622
|
_getCacheQuery = new WeakSet();
|
1564
3623
|
getCacheQuery_fn = async function(query) {
|
1565
3624
|
const key = `query_${__privateGet$4(this, _table)}:${query.key()}`;
|
1566
|
-
const result = await __privateGet$4(this, _cache)
|
3625
|
+
const result = await __privateGet$4(this, _cache)?.get(key);
|
1567
3626
|
if (!result)
|
1568
3627
|
return null;
|
1569
|
-
const
|
3628
|
+
const defaultTTL = __privateGet$4(this, _cache)?.defaultQueryTTL ?? -1;
|
3629
|
+
const { cache: ttl = defaultTTL } = query.getQueryOptions();
|
1570
3630
|
if (ttl < 0)
|
1571
3631
|
return null;
|
1572
3632
|
const hasExpired = result.date.getTime() + ttl < Date.now();
|
@@ -1576,10 +3636,9 @@ _getSchemaTables$1 = new WeakSet();
|
|
1576
3636
|
getSchemaTables_fn$1 = async function() {
|
1577
3637
|
if (__privateGet$4(this, _schemaTables$2))
|
1578
3638
|
return __privateGet$4(this, _schemaTables$2);
|
1579
|
-
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1580
3639
|
const { schema } = await getBranchDetails({
|
1581
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
1582
|
-
...
|
3640
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
|
3641
|
+
...__privateGet$4(this, _getFetchProps).call(this)
|
1583
3642
|
});
|
1584
3643
|
__privateSet$4(this, _schemaTables$2, schema.tables);
|
1585
3644
|
return schema.tables;
|
@@ -1591,22 +3650,24 @@ const transformObjectLinks = (object) => {
|
|
1591
3650
|
return { ...acc, [key]: isIdentifiable(value) ? value.id : value };
|
1592
3651
|
}, {});
|
1593
3652
|
};
|
1594
|
-
const initObject = (db, schemaTables, table, object) => {
|
1595
|
-
const
|
3653
|
+
const initObject = (db, schemaTables, table, object, selectedColumns) => {
|
3654
|
+
const data = {};
|
1596
3655
|
const { xata, ...rest } = object ?? {};
|
1597
|
-
Object.assign(
|
3656
|
+
Object.assign(data, rest);
|
1598
3657
|
const { columns } = schemaTables.find(({ name }) => name === table) ?? {};
|
1599
3658
|
if (!columns)
|
1600
3659
|
console.error(`Table ${table} not found in schema`);
|
1601
3660
|
for (const column of columns ?? []) {
|
1602
|
-
|
3661
|
+
if (!isValidColumn(selectedColumns, column))
|
3662
|
+
continue;
|
3663
|
+
const value = data[column.name];
|
1603
3664
|
switch (column.type) {
|
1604
3665
|
case "datetime": {
|
1605
|
-
const date = value !== void 0 ? new Date(value) :
|
1606
|
-
if (date && isNaN(date.getTime())) {
|
3666
|
+
const date = value !== void 0 ? new Date(value) : null;
|
3667
|
+
if (date !== null && isNaN(date.getTime())) {
|
1607
3668
|
console.error(`Failed to parse date ${value} for field ${column.name}`);
|
1608
|
-
} else
|
1609
|
-
|
3669
|
+
} else {
|
3670
|
+
data[column.name] = date;
|
1610
3671
|
}
|
1611
3672
|
break;
|
1612
3673
|
}
|
@@ -1615,38 +3676,88 @@ const initObject = (db, schemaTables, table, object) => {
|
|
1615
3676
|
if (!linkTable) {
|
1616
3677
|
console.error(`Failed to parse link for field ${column.name}`);
|
1617
3678
|
} else if (isObject(value)) {
|
1618
|
-
|
3679
|
+
const selectedLinkColumns = selectedColumns.reduce((acc, item) => {
|
3680
|
+
if (item === column.name) {
|
3681
|
+
return [...acc, "*"];
|
3682
|
+
}
|
3683
|
+
if (item.startsWith(`${column.name}.`)) {
|
3684
|
+
const [, ...path] = item.split(".");
|
3685
|
+
return [...acc, path.join(".")];
|
3686
|
+
}
|
3687
|
+
return acc;
|
3688
|
+
}, []);
|
3689
|
+
data[column.name] = initObject(db, schemaTables, linkTable, value, selectedLinkColumns);
|
3690
|
+
} else {
|
3691
|
+
data[column.name] = null;
|
1619
3692
|
}
|
1620
3693
|
break;
|
1621
3694
|
}
|
3695
|
+
default:
|
3696
|
+
data[column.name] = value ?? null;
|
3697
|
+
if (column.notNull === true && value === null) {
|
3698
|
+
console.error(`Parse error, column ${column.name} is non nullable and value resolves null`);
|
3699
|
+
}
|
3700
|
+
break;
|
1622
3701
|
}
|
1623
3702
|
}
|
1624
|
-
|
1625
|
-
|
3703
|
+
const record = { ...data };
|
3704
|
+
const serializable = { xata, ...transformObjectLinks(data) };
|
3705
|
+
const metadata = xata !== void 0 ? { ...xata, createdAt: new Date(xata.createdAt), updatedAt: new Date(xata.updatedAt) } : void 0;
|
3706
|
+
record.read = function(columns2) {
|
3707
|
+
return db[table].read(record["id"], columns2);
|
3708
|
+
};
|
3709
|
+
record.update = function(data2, b, c) {
|
3710
|
+
const columns2 = isStringArray(b) ? b : ["*"];
|
3711
|
+
const ifVersion = parseIfVersion(b, c);
|
3712
|
+
return db[table].update(record["id"], data2, columns2, { ifVersion });
|
3713
|
+
};
|
3714
|
+
record.replace = function(data2, b, c) {
|
3715
|
+
const columns2 = isStringArray(b) ? b : ["*"];
|
3716
|
+
const ifVersion = parseIfVersion(b, c);
|
3717
|
+
return db[table].createOrReplace(record["id"], data2, columns2, { ifVersion });
|
1626
3718
|
};
|
1627
|
-
|
1628
|
-
return db[table].
|
3719
|
+
record.delete = function() {
|
3720
|
+
return db[table].delete(record["id"]);
|
1629
3721
|
};
|
1630
|
-
|
1631
|
-
|
3722
|
+
record.xata = Object.freeze(metadata);
|
3723
|
+
record.getMetadata = function() {
|
3724
|
+
return record.xata;
|
1632
3725
|
};
|
1633
|
-
|
1634
|
-
return
|
3726
|
+
record.toSerializable = function() {
|
3727
|
+
return JSON.parse(JSON.stringify(serializable));
|
1635
3728
|
};
|
1636
|
-
|
1637
|
-
|
3729
|
+
record.toString = function() {
|
3730
|
+
return JSON.stringify(transformObjectLinks(serializable));
|
3731
|
+
};
|
3732
|
+
for (const prop of ["read", "update", "replace", "delete", "getMetadata", "toSerializable", "toString"]) {
|
3733
|
+
Object.defineProperty(record, prop, { enumerable: false });
|
1638
3734
|
}
|
1639
|
-
Object.freeze(
|
1640
|
-
return
|
3735
|
+
Object.freeze(record);
|
3736
|
+
return record;
|
1641
3737
|
};
|
1642
|
-
function
|
1643
|
-
if (
|
1644
|
-
return value
|
3738
|
+
function extractId(value) {
|
3739
|
+
if (isString(value))
|
3740
|
+
return value;
|
3741
|
+
if (isObject(value) && isString(value.id))
|
3742
|
+
return value.id;
|
3743
|
+
return void 0;
|
3744
|
+
}
|
3745
|
+
function isValidColumn(columns, column) {
|
3746
|
+
if (columns.includes("*"))
|
3747
|
+
return true;
|
3748
|
+
if (column.type === "link") {
|
3749
|
+
const linkColumns = columns.filter((item) => item.startsWith(column.name));
|
3750
|
+
return linkColumns.length > 0;
|
3751
|
+
}
|
3752
|
+
return columns.includes(column.name);
|
3753
|
+
}
|
3754
|
+
function parseIfVersion(...args) {
|
3755
|
+
for (const arg of args) {
|
3756
|
+
if (isObject(arg) && isNumber(arg.ifVersion)) {
|
3757
|
+
return arg.ifVersion;
|
3758
|
+
}
|
1645
3759
|
}
|
1646
|
-
|
1647
|
-
return [];
|
1648
|
-
const nestedIds = Object.values(value).map((item) => getIds(item)).flat();
|
1649
|
-
return isString(value.id) ? [value.id, ...nestedIds] : nestedIds;
|
3760
|
+
return void 0;
|
1650
3761
|
}
|
1651
3762
|
|
1652
3763
|
var __accessCheck$3 = (obj, member, msg) => {
|
@@ -1673,7 +3784,6 @@ class SimpleCache {
|
|
1673
3784
|
__privateAdd$3(this, _map, void 0);
|
1674
3785
|
__privateSet$3(this, _map, /* @__PURE__ */ new Map());
|
1675
3786
|
this.capacity = options.max ?? 500;
|
1676
|
-
this.cacheRecords = options.cacheRecords ?? true;
|
1677
3787
|
this.defaultQueryTTL = options.defaultQueryTTL ?? 60 * 1e3;
|
1678
3788
|
}
|
1679
3789
|
async getAll() {
|
@@ -1699,18 +3809,25 @@ class SimpleCache {
|
|
1699
3809
|
}
|
1700
3810
|
_map = new WeakMap();
|
1701
3811
|
|
1702
|
-
const
|
1703
|
-
const
|
1704
|
-
const
|
1705
|
-
const
|
1706
|
-
const
|
1707
|
-
const
|
3812
|
+
const greaterThan = (value) => ({ $gt: value });
|
3813
|
+
const gt = greaterThan;
|
3814
|
+
const greaterThanEquals = (value) => ({ $ge: value });
|
3815
|
+
const greaterEquals = greaterThanEquals;
|
3816
|
+
const gte = greaterThanEquals;
|
3817
|
+
const ge = greaterThanEquals;
|
3818
|
+
const lessThan = (value) => ({ $lt: value });
|
3819
|
+
const lt = lessThan;
|
3820
|
+
const lessThanEquals = (value) => ({ $le: value });
|
3821
|
+
const lessEquals = lessThanEquals;
|
3822
|
+
const lte = lessThanEquals;
|
3823
|
+
const le = lessThanEquals;
|
1708
3824
|
const exists = (column) => ({ $exists: column });
|
1709
3825
|
const notExists = (column) => ({ $notExists: column });
|
1710
3826
|
const startsWith = (value) => ({ $startsWith: value });
|
1711
3827
|
const endsWith = (value) => ({ $endsWith: value });
|
1712
3828
|
const pattern = (value) => ({ $pattern: value });
|
1713
3829
|
const is = (value) => ({ $is: value });
|
3830
|
+
const equals = is;
|
1714
3831
|
const isNot = (value) => ({ $isNot: value });
|
1715
3832
|
const contains = (value) => ({ $contains: value });
|
1716
3833
|
const includes = (value) => ({ $includes: value });
|
@@ -1745,16 +3862,19 @@ class SchemaPlugin extends XataPlugin {
|
|
1745
3862
|
__privateSet$2(this, _schemaTables$1, schemaTables);
|
1746
3863
|
}
|
1747
3864
|
build(pluginOptions) {
|
1748
|
-
const db = new Proxy(
|
1749
|
-
|
1750
|
-
|
1751
|
-
|
1752
|
-
|
1753
|
-
|
3865
|
+
const db = new Proxy(
|
3866
|
+
{},
|
3867
|
+
{
|
3868
|
+
get: (_target, table) => {
|
3869
|
+
if (!isString(table))
|
3870
|
+
throw new Error("Invalid table name");
|
3871
|
+
if (__privateGet$2(this, _tables)[table] === void 0) {
|
3872
|
+
__privateGet$2(this, _tables)[table] = new RestRepository({ db, pluginOptions, table, schemaTables: __privateGet$2(this, _schemaTables$1) });
|
3873
|
+
}
|
3874
|
+
return __privateGet$2(this, _tables)[table];
|
1754
3875
|
}
|
1755
|
-
return __privateGet$2(this, _tables)[table];
|
1756
3876
|
}
|
1757
|
-
|
3877
|
+
);
|
1758
3878
|
const tableNames = __privateGet$2(this, _schemaTables$1)?.map(({ name }) => name) ?? [];
|
1759
3879
|
for (const table of tableNames) {
|
1760
3880
|
db[table] = new RestRepository({ db, pluginOptions, table, schemaTables: __privateGet$2(this, _schemaTables$1) });
|
@@ -1797,23 +3917,23 @@ class SearchPlugin extends XataPlugin {
|
|
1797
3917
|
__privateAdd$1(this, _schemaTables, void 0);
|
1798
3918
|
__privateSet$1(this, _schemaTables, schemaTables);
|
1799
3919
|
}
|
1800
|
-
build(
|
3920
|
+
build(pluginOptions) {
|
1801
3921
|
return {
|
1802
3922
|
all: async (query, options = {}) => {
|
1803
|
-
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options,
|
1804
|
-
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this,
|
3923
|
+
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options, pluginOptions);
|
3924
|
+
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, pluginOptions);
|
1805
3925
|
return records.map((record) => {
|
1806
3926
|
const { table = "orphan" } = record.xata;
|
1807
|
-
return { table, record: initObject(this.db, schemaTables, table, record) };
|
3927
|
+
return { table, record: initObject(this.db, schemaTables, table, record, ["*"]) };
|
1808
3928
|
});
|
1809
3929
|
},
|
1810
3930
|
byTable: async (query, options = {}) => {
|
1811
|
-
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options,
|
1812
|
-
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this,
|
3931
|
+
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options, pluginOptions);
|
3932
|
+
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, pluginOptions);
|
1813
3933
|
return records.reduce((acc, record) => {
|
1814
3934
|
const { table = "orphan" } = record.xata;
|
1815
3935
|
const items = acc[table] ?? [];
|
1816
|
-
const item = initObject(this.db, schemaTables, table, record);
|
3936
|
+
const item = initObject(this.db, schemaTables, table, record, ["*"]);
|
1817
3937
|
return { ...acc, [table]: [...items, item] };
|
1818
3938
|
}, {});
|
1819
3939
|
}
|
@@ -1822,114 +3942,40 @@ class SearchPlugin extends XataPlugin {
|
|
1822
3942
|
}
|
1823
3943
|
_schemaTables = new WeakMap();
|
1824
3944
|
_search = new WeakSet();
|
1825
|
-
search_fn = async function(query, options,
|
1826
|
-
const
|
1827
|
-
const { tables, fuzziness, highlight } = options ?? {};
|
3945
|
+
search_fn = async function(query, options, pluginOptions) {
|
3946
|
+
const { tables, fuzziness, highlight, prefix, page } = options ?? {};
|
1828
3947
|
const { records } = await searchBranch({
|
1829
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
1830
|
-
|
1831
|
-
|
3948
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
|
3949
|
+
// @ts-ignore https://github.com/xataio/client-ts/issues/313
|
3950
|
+
body: { tables, query, fuzziness, prefix, highlight, page },
|
3951
|
+
...pluginOptions
|
1832
3952
|
});
|
1833
3953
|
return records;
|
1834
3954
|
};
|
1835
3955
|
_getSchemaTables = new WeakSet();
|
1836
|
-
getSchemaTables_fn = async function(
|
3956
|
+
getSchemaTables_fn = async function(pluginOptions) {
|
1837
3957
|
if (__privateGet$1(this, _schemaTables))
|
1838
3958
|
return __privateGet$1(this, _schemaTables);
|
1839
|
-
const fetchProps = await getFetchProps();
|
1840
3959
|
const { schema } = await getBranchDetails({
|
1841
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
1842
|
-
...
|
3960
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
|
3961
|
+
...pluginOptions
|
1843
3962
|
});
|
1844
3963
|
__privateSet$1(this, _schemaTables, schema.tables);
|
1845
3964
|
return schema.tables;
|
1846
3965
|
};
|
1847
3966
|
|
1848
|
-
|
1849
|
-
|
1850
|
-
|
1851
|
-
|
1852
|
-
const
|
1853
|
-
|
1854
|
-
|
1855
|
-
|
1856
|
-
|
1857
|
-
|
1858
|
-
|
1859
|
-
|
1860
|
-
if (env) {
|
1861
|
-
const details = await getDatabaseBranch(env, options);
|
1862
|
-
if (details)
|
1863
|
-
return env;
|
1864
|
-
console.warn(`Branch ${env} not found in Xata. Ignoring...`);
|
1865
|
-
}
|
1866
|
-
const gitBranch = await getGitBranch();
|
1867
|
-
return resolveXataBranch(gitBranch, options);
|
1868
|
-
}
|
1869
|
-
async function getCurrentBranchDetails(options) {
|
1870
|
-
const branch = await getCurrentBranchName(options);
|
1871
|
-
return getDatabaseBranch(branch, options);
|
1872
|
-
}
|
1873
|
-
async function resolveXataBranch(gitBranch, options) {
|
1874
|
-
const databaseURL = options?.databaseURL || getDatabaseURL();
|
1875
|
-
const apiKey = options?.apiKey || getAPIKey();
|
1876
|
-
if (!databaseURL)
|
1877
|
-
throw new Error("A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely");
|
1878
|
-
if (!apiKey)
|
1879
|
-
throw new Error("An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely");
|
1880
|
-
const [protocol, , host, , dbName] = databaseURL.split("/");
|
1881
|
-
const [workspace] = host.split(".");
|
1882
|
-
const { branch } = await resolveBranch({
|
1883
|
-
apiKey,
|
1884
|
-
apiUrl: databaseURL,
|
1885
|
-
fetchImpl: getFetchImplementation(options?.fetchImpl),
|
1886
|
-
workspacesApiUrl: `${protocol}//${host}`,
|
1887
|
-
pathParams: { dbName, workspace },
|
1888
|
-
queryParams: { gitBranch, fallbackBranch: getEnvVariable("XATA_FALLBACK_BRANCH") }
|
1889
|
-
});
|
1890
|
-
return branch;
|
1891
|
-
}
|
1892
|
-
async function getDatabaseBranch(branch, options) {
|
1893
|
-
const databaseURL = options?.databaseURL || getDatabaseURL();
|
1894
|
-
const apiKey = options?.apiKey || getAPIKey();
|
1895
|
-
if (!databaseURL)
|
1896
|
-
throw new Error("A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely");
|
1897
|
-
if (!apiKey)
|
1898
|
-
throw new Error("An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely");
|
1899
|
-
const [protocol, , host, , database] = databaseURL.split("/");
|
1900
|
-
const [workspace] = host.split(".");
|
1901
|
-
const dbBranchName = `${database}:${branch}`;
|
1902
|
-
try {
|
1903
|
-
return await getBranchDetails({
|
1904
|
-
apiKey,
|
1905
|
-
apiUrl: databaseURL,
|
1906
|
-
fetchImpl: getFetchImplementation(options?.fetchImpl),
|
1907
|
-
workspacesApiUrl: `${protocol}//${host}`,
|
1908
|
-
pathParams: { dbBranchName, workspace }
|
1909
|
-
});
|
1910
|
-
} catch (err) {
|
1911
|
-
if (isObject(err) && err.status === 404)
|
1912
|
-
return null;
|
1913
|
-
throw err;
|
1914
|
-
}
|
1915
|
-
}
|
1916
|
-
function getBranchByEnvVariable() {
|
1917
|
-
for (const name of envBranchNames) {
|
1918
|
-
const value = getEnvVariable(name);
|
1919
|
-
if (value) {
|
1920
|
-
return value;
|
1921
|
-
}
|
1922
|
-
}
|
1923
|
-
try {
|
1924
|
-
return XATA_BRANCH;
|
1925
|
-
} catch (err) {
|
1926
|
-
}
|
1927
|
-
}
|
1928
|
-
function getDatabaseURL() {
|
1929
|
-
try {
|
1930
|
-
return getEnvVariable("XATA_DATABASE_URL") ?? XATA_DATABASE_URL;
|
1931
|
-
} catch (err) {
|
1932
|
-
return void 0;
|
3967
|
+
class TransactionPlugin extends XataPlugin {
|
3968
|
+
build(pluginOptions) {
|
3969
|
+
return {
|
3970
|
+
run: async (operations) => {
|
3971
|
+
const response = await branchTransaction({
|
3972
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
|
3973
|
+
body: { operations },
|
3974
|
+
...pluginOptions
|
3975
|
+
});
|
3976
|
+
return response;
|
3977
|
+
}
|
3978
|
+
};
|
1933
3979
|
}
|
1934
3980
|
}
|
1935
3981
|
|
@@ -1956,85 +4002,203 @@ var __privateMethod = (obj, member, method) => {
|
|
1956
4002
|
return method;
|
1957
4003
|
};
|
1958
4004
|
const buildClient = (plugins) => {
|
1959
|
-
var
|
4005
|
+
var _options, _parseOptions, parseOptions_fn, _getFetchProps, getFetchProps_fn, _a;
|
1960
4006
|
return _a = class {
|
1961
4007
|
constructor(options = {}, schemaTables) {
|
1962
4008
|
__privateAdd(this, _parseOptions);
|
1963
4009
|
__privateAdd(this, _getFetchProps);
|
1964
|
-
__privateAdd(this,
|
1965
|
-
__privateAdd(this, _branch, void 0);
|
4010
|
+
__privateAdd(this, _options, void 0);
|
1966
4011
|
const safeOptions = __privateMethod(this, _parseOptions, parseOptions_fn).call(this, options);
|
4012
|
+
__privateSet(this, _options, safeOptions);
|
1967
4013
|
const pluginOptions = {
|
1968
|
-
|
1969
|
-
cache: safeOptions.cache
|
4014
|
+
...__privateMethod(this, _getFetchProps, getFetchProps_fn).call(this, safeOptions),
|
4015
|
+
cache: safeOptions.cache,
|
4016
|
+
host: safeOptions.host
|
1970
4017
|
};
|
1971
4018
|
const db = new SchemaPlugin(schemaTables).build(pluginOptions);
|
1972
4019
|
const search = new SearchPlugin(db, schemaTables).build(pluginOptions);
|
4020
|
+
const transactions = new TransactionPlugin().build(pluginOptions);
|
1973
4021
|
this.db = db;
|
1974
4022
|
this.search = search;
|
4023
|
+
this.transactions = transactions;
|
1975
4024
|
for (const [key, namespace] of Object.entries(plugins ?? {})) {
|
1976
4025
|
if (namespace === void 0)
|
1977
4026
|
continue;
|
1978
|
-
|
1979
|
-
if (result instanceof Promise) {
|
1980
|
-
void result.then((namespace2) => {
|
1981
|
-
this[key] = namespace2;
|
1982
|
-
});
|
1983
|
-
} else {
|
1984
|
-
this[key] = result;
|
1985
|
-
}
|
4027
|
+
this[key] = namespace.build(pluginOptions);
|
1986
4028
|
}
|
1987
4029
|
}
|
1988
|
-
|
4030
|
+
async getConfig() {
|
4031
|
+
const databaseURL = __privateGet(this, _options).databaseURL;
|
4032
|
+
const branch = __privateGet(this, _options).branch;
|
4033
|
+
return { databaseURL, branch };
|
4034
|
+
}
|
4035
|
+
}, _options = new WeakMap(), _parseOptions = new WeakSet(), parseOptions_fn = function(options) {
|
4036
|
+
const enableBrowser = options?.enableBrowser ?? getEnableBrowserVariable() ?? false;
|
4037
|
+
const isBrowser = typeof window !== "undefined" && typeof Deno === "undefined";
|
4038
|
+
if (isBrowser && !enableBrowser) {
|
4039
|
+
throw new Error(
|
4040
|
+
"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."
|
4041
|
+
);
|
4042
|
+
}
|
1989
4043
|
const fetch = getFetchImplementation(options?.fetch);
|
1990
4044
|
const databaseURL = options?.databaseURL || getDatabaseURL();
|
1991
4045
|
const apiKey = options?.apiKey || getAPIKey();
|
1992
|
-
const cache = options?.cache ?? new SimpleCache({
|
1993
|
-
const
|
1994
|
-
|
1995
|
-
|
4046
|
+
const cache = options?.cache ?? new SimpleCache({ defaultQueryTTL: 0 });
|
4047
|
+
const trace = options?.trace ?? defaultTrace;
|
4048
|
+
const clientName = options?.clientName;
|
4049
|
+
const host = options?.host ?? "production";
|
4050
|
+
const xataAgentExtra = options?.xataAgentExtra;
|
4051
|
+
if (!apiKey) {
|
4052
|
+
throw new Error("Option apiKey is required");
|
4053
|
+
}
|
4054
|
+
if (!databaseURL) {
|
4055
|
+
throw new Error("Option databaseURL is required");
|
1996
4056
|
}
|
1997
|
-
|
1998
|
-
|
4057
|
+
const envBranch = getBranch();
|
4058
|
+
const previewBranch = getPreviewBranch();
|
4059
|
+
const branch = options?.branch || previewBranch || envBranch || "main";
|
4060
|
+
if (!!previewBranch && branch !== previewBranch) {
|
4061
|
+
console.warn(
|
4062
|
+
`Ignoring preview branch ${previewBranch} because branch option was passed to the client constructor with value ${branch}`
|
4063
|
+
);
|
4064
|
+
} else if (!!envBranch && branch !== envBranch) {
|
4065
|
+
console.warn(
|
4066
|
+
`Ignoring branch ${envBranch} because branch option was passed to the client constructor with value ${branch}`
|
4067
|
+
);
|
4068
|
+
} else if (!!previewBranch && !!envBranch && previewBranch !== envBranch) {
|
4069
|
+
console.warn(
|
4070
|
+
`Ignoring preview branch ${previewBranch} and branch ${envBranch} because branch option was passed to the client constructor with value ${branch}`
|
4071
|
+
);
|
4072
|
+
} else if (!previewBranch && !envBranch && options?.branch === void 0) {
|
4073
|
+
console.warn(
|
4074
|
+
`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.`
|
4075
|
+
);
|
4076
|
+
}
|
4077
|
+
return {
|
4078
|
+
fetch,
|
4079
|
+
databaseURL,
|
4080
|
+
apiKey,
|
4081
|
+
branch,
|
4082
|
+
cache,
|
4083
|
+
trace,
|
4084
|
+
host,
|
4085
|
+
clientID: generateUUID(),
|
4086
|
+
enableBrowser,
|
4087
|
+
clientName,
|
4088
|
+
xataAgentExtra
|
4089
|
+
};
|
4090
|
+
}, _getFetchProps = new WeakSet(), getFetchProps_fn = function({
|
1999
4091
|
fetch,
|
2000
4092
|
apiKey,
|
2001
4093
|
databaseURL,
|
2002
|
-
branch
|
4094
|
+
branch,
|
4095
|
+
trace,
|
4096
|
+
clientID,
|
4097
|
+
clientName,
|
4098
|
+
xataAgentExtra
|
2003
4099
|
}) {
|
2004
|
-
const branchValue = await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, branch);
|
2005
|
-
if (!branchValue)
|
2006
|
-
throw new Error("Unable to resolve branch value");
|
2007
4100
|
return {
|
2008
|
-
|
4101
|
+
fetch,
|
2009
4102
|
apiKey,
|
2010
4103
|
apiUrl: "",
|
4104
|
+
// Instead of using workspace and dbBranch, we inject a probably CNAME'd URL
|
2011
4105
|
workspacesApiUrl: (path, params) => {
|
2012
4106
|
const hasBranch = params.dbBranchName ?? params.branch;
|
2013
|
-
const newPath = path.replace(/^\/db\/[^/]+/, hasBranch ? `:${
|
4107
|
+
const newPath = path.replace(/^\/db\/[^/]+/, hasBranch !== void 0 ? `:${branch}` : "");
|
2014
4108
|
return databaseURL + newPath;
|
2015
|
-
}
|
2016
|
-
|
2017
|
-
|
2018
|
-
|
2019
|
-
|
2020
|
-
if (param === void 0)
|
2021
|
-
return void 0;
|
2022
|
-
const strategies = Array.isArray(param) ? [...param] : [param];
|
2023
|
-
const evaluateBranch = async (strategy) => {
|
2024
|
-
return isBranchStrategyBuilder(strategy) ? await strategy() : strategy;
|
4109
|
+
},
|
4110
|
+
trace,
|
4111
|
+
clientID,
|
4112
|
+
clientName,
|
4113
|
+
xataAgentExtra
|
2025
4114
|
};
|
2026
|
-
for await (const strategy of strategies) {
|
2027
|
-
const branch = await evaluateBranch(strategy);
|
2028
|
-
if (branch) {
|
2029
|
-
__privateSet(this, _branch, branch);
|
2030
|
-
return branch;
|
2031
|
-
}
|
2032
|
-
}
|
2033
4115
|
}, _a;
|
2034
4116
|
};
|
2035
4117
|
class BaseClient extends buildClient() {
|
2036
4118
|
}
|
2037
4119
|
|
4120
|
+
const META = "__";
|
4121
|
+
const VALUE = "___";
|
4122
|
+
class Serializer {
|
4123
|
+
constructor() {
|
4124
|
+
this.classes = {};
|
4125
|
+
}
|
4126
|
+
add(clazz) {
|
4127
|
+
this.classes[clazz.name] = clazz;
|
4128
|
+
}
|
4129
|
+
toJSON(data) {
|
4130
|
+
function visit(obj) {
|
4131
|
+
if (Array.isArray(obj))
|
4132
|
+
return obj.map(visit);
|
4133
|
+
const type = typeof obj;
|
4134
|
+
if (type === "undefined")
|
4135
|
+
return { [META]: "undefined" };
|
4136
|
+
if (type === "bigint")
|
4137
|
+
return { [META]: "bigint", [VALUE]: obj.toString() };
|
4138
|
+
if (obj === null || type !== "object")
|
4139
|
+
return obj;
|
4140
|
+
const constructor = obj.constructor;
|
4141
|
+
const o = { [META]: constructor.name };
|
4142
|
+
for (const [key, value] of Object.entries(obj)) {
|
4143
|
+
o[key] = visit(value);
|
4144
|
+
}
|
4145
|
+
if (constructor === Date)
|
4146
|
+
o[VALUE] = obj.toISOString();
|
4147
|
+
if (constructor === Map)
|
4148
|
+
o[VALUE] = Object.fromEntries(obj);
|
4149
|
+
if (constructor === Set)
|
4150
|
+
o[VALUE] = [...obj];
|
4151
|
+
return o;
|
4152
|
+
}
|
4153
|
+
return JSON.stringify(visit(data));
|
4154
|
+
}
|
4155
|
+
fromJSON(json) {
|
4156
|
+
return JSON.parse(json, (key, value) => {
|
4157
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
4158
|
+
const { [META]: clazz, [VALUE]: val, ...rest } = value;
|
4159
|
+
const constructor = this.classes[clazz];
|
4160
|
+
if (constructor) {
|
4161
|
+
return Object.assign(Object.create(constructor.prototype), rest);
|
4162
|
+
}
|
4163
|
+
if (clazz === "Date")
|
4164
|
+
return new Date(val);
|
4165
|
+
if (clazz === "Set")
|
4166
|
+
return new Set(val);
|
4167
|
+
if (clazz === "Map")
|
4168
|
+
return new Map(Object.entries(val));
|
4169
|
+
if (clazz === "bigint")
|
4170
|
+
return BigInt(val);
|
4171
|
+
if (clazz === "undefined")
|
4172
|
+
return void 0;
|
4173
|
+
return rest;
|
4174
|
+
}
|
4175
|
+
return value;
|
4176
|
+
});
|
4177
|
+
}
|
4178
|
+
}
|
4179
|
+
const defaultSerializer = new Serializer();
|
4180
|
+
const serialize = (data) => {
|
4181
|
+
return defaultSerializer.toJSON(data);
|
4182
|
+
};
|
4183
|
+
const deserialize = (json) => {
|
4184
|
+
return defaultSerializer.fromJSON(json);
|
4185
|
+
};
|
4186
|
+
|
4187
|
+
function buildWorkerRunner(config) {
|
4188
|
+
return function xataWorker(name, worker) {
|
4189
|
+
return async (...args) => {
|
4190
|
+
const url = process.env.NODE_ENV === "development" ? `http://localhost:64749/${name}` : `https://dispatcher.xata.workers.dev/${config.workspace}/${config.worker}/${name}`;
|
4191
|
+
const result = await fetch(url, {
|
4192
|
+
method: "POST",
|
4193
|
+
headers: { "Content-Type": "application/json" },
|
4194
|
+
body: serialize({ args })
|
4195
|
+
});
|
4196
|
+
const text = await result.text();
|
4197
|
+
return deserialize(text);
|
4198
|
+
};
|
4199
|
+
};
|
4200
|
+
}
|
4201
|
+
|
2038
4202
|
class XataError extends Error {
|
2039
4203
|
constructor(message, status) {
|
2040
4204
|
super(message);
|
@@ -2042,5 +4206,5 @@ class XataError extends Error {
|
|
2042
4206
|
}
|
2043
4207
|
}
|
2044
4208
|
|
2045
|
-
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,
|
4209
|
+
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 };
|
2046
4210
|
//# sourceMappingURL=index.mjs.map
|