@xata.io/client 0.0.0-alpha.vf7fccd9 → 0.0.0-alpha.vf80d1a5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,5 +1,6 @@
1
- const defaultTrace = async (_name, fn, _options) => {
1
+ const defaultTrace = async (name, fn, _options) => {
2
2
  return await fn({
3
+ name,
3
4
  setAttributes: () => {
4
5
  return;
5
6
  }
@@ -38,6 +39,21 @@ function isString(value) {
38
39
  function isStringArray(value) {
39
40
  return isDefined(value) && Array.isArray(value) && value.every(isString);
40
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
+ }
41
57
  function toBase64(value) {
42
58
  try {
43
59
  return btoa(value);
@@ -46,16 +62,39 @@ function toBase64(value) {
46
62
  return buf.from(value).toString("base64");
47
63
  }
48
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
+ }
49
86
 
50
87
  function getEnvironment() {
51
88
  try {
52
- if (isObject(process) && isObject(process.env)) {
89
+ if (isDefined(process) && isDefined(process.env)) {
53
90
  return {
54
91
  apiKey: process.env.XATA_API_KEY ?? getGlobalApiKey(),
55
92
  databaseURL: process.env.XATA_DATABASE_URL ?? getGlobalDatabaseURL(),
56
93
  branch: process.env.XATA_BRANCH ?? getGlobalBranch(),
57
- envBranch: process.env.VERCEL_GIT_COMMIT_REF ?? process.env.CF_PAGES_BRANCH ?? process.env.BRANCH,
58
- fallbackBranch: process.env.XATA_FALLBACK_BRANCH ?? getGlobalFallbackBranch()
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
59
98
  };
60
99
  }
61
100
  } catch (err) {
@@ -66,8 +105,10 @@ function getEnvironment() {
66
105
  apiKey: Deno.env.get("XATA_API_KEY") ?? getGlobalApiKey(),
67
106
  databaseURL: Deno.env.get("XATA_DATABASE_URL") ?? getGlobalDatabaseURL(),
68
107
  branch: Deno.env.get("XATA_BRANCH") ?? getGlobalBranch(),
69
- envBranch: Deno.env.get("VERCEL_GIT_COMMIT_REF") ?? Deno.env.get("CF_PAGES_BRANCH") ?? Deno.env.get("BRANCH"),
70
- fallbackBranch: Deno.env.get("XATA_FALLBACK_BRANCH") ?? getGlobalFallbackBranch()
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")
71
112
  };
72
113
  }
73
114
  } catch (err) {
@@ -76,10 +117,31 @@ function getEnvironment() {
76
117
  apiKey: getGlobalApiKey(),
77
118
  databaseURL: getGlobalDatabaseURL(),
78
119
  branch: getGlobalBranch(),
79
- envBranch: void 0,
80
- fallbackBranch: getGlobalFallbackBranch()
120
+ deployPreview: void 0,
121
+ deployPreviewBranch: void 0,
122
+ vercelGitCommitRef: void 0,
123
+ vercelGitRepoOwner: void 0
81
124
  };
82
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
+ }
83
145
  function getGlobalApiKey() {
84
146
  try {
85
147
  return XATA_API_KEY;
@@ -101,44 +163,76 @@ function getGlobalBranch() {
101
163
  return void 0;
102
164
  }
103
165
  }
104
- function getGlobalFallbackBranch() {
166
+ function getDatabaseURL() {
105
167
  try {
106
- return XATA_FALLBACK_BRANCH;
168
+ const { databaseURL } = getEnvironment();
169
+ return databaseURL;
107
170
  } catch (err) {
108
171
  return void 0;
109
172
  }
110
173
  }
111
- async function getGitBranch() {
112
- const cmd = ["git", "branch", "--show-current"];
113
- const fullCmd = cmd.join(" ");
114
- const nodeModule = ["child", "process"].join("_");
115
- const execOptions = { encoding: "utf-8", stdio: ["ignore", "pipe", "ignore"] };
174
+ function getAPIKey() {
116
175
  try {
117
- if (typeof require === "function") {
118
- return require(nodeModule).execSync(fullCmd, execOptions).trim();
119
- }
120
- const { execSync } = await import(nodeModule);
121
- return execSync(fullCmd, execOptions).toString().trim();
176
+ const { apiKey } = getEnvironment();
177
+ return apiKey;
122
178
  } catch (err) {
179
+ return void 0;
123
180
  }
181
+ }
182
+ function getBranch() {
124
183
  try {
125
- if (isObject(Deno)) {
126
- const process2 = Deno.run({ cmd, stdout: "piped", stderr: "null" });
127
- return new TextDecoder().decode(await process2.output()).trim();
128
- }
184
+ const { branch } = getEnvironment();
185
+ return branch ?? "main";
129
186
  } catch (err) {
187
+ return void 0;
130
188
  }
131
189
  }
132
-
133
- function getAPIKey() {
190
+ function buildPreviewBranchName({ org, branch }) {
191
+ return `preview-${org}-${branch}`;
192
+ }
193
+ function getPreviewBranch() {
134
194
  try {
135
- const { apiKey } = getEnvironment();
136
- return apiKey;
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;
137
208
  } catch (err) {
138
209
  return void 0;
139
210
  }
140
211
  }
141
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;
142
236
  function getFetchImplementation(userFetch) {
143
237
  const globalFetch = typeof fetch !== "undefined" ? fetch : void 0;
144
238
  const fetchImpl = userFetch ?? globalFetch;
@@ -149,8 +243,254 @@ function getFetchImplementation(userFetch) {
149
243
  }
150
244
  return fetchImpl;
151
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
+ };
152
312
 
153
- const VERSION = "0.0.0-alpha.vf7fccd9";
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
+ }
492
+
493
+ const VERSION = "0.23.4";
154
494
 
155
495
  class ErrorWithCause extends Error {
156
496
  constructor(message, options) {
@@ -161,7 +501,7 @@ class FetcherError extends ErrorWithCause {
161
501
  constructor(status, data, requestId) {
162
502
  super(getMessage(data));
163
503
  this.status = status;
164
- this.errors = isBulkError(data) ? data.errors : void 0;
504
+ this.errors = isBulkError(data) ? data.errors : [{ message: getMessage(data), status }];
165
505
  this.requestId = requestId;
166
506
  if (data instanceof Error) {
167
507
  this.stack = data.stack;
@@ -193,6 +533,7 @@ function getMessage(data) {
193
533
  }
194
534
  }
195
535
 
536
+ const pool = new ApiRequestPool();
196
537
  const resolveUrl = (url, queryParams = {}, pathParams = {}) => {
197
538
  const cleanQueryParams = Object.entries(queryParams).reduce((acc, [key, value]) => {
198
539
  if (value === void 0 || value === null)
@@ -207,58 +548,79 @@ const resolveUrl = (url, queryParams = {}, pathParams = {}) => {
207
548
  return url.replace(/\{\w*\}/g, (key) => cleanPathParams[key.slice(1, -1)]) + queryString;
208
549
  };
209
550
  function buildBaseUrl({
551
+ endpoint,
210
552
  path,
211
553
  workspacesApiUrl,
212
554
  apiUrl,
213
- pathParams
555
+ pathParams = {}
214
556
  }) {
215
- if (pathParams?.workspace === void 0)
216
- return `${apiUrl}${path}`;
217
- const url = typeof workspacesApiUrl === "string" ? `${workspacesApiUrl}${path}` : workspacesApiUrl(path, pathParams);
218
- return url.replace("{workspaceId}", String(pathParams.workspace));
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}`;
219
563
  }
220
564
  function hostHeader(url) {
221
565
  const pattern = /.*:\/\/(?<host>[^/]+).*/;
222
566
  const { groups } = pattern.exec(url) ?? {};
223
567
  return groups?.host ? { Host: groups.host } : {};
224
568
  }
569
+ const defaultClientID = generateUUID();
225
570
  async function fetch$1({
226
571
  url: path,
227
572
  method,
228
573
  body,
229
- headers,
574
+ headers: customHeaders,
230
575
  pathParams,
231
576
  queryParams,
232
- fetchImpl,
577
+ fetch: fetch2,
233
578
  apiKey,
579
+ endpoint,
234
580
  apiUrl,
235
581
  workspacesApiUrl,
236
- trace
582
+ trace,
583
+ signal,
584
+ clientID,
585
+ sessionID,
586
+ clientName,
587
+ xataAgentExtra,
588
+ fetchOptions = {}
237
589
  }) {
238
- return trace(
590
+ pool.setFetch(fetch2);
591
+ return await trace(
239
592
  `${method.toUpperCase()} ${path}`,
240
593
  async ({ setAttributes }) => {
241
- const baseUrl = buildBaseUrl({ path, workspacesApiUrl, pathParams, apiUrl });
594
+ const baseUrl = buildBaseUrl({ endpoint, path, workspacesApiUrl, pathParams, apiUrl });
242
595
  const fullUrl = resolveUrl(baseUrl, queryParams, pathParams);
243
596
  const url = fullUrl.includes("localhost") ? fullUrl.replace(/^[^.]+\./, "http://") : fullUrl;
244
597
  setAttributes({
245
598
  [TraceAttributes.HTTP_URL]: url,
246
599
  [TraceAttributes.HTTP_TARGET]: resolveUrl(path, queryParams, pathParams)
247
600
  });
248
- const response = await fetchImpl(url, {
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,
249
619
  method: method.toUpperCase(),
250
620
  body: body ? JSON.stringify(body) : void 0,
251
- headers: {
252
- "Content-Type": "application/json",
253
- "User-Agent": `Xata client-ts/${VERSION}`,
254
- ...headers,
255
- ...hostHeader(fullUrl),
256
- Authorization: `Bearer ${apiKey}`
257
- }
621
+ headers,
622
+ signal
258
623
  });
259
- if (response.status === 204) {
260
- return {};
261
- }
262
624
  const { host, protocol } = parseUrl(response.url);
263
625
  const requestId = response.headers?.get("x-request-id") ?? void 0;
264
626
  setAttributes({
@@ -268,6 +630,12 @@ async function fetch$1({
268
630
  [TraceAttributes.HTTP_HOST]: host,
269
631
  [TraceAttributes.HTTP_SCHEME]: protocol?.replace(":", "")
270
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
+ }
271
639
  try {
272
640
  const jsonResponse = await response.json();
273
641
  if (response.ok) {
@@ -281,6 +649,59 @@ async function fetch$1({
281
649
  { [TraceAttributes.HTTP_METHOD]: method.toUpperCase(), [TraceAttributes.HTTP_ROUTE]: path }
282
650
  );
283
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 });
674
+ const fullUrl = resolveUrl(baseUrl, queryParams, pathParams);
675
+ const url = fullUrl.includes("localhost") ? fullUrl.replace(/^[^.]+\./, "http://") : fullUrl;
676
+ void fetchEventSource(url, {
677
+ method,
678
+ body: JSON.stringify(body),
679
+ fetch: fetch2,
680
+ signal,
681
+ headers: {
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?.();
702
+ }
703
+ });
704
+ }
284
705
  function parseUrl(url) {
285
706
  try {
286
707
  const { host, protocol } = new URL(url);
@@ -290,290 +711,230 @@ function parseUrl(url) {
290
711
  }
291
712
  }
292
713
 
293
- const getUser = (variables) => fetch$1({ url: "/user", method: "get", ...variables });
294
- const updateUser = (variables) => fetch$1({ url: "/user", method: "put", ...variables });
295
- const deleteUser = (variables) => fetch$1({ url: "/user", method: "delete", ...variables });
296
- const getUserAPIKeys = (variables) => fetch$1({
297
- url: "/user/keys",
298
- method: "get",
299
- ...variables
300
- });
301
- const createUserAPIKey = (variables) => fetch$1({
302
- url: "/user/keys/{keyName}",
303
- method: "post",
304
- ...variables
305
- });
306
- const deleteUserAPIKey = (variables) => fetch$1({
307
- url: "/user/keys/{keyName}",
308
- method: "delete",
309
- ...variables
310
- });
311
- const createWorkspace = (variables) => fetch$1({
312
- url: "/workspaces",
313
- method: "post",
314
- ...variables
315
- });
316
- const getWorkspacesList = (variables) => fetch$1({
317
- url: "/workspaces",
318
- method: "get",
319
- ...variables
320
- });
321
- const getWorkspace = (variables) => fetch$1({
322
- url: "/workspaces/{workspaceId}",
714
+ const dataPlaneFetch = async (options) => fetch$1({ ...options, endpoint: "dataPlane" });
715
+
716
+ const getBranchList = (variables, signal) => dataPlaneFetch({
717
+ url: "/dbs/{dbName}",
323
718
  method: "get",
324
- ...variables
719
+ ...variables,
720
+ signal
325
721
  });
326
- const updateWorkspace = (variables) => fetch$1({
327
- url: "/workspaces/{workspaceId}",
328
- method: "put",
329
- ...variables
330
- });
331
- const deleteWorkspace = (variables) => fetch$1({
332
- url: "/workspaces/{workspaceId}",
333
- method: "delete",
334
- ...variables
335
- });
336
- const getWorkspaceMembersList = (variables) => fetch$1({
337
- url: "/workspaces/{workspaceId}/members",
722
+ const getBranchDetails = (variables, signal) => dataPlaneFetch({
723
+ url: "/db/{dbBranchName}",
338
724
  method: "get",
339
- ...variables
340
- });
341
- const updateWorkspaceMemberRole = (variables) => fetch$1({ url: "/workspaces/{workspaceId}/members/{userId}", method: "put", ...variables });
342
- const removeWorkspaceMember = (variables) => fetch$1({
343
- url: "/workspaces/{workspaceId}/members/{userId}",
344
- method: "delete",
345
- ...variables
725
+ ...variables,
726
+ signal
346
727
  });
347
- const inviteWorkspaceMember = (variables) => fetch$1({ url: "/workspaces/{workspaceId}/invites", method: "post", ...variables });
348
- const updateWorkspaceMemberInvite = (variables) => fetch$1({ url: "/workspaces/{workspaceId}/invites/{inviteId}", method: "patch", ...variables });
349
- const cancelWorkspaceMemberInvite = (variables) => fetch$1({
350
- url: "/workspaces/{workspaceId}/invites/{inviteId}",
728
+ const createBranch = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}", method: "put", ...variables, signal });
729
+ const deleteBranch = (variables, signal) => dataPlaneFetch({
730
+ url: "/db/{dbBranchName}",
351
731
  method: "delete",
352
- ...variables
353
- });
354
- const resendWorkspaceMemberInvite = (variables) => fetch$1({
355
- url: "/workspaces/{workspaceId}/invites/{inviteId}/resend",
356
- method: "post",
357
- ...variables
732
+ ...variables,
733
+ signal
358
734
  });
359
- const acceptWorkspaceMemberInvite = (variables) => fetch$1({
360
- url: "/workspaces/{workspaceId}/invites/{inviteKey}/accept",
735
+ const copyBranch = (variables, signal) => dataPlaneFetch({
736
+ url: "/db/{dbBranchName}/copy",
361
737
  method: "post",
362
- ...variables
363
- });
364
- const getDatabaseList = (variables) => fetch$1({
365
- url: "/dbs",
366
- method: "get",
367
- ...variables
368
- });
369
- const getBranchList = (variables) => fetch$1({
370
- url: "/dbs/{dbName}",
371
- method: "get",
372
- ...variables
738
+ ...variables,
739
+ signal
373
740
  });
374
- const createDatabase = (variables) => fetch$1({
375
- url: "/dbs/{dbName}",
741
+ const updateBranchMetadata = (variables, signal) => dataPlaneFetch({
742
+ url: "/db/{dbBranchName}/metadata",
376
743
  method: "put",
377
- ...variables
744
+ ...variables,
745
+ signal
378
746
  });
379
- const deleteDatabase = (variables) => fetch$1({
380
- url: "/dbs/{dbName}",
381
- method: "delete",
382
- ...variables
383
- });
384
- const getDatabaseMetadata = (variables) => fetch$1({
385
- url: "/dbs/{dbName}/metadata",
747
+ const getBranchMetadata = (variables, signal) => dataPlaneFetch({
748
+ url: "/db/{dbBranchName}/metadata",
386
749
  method: "get",
387
- ...variables
750
+ ...variables,
751
+ signal
388
752
  });
389
- const updateDatabaseMetadata = (variables) => fetch$1({ url: "/dbs/{dbName}/metadata", method: "patch", ...variables });
390
- const getGitBranchesMapping = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "get", ...variables });
391
- const addGitBranchesEntry = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "post", ...variables });
392
- const removeGitBranchesEntry = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "delete", ...variables });
393
- const resolveBranch = (variables) => fetch$1({
394
- url: "/dbs/{dbName}/resolveBranch",
753
+ const getBranchStats = (variables, signal) => dataPlaneFetch({
754
+ url: "/db/{dbBranchName}/stats",
395
755
  method: "get",
396
- ...variables
756
+ ...variables,
757
+ signal
397
758
  });
398
- const listMigrationRequests = (variables) => fetch$1({ url: "/dbs/{dbName}/migrations/list", method: "post", ...variables });
399
- const createMigrationRequest = (variables) => fetch$1({ url: "/dbs/{dbName}/migrations", method: "post", ...variables });
400
- const getMigrationRequest = (variables) => fetch$1({
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({
401
769
  url: "/dbs/{dbName}/migrations/{mrNumber}",
402
770
  method: "get",
403
- ...variables
771
+ ...variables,
772
+ signal
404
773
  });
405
- const updateMigrationRequest = (variables) => fetch$1({ url: "/dbs/{dbName}/migrations/{mrNumber}", method: "patch", ...variables });
406
- const listMigrationRequestsCommits = (variables) => fetch$1({ url: "/dbs/{dbName}/migrations/{mrNumber}/commits", method: "post", ...variables });
407
- const compareMigrationRequest = (variables) => fetch$1({ url: "/dbs/{dbName}/migrations/{mrNumber}/compare", method: "post", ...variables });
408
- const getMigrationRequestIsMerged = (variables) => fetch$1({ url: "/dbs/{dbName}/migrations/{mrNumber}/merge", method: "get", ...variables });
409
- const mergeMigrationRequest = (variables) => fetch$1({
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({
410
779
  url: "/dbs/{dbName}/migrations/{mrNumber}/merge",
411
780
  method: "post",
412
- ...variables
413
- });
414
- const getBranchDetails = (variables) => fetch$1({
415
- url: "/db/{dbBranchName}",
416
- method: "get",
417
- ...variables
418
- });
419
- const createBranch = (variables) => fetch$1({ url: "/db/{dbBranchName}", method: "put", ...variables });
420
- const deleteBranch = (variables) => fetch$1({
421
- url: "/db/{dbBranchName}",
422
- method: "delete",
423
- ...variables
424
- });
425
- const updateBranchMetadata = (variables) => fetch$1({
426
- url: "/db/{dbBranchName}/metadata",
427
- method: "put",
428
- ...variables
429
- });
430
- const getBranchMetadata = (variables) => fetch$1({
431
- url: "/db/{dbBranchName}/metadata",
432
- method: "get",
433
- ...variables
434
- });
435
- const getBranchMigrationHistory = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations", method: "get", ...variables });
436
- const executeBranchMigrationPlan = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations/execute", method: "post", ...variables });
437
- const getBranchMigrationPlan = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations/plan", method: "post", ...variables });
438
- const compareBranchWithUserSchema = (variables) => fetch$1({ url: "/db/{dbBranchName}/schema/compare", method: "post", ...variables });
439
- const compareBranchSchemas = (variables) => fetch$1({ url: "/db/{dbBranchName}/schema/compare/{branchName}", method: "post", ...variables });
440
- const updateBranchSchema = (variables) => fetch$1({
441
- url: "/db/{dbBranchName}/schema/update",
442
- method: "post",
443
- ...variables
444
- });
445
- const previewBranchSchemaEdit = (variables) => fetch$1({ url: "/db/{dbBranchName}/schema/preview", method: "post", ...variables });
446
- const applyBranchSchemaEdit = (variables) => fetch$1({ url: "/db/{dbBranchName}/schema/apply", method: "post", ...variables });
447
- const getBranchSchemaHistory = (variables) => fetch$1({ url: "/db/{dbBranchName}/schema/history", method: "post", ...variables });
448
- const getBranchStats = (variables) => fetch$1({
449
- url: "/db/{dbBranchName}/stats",
450
- method: "get",
451
- ...variables
781
+ ...variables,
782
+ signal
452
783
  });
453
- const createTable = (variables) => fetch$1({
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({
454
792
  url: "/db/{dbBranchName}/tables/{tableName}",
455
793
  method: "put",
456
- ...variables
794
+ ...variables,
795
+ signal
457
796
  });
458
- const deleteTable = (variables) => fetch$1({
797
+ const deleteTable = (variables, signal) => dataPlaneFetch({
459
798
  url: "/db/{dbBranchName}/tables/{tableName}",
460
799
  method: "delete",
461
- ...variables
462
- });
463
- const updateTable = (variables) => fetch$1({
464
- url: "/db/{dbBranchName}/tables/{tableName}",
465
- method: "patch",
466
- ...variables
800
+ ...variables,
801
+ signal
467
802
  });
468
- const getTableSchema = (variables) => fetch$1({
803
+ const updateTable = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}", method: "patch", ...variables, signal });
804
+ const getTableSchema = (variables, signal) => dataPlaneFetch({
469
805
  url: "/db/{dbBranchName}/tables/{tableName}/schema",
470
806
  method: "get",
471
- ...variables
807
+ ...variables,
808
+ signal
472
809
  });
473
- const setTableSchema = (variables) => fetch$1({
474
- url: "/db/{dbBranchName}/tables/{tableName}/schema",
475
- method: "put",
476
- ...variables
477
- });
478
- const getTableColumns = (variables) => fetch$1({
810
+ const setTableSchema = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/schema", method: "put", ...variables, signal });
811
+ const getTableColumns = (variables, signal) => dataPlaneFetch({
479
812
  url: "/db/{dbBranchName}/tables/{tableName}/columns",
480
813
  method: "get",
481
- ...variables
482
- });
483
- const addTableColumn = (variables) => fetch$1({
484
- url: "/db/{dbBranchName}/tables/{tableName}/columns",
485
- method: "post",
486
- ...variables
814
+ ...variables,
815
+ signal
487
816
  });
488
- const getColumn = (variables) => fetch$1({
817
+ const addTableColumn = (variables, signal) => dataPlaneFetch(
818
+ { url: "/db/{dbBranchName}/tables/{tableName}/columns", method: "post", ...variables, signal }
819
+ );
820
+ const getColumn = (variables, signal) => dataPlaneFetch({
489
821
  url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}",
490
822
  method: "get",
491
- ...variables
823
+ ...variables,
824
+ signal
492
825
  });
493
- const deleteColumn = (variables) => fetch$1({
826
+ const updateColumn = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}", method: "patch", ...variables, signal });
827
+ const deleteColumn = (variables, signal) => dataPlaneFetch({
494
828
  url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}",
495
829
  method: "delete",
496
- ...variables
830
+ ...variables,
831
+ signal
497
832
  });
498
- const updateColumn = (variables) => fetch$1({
499
- url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}",
500
- method: "patch",
501
- ...variables
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
502
840
  });
503
- const insertRecord = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data", method: "post", ...variables });
504
- const insertRecordWithID = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "put", ...variables });
505
- const updateRecordWithID = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "patch", ...variables });
506
- const upsertRecordWithID = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "post", ...variables });
507
- const deleteRecord = (variables) => fetch$1({
508
- url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}",
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}",
509
849
  method: "delete",
510
- ...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
858
+ });
859
+ const putFile = (variables, signal) => dataPlaneFetch({
860
+ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}/column/{columnName}/file",
861
+ method: "put",
862
+ ...variables,
863
+ signal
511
864
  });
512
- const getRecord = (variables) => fetch$1({
865
+ const getRecord = (variables, signal) => dataPlaneFetch({
513
866
  url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}",
514
867
  method: "get",
515
- ...variables
868
+ ...variables,
869
+ signal
516
870
  });
517
- const bulkInsertTableRecords = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/bulk", method: "post", ...variables });
518
- const queryTable = (variables) => fetch$1({
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({
519
877
  url: "/db/{dbBranchName}/tables/{tableName}/query",
520
878
  method: "post",
521
- ...variables
879
+ ...variables,
880
+ signal
522
881
  });
523
- const searchTable = (variables) => fetch$1({
882
+ const searchBranch = (variables, signal) => dataPlaneFetch({
883
+ url: "/db/{dbBranchName}/search",
884
+ method: "post",
885
+ ...variables,
886
+ signal
887
+ });
888
+ const searchTable = (variables, signal) => dataPlaneFetch({
524
889
  url: "/db/{dbBranchName}/tables/{tableName}/search",
525
890
  method: "post",
526
- ...variables
891
+ ...variables,
892
+ signal
527
893
  });
528
- const searchBranch = (variables) => fetch$1({
529
- url: "/db/{dbBranchName}/search",
894
+ const sqlQuery = (variables, signal) => dataPlaneFetch({
895
+ url: "/db/{dbBranchName}/sql",
530
896
  method: "post",
531
- ...variables
897
+ ...variables,
898
+ signal
532
899
  });
533
- const summarizeTable = (variables) => fetch$1({
534
- url: "/db/{dbBranchName}/tables/{tableName}/summarize",
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",
535
903
  method: "post",
536
- ...variables
904
+ ...variables,
905
+ signal
537
906
  });
538
- const operationsByTag = {
539
- users: { getUser, updateUser, deleteUser, getUserAPIKeys, createUserAPIKey, deleteUserAPIKey },
540
- workspaces: {
541
- createWorkspace,
542
- getWorkspacesList,
543
- getWorkspace,
544
- updateWorkspace,
545
- deleteWorkspace,
546
- getWorkspaceMembersList,
547
- updateWorkspaceMemberRole,
548
- removeWorkspaceMember,
549
- inviteWorkspaceMember,
550
- updateWorkspaceMemberInvite,
551
- cancelWorkspaceMemberInvite,
552
- resendWorkspaceMemberInvite,
553
- acceptWorkspaceMemberInvite
554
- },
555
- database: {
556
- getDatabaseList,
557
- createDatabase,
558
- deleteDatabase,
559
- getDatabaseMetadata,
560
- updateDatabaseMetadata,
561
- getGitBranchesMapping,
562
- addGitBranchesEntry,
563
- removeGitBranchesEntry,
564
- resolveBranch
565
- },
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 = {
566
910
  branch: {
567
911
  getBranchList,
568
912
  getBranchDetails,
569
913
  createBranch,
570
914
  deleteBranch,
915
+ copyBranch,
571
916
  updateBranchMetadata,
572
917
  getBranchMetadata,
573
- getBranchStats
918
+ getBranchStats,
919
+ getGitBranchesMapping,
920
+ addGitBranchesEntry,
921
+ removeGitBranchesEntry,
922
+ resolveBranch
923
+ },
924
+ migrations: {
925
+ getBranchMigrationHistory,
926
+ getBranchMigrationPlan,
927
+ executeBranchMigrationPlan,
928
+ getBranchSchemaHistory,
929
+ compareBranchWithUserSchema,
930
+ compareBranchSchemas,
931
+ updateBranchSchema,
932
+ previewBranchSchemaEdit,
933
+ applyBranchSchemaEdit,
934
+ pushBranchMigrations
574
935
  },
575
936
  migrationRequests: {
576
- listMigrationRequests,
937
+ queryMigrationRequests,
577
938
  createMigrationRequest,
578
939
  getMigrationRequest,
579
940
  updateMigrationRequest,
@@ -582,17 +943,6 @@ const operationsByTag = {
582
943
  getMigrationRequestIsMerged,
583
944
  mergeMigrationRequest
584
945
  },
585
- branchSchema: {
586
- getBranchMigrationHistory,
587
- executeBranchMigrationPlan,
588
- getBranchMigrationPlan,
589
- compareBranchWithUserSchema,
590
- compareBranchSchemas,
591
- updateBranchSchema,
592
- previewBranchSchemaEdit,
593
- applyBranchSchemaEdit,
594
- getBranchSchemaHistory
595
- },
596
946
  table: {
597
947
  createTable,
598
948
  deleteTable,
@@ -602,24 +952,174 @@ const operationsByTag = {
602
952
  getTableColumns,
603
953
  addTableColumn,
604
954
  getColumn,
605
- deleteColumn,
606
- updateColumn
955
+ updateColumn,
956
+ deleteColumn
607
957
  },
608
958
  records: {
959
+ branchTransaction,
609
960
  insertRecord,
961
+ getRecord,
610
962
  insertRecordWithID,
611
963
  updateRecordWithID,
612
964
  upsertRecordWithID,
613
965
  deleteRecord,
614
- getRecord,
615
- bulkInsertTableRecords,
966
+ bulkInsertTableRecords
967
+ },
968
+ files: { getFileItem, putFileItem, deleteFileItem, getFile, putFile },
969
+ searchAndFilter: {
616
970
  queryTable,
617
- searchTable,
618
971
  searchBranch,
619
- summarizeTable
972
+ searchTable,
973
+ sqlQuery,
974
+ vectorSearchTable,
975
+ askTable,
976
+ summarizeTable,
977
+ aggregateTable
978
+ }
979
+ };
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
620
1118
  }
621
1119
  };
622
1120
 
1121
+ const operationsByTag = deepMerge(operationsByTag$2, operationsByTag$1);
1122
+
623
1123
  function getHostUrl(provider, type) {
624
1124
  if (isHostProviderAlias(provider)) {
625
1125
  return providers[provider][type];
@@ -631,11 +1131,15 @@ function getHostUrl(provider, type) {
631
1131
  const providers = {
632
1132
  production: {
633
1133
  main: "https://api.xata.io",
634
- workspaces: "https://{workspaceId}.xata.sh"
1134
+ workspaces: "https://{workspaceId}.{region}.xata.sh"
635
1135
  },
636
1136
  staging: {
637
- main: "https://staging.xatabase.co",
638
- workspaces: "https://{workspaceId}.staging.xatabase.co"
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"
639
1143
  }
640
1144
  };
641
1145
  function isHostProviderAlias(alias) {
@@ -644,6 +1148,32 @@ function isHostProviderAlias(alias) {
644
1148
  function isHostProviderBuilder(builder) {
645
1149
  return isObject(builder) && isString(builder.main) && isString(builder.workspaces);
646
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
+ }
647
1177
 
648
1178
  var __accessCheck$7 = (obj, member, msg) => {
649
1179
  if (!member.has(obj))
@@ -671,15 +1201,19 @@ class XataApiClient {
671
1201
  const provider = options.host ?? "production";
672
1202
  const apiKey = options.apiKey ?? getAPIKey();
673
1203
  const trace = options.trace ?? defaultTrace;
1204
+ const clientID = generateUUID();
674
1205
  if (!apiKey) {
675
1206
  throw new Error("Could not resolve a valid apiKey");
676
1207
  }
677
1208
  __privateSet$7(this, _extraProps, {
678
1209
  apiUrl: getHostUrl(provider, "main"),
679
1210
  workspacesApiUrl: getHostUrl(provider, "workspaces"),
680
- fetchImpl: getFetchImplementation(options.fetch),
1211
+ fetch: getFetchImplementation(options.fetch),
681
1212
  apiKey,
682
- trace
1213
+ trace,
1214
+ clientName: options.clientName,
1215
+ xataAgentExtra: options.xataAgentExtra,
1216
+ clientID
683
1217
  });
684
1218
  }
685
1219
  get user() {
@@ -687,21 +1221,41 @@ class XataApiClient {
687
1221
  __privateGet$7(this, _namespaces).user = new UserApi(__privateGet$7(this, _extraProps));
688
1222
  return __privateGet$7(this, _namespaces).user;
689
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
+ }
690
1229
  get workspaces() {
691
1230
  if (!__privateGet$7(this, _namespaces).workspaces)
692
1231
  __privateGet$7(this, _namespaces).workspaces = new WorkspaceApi(__privateGet$7(this, _extraProps));
693
1232
  return __privateGet$7(this, _namespaces).workspaces;
694
1233
  }
695
- get databases() {
696
- if (!__privateGet$7(this, _namespaces).databases)
697
- __privateGet$7(this, _namespaces).databases = new DatabaseApi(__privateGet$7(this, _extraProps));
698
- return __privateGet$7(this, _namespaces).databases;
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;
699
1243
  }
700
1244
  get branches() {
701
1245
  if (!__privateGet$7(this, _namespaces).branches)
702
1246
  __privateGet$7(this, _namespaces).branches = new BranchApi(__privateGet$7(this, _extraProps));
703
1247
  return __privateGet$7(this, _namespaces).branches;
704
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
+ }
705
1259
  get tables() {
706
1260
  if (!__privateGet$7(this, _namespaces).tables)
707
1261
  __privateGet$7(this, _namespaces).tables = new TableApi(__privateGet$7(this, _extraProps));
@@ -712,15 +1266,15 @@ class XataApiClient {
712
1266
  __privateGet$7(this, _namespaces).records = new RecordsApi(__privateGet$7(this, _extraProps));
713
1267
  return __privateGet$7(this, _namespaces).records;
714
1268
  }
715
- get migrationRequests() {
716
- if (!__privateGet$7(this, _namespaces).migrationRequests)
717
- __privateGet$7(this, _namespaces).migrationRequests = new MigrationRequestsApi(__privateGet$7(this, _extraProps));
718
- return __privateGet$7(this, _namespaces).migrationRequests;
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;
719
1273
  }
720
- get branchSchema() {
721
- if (!__privateGet$7(this, _namespaces).branchSchema)
722
- __privateGet$7(this, _namespaces).branchSchema = new BranchSchemaApi(__privateGet$7(this, _extraProps));
723
- return __privateGet$7(this, _namespaces).branchSchema;
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;
724
1278
  }
725
1279
  }
726
1280
  _extraProps = new WeakMap();
@@ -732,24 +1286,29 @@ class UserApi {
732
1286
  getUser() {
733
1287
  return operationsByTag.users.getUser({ ...this.extraProps });
734
1288
  }
735
- updateUser(user) {
1289
+ updateUser({ user }) {
736
1290
  return operationsByTag.users.updateUser({ body: user, ...this.extraProps });
737
1291
  }
738
1292
  deleteUser() {
739
1293
  return operationsByTag.users.deleteUser({ ...this.extraProps });
740
1294
  }
1295
+ }
1296
+ class AuthenticationApi {
1297
+ constructor(extraProps) {
1298
+ this.extraProps = extraProps;
1299
+ }
741
1300
  getUserAPIKeys() {
742
- return operationsByTag.users.getUserAPIKeys({ ...this.extraProps });
1301
+ return operationsByTag.authentication.getUserAPIKeys({ ...this.extraProps });
743
1302
  }
744
- createUserAPIKey(keyName) {
745
- return operationsByTag.users.createUserAPIKey({
746
- pathParams: { keyName },
1303
+ createUserAPIKey({ name }) {
1304
+ return operationsByTag.authentication.createUserAPIKey({
1305
+ pathParams: { keyName: name },
747
1306
  ...this.extraProps
748
1307
  });
749
1308
  }
750
- deleteUserAPIKey(keyName) {
751
- return operationsByTag.users.deleteUserAPIKey({
752
- pathParams: { keyName },
1309
+ deleteUserAPIKey({ name }) {
1310
+ return operationsByTag.authentication.deleteUserAPIKey({
1311
+ pathParams: { keyName: name },
753
1312
  ...this.extraProps
754
1313
  });
755
1314
  }
@@ -758,196 +1317,262 @@ class WorkspaceApi {
758
1317
  constructor(extraProps) {
759
1318
  this.extraProps = extraProps;
760
1319
  }
761
- createWorkspace(workspaceMeta) {
1320
+ getWorkspacesList() {
1321
+ return operationsByTag.workspaces.getWorkspacesList({ ...this.extraProps });
1322
+ }
1323
+ createWorkspace({ data }) {
762
1324
  return operationsByTag.workspaces.createWorkspace({
763
- body: workspaceMeta,
1325
+ body: data,
764
1326
  ...this.extraProps
765
1327
  });
766
1328
  }
767
- getWorkspacesList() {
768
- return operationsByTag.workspaces.getWorkspacesList({ ...this.extraProps });
769
- }
770
- getWorkspace(workspaceId) {
1329
+ getWorkspace({ workspace }) {
771
1330
  return operationsByTag.workspaces.getWorkspace({
772
- pathParams: { workspaceId },
1331
+ pathParams: { workspaceId: workspace },
773
1332
  ...this.extraProps
774
1333
  });
775
1334
  }
776
- updateWorkspace(workspaceId, workspaceMeta) {
1335
+ updateWorkspace({
1336
+ workspace,
1337
+ update
1338
+ }) {
777
1339
  return operationsByTag.workspaces.updateWorkspace({
778
- pathParams: { workspaceId },
779
- body: workspaceMeta,
1340
+ pathParams: { workspaceId: workspace },
1341
+ body: update,
780
1342
  ...this.extraProps
781
1343
  });
782
1344
  }
783
- deleteWorkspace(workspaceId) {
1345
+ deleteWorkspace({ workspace }) {
784
1346
  return operationsByTag.workspaces.deleteWorkspace({
785
- pathParams: { workspaceId },
1347
+ pathParams: { workspaceId: workspace },
786
1348
  ...this.extraProps
787
1349
  });
788
1350
  }
789
- getWorkspaceMembersList(workspaceId) {
1351
+ getWorkspaceMembersList({ workspace }) {
790
1352
  return operationsByTag.workspaces.getWorkspaceMembersList({
791
- pathParams: { workspaceId },
1353
+ pathParams: { workspaceId: workspace },
792
1354
  ...this.extraProps
793
1355
  });
794
1356
  }
795
- updateWorkspaceMemberRole(workspaceId, userId, role) {
1357
+ updateWorkspaceMemberRole({
1358
+ workspace,
1359
+ user,
1360
+ role
1361
+ }) {
796
1362
  return operationsByTag.workspaces.updateWorkspaceMemberRole({
797
- pathParams: { workspaceId, userId },
1363
+ pathParams: { workspaceId: workspace, userId: user },
798
1364
  body: { role },
799
1365
  ...this.extraProps
800
1366
  });
801
1367
  }
802
- removeWorkspaceMember(workspaceId, userId) {
1368
+ removeWorkspaceMember({
1369
+ workspace,
1370
+ user
1371
+ }) {
803
1372
  return operationsByTag.workspaces.removeWorkspaceMember({
804
- pathParams: { workspaceId, userId },
1373
+ pathParams: { workspaceId: workspace, userId: user },
805
1374
  ...this.extraProps
806
1375
  });
807
1376
  }
808
- inviteWorkspaceMember(workspaceId, email, role) {
809
- return operationsByTag.workspaces.inviteWorkspaceMember({
810
- pathParams: { workspaceId },
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 },
811
1389
  body: { email, role },
812
1390
  ...this.extraProps
813
1391
  });
814
1392
  }
815
- updateWorkspaceMemberInvite(workspaceId, inviteId, role) {
816
- return operationsByTag.workspaces.updateWorkspaceMemberInvite({
817
- pathParams: { workspaceId, inviteId },
1393
+ updateWorkspaceMemberInvite({
1394
+ workspace,
1395
+ invite,
1396
+ role
1397
+ }) {
1398
+ return operationsByTag.invites.updateWorkspaceMemberInvite({
1399
+ pathParams: { workspaceId: workspace, inviteId: invite },
818
1400
  body: { role },
819
1401
  ...this.extraProps
820
1402
  });
821
1403
  }
822
- cancelWorkspaceMemberInvite(workspaceId, inviteId) {
823
- return operationsByTag.workspaces.cancelWorkspaceMemberInvite({
824
- pathParams: { workspaceId, inviteId },
1404
+ cancelWorkspaceMemberInvite({
1405
+ workspace,
1406
+ invite
1407
+ }) {
1408
+ return operationsByTag.invites.cancelWorkspaceMemberInvite({
1409
+ pathParams: { workspaceId: workspace, inviteId: invite },
825
1410
  ...this.extraProps
826
1411
  });
827
1412
  }
828
- resendWorkspaceMemberInvite(workspaceId, inviteId) {
829
- return operationsByTag.workspaces.resendWorkspaceMemberInvite({
830
- pathParams: { workspaceId, inviteId },
1413
+ acceptWorkspaceMemberInvite({
1414
+ workspace,
1415
+ key
1416
+ }) {
1417
+ return operationsByTag.invites.acceptWorkspaceMemberInvite({
1418
+ pathParams: { workspaceId: workspace, inviteKey: key },
831
1419
  ...this.extraProps
832
1420
  });
833
1421
  }
834
- acceptWorkspaceMemberInvite(workspaceId, inviteKey) {
835
- return operationsByTag.workspaces.acceptWorkspaceMemberInvite({
836
- pathParams: { workspaceId, inviteKey },
1422
+ resendWorkspaceMemberInvite({
1423
+ workspace,
1424
+ invite
1425
+ }) {
1426
+ return operationsByTag.invites.resendWorkspaceMemberInvite({
1427
+ pathParams: { workspaceId: workspace, inviteId: invite },
837
1428
  ...this.extraProps
838
1429
  });
839
1430
  }
840
1431
  }
841
- class DatabaseApi {
1432
+ class BranchApi {
842
1433
  constructor(extraProps) {
843
1434
  this.extraProps = extraProps;
844
1435
  }
845
- getDatabaseList(workspace) {
846
- return operationsByTag.database.getDatabaseList({
847
- pathParams: { workspace },
848
- ...this.extraProps
849
- });
850
- }
851
- createDatabase(workspace, dbName, options = {}) {
852
- return operationsByTag.database.createDatabase({
853
- pathParams: { workspace, dbName },
854
- body: options,
855
- ...this.extraProps
856
- });
857
- }
858
- deleteDatabase(workspace, dbName) {
859
- return operationsByTag.database.deleteDatabase({
860
- pathParams: { workspace, dbName },
861
- ...this.extraProps
862
- });
863
- }
864
- getDatabaseMetadata(workspace, dbName) {
865
- return operationsByTag.database.getDatabaseMetadata({
866
- pathParams: { workspace, dbName },
867
- ...this.extraProps
868
- });
869
- }
870
- updateDatabaseMetadata(workspace, dbName, options = {}) {
871
- return operationsByTag.database.updateDatabaseMetadata({
872
- pathParams: { workspace, dbName },
873
- body: options,
1436
+ getBranchList({
1437
+ workspace,
1438
+ region,
1439
+ database
1440
+ }) {
1441
+ return operationsByTag.branch.getBranchList({
1442
+ pathParams: { workspace, region, dbName: database },
874
1443
  ...this.extraProps
875
1444
  });
876
1445
  }
877
- getGitBranchesMapping(workspace, dbName) {
878
- return operationsByTag.database.getGitBranchesMapping({
879
- pathParams: { workspace, dbName },
1446
+ getBranchDetails({
1447
+ workspace,
1448
+ region,
1449
+ database,
1450
+ branch
1451
+ }) {
1452
+ return operationsByTag.branch.getBranchDetails({
1453
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
880
1454
  ...this.extraProps
881
1455
  });
882
1456
  }
883
- addGitBranchesEntry(workspace, dbName, body) {
884
- return operationsByTag.database.addGitBranchesEntry({
885
- pathParams: { workspace, dbName },
886
- body,
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 },
887
1468
  ...this.extraProps
888
1469
  });
889
1470
  }
890
- removeGitBranchesEntry(workspace, dbName, gitBranch) {
891
- return operationsByTag.database.removeGitBranchesEntry({
892
- pathParams: { workspace, dbName },
893
- queryParams: { gitBranch },
1471
+ deleteBranch({
1472
+ workspace,
1473
+ region,
1474
+ database,
1475
+ branch
1476
+ }) {
1477
+ return operationsByTag.branch.deleteBranch({
1478
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
894
1479
  ...this.extraProps
895
1480
  });
896
1481
  }
897
- resolveBranch(workspace, dbName, gitBranch, fallbackBranch) {
898
- return operationsByTag.database.resolveBranch({
899
- pathParams: { workspace, dbName },
900
- queryParams: { gitBranch, fallbackBranch },
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 },
901
1493
  ...this.extraProps
902
1494
  });
903
1495
  }
904
- }
905
- class BranchApi {
906
- constructor(extraProps) {
907
- this.extraProps = extraProps;
908
- }
909
- getBranchList(workspace, dbName) {
910
- return operationsByTag.branch.getBranchList({
911
- pathParams: { workspace, dbName },
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,
912
1506
  ...this.extraProps
913
1507
  });
914
1508
  }
915
- getBranchDetails(workspace, database, branch) {
916
- return operationsByTag.branch.getBranchDetails({
917
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1509
+ getBranchMetadata({
1510
+ workspace,
1511
+ region,
1512
+ database,
1513
+ branch
1514
+ }) {
1515
+ return operationsByTag.branch.getBranchMetadata({
1516
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
918
1517
  ...this.extraProps
919
1518
  });
920
1519
  }
921
- createBranch(workspace, database, branch, from, options = {}) {
922
- return operationsByTag.branch.createBranch({
923
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
924
- queryParams: isString(from) ? { from } : void 0,
925
- body: options,
1520
+ getBranchStats({
1521
+ workspace,
1522
+ region,
1523
+ database,
1524
+ branch
1525
+ }) {
1526
+ return operationsByTag.branch.getBranchStats({
1527
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
926
1528
  ...this.extraProps
927
1529
  });
928
1530
  }
929
- deleteBranch(workspace, database, branch) {
930
- return operationsByTag.branch.deleteBranch({
931
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1531
+ getGitBranchesMapping({
1532
+ workspace,
1533
+ region,
1534
+ database
1535
+ }) {
1536
+ return operationsByTag.branch.getGitBranchesMapping({
1537
+ pathParams: { workspace, region, dbName: database },
932
1538
  ...this.extraProps
933
1539
  });
934
1540
  }
935
- updateBranchMetadata(workspace, database, branch, metadata = {}) {
936
- return operationsByTag.branch.updateBranchMetadata({
937
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
938
- body: metadata,
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 },
939
1551
  ...this.extraProps
940
1552
  });
941
1553
  }
942
- getBranchMetadata(workspace, database, branch) {
943
- return operationsByTag.branch.getBranchMetadata({
944
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1554
+ removeGitBranchesEntry({
1555
+ workspace,
1556
+ region,
1557
+ database,
1558
+ gitBranch
1559
+ }) {
1560
+ return operationsByTag.branch.removeGitBranchesEntry({
1561
+ pathParams: { workspace, region, dbName: database },
1562
+ queryParams: { gitBranch },
945
1563
  ...this.extraProps
946
1564
  });
947
1565
  }
948
- getBranchStats(workspace, database, branch) {
949
- return operationsByTag.branch.getBranchStats({
950
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1566
+ resolveBranch({
1567
+ workspace,
1568
+ region,
1569
+ database,
1570
+ gitBranch,
1571
+ fallbackBranch
1572
+ }) {
1573
+ return operationsByTag.branch.resolveBranch({
1574
+ pathParams: { workspace, region, dbName: database },
1575
+ queryParams: { gitBranch, fallbackBranch },
951
1576
  ...this.extraProps
952
1577
  });
953
1578
  }
@@ -956,67 +1581,134 @@ class TableApi {
956
1581
  constructor(extraProps) {
957
1582
  this.extraProps = extraProps;
958
1583
  }
959
- createTable(workspace, database, branch, tableName) {
1584
+ createTable({
1585
+ workspace,
1586
+ region,
1587
+ database,
1588
+ branch,
1589
+ table
1590
+ }) {
960
1591
  return operationsByTag.table.createTable({
961
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
1592
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
962
1593
  ...this.extraProps
963
1594
  });
964
1595
  }
965
- deleteTable(workspace, database, branch, tableName) {
1596
+ deleteTable({
1597
+ workspace,
1598
+ region,
1599
+ database,
1600
+ branch,
1601
+ table
1602
+ }) {
966
1603
  return operationsByTag.table.deleteTable({
967
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
1604
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
968
1605
  ...this.extraProps
969
1606
  });
970
1607
  }
971
- updateTable(workspace, database, branch, tableName, options) {
1608
+ updateTable({
1609
+ workspace,
1610
+ region,
1611
+ database,
1612
+ branch,
1613
+ table,
1614
+ update
1615
+ }) {
972
1616
  return operationsByTag.table.updateTable({
973
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
974
- body: options,
1617
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
1618
+ body: update,
975
1619
  ...this.extraProps
976
1620
  });
977
1621
  }
978
- getTableSchema(workspace, database, branch, tableName) {
1622
+ getTableSchema({
1623
+ workspace,
1624
+ region,
1625
+ database,
1626
+ branch,
1627
+ table
1628
+ }) {
979
1629
  return operationsByTag.table.getTableSchema({
980
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
1630
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
981
1631
  ...this.extraProps
982
1632
  });
983
1633
  }
984
- setTableSchema(workspace, database, branch, tableName, options) {
1634
+ setTableSchema({
1635
+ workspace,
1636
+ region,
1637
+ database,
1638
+ branch,
1639
+ table,
1640
+ schema
1641
+ }) {
985
1642
  return operationsByTag.table.setTableSchema({
986
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
987
- body: options,
1643
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
1644
+ body: schema,
988
1645
  ...this.extraProps
989
1646
  });
990
1647
  }
991
- getTableColumns(workspace, database, branch, tableName) {
1648
+ getTableColumns({
1649
+ workspace,
1650
+ region,
1651
+ database,
1652
+ branch,
1653
+ table
1654
+ }) {
992
1655
  return operationsByTag.table.getTableColumns({
993
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
1656
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
994
1657
  ...this.extraProps
995
1658
  });
996
1659
  }
997
- addTableColumn(workspace, database, branch, tableName, column) {
1660
+ addTableColumn({
1661
+ workspace,
1662
+ region,
1663
+ database,
1664
+ branch,
1665
+ table,
1666
+ column
1667
+ }) {
998
1668
  return operationsByTag.table.addTableColumn({
999
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
1669
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
1000
1670
  body: column,
1001
1671
  ...this.extraProps
1002
1672
  });
1003
1673
  }
1004
- getColumn(workspace, database, branch, tableName, columnName) {
1674
+ getColumn({
1675
+ workspace,
1676
+ region,
1677
+ database,
1678
+ branch,
1679
+ table,
1680
+ column
1681
+ }) {
1005
1682
  return operationsByTag.table.getColumn({
1006
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, columnName },
1683
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, columnName: column },
1007
1684
  ...this.extraProps
1008
1685
  });
1009
1686
  }
1010
- deleteColumn(workspace, database, branch, tableName, columnName) {
1011
- return operationsByTag.table.deleteColumn({
1012
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, columnName },
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,
1013
1699
  ...this.extraProps
1014
1700
  });
1015
1701
  }
1016
- updateColumn(workspace, database, branch, tableName, columnName, options) {
1017
- return operationsByTag.table.updateColumn({
1018
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, columnName },
1019
- body: options,
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 },
1020
1712
  ...this.extraProps
1021
1713
  });
1022
1714
  }
@@ -1025,225 +1717,740 @@ class RecordsApi {
1025
1717
  constructor(extraProps) {
1026
1718
  this.extraProps = extraProps;
1027
1719
  }
1028
- insertRecord(workspace, database, branch, tableName, record, options = {}) {
1720
+ insertRecord({
1721
+ workspace,
1722
+ region,
1723
+ database,
1724
+ branch,
1725
+ table,
1726
+ record,
1727
+ columns
1728
+ }) {
1029
1729
  return operationsByTag.records.insertRecord({
1030
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
1031
- queryParams: options,
1730
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
1731
+ queryParams: { columns },
1032
1732
  body: record,
1033
1733
  ...this.extraProps
1034
1734
  });
1035
1735
  }
1036
- insertRecordWithID(workspace, database, branch, tableName, recordId, record, options = {}) {
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
+ }) {
1037
1763
  return operationsByTag.records.insertRecordWithID({
1038
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
1039
- queryParams: options,
1764
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
1765
+ queryParams: { columns, createOnly, ifVersion },
1040
1766
  body: record,
1041
1767
  ...this.extraProps
1042
1768
  });
1043
1769
  }
1044
- updateRecordWithID(workspace, database, branch, tableName, recordId, record, options = {}) {
1770
+ updateRecordWithID({
1771
+ workspace,
1772
+ region,
1773
+ database,
1774
+ branch,
1775
+ table,
1776
+ id,
1777
+ record,
1778
+ columns,
1779
+ ifVersion
1780
+ }) {
1045
1781
  return operationsByTag.records.updateRecordWithID({
1046
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
1047
- queryParams: options,
1782
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
1783
+ queryParams: { columns, ifVersion },
1048
1784
  body: record,
1049
1785
  ...this.extraProps
1050
1786
  });
1051
1787
  }
1052
- upsertRecordWithID(workspace, database, branch, tableName, recordId, record, options = {}) {
1788
+ upsertRecordWithID({
1789
+ workspace,
1790
+ region,
1791
+ database,
1792
+ branch,
1793
+ table,
1794
+ id,
1795
+ record,
1796
+ columns,
1797
+ ifVersion
1798
+ }) {
1053
1799
  return operationsByTag.records.upsertRecordWithID({
1054
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
1055
- queryParams: options,
1800
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
1801
+ queryParams: { columns, ifVersion },
1056
1802
  body: record,
1057
1803
  ...this.extraProps
1058
1804
  });
1059
1805
  }
1060
- deleteRecord(workspace, database, branch, tableName, recordId, options = {}) {
1806
+ deleteRecord({
1807
+ workspace,
1808
+ region,
1809
+ database,
1810
+ branch,
1811
+ table,
1812
+ id,
1813
+ columns
1814
+ }) {
1061
1815
  return operationsByTag.records.deleteRecord({
1062
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
1063
- queryParams: options,
1816
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
1817
+ queryParams: { columns },
1064
1818
  ...this.extraProps
1065
1819
  });
1066
1820
  }
1067
- getRecord(workspace, database, branch, tableName, recordId, options = {}) {
1068
- return operationsByTag.records.getRecord({
1069
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
1070
- queryParams: options,
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 },
1071
1834
  ...this.extraProps
1072
1835
  });
1073
1836
  }
1074
- bulkInsertTableRecords(workspace, database, branch, tableName, records, options = {}) {
1075
- return operationsByTag.records.bulkInsertTableRecords({
1076
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
1077
- queryParams: options,
1078
- body: { records },
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 },
1079
1847
  ...this.extraProps
1080
1848
  });
1081
1849
  }
1082
- queryTable(workspace, database, branch, tableName, query) {
1083
- return operationsByTag.records.queryTable({
1084
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
1085
- body: query,
1850
+ }
1851
+ class FilesApi {
1852
+ constructor(extraProps) {
1853
+ this.extraProps = extraProps;
1854
+ }
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
+ },
1086
1875
  ...this.extraProps
1087
1876
  });
1088
1877
  }
1089
- searchTable(workspace, database, branch, tableName, query) {
1090
- return operationsByTag.records.searchTable({
1091
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
1092
- body: query,
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
+ },
1093
1923
  ...this.extraProps
1094
1924
  });
1095
1925
  }
1096
- searchBranch(workspace, database, branch, query) {
1097
- return operationsByTag.records.searchBranch({
1098
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1099
- body: query,
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
+ },
1100
1944
  ...this.extraProps
1101
1945
  });
1102
1946
  }
1103
- summarizeTable(workspace, database, branch, tableName, query) {
1104
- return operationsByTag.records.summarizeTable({
1105
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
1106
- body: query,
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,
1107
1967
  ...this.extraProps
1108
1968
  });
1109
1969
  }
1110
1970
  }
1111
- class MigrationRequestsApi {
1971
+ class SearchAndFilterApi {
1112
1972
  constructor(extraProps) {
1113
1973
  this.extraProps = extraProps;
1114
1974
  }
1115
- listMigrationRequests(workspace, database, options = {}) {
1116
- return operationsByTag.migrationRequests.listMigrationRequests({
1117
- pathParams: { workspace, dbName: database },
1118
- body: options,
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 },
1119
2094
  ...this.extraProps
1120
2095
  });
1121
2096
  }
1122
- createMigrationRequest(workspace, database, options) {
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
+ }) {
1123
2123
  return operationsByTag.migrationRequests.createMigrationRequest({
1124
- pathParams: { workspace, dbName: database },
1125
- body: options,
2124
+ pathParams: { workspace, region, dbName: database },
2125
+ body: migration,
1126
2126
  ...this.extraProps
1127
2127
  });
1128
2128
  }
1129
- getMigrationRequest(workspace, database, migrationRequest) {
2129
+ getMigrationRequest({
2130
+ workspace,
2131
+ region,
2132
+ database,
2133
+ migrationRequest
2134
+ }) {
1130
2135
  return operationsByTag.migrationRequests.getMigrationRequest({
1131
- pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
2136
+ pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
1132
2137
  ...this.extraProps
1133
2138
  });
1134
2139
  }
1135
- updateMigrationRequest(workspace, database, migrationRequest, options) {
2140
+ updateMigrationRequest({
2141
+ workspace,
2142
+ region,
2143
+ database,
2144
+ migrationRequest,
2145
+ update
2146
+ }) {
1136
2147
  return operationsByTag.migrationRequests.updateMigrationRequest({
1137
- pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
1138
- body: options,
2148
+ pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
2149
+ body: update,
1139
2150
  ...this.extraProps
1140
2151
  });
1141
2152
  }
1142
- listMigrationRequestsCommits(workspace, database, migrationRequest, options = {}) {
2153
+ listMigrationRequestsCommits({
2154
+ workspace,
2155
+ region,
2156
+ database,
2157
+ migrationRequest,
2158
+ page
2159
+ }) {
1143
2160
  return operationsByTag.migrationRequests.listMigrationRequestsCommits({
1144
- pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
1145
- body: options,
2161
+ pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
2162
+ body: { page },
1146
2163
  ...this.extraProps
1147
2164
  });
1148
2165
  }
1149
- compareMigrationRequest(workspace, database, migrationRequest) {
2166
+ compareMigrationRequest({
2167
+ workspace,
2168
+ region,
2169
+ database,
2170
+ migrationRequest
2171
+ }) {
1150
2172
  return operationsByTag.migrationRequests.compareMigrationRequest({
1151
- pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
2173
+ pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
1152
2174
  ...this.extraProps
1153
2175
  });
1154
2176
  }
1155
- getMigrationRequestIsMerged(workspace, database, migrationRequest) {
2177
+ getMigrationRequestIsMerged({
2178
+ workspace,
2179
+ region,
2180
+ database,
2181
+ migrationRequest
2182
+ }) {
1156
2183
  return operationsByTag.migrationRequests.getMigrationRequestIsMerged({
1157
- pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
2184
+ pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
1158
2185
  ...this.extraProps
1159
2186
  });
1160
2187
  }
1161
- mergeMigrationRequest(workspace, database, migrationRequest) {
2188
+ mergeMigrationRequest({
2189
+ workspace,
2190
+ region,
2191
+ database,
2192
+ migrationRequest
2193
+ }) {
1162
2194
  return operationsByTag.migrationRequests.mergeMigrationRequest({
1163
- pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
2195
+ pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
1164
2196
  ...this.extraProps
1165
2197
  });
1166
2198
  }
1167
2199
  }
1168
- class BranchSchemaApi {
2200
+ class MigrationsApi {
1169
2201
  constructor(extraProps) {
1170
2202
  this.extraProps = extraProps;
1171
2203
  }
1172
- getBranchMigrationHistory(workspace, database, branch, options = {}) {
1173
- return operationsByTag.branchSchema.getBranchMigrationHistory({
1174
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1175
- body: options,
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,
1176
2228
  ...this.extraProps
1177
2229
  });
1178
2230
  }
1179
- executeBranchMigrationPlan(workspace, database, branch, migrationPlan) {
1180
- return operationsByTag.branchSchema.executeBranchMigrationPlan({
1181
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1182
- body: migrationPlan,
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,
2241
+ ...this.extraProps
2242
+ });
2243
+ }
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 },
2254
+ ...this.extraProps
2255
+ });
2256
+ }
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 },
2269
+ ...this.extraProps
2270
+ });
2271
+ }
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 },
2284
+ ...this.extraProps
2285
+ });
2286
+ }
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,
1183
2297
  ...this.extraProps
1184
2298
  });
1185
2299
  }
1186
- getBranchMigrationPlan(workspace, database, branch, schema) {
1187
- return operationsByTag.branchSchema.getBranchMigrationPlan({
1188
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1189
- body: schema,
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,
1190
2310
  ...this.extraProps
1191
2311
  });
1192
2312
  }
1193
- compareBranchWithUserSchema(workspace, database, branch, schema) {
1194
- return operationsByTag.branchSchema.compareBranchWithUserSchema({
1195
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1196
- body: { schema },
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 },
1197
2323
  ...this.extraProps
1198
2324
  });
1199
2325
  }
1200
- compareBranchSchemas(workspace, database, branch, branchName, schema) {
1201
- return operationsByTag.branchSchema.compareBranchSchemas({
1202
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, branchName },
1203
- body: { schema },
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 },
1204
2336
  ...this.extraProps
1205
2337
  });
1206
2338
  }
1207
- updateBranchSchema(workspace, database, branch, migration) {
1208
- return operationsByTag.branchSchema.updateBranchSchema({
1209
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1210
- body: migration,
2339
+ }
2340
+ class DatabaseApi {
2341
+ constructor(extraProps) {
2342
+ this.extraProps = extraProps;
2343
+ }
2344
+ getDatabaseList({ workspace }) {
2345
+ return operationsByTag.databases.getDatabaseList({
2346
+ pathParams: { workspaceId: workspace },
1211
2347
  ...this.extraProps
1212
2348
  });
1213
2349
  }
1214
- previewBranchSchemaEdit(workspace, database, branch, migration) {
1215
- return operationsByTag.branchSchema.previewBranchSchemaEdit({
1216
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1217
- body: migration,
2350
+ createDatabase({
2351
+ workspace,
2352
+ database,
2353
+ data
2354
+ }) {
2355
+ return operationsByTag.databases.createDatabase({
2356
+ pathParams: { workspaceId: workspace, dbName: database },
2357
+ body: data,
1218
2358
  ...this.extraProps
1219
2359
  });
1220
2360
  }
1221
- applyBranchSchemaEdit(workspace, database, branch, edits) {
1222
- return operationsByTag.branchSchema.applyBranchSchemaEdit({
1223
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1224
- body: { edits },
2361
+ deleteDatabase({
2362
+ workspace,
2363
+ database
2364
+ }) {
2365
+ return operationsByTag.databases.deleteDatabase({
2366
+ pathParams: { workspaceId: workspace, dbName: database },
2367
+ ...this.extraProps
2368
+ });
2369
+ }
2370
+ getDatabaseMetadata({
2371
+ workspace,
2372
+ database
2373
+ }) {
2374
+ return operationsByTag.databases.getDatabaseMetadata({
2375
+ pathParams: { workspaceId: workspace, dbName: database },
2376
+ ...this.extraProps
2377
+ });
2378
+ }
2379
+ updateDatabaseMetadata({
2380
+ workspace,
2381
+ database,
2382
+ metadata
2383
+ }) {
2384
+ return operationsByTag.databases.updateDatabaseMetadata({
2385
+ pathParams: { workspaceId: workspace, dbName: database },
2386
+ body: metadata,
2387
+ ...this.extraProps
2388
+ });
2389
+ }
2390
+ renameDatabase({
2391
+ workspace,
2392
+ database,
2393
+ newName
2394
+ }) {
2395
+ return operationsByTag.databases.renameDatabase({
2396
+ pathParams: { workspaceId: workspace, dbName: database },
2397
+ body: { newName },
2398
+ ...this.extraProps
2399
+ });
2400
+ }
2401
+ getDatabaseGithubSettings({
2402
+ workspace,
2403
+ database
2404
+ }) {
2405
+ return operationsByTag.databases.getDatabaseGithubSettings({
2406
+ pathParams: { workspaceId: workspace, dbName: database },
2407
+ ...this.extraProps
2408
+ });
2409
+ }
2410
+ updateDatabaseGithubSettings({
2411
+ workspace,
2412
+ database,
2413
+ settings
2414
+ }) {
2415
+ return operationsByTag.databases.updateDatabaseGithubSettings({
2416
+ pathParams: { workspaceId: workspace, dbName: database },
2417
+ body: settings,
2418
+ ...this.extraProps
2419
+ });
2420
+ }
2421
+ deleteDatabaseGithubSettings({
2422
+ workspace,
2423
+ database
2424
+ }) {
2425
+ return operationsByTag.databases.deleteDatabaseGithubSettings({
2426
+ pathParams: { workspaceId: workspace, dbName: database },
1225
2427
  ...this.extraProps
1226
2428
  });
1227
2429
  }
1228
- getBranchSchemaHistory(workspace, database, branch, options = {}) {
1229
- return operationsByTag.branchSchema.getBranchSchemaHistory({
1230
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1231
- body: options,
2430
+ listRegions({ workspace }) {
2431
+ return operationsByTag.databases.listRegions({
2432
+ pathParams: { workspaceId: workspace },
1232
2433
  ...this.extraProps
1233
2434
  });
1234
2435
  }
1235
2436
  }
1236
2437
 
1237
2438
  class XataApiPlugin {
1238
- async build(options) {
1239
- const { fetchImpl, apiKey } = await options.getFetchProps();
1240
- return new XataApiClient({ fetch: fetchImpl, apiKey });
2439
+ build(options) {
2440
+ return new XataApiClient(options);
1241
2441
  }
1242
2442
  }
1243
2443
 
1244
2444
  class XataPlugin {
1245
2445
  }
1246
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
+
1247
2454
  var __accessCheck$6 = (obj, member, msg) => {
1248
2455
  if (!member.has(obj))
1249
2456
  throw TypeError("Cannot " + msg);
@@ -1276,11 +2483,11 @@ class Page {
1276
2483
  async previousPage(size, offset) {
1277
2484
  return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, before: this.meta.page.cursor } });
1278
2485
  }
1279
- async firstPage(size, offset) {
1280
- return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, first: this.meta.page.cursor } });
2486
+ async startPage(size, offset) {
2487
+ return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, start: this.meta.page.cursor } });
1281
2488
  }
1282
- async lastPage(size, offset) {
1283
- return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, last: this.meta.page.cursor } });
2489
+ async endPage(size, offset) {
2490
+ return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, end: this.meta.page.cursor } });
1284
2491
  }
1285
2492
  hasNextPage() {
1286
2493
  return this.meta.page.more;
@@ -1292,7 +2499,7 @@ const PAGINATION_DEFAULT_SIZE = 20;
1292
2499
  const PAGINATION_MAX_OFFSET = 800;
1293
2500
  const PAGINATION_DEFAULT_OFFSET = 0;
1294
2501
  function isCursorPaginationOptions(options) {
1295
- return isDefined(options) && (isDefined(options.first) || isDefined(options.last) || isDefined(options.after) || isDefined(options.before));
2502
+ return isDefined(options) && (isDefined(options.start) || isDefined(options.end) || isDefined(options.after) || isDefined(options.before));
1296
2503
  }
1297
2504
  const _RecordArray = class extends Array {
1298
2505
  constructor(...args) {
@@ -1313,6 +2520,12 @@ const _RecordArray = class extends Array {
1313
2520
  toArray() {
1314
2521
  return new Array(...this);
1315
2522
  }
2523
+ toSerializable() {
2524
+ return JSON.parse(this.toString());
2525
+ }
2526
+ toString() {
2527
+ return JSON.stringify(this.toArray());
2528
+ }
1316
2529
  map(callbackfn, thisArg) {
1317
2530
  return this.toArray().map(callbackfn, thisArg);
1318
2531
  }
@@ -1324,12 +2537,12 @@ const _RecordArray = class extends Array {
1324
2537
  const newPage = await __privateGet$6(this, _page).previousPage(size, offset);
1325
2538
  return new _RecordArray(newPage);
1326
2539
  }
1327
- async firstPage(size, offset) {
1328
- const newPage = await __privateGet$6(this, _page).firstPage(size, offset);
2540
+ async startPage(size, offset) {
2541
+ const newPage = await __privateGet$6(this, _page).startPage(size, offset);
1329
2542
  return new _RecordArray(newPage);
1330
2543
  }
1331
- async lastPage(size, offset) {
1332
- const newPage = await __privateGet$6(this, _page).lastPage(size, offset);
2544
+ async endPage(size, offset) {
2545
+ const newPage = await __privateGet$6(this, _page).endPage(size, offset);
1333
2546
  return new _RecordArray(newPage);
1334
2547
  }
1335
2548
  hasNextPage() {
@@ -1357,9 +2570,14 @@ var __privateSet$5 = (obj, member, value, setter) => {
1357
2570
  setter ? setter.call(obj, value) : member.set(obj, value);
1358
2571
  return value;
1359
2572
  };
1360
- var _table$1, _repository, _data;
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;
1361
2578
  const _Query = class {
1362
2579
  constructor(repository, table, data, rawParent) {
2580
+ __privateAdd$5(this, _cleanFilterConstraint);
1363
2581
  __privateAdd$5(this, _table$1, void 0);
1364
2582
  __privateAdd$5(this, _repository, void 0);
1365
2583
  __privateAdd$5(this, _data, { filter: {} });
@@ -1378,9 +2596,11 @@ const _Query = class {
1378
2596
  __privateGet$5(this, _data).filter.$not = data.filter?.$not ?? parent?.filter?.$not;
1379
2597
  __privateGet$5(this, _data).filter.$none = data.filter?.$none ?? parent?.filter?.$none;
1380
2598
  __privateGet$5(this, _data).sort = data.sort ?? parent?.sort;
1381
- __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;
1382
2601
  __privateGet$5(this, _data).pagination = data.pagination ?? parent?.pagination;
1383
2602
  __privateGet$5(this, _data).cache = data.cache ?? parent?.cache;
2603
+ __privateGet$5(this, _data).fetchOptions = data.fetchOptions ?? parent?.fetchOptions;
1384
2604
  this.any = this.any.bind(this);
1385
2605
  this.all = this.all.bind(this);
1386
2606
  this.not = this.not.bind(this);
@@ -1417,26 +2637,16 @@ const _Query = class {
1417
2637
  filter(a, b) {
1418
2638
  if (arguments.length === 1) {
1419
2639
  const constraints = Object.entries(a ?? {}).map(([column, constraint]) => ({
1420
- [column]: this.cleanFilterConstraint(column, constraint)
2640
+ [column]: __privateMethod$3(this, _cleanFilterConstraint, cleanFilterConstraint_fn).call(this, column, constraint)
1421
2641
  }));
1422
2642
  const $all = compact([__privateGet$5(this, _data).filter?.$all].flat().concat(constraints));
1423
2643
  return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
1424
2644
  } else {
1425
- const constraints = isDefined(a) && isDefined(b) ? [{ [a]: this.cleanFilterConstraint(a, b) }] : void 0;
2645
+ const constraints = isDefined(a) && isDefined(b) ? [{ [a]: __privateMethod$3(this, _cleanFilterConstraint, cleanFilterConstraint_fn).call(this, a, b) }] : void 0;
1426
2646
  const $all = compact([__privateGet$5(this, _data).filter?.$all].flat().concat(constraints));
1427
2647
  return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
1428
2648
  }
1429
2649
  }
1430
- cleanFilterConstraint(column, value) {
1431
- const columnType = __privateGet$5(this, _table$1).schema?.columns.find(({ name }) => name === column)?.type;
1432
- if (columnType === "multiple" && (isString(value) || isStringArray(value))) {
1433
- return { $includes: value };
1434
- }
1435
- if (columnType === "link" && isObject(value) && isString(value.id)) {
1436
- return value.id;
1437
- }
1438
- return value;
1439
- }
1440
2650
  sort(column, direction = "asc") {
1441
2651
  const originalSort = [__privateGet$5(this, _data).sort ?? []].flat();
1442
2652
  const sort = [...originalSort, { column, direction }];
@@ -1504,19 +2714,29 @@ const _Query = class {
1504
2714
  throw new Error("No results found.");
1505
2715
  return records[0];
1506
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
+ }
1507
2727
  cache(ttl) {
1508
2728
  return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { cache: ttl }, __privateGet$5(this, _data));
1509
2729
  }
1510
2730
  nextPage(size, offset) {
1511
- return this.firstPage(size, offset);
2731
+ return this.startPage(size, offset);
1512
2732
  }
1513
2733
  previousPage(size, offset) {
1514
- return this.firstPage(size, offset);
2734
+ return this.startPage(size, offset);
1515
2735
  }
1516
- firstPage(size, offset) {
2736
+ startPage(size, offset) {
1517
2737
  return this.getPaginated({ pagination: { size, offset } });
1518
2738
  }
1519
- lastPage(size, offset) {
2739
+ endPage(size, offset) {
1520
2740
  return this.getPaginated({ pagination: { size, offset, before: "end" } });
1521
2741
  }
1522
2742
  hasNextPage() {
@@ -1527,9 +2747,20 @@ let Query = _Query;
1527
2747
  _table$1 = new WeakMap();
1528
2748
  _repository = new WeakMap();
1529
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
+ };
1530
2761
  function cleanParent(data, parent) {
1531
2762
  if (isCursorPaginationOptions(data.pagination)) {
1532
- return { ...parent, sorting: void 0, filter: void 0 };
2763
+ return { ...parent, sort: void 0, filter: void 0 };
1533
2764
  }
1534
2765
  return parent;
1535
2766
  }
@@ -1547,7 +2778,11 @@ function isSortFilterString(value) {
1547
2778
  return isString(value);
1548
2779
  }
1549
2780
  function isSortFilterBase(filter) {
1550
- return isObject(filter) && Object.values(filter).every((value) => value === "asc" || value === "desc");
2781
+ return isObject(filter) && Object.entries(filter).every(([key, value]) => {
2782
+ if (key === "*")
2783
+ return value === "random";
2784
+ return value === "asc" || value === "desc";
2785
+ });
1551
2786
  }
1552
2787
  function isSortFilterObject(filter) {
1553
2788
  return isObject(filter) && !isSortFilterBase(filter) && filter.column !== void 0;
@@ -1588,7 +2823,8 @@ var __privateMethod$2 = (obj, member, method) => {
1588
2823
  __accessCheck$4(obj, member, "access private method");
1589
2824
  return method;
1590
2825
  };
1591
- var _table, _getFetchProps, _db, _cache, _schemaTables$2, _trace, _insertRecordWithoutId, insertRecordWithoutId_fn, _insertRecordWithId, insertRecordWithId_fn, _bulkInsertTableRecords, bulkInsertTableRecords_fn, _updateRecordWithID, updateRecordWithID_fn, _upsertRecordWithID, upsertRecordWithID_fn, _deleteRecord, deleteRecord_fn, _setCacheQuery, setCacheQuery_fn, _getCacheQuery, getCacheQuery_fn, _getSchemaTables$1, getSchemaTables_fn$1;
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;
1592
2828
  class Repository extends Query {
1593
2829
  }
1594
2830
  class RestRepository extends Query {
@@ -1600,10 +2836,12 @@ class RestRepository extends Query {
1600
2836
  );
1601
2837
  __privateAdd$4(this, _insertRecordWithoutId);
1602
2838
  __privateAdd$4(this, _insertRecordWithId);
1603
- __privateAdd$4(this, _bulkInsertTableRecords);
2839
+ __privateAdd$4(this, _insertRecords);
1604
2840
  __privateAdd$4(this, _updateRecordWithID);
2841
+ __privateAdd$4(this, _updateRecords);
1605
2842
  __privateAdd$4(this, _upsertRecordWithID);
1606
2843
  __privateAdd$4(this, _deleteRecord);
2844
+ __privateAdd$4(this, _deleteRecords);
1607
2845
  __privateAdd$4(this, _setCacheQuery);
1608
2846
  __privateAdd$4(this, _getCacheQuery);
1609
2847
  __privateAdd$4(this, _getSchemaTables$1);
@@ -1614,10 +2852,10 @@ class RestRepository extends Query {
1614
2852
  __privateAdd$4(this, _schemaTables$2, void 0);
1615
2853
  __privateAdd$4(this, _trace, void 0);
1616
2854
  __privateSet$4(this, _table, options.table);
1617
- __privateSet$4(this, _getFetchProps, options.pluginOptions.getFetchProps);
1618
2855
  __privateSet$4(this, _db, options.db);
1619
2856
  __privateSet$4(this, _cache, options.pluginOptions.cache);
1620
2857
  __privateSet$4(this, _schemaTables$2, options.schemaTables);
2858
+ __privateSet$4(this, _getFetchProps, () => ({ ...options.pluginOptions, sessionID: generateUUID() }));
1621
2859
  const trace = options.pluginOptions.trace ?? defaultTrace;
1622
2860
  __privateSet$4(this, _trace, async (name, fn, options2 = {}) => {
1623
2861
  return trace(name, fn, {
@@ -1628,25 +2866,28 @@ class RestRepository extends Query {
1628
2866
  });
1629
2867
  });
1630
2868
  }
1631
- async create(a, b, c) {
2869
+ async create(a, b, c, d) {
1632
2870
  return __privateGet$4(this, _trace).call(this, "create", async () => {
2871
+ const ifVersion = parseIfVersion(b, c, d);
1633
2872
  if (Array.isArray(a)) {
1634
2873
  if (a.length === 0)
1635
2874
  return [];
1636
- const columns = isStringArray(b) ? b : void 0;
1637
- return __privateMethod$2(this, _bulkInsertTableRecords, bulkInsertTableRecords_fn).call(this, a, columns);
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;
1638
2879
  }
1639
2880
  if (isString(a) && isObject(b)) {
1640
2881
  if (a === "")
1641
2882
  throw new Error("The id can't be empty");
1642
2883
  const columns = isStringArray(c) ? c : void 0;
1643
- return __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a, b, columns);
2884
+ return await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a, b, columns, { createOnly: true, ifVersion });
1644
2885
  }
1645
2886
  if (isObject(a) && isString(a.id)) {
1646
2887
  if (a.id === "")
1647
2888
  throw new Error("The id can't be empty");
1648
2889
  const columns = isStringArray(b) ? b : void 0;
1649
- return __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a.id, { ...a, id: void 0 }, columns);
2890
+ return await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a.id, { ...a, id: void 0 }, columns, { createOnly: true, ifVersion });
1650
2891
  }
1651
2892
  if (isObject(a)) {
1652
2893
  const columns = isStringArray(b) ? b : void 0;
@@ -1671,20 +2912,20 @@ class RestRepository extends Query {
1671
2912
  }
1672
2913
  const id = extractId(a);
1673
2914
  if (id) {
1674
- const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1675
2915
  try {
1676
2916
  const response = await getRecord({
1677
2917
  pathParams: {
1678
2918
  workspace: "{workspaceId}",
1679
2919
  dbBranchName: "{dbBranch}",
2920
+ region: "{region}",
1680
2921
  tableName: __privateGet$4(this, _table),
1681
2922
  recordId: id
1682
2923
  },
1683
2924
  queryParams: { columns },
1684
- ...fetchProps
2925
+ ...__privateGet$4(this, _getFetchProps).call(this)
1685
2926
  });
1686
2927
  const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
1687
- return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response);
2928
+ return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
1688
2929
  } catch (e) {
1689
2930
  if (isObject(e) && e.status === 404) {
1690
2931
  return null;
@@ -1714,31 +2955,42 @@ class RestRepository extends Query {
1714
2955
  return result;
1715
2956
  });
1716
2957
  }
1717
- async update(a, b, c) {
2958
+ async update(a, b, c, d) {
1718
2959
  return __privateGet$4(this, _trace).call(this, "update", async () => {
2960
+ const ifVersion = parseIfVersion(b, c, d);
1719
2961
  if (Array.isArray(a)) {
1720
2962
  if (a.length === 0)
1721
2963
  return [];
1722
- if (a.length > 100) {
1723
- console.warn("Bulk update operation is not optimized in the Xata API yet, this request might be slow");
1724
- }
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
2969
+ });
1725
2970
  const columns = isStringArray(b) ? b : ["*"];
1726
- return Promise.all(a.map((object) => this.update(object, columns)));
1727
- }
1728
- if (isString(a) && isObject(b)) {
1729
- const columns = isStringArray(c) ? c : void 0;
1730
- return __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a, b, columns);
2971
+ const result = await this.read(a, columns);
2972
+ return result;
1731
2973
  }
1732
- if (isObject(a) && isString(a.id)) {
1733
- const columns = isStringArray(b) ? b : void 0;
1734
- return __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns);
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)
2985
+ return null;
2986
+ throw error;
1735
2987
  }
1736
2988
  throw new Error("Invalid arguments for update method");
1737
2989
  });
1738
2990
  }
1739
- async updateOrThrow(a, b, c) {
2991
+ async updateOrThrow(a, b, c, d) {
1740
2992
  return __privateGet$4(this, _trace).call(this, "updateOrThrow", async () => {
1741
- const result = await this.update(a, b, c);
2993
+ const result = await this.update(a, b, c, d);
1742
2994
  if (Array.isArray(result)) {
1743
2995
  const missingIds = compact(
1744
2996
  a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
@@ -1755,37 +3007,69 @@ class RestRepository extends Query {
1755
3007
  return result;
1756
3008
  });
1757
3009
  }
1758
- async createOrUpdate(a, b, c) {
3010
+ async createOrUpdate(a, b, c, d) {
1759
3011
  return __privateGet$4(this, _trace).call(this, "createOrUpdate", async () => {
3012
+ const ifVersion = parseIfVersion(b, c, d);
1760
3013
  if (Array.isArray(a)) {
1761
3014
  if (a.length === 0)
1762
3015
  return [];
1763
- if (a.length > 100) {
1764
- console.warn("Bulk update operation is not optimized in the Xata API yet, this request might be slow");
1765
- }
3016
+ await __privateMethod$2(this, _updateRecords, updateRecords_fn).call(this, a, {
3017
+ ifVersion,
3018
+ upsert: true
3019
+ });
1766
3020
  const columns = isStringArray(b) ? b : ["*"];
1767
- return Promise.all(a.map((object) => this.createOrUpdate(object, columns)));
3021
+ const result = await this.read(a, columns);
3022
+ return result;
1768
3023
  }
1769
3024
  if (isString(a) && isObject(b)) {
1770
3025
  const columns = isStringArray(c) ? c : void 0;
1771
- return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a, b, columns);
3026
+ return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a, b, columns, { ifVersion });
1772
3027
  }
1773
3028
  if (isObject(a) && isString(a.id)) {
1774
3029
  const columns = isStringArray(c) ? c : void 0;
1775
- return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns);
3030
+ return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns, { ifVersion });
1776
3031
  }
1777
3032
  throw new Error("Invalid arguments for createOrUpdate method");
1778
3033
  });
1779
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
+ }
1780
3057
  async delete(a, b) {
1781
3058
  return __privateGet$4(this, _trace).call(this, "delete", async () => {
1782
3059
  if (Array.isArray(a)) {
1783
3060
  if (a.length === 0)
1784
3061
  return [];
1785
- if (a.length > 100) {
1786
- console.warn("Bulk delete operation is not optimized in the Xata API yet, this request might be slow");
1787
- }
1788
- return Promise.all(a.map((id) => this.delete(id, b)));
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;
1789
3073
  }
1790
3074
  if (isString(a)) {
1791
3075
  return __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a, b);
@@ -1816,21 +3100,64 @@ class RestRepository extends Query {
1816
3100
  }
1817
3101
  async search(query, options = {}) {
1818
3102
  return __privateGet$4(this, _trace).call(this, "search", async () => {
1819
- const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1820
3103
  const { records } = await searchTable({
1821
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table) },
3104
+ pathParams: {
3105
+ workspace: "{workspaceId}",
3106
+ dbBranchName: "{dbBranch}",
3107
+ region: "{region}",
3108
+ tableName: __privateGet$4(this, _table)
3109
+ },
1822
3110
  body: {
1823
3111
  query,
1824
3112
  fuzziness: options.fuzziness,
1825
3113
  prefix: options.prefix,
1826
3114
  highlight: options.highlight,
1827
3115
  filter: options.filter,
1828
- boosters: options.boosters
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
1829
3141
  },
1830
- ...fetchProps
3142
+ ...__privateGet$4(this, _getFetchProps).call(this)
1831
3143
  });
1832
3144
  const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
1833
- return records.map((item) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), item));
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;
1834
3161
  });
1835
3162
  }
1836
3163
  async query(query) {
@@ -1839,24 +3166,83 @@ class RestRepository extends Query {
1839
3166
  if (cacheQuery)
1840
3167
  return new Page(query, cacheQuery.meta, cacheQuery.records);
1841
3168
  const data = query.getQueryOptions();
1842
- const body = {
1843
- filter: cleanFilter(data.filter),
1844
- sort: data.sort !== void 0 ? buildSortFilter(data.sort) : void 0,
1845
- page: data.pagination,
1846
- columns: data.columns
1847
- };
1848
- const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1849
3169
  const { meta, records: objects } = await queryTable({
1850
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table) },
1851
- body,
1852
- ...fetchProps
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)
1853
3185
  });
1854
3186
  const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
1855
- const records = objects.map((record) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), record));
3187
+ const records = objects.map(
3188
+ (record) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), record, data.columns ?? ["*"])
3189
+ );
1856
3190
  await __privateMethod$2(this, _setCacheQuery, setCacheQuery_fn).call(this, query, meta, records);
1857
3191
  return new Page(query, meta, records);
1858
3192
  });
1859
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
+ }
3245
+ }
1860
3246
  }
1861
3247
  _table = new WeakMap();
1862
3248
  _getFetchProps = new WeakMap();
@@ -1866,68 +3252,86 @@ _schemaTables$2 = new WeakMap();
1866
3252
  _trace = new WeakMap();
1867
3253
  _insertRecordWithoutId = new WeakSet();
1868
3254
  insertRecordWithoutId_fn = async function(object, columns = ["*"]) {
1869
- const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1870
3255
  const record = transformObjectLinks(object);
1871
3256
  const response = await insertRecord({
1872
3257
  pathParams: {
1873
3258
  workspace: "{workspaceId}",
1874
3259
  dbBranchName: "{dbBranch}",
3260
+ region: "{region}",
1875
3261
  tableName: __privateGet$4(this, _table)
1876
3262
  },
1877
3263
  queryParams: { columns },
1878
3264
  body: record,
1879
- ...fetchProps
3265
+ ...__privateGet$4(this, _getFetchProps).call(this)
1880
3266
  });
1881
3267
  const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
1882
- 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);
1883
3269
  };
1884
3270
  _insertRecordWithId = new WeakSet();
1885
- insertRecordWithId_fn = async function(recordId, object, columns = ["*"]) {
1886
- const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
3271
+ insertRecordWithId_fn = async function(recordId, object, columns = ["*"], { createOnly, ifVersion }) {
1887
3272
  const record = transformObjectLinks(object);
1888
3273
  const response = await insertRecordWithID({
1889
3274
  pathParams: {
1890
3275
  workspace: "{workspaceId}",
1891
3276
  dbBranchName: "{dbBranch}",
3277
+ region: "{region}",
1892
3278
  tableName: __privateGet$4(this, _table),
1893
3279
  recordId
1894
3280
  },
1895
3281
  body: record,
1896
- queryParams: { createOnly: true, columns },
1897
- ...fetchProps
3282
+ queryParams: { createOnly, columns, ifVersion },
3283
+ ...__privateGet$4(this, _getFetchProps).call(this)
1898
3284
  });
1899
3285
  const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
1900
- return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response);
1901
- };
1902
- _bulkInsertTableRecords = new WeakSet();
1903
- bulkInsertTableRecords_fn = async function(objects, columns = ["*"]) {
1904
- const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1905
- const records = objects.map((object) => transformObjectLinks(object));
1906
- const response = await bulkInsertTableRecords({
1907
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table) },
1908
- queryParams: { columns },
1909
- body: { records },
1910
- ...fetchProps
1911
- });
1912
- if (!isResponseWithRecords(response)) {
1913
- throw new Error("Request included columns but server didn't include them");
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
+ }
1914
3314
  }
1915
- const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
1916
- return response.records?.map((item) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), item));
3315
+ return ids;
1917
3316
  };
1918
3317
  _updateRecordWithID = new WeakSet();
1919
- updateRecordWithID_fn = async function(recordId, object, columns = ["*"]) {
1920
- const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1921
- const record = transformObjectLinks(object);
3318
+ updateRecordWithID_fn = async function(recordId, object, columns = ["*"], { ifVersion }) {
3319
+ const { id: _id, ...record } = transformObjectLinks(object);
1922
3320
  try {
1923
3321
  const response = await updateRecordWithID({
1924
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
1925
- queryParams: { columns },
3322
+ pathParams: {
3323
+ workspace: "{workspaceId}",
3324
+ dbBranchName: "{dbBranch}",
3325
+ region: "{region}",
3326
+ tableName: __privateGet$4(this, _table),
3327
+ recordId
3328
+ },
3329
+ queryParams: { columns, ifVersion },
1926
3330
  body: record,
1927
- ...fetchProps
3331
+ ...__privateGet$4(this, _getFetchProps).call(this)
1928
3332
  });
1929
3333
  const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
1930
- return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response);
3334
+ return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
1931
3335
  } catch (e) {
1932
3336
  if (isObject(e) && e.status === 404) {
1933
3337
  return null;
@@ -1935,29 +3339,68 @@ updateRecordWithID_fn = async function(recordId, object, columns = ["*"]) {
1935
3339
  throw e;
1936
3340
  }
1937
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;
3370
+ };
1938
3371
  _upsertRecordWithID = new WeakSet();
1939
- upsertRecordWithID_fn = async function(recordId, object, columns = ["*"]) {
1940
- const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
3372
+ upsertRecordWithID_fn = async function(recordId, object, columns = ["*"], { ifVersion }) {
1941
3373
  const response = await upsertRecordWithID({
1942
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
1943
- queryParams: { columns },
3374
+ pathParams: {
3375
+ workspace: "{workspaceId}",
3376
+ dbBranchName: "{dbBranch}",
3377
+ region: "{region}",
3378
+ tableName: __privateGet$4(this, _table),
3379
+ recordId
3380
+ },
3381
+ queryParams: { columns, ifVersion },
1944
3382
  body: object,
1945
- ...fetchProps
3383
+ ...__privateGet$4(this, _getFetchProps).call(this)
1946
3384
  });
1947
3385
  const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
1948
- 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);
1949
3387
  };
1950
3388
  _deleteRecord = new WeakSet();
1951
3389
  deleteRecord_fn = async function(recordId, columns = ["*"]) {
1952
- const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1953
3390
  try {
1954
3391
  const response = await deleteRecord({
1955
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
3392
+ pathParams: {
3393
+ workspace: "{workspaceId}",
3394
+ dbBranchName: "{dbBranch}",
3395
+ region: "{region}",
3396
+ tableName: __privateGet$4(this, _table),
3397
+ recordId
3398
+ },
1956
3399
  queryParams: { columns },
1957
- ...fetchProps
3400
+ ...__privateGet$4(this, _getFetchProps).call(this)
1958
3401
  });
1959
3402
  const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
1960
- return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response);
3403
+ return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
1961
3404
  } catch (e) {
1962
3405
  if (isObject(e) && e.status === 404) {
1963
3406
  return null;
@@ -1965,17 +3408,36 @@ deleteRecord_fn = async function(recordId, columns = ["*"]) {
1965
3408
  throw e;
1966
3409
  }
1967
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
+ }
3428
+ };
1968
3429
  _setCacheQuery = new WeakSet();
1969
3430
  setCacheQuery_fn = async function(query, meta, records) {
1970
- await __privateGet$4(this, _cache).set(`query_${__privateGet$4(this, _table)}:${query.key()}`, { date: new Date(), meta, records });
3431
+ await __privateGet$4(this, _cache)?.set(`query_${__privateGet$4(this, _table)}:${query.key()}`, { date: new Date(), meta, records });
1971
3432
  };
1972
3433
  _getCacheQuery = new WeakSet();
1973
3434
  getCacheQuery_fn = async function(query) {
1974
3435
  const key = `query_${__privateGet$4(this, _table)}:${query.key()}`;
1975
- const result = await __privateGet$4(this, _cache).get(key);
3436
+ const result = await __privateGet$4(this, _cache)?.get(key);
1976
3437
  if (!result)
1977
3438
  return null;
1978
- const { cache: ttl = __privateGet$4(this, _cache).defaultQueryTTL } = query.getQueryOptions();
3439
+ const defaultTTL = __privateGet$4(this, _cache)?.defaultQueryTTL ?? -1;
3440
+ const { cache: ttl = defaultTTL } = query.getQueryOptions();
1979
3441
  if (ttl < 0)
1980
3442
  return null;
1981
3443
  const hasExpired = result.date.getTime() + ttl < Date.now();
@@ -1985,10 +3447,9 @@ _getSchemaTables$1 = new WeakSet();
1985
3447
  getSchemaTables_fn$1 = async function() {
1986
3448
  if (__privateGet$4(this, _schemaTables$2))
1987
3449
  return __privateGet$4(this, _schemaTables$2);
1988
- const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1989
3450
  const { schema } = await getBranchDetails({
1990
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
1991
- ...fetchProps
3451
+ pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
3452
+ ...__privateGet$4(this, _getFetchProps).call(this)
1992
3453
  });
1993
3454
  __privateSet$4(this, _schemaTables$2, schema.tables);
1994
3455
  return schema.tables;
@@ -2000,22 +3461,24 @@ const transformObjectLinks = (object) => {
2000
3461
  return { ...acc, [key]: isIdentifiable(value) ? value.id : value };
2001
3462
  }, {});
2002
3463
  };
2003
- const initObject = (db, schemaTables, table, object) => {
2004
- const result = {};
3464
+ const initObject = (db, schemaTables, table, object, selectedColumns) => {
3465
+ const data = {};
2005
3466
  const { xata, ...rest } = object ?? {};
2006
- Object.assign(result, rest);
3467
+ Object.assign(data, rest);
2007
3468
  const { columns } = schemaTables.find(({ name }) => name === table) ?? {};
2008
3469
  if (!columns)
2009
3470
  console.error(`Table ${table} not found in schema`);
2010
3471
  for (const column of columns ?? []) {
2011
- const value = result[column.name];
3472
+ if (!isValidColumn(selectedColumns, column))
3473
+ continue;
3474
+ const value = data[column.name];
2012
3475
  switch (column.type) {
2013
3476
  case "datetime": {
2014
- const date = value !== void 0 ? new Date(value) : void 0;
2015
- if (date && isNaN(date.getTime())) {
3477
+ const date = value !== void 0 ? new Date(value) : null;
3478
+ if (date !== null && isNaN(date.getTime())) {
2016
3479
  console.error(`Failed to parse date ${value} for field ${column.name}`);
2017
- } else if (date) {
2018
- result[column.name] = date;
3480
+ } else {
3481
+ data[column.name] = date;
2019
3482
  }
2020
3483
  break;
2021
3484
  }
@@ -2024,41 +3487,62 @@ const initObject = (db, schemaTables, table, object) => {
2024
3487
  if (!linkTable) {
2025
3488
  console.error(`Failed to parse link for field ${column.name}`);
2026
3489
  } else if (isObject(value)) {
2027
- result[column.name] = initObject(db, schemaTables, linkTable, value);
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);
2028
3501
  } else {
2029
- result[column.name] = null;
3502
+ data[column.name] = null;
2030
3503
  }
2031
3504
  break;
2032
3505
  }
2033
3506
  default:
2034
- result[column.name] = value ?? null;
3507
+ data[column.name] = value ?? null;
2035
3508
  if (column.notNull === true && value === null) {
2036
3509
  console.error(`Parse error, column ${column.name} is non nullable and value resolves null`);
2037
3510
  }
2038
3511
  break;
2039
3512
  }
2040
3513
  }
2041
- result.read = function(columns2) {
2042
- return db[table].read(result["id"], columns2);
3514
+ const record = { ...data };
3515
+ record.read = function(columns2) {
3516
+ return db[table].read(record["id"], columns2);
3517
+ };
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 });
2043
3522
  };
2044
- result.update = function(data, columns2) {
2045
- return db[table].update(result["id"], data, columns2);
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 });
2046
3527
  };
2047
- result.delete = function() {
2048
- return db[table].delete(result["id"]);
3528
+ record.delete = function() {
3529
+ return db[table].delete(record["id"]);
2049
3530
  };
2050
- result.getMetadata = function() {
3531
+ record.getMetadata = function() {
2051
3532
  return xata;
2052
3533
  };
2053
- for (const prop of ["read", "update", "delete", "getMetadata"]) {
2054
- Object.defineProperty(result, prop, { enumerable: false });
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 });
2055
3542
  }
2056
- Object.freeze(result);
2057
- return result;
3543
+ Object.freeze(record);
3544
+ return record;
2058
3545
  };
2059
- function isResponseWithRecords(value) {
2060
- return isObject(value) && Array.isArray(value.records);
2061
- }
2062
3546
  function extractId(value) {
2063
3547
  if (isString(value))
2064
3548
  return value;
@@ -2066,11 +3550,22 @@ function extractId(value) {
2066
3550
  return value.id;
2067
3551
  return void 0;
2068
3552
  }
2069
- function cleanFilter(filter) {
2070
- if (!filter)
2071
- return void 0;
2072
- const values = Object.values(filter).filter(Boolean).filter((value) => Array.isArray(value) ? value.length > 0 : true);
2073
- return values.length > 0 ? filter : void 0;
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;
2074
3569
  }
2075
3570
 
2076
3571
  var __accessCheck$3 = (obj, member, msg) => {
@@ -2230,23 +3725,23 @@ class SearchPlugin extends XataPlugin {
2230
3725
  __privateAdd$1(this, _schemaTables, void 0);
2231
3726
  __privateSet$1(this, _schemaTables, schemaTables);
2232
3727
  }
2233
- build({ getFetchProps }) {
3728
+ build(pluginOptions) {
2234
3729
  return {
2235
3730
  all: async (query, options = {}) => {
2236
- const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options, getFetchProps);
2237
- const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, getFetchProps);
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);
2238
3733
  return records.map((record) => {
2239
3734
  const { table = "orphan" } = record.xata;
2240
- return { table, record: initObject(this.db, schemaTables, table, record) };
3735
+ return { table, record: initObject(this.db, schemaTables, table, record, ["*"]) };
2241
3736
  });
2242
3737
  },
2243
3738
  byTable: async (query, options = {}) => {
2244
- const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options, getFetchProps);
2245
- const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, getFetchProps);
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);
2246
3741
  return records.reduce((acc, record) => {
2247
3742
  const { table = "orphan" } = record.xata;
2248
3743
  const items = acc[table] ?? [];
2249
- const item = initObject(this.db, schemaTables, table, record);
3744
+ const item = initObject(this.db, schemaTables, table, record, ["*"]);
2250
3745
  return { ...acc, [table]: [...items, item] };
2251
3746
  }, {});
2252
3747
  }
@@ -2255,108 +3750,39 @@ class SearchPlugin extends XataPlugin {
2255
3750
  }
2256
3751
  _schemaTables = new WeakMap();
2257
3752
  _search = new WeakSet();
2258
- search_fn = async function(query, options, getFetchProps) {
2259
- const fetchProps = await getFetchProps();
2260
- const { tables, fuzziness, highlight, prefix } = options ?? {};
3753
+ search_fn = async function(query, options, pluginOptions) {
3754
+ const { tables, fuzziness, highlight, prefix, page } = options ?? {};
2261
3755
  const { records } = await searchBranch({
2262
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
2263
- body: { tables, query, fuzziness, prefix, highlight },
2264
- ...fetchProps
3756
+ pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
3757
+ body: { tables, query, fuzziness, prefix, highlight, page },
3758
+ ...pluginOptions
2265
3759
  });
2266
3760
  return records;
2267
3761
  };
2268
3762
  _getSchemaTables = new WeakSet();
2269
- getSchemaTables_fn = async function(getFetchProps) {
3763
+ getSchemaTables_fn = async function(pluginOptions) {
2270
3764
  if (__privateGet$1(this, _schemaTables))
2271
3765
  return __privateGet$1(this, _schemaTables);
2272
- const fetchProps = await getFetchProps();
2273
3766
  const { schema } = await getBranchDetails({
2274
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
2275
- ...fetchProps
3767
+ pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
3768
+ ...pluginOptions
2276
3769
  });
2277
3770
  __privateSet$1(this, _schemaTables, schema.tables);
2278
3771
  return schema.tables;
2279
3772
  };
2280
3773
 
2281
- const isBranchStrategyBuilder = (strategy) => {
2282
- return typeof strategy === "function";
2283
- };
2284
-
2285
- async function getCurrentBranchName(options) {
2286
- const { branch, envBranch } = getEnvironment();
2287
- if (branch) {
2288
- const details = await getDatabaseBranch(branch, options);
2289
- if (details)
2290
- return branch;
2291
- console.warn(`Branch ${branch} not found in Xata. Ignoring...`);
2292
- }
2293
- const gitBranch = envBranch || await getGitBranch();
2294
- return resolveXataBranch(gitBranch, options);
2295
- }
2296
- async function getCurrentBranchDetails(options) {
2297
- const branch = await getCurrentBranchName(options);
2298
- return getDatabaseBranch(branch, options);
2299
- }
2300
- async function resolveXataBranch(gitBranch, options) {
2301
- const databaseURL = options?.databaseURL || getDatabaseURL();
2302
- const apiKey = options?.apiKey || getAPIKey();
2303
- if (!databaseURL)
2304
- throw new Error(
2305
- "A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely"
2306
- );
2307
- if (!apiKey)
2308
- throw new Error(
2309
- "An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely"
2310
- );
2311
- const [protocol, , host, , dbName] = databaseURL.split("/");
2312
- const [workspace] = host.split(".");
2313
- const { fallbackBranch } = getEnvironment();
2314
- const { branch } = await resolveBranch({
2315
- apiKey,
2316
- apiUrl: databaseURL,
2317
- fetchImpl: getFetchImplementation(options?.fetchImpl),
2318
- workspacesApiUrl: `${protocol}//${host}`,
2319
- pathParams: { dbName, workspace },
2320
- queryParams: { gitBranch, fallbackBranch },
2321
- trace: defaultTrace
2322
- });
2323
- return branch;
2324
- }
2325
- async function getDatabaseBranch(branch, options) {
2326
- const databaseURL = options?.databaseURL || getDatabaseURL();
2327
- const apiKey = options?.apiKey || getAPIKey();
2328
- if (!databaseURL)
2329
- throw new Error(
2330
- "A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely"
2331
- );
2332
- if (!apiKey)
2333
- throw new Error(
2334
- "An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely"
2335
- );
2336
- const [protocol, , host, , database] = databaseURL.split("/");
2337
- const [workspace] = host.split(".");
2338
- const dbBranchName = `${database}:${branch}`;
2339
- try {
2340
- return await getBranchDetails({
2341
- apiKey,
2342
- apiUrl: databaseURL,
2343
- fetchImpl: getFetchImplementation(options?.fetchImpl),
2344
- workspacesApiUrl: `${protocol}//${host}`,
2345
- pathParams: { dbBranchName, workspace },
2346
- trace: defaultTrace
2347
- });
2348
- } catch (err) {
2349
- if (isObject(err) && err.status === 404)
2350
- return null;
2351
- throw err;
2352
- }
2353
- }
2354
- function getDatabaseURL() {
2355
- try {
2356
- const { databaseURL } = getEnvironment();
2357
- return databaseURL;
2358
- } catch (err) {
2359
- 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
+ };
2360
3786
  }
2361
3787
  }
2362
3788
 
@@ -2383,88 +3809,115 @@ var __privateMethod = (obj, member, method) => {
2383
3809
  return method;
2384
3810
  };
2385
3811
  const buildClient = (plugins) => {
2386
- var _branch, _options, _parseOptions, parseOptions_fn, _getFetchProps, getFetchProps_fn, _evaluateBranch, evaluateBranch_fn, _a;
3812
+ var _options, _parseOptions, parseOptions_fn, _getFetchProps, getFetchProps_fn, _a;
2387
3813
  return _a = class {
2388
3814
  constructor(options = {}, schemaTables) {
2389
3815
  __privateAdd(this, _parseOptions);
2390
3816
  __privateAdd(this, _getFetchProps);
2391
- __privateAdd(this, _evaluateBranch);
2392
- __privateAdd(this, _branch, void 0);
2393
3817
  __privateAdd(this, _options, void 0);
2394
3818
  const safeOptions = __privateMethod(this, _parseOptions, parseOptions_fn).call(this, options);
2395
3819
  __privateSet(this, _options, safeOptions);
2396
3820
  const pluginOptions = {
2397
- getFetchProps: () => __privateMethod(this, _getFetchProps, getFetchProps_fn).call(this, safeOptions),
3821
+ ...__privateMethod(this, _getFetchProps, getFetchProps_fn).call(this, safeOptions),
2398
3822
  cache: safeOptions.cache,
2399
- trace: safeOptions.trace
3823
+ host: safeOptions.host
2400
3824
  };
2401
3825
  const db = new SchemaPlugin(schemaTables).build(pluginOptions);
2402
3826
  const search = new SearchPlugin(db, schemaTables).build(pluginOptions);
3827
+ const transactions = new TransactionPlugin().build(pluginOptions);
2403
3828
  this.db = db;
2404
3829
  this.search = search;
3830
+ this.transactions = transactions;
2405
3831
  for (const [key, namespace] of Object.entries(plugins ?? {})) {
2406
3832
  if (namespace === void 0)
2407
3833
  continue;
2408
- const result = namespace.build(pluginOptions);
2409
- if (result instanceof Promise) {
2410
- void result.then((namespace2) => {
2411
- this[key] = namespace2;
2412
- });
2413
- } else {
2414
- this[key] = result;
2415
- }
3834
+ this[key] = namespace.build(pluginOptions);
2416
3835
  }
2417
3836
  }
2418
3837
  async getConfig() {
2419
3838
  const databaseURL = __privateGet(this, _options).databaseURL;
2420
- const branch = await __privateGet(this, _options).branch();
3839
+ const branch = __privateGet(this, _options).branch;
2421
3840
  return { databaseURL, branch };
2422
3841
  }
2423
- }, _branch = new WeakMap(), _options = new WeakMap(), _parseOptions = new WeakSet(), parseOptions_fn = function(options) {
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
+ }
2424
3850
  const fetch = getFetchImplementation(options?.fetch);
2425
3851
  const databaseURL = options?.databaseURL || getDatabaseURL();
2426
3852
  const apiKey = options?.apiKey || getAPIKey();
2427
3853
  const cache = options?.cache ?? new SimpleCache({ defaultQueryTTL: 0 });
2428
3854
  const trace = options?.trace ?? defaultTrace;
2429
- const branch = async () => options?.branch !== void 0 ? await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, options.branch) : await getCurrentBranchName({ apiKey, databaseURL, fetchImpl: options?.fetch });
3855
+ const clientName = options?.clientName;
3856
+ const host = options?.host ?? "production";
3857
+ const xataAgentExtra = options?.xataAgentExtra;
2430
3858
  if (!apiKey) {
2431
3859
  throw new Error("Option apiKey is required");
2432
3860
  }
2433
3861
  if (!databaseURL) {
2434
3862
  throw new Error("Option databaseURL is required");
2435
3863
  }
2436
- return { fetch, databaseURL, apiKey, branch, cache, trace };
2437
- }, _getFetchProps = new WeakSet(), getFetchProps_fn = async function({ fetch, apiKey, databaseURL, branch, trace }) {
2438
- const branchValue = await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, branch);
2439
- if (!branchValue)
2440
- throw new Error("Unable to resolve branch value");
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
+ }) {
2441
3907
  return {
2442
- fetchImpl: fetch,
3908
+ fetch,
2443
3909
  apiKey,
2444
3910
  apiUrl: "",
2445
3911
  workspacesApiUrl: (path, params) => {
2446
3912
  const hasBranch = params.dbBranchName ?? params.branch;
2447
- const newPath = path.replace(/^\/db\/[^/]+/, hasBranch !== void 0 ? `:${branchValue}` : "");
3913
+ const newPath = path.replace(/^\/db\/[^/]+/, hasBranch !== void 0 ? `:${branch}` : "");
2448
3914
  return databaseURL + newPath;
2449
3915
  },
2450
- trace
2451
- };
2452
- }, _evaluateBranch = new WeakSet(), evaluateBranch_fn = async function(param) {
2453
- if (__privateGet(this, _branch))
2454
- return __privateGet(this, _branch);
2455
- if (param === void 0)
2456
- return void 0;
2457
- const strategies = Array.isArray(param) ? [...param] : [param];
2458
- const evaluateBranch = async (strategy) => {
2459
- return isBranchStrategyBuilder(strategy) ? await strategy() : strategy;
3916
+ trace,
3917
+ clientID,
3918
+ clientName,
3919
+ xataAgentExtra
2460
3920
  };
2461
- for await (const strategy of strategies) {
2462
- const branch = await evaluateBranch(strategy);
2463
- if (branch) {
2464
- __privateSet(this, _branch, branch);
2465
- return branch;
2466
- }
2467
- }
2468
3921
  }, _a;
2469
3922
  };
2470
3923
  class BaseClient extends buildClient() {
@@ -2538,7 +3991,7 @@ const deserialize = (json) => {
2538
3991
  };
2539
3992
 
2540
3993
  function buildWorkerRunner(config) {
2541
- return function xataWorker(name, _worker) {
3994
+ return function xataWorker(name, worker) {
2542
3995
  return async (...args) => {
2543
3996
  const url = process.env.NODE_ENV === "development" ? `http://localhost:64749/${name}` : `https://dispatcher.xata.workers.dev/${config.workspace}/${config.worker}/${name}`;
2544
3997
  const result = await fetch(url, {
@@ -2559,5 +4012,5 @@ class XataError extends Error {
2559
4012
  }
2560
4013
  }
2561
4014
 
2562
- export { BaseClient, 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, applyBranchSchemaEdit, buildClient, buildWorkerRunner, bulkInsertTableRecords, cancelWorkspaceMemberInvite, compareBranchSchemas, compareBranchWithUserSchema, compareMigrationRequest, contains, createBranch, createDatabase, createMigrationRequest, createTable, createUserAPIKey, createWorkspace, deleteBranch, deleteColumn, deleteDatabase, deleteRecord, deleteTable, deleteUser, deleteUserAPIKey, deleteWorkspace, deserialize, endsWith, equals, executeBranchMigrationPlan, exists, ge, getAPIKey, getBranchDetails, getBranchList, getBranchMetadata, getBranchMigrationHistory, getBranchMigrationPlan, getBranchSchemaHistory, getBranchStats, getColumn, getCurrentBranchDetails, getCurrentBranchName, getDatabaseList, getDatabaseMetadata, getDatabaseURL, getGitBranchesMapping, getMigrationRequest, getMigrationRequestIsMerged, getRecord, getTableColumns, getTableSchema, getUser, getUserAPIKeys, getWorkspace, getWorkspaceMembersList, getWorkspacesList, greaterEquals, greaterThan, greaterThanEquals, gt, gte, includes, includesAll, includesAny, includesNone, insertRecord, insertRecordWithID, inviteWorkspaceMember, is, isCursorPaginationOptions, isIdentifiable, isNot, isXataRecord, le, lessEquals, lessThan, lessThanEquals, listMigrationRequests, listMigrationRequestsCommits, lt, lte, mergeMigrationRequest, notExists, operationsByTag, pattern, previewBranchSchemaEdit, queryTable, removeGitBranchesEntry, removeWorkspaceMember, resendWorkspaceMemberInvite, resolveBranch, searchBranch, searchTable, serialize, setTableSchema, startsWith, summarizeTable, updateBranchMetadata, updateBranchSchema, updateColumn, updateDatabaseMetadata, updateMigrationRequest, updateRecordWithID, updateTable, updateUser, updateWorkspace, updateWorkspaceMemberInvite, updateWorkspaceMemberRole, upsertRecordWithID };
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 };
2563
4016
  //# sourceMappingURL=index.mjs.map