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