@xata.io/client 0.0.0-alpha.vf603f80 → 0.0.0-alpha.vf672652

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,3 +1,26 @@
1
+ const defaultTrace = async (name, fn, _options) => {
2
+ return await fn({
3
+ name,
4
+ setAttributes: () => {
5
+ return;
6
+ }
7
+ });
8
+ };
9
+ const TraceAttributes = {
10
+ KIND: "xata.trace.kind",
11
+ VERSION: "xata.sdk.version",
12
+ TABLE: "xata.table",
13
+ HTTP_REQUEST_ID: "http.request_id",
14
+ HTTP_STATUS_CODE: "http.status_code",
15
+ HTTP_HOST: "http.host",
16
+ HTTP_SCHEME: "http.scheme",
17
+ HTTP_USER_AGENT: "http.user_agent",
18
+ HTTP_METHOD: "http.method",
19
+ HTTP_URL: "http.url",
20
+ HTTP_ROUTE: "http.route",
21
+ HTTP_TARGET: "http.target"
22
+ };
23
+
1
24
  function notEmpty(value) {
2
25
  return value !== null && value !== void 0;
3
26
  }
@@ -13,6 +36,24 @@ function isDefined(value) {
13
36
  function isString(value) {
14
37
  return isDefined(value) && typeof value === "string";
15
38
  }
39
+ function isStringArray(value) {
40
+ return isDefined(value) && Array.isArray(value) && value.every(isString);
41
+ }
42
+ function isNumber(value) {
43
+ return isDefined(value) && typeof value === "number";
44
+ }
45
+ function parseNumber(value) {
46
+ if (isNumber(value)) {
47
+ return value;
48
+ }
49
+ if (isString(value)) {
50
+ const parsed = Number(value);
51
+ if (!Number.isNaN(parsed)) {
52
+ return parsed;
53
+ }
54
+ }
55
+ return void 0;
56
+ }
16
57
  function toBase64(value) {
17
58
  try {
18
59
  return btoa(value);
@@ -21,10 +62,31 @@ function toBase64(value) {
21
62
  return buf.from(value).toString("base64");
22
63
  }
23
64
  }
65
+ function deepMerge(a, b) {
66
+ const result = { ...a };
67
+ for (const [key, value] of Object.entries(b)) {
68
+ if (isObject(value) && isObject(result[key])) {
69
+ result[key] = deepMerge(result[key], value);
70
+ } else {
71
+ result[key] = value;
72
+ }
73
+ }
74
+ return result;
75
+ }
76
+ function chunk(array, chunkSize) {
77
+ const result = [];
78
+ for (let i = 0; i < array.length; i += chunkSize) {
79
+ result.push(array.slice(i, i + chunkSize));
80
+ }
81
+ return result;
82
+ }
83
+ async function timeout(ms) {
84
+ return new Promise((resolve) => setTimeout(resolve, ms));
85
+ }
24
86
 
25
87
  function getEnvironment() {
26
88
  try {
27
- if (isObject(process) && isObject(process.env)) {
89
+ if (isDefined(process) && isDefined(process.env)) {
28
90
  return {
29
91
  apiKey: process.env.XATA_API_KEY ?? getGlobalApiKey(),
30
92
  databaseURL: process.env.XATA_DATABASE_URL ?? getGlobalDatabaseURL(),
@@ -55,6 +117,25 @@ function getEnvironment() {
55
117
  fallbackBranch: getGlobalFallbackBranch()
56
118
  };
57
119
  }
120
+ function getEnableBrowserVariable() {
121
+ try {
122
+ if (isObject(process) && isObject(process.env) && process.env.XATA_ENABLE_BROWSER !== void 0) {
123
+ return process.env.XATA_ENABLE_BROWSER === "true";
124
+ }
125
+ } catch (err) {
126
+ }
127
+ try {
128
+ if (isObject(Deno) && isObject(Deno.env) && Deno.env.get("XATA_ENABLE_BROWSER") !== void 0) {
129
+ return Deno.env.get("XATA_ENABLE_BROWSER") === "true";
130
+ }
131
+ } catch (err) {
132
+ }
133
+ try {
134
+ return XATA_ENABLE_BROWSER === true || XATA_ENABLE_BROWSER === "true";
135
+ } catch (err) {
136
+ return void 0;
137
+ }
138
+ }
58
139
  function getGlobalApiKey() {
59
140
  try {
60
141
  return XATA_API_KEY;
@@ -89,9 +170,6 @@ async function getGitBranch() {
89
170
  const nodeModule = ["child", "process"].join("_");
90
171
  const execOptions = { encoding: "utf-8", stdio: ["ignore", "pipe", "ignore"] };
91
172
  try {
92
- if (typeof require === "function") {
93
- return require(nodeModule).execSync(fullCmd, execOptions).trim();
94
- }
95
173
  const { execSync } = await import(nodeModule);
96
174
  return execSync(fullCmd, execOptions).toString().trim();
97
175
  } catch (err) {
@@ -114,16 +192,114 @@ function getAPIKey() {
114
192
  }
115
193
  }
116
194
 
195
+ var __accessCheck$8 = (obj, member, msg) => {
196
+ if (!member.has(obj))
197
+ throw TypeError("Cannot " + msg);
198
+ };
199
+ var __privateGet$8 = (obj, member, getter) => {
200
+ __accessCheck$8(obj, member, "read from private field");
201
+ return getter ? getter.call(obj) : member.get(obj);
202
+ };
203
+ var __privateAdd$8 = (obj, member, value) => {
204
+ if (member.has(obj))
205
+ throw TypeError("Cannot add the same private member more than once");
206
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
207
+ };
208
+ var __privateSet$8 = (obj, member, value, setter) => {
209
+ __accessCheck$8(obj, member, "write to private field");
210
+ setter ? setter.call(obj, value) : member.set(obj, value);
211
+ return value;
212
+ };
213
+ var __privateMethod$4 = (obj, member, method) => {
214
+ __accessCheck$8(obj, member, "access private method");
215
+ return method;
216
+ };
217
+ var _fetch, _queue, _concurrency, _enqueue, enqueue_fn;
117
218
  function getFetchImplementation(userFetch) {
118
219
  const globalFetch = typeof fetch !== "undefined" ? fetch : void 0;
119
220
  const fetchImpl = userFetch ?? globalFetch;
120
221
  if (!fetchImpl) {
121
- throw new Error(`The \`fetch\` option passed to the Xata client is resolving to a falsy value and may not be correctly imported.`);
222
+ throw new Error(
223
+ `Couldn't find \`fetch\`. Install a fetch implementation such as \`node-fetch\` and pass it explicitly.`
224
+ );
122
225
  }
123
226
  return fetchImpl;
124
227
  }
228
+ class ApiRequestPool {
229
+ constructor(concurrency = 10) {
230
+ __privateAdd$8(this, _enqueue);
231
+ __privateAdd$8(this, _fetch, void 0);
232
+ __privateAdd$8(this, _queue, void 0);
233
+ __privateAdd$8(this, _concurrency, void 0);
234
+ __privateSet$8(this, _queue, []);
235
+ __privateSet$8(this, _concurrency, concurrency);
236
+ this.running = 0;
237
+ this.started = 0;
238
+ }
239
+ setFetch(fetch2) {
240
+ __privateSet$8(this, _fetch, fetch2);
241
+ }
242
+ getFetch() {
243
+ if (!__privateGet$8(this, _fetch)) {
244
+ throw new Error("Fetch not set");
245
+ }
246
+ return __privateGet$8(this, _fetch);
247
+ }
248
+ request(url, options) {
249
+ const start = new Date();
250
+ const fetch2 = this.getFetch();
251
+ const runRequest = async (stalled = false) => {
252
+ const response = await fetch2(url, options);
253
+ if (response.status === 429) {
254
+ const rateLimitReset = parseNumber(response.headers?.get("x-ratelimit-reset")) ?? 1;
255
+ await timeout(rateLimitReset * 1e3);
256
+ return await runRequest(true);
257
+ }
258
+ if (stalled) {
259
+ const stalledTime = new Date().getTime() - start.getTime();
260
+ console.warn(`A request to Xata hit your workspace limits, was retried and stalled for ${stalledTime}ms`);
261
+ }
262
+ return response;
263
+ };
264
+ return __privateMethod$4(this, _enqueue, enqueue_fn).call(this, async () => {
265
+ return await runRequest();
266
+ });
267
+ }
268
+ }
269
+ _fetch = new WeakMap();
270
+ _queue = new WeakMap();
271
+ _concurrency = new WeakMap();
272
+ _enqueue = new WeakSet();
273
+ enqueue_fn = function(task) {
274
+ const promise = new Promise((resolve) => __privateGet$8(this, _queue).push(resolve)).finally(() => {
275
+ this.started--;
276
+ this.running++;
277
+ }).then(() => task()).finally(() => {
278
+ this.running--;
279
+ const next = __privateGet$8(this, _queue).shift();
280
+ if (next !== void 0) {
281
+ this.started++;
282
+ next();
283
+ }
284
+ });
285
+ if (this.running + this.started < __privateGet$8(this, _concurrency)) {
286
+ const next = __privateGet$8(this, _queue).shift();
287
+ if (next !== void 0) {
288
+ this.started++;
289
+ next();
290
+ }
291
+ }
292
+ return promise;
293
+ };
294
+
295
+ function generateUUID() {
296
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
297
+ const r = Math.random() * 16 | 0, v = c == "x" ? r : r & 3 | 8;
298
+ return v.toString(16);
299
+ });
300
+ }
125
301
 
126
- const VERSION = "0.0.0-alpha.vf603f80";
302
+ const VERSION = "0.0.0-alpha.vf672652";
127
303
 
128
304
  class ErrorWithCause extends Error {
129
305
  constructor(message, options) {
@@ -134,7 +310,7 @@ class FetcherError extends ErrorWithCause {
134
310
  constructor(status, data, requestId) {
135
311
  super(getMessage(data));
136
312
  this.status = status;
137
- this.errors = isBulkError(data) ? data.errors : void 0;
313
+ this.errors = isBulkError(data) ? data.errors : [{ message: getMessage(data), status }];
138
314
  this.requestId = requestId;
139
315
  if (data instanceof Error) {
140
316
  this.stack = data.stack;
@@ -166,6 +342,7 @@ function getMessage(data) {
166
342
  }
167
343
  }
168
344
 
345
+ const pool = new ApiRequestPool();
169
346
  const resolveUrl = (url, queryParams = {}, pathParams = {}) => {
170
347
  const cleanQueryParams = Object.entries(queryParams).reduce((acc, [key, value]) => {
171
348
  if (value === void 0 || value === null)
@@ -174,307 +351,266 @@ const resolveUrl = (url, queryParams = {}, pathParams = {}) => {
174
351
  }, {});
175
352
  const query = new URLSearchParams(cleanQueryParams).toString();
176
353
  const queryString = query.length > 0 ? `?${query}` : "";
177
- return url.replace(/\{\w*\}/g, (key) => pathParams[key.slice(1, -1)]) + queryString;
354
+ const cleanPathParams = Object.entries(pathParams).reduce((acc, [key, value]) => {
355
+ return { ...acc, [key]: encodeURIComponent(String(value ?? "")).replace("%3A", ":") };
356
+ }, {});
357
+ return url.replace(/\{\w*\}/g, (key) => cleanPathParams[key.slice(1, -1)]) + queryString;
178
358
  };
179
359
  function buildBaseUrl({
360
+ endpoint,
180
361
  path,
181
362
  workspacesApiUrl,
182
363
  apiUrl,
183
- pathParams
364
+ pathParams = {}
184
365
  }) {
185
- if (!pathParams?.workspace)
186
- return `${apiUrl}${path}`;
187
- const url = typeof workspacesApiUrl === "string" ? `${workspacesApiUrl}${path}` : workspacesApiUrl(path, pathParams);
188
- return url.replace("{workspaceId}", pathParams.workspace);
366
+ if (endpoint === "dataPlane") {
367
+ const url = isString(workspacesApiUrl) ? `${workspacesApiUrl}${path}` : workspacesApiUrl(path, pathParams);
368
+ const urlWithWorkspace = isString(pathParams.workspace) ? url.replace("{workspaceId}", String(pathParams.workspace)) : url;
369
+ return isString(pathParams.region) ? urlWithWorkspace.replace("{region}", String(pathParams.region)) : urlWithWorkspace;
370
+ }
371
+ return `${apiUrl}${path}`;
189
372
  }
190
373
  function hostHeader(url) {
191
374
  const pattern = /.*:\/\/(?<host>[^/]+).*/;
192
375
  const { groups } = pattern.exec(url) ?? {};
193
376
  return groups?.host ? { Host: groups.host } : {};
194
377
  }
378
+ const defaultClientID = generateUUID();
195
379
  async function fetch$1({
196
380
  url: path,
197
381
  method,
198
382
  body,
199
- headers,
383
+ headers: customHeaders,
200
384
  pathParams,
201
385
  queryParams,
202
386
  fetchImpl,
203
387
  apiKey,
388
+ endpoint,
204
389
  apiUrl,
205
- workspacesApiUrl
390
+ workspacesApiUrl,
391
+ trace,
392
+ signal,
393
+ clientID,
394
+ sessionID,
395
+ clientName,
396
+ fetchOptions = {}
206
397
  }) {
207
- const baseUrl = buildBaseUrl({ path, workspacesApiUrl, pathParams, apiUrl });
208
- const fullUrl = resolveUrl(baseUrl, queryParams, pathParams);
209
- const url = fullUrl.includes("localhost") ? fullUrl.replace(/^[^.]+\./, "http://") : fullUrl;
210
- const response = await fetchImpl(url, {
211
- method: method.toUpperCase(),
212
- body: body ? JSON.stringify(body) : void 0,
213
- headers: {
214
- "Content-Type": "application/json",
215
- "User-Agent": `Xata client-ts/${VERSION}`,
216
- ...headers,
217
- ...hostHeader(fullUrl),
218
- Authorization: `Bearer ${apiKey}`
219
- }
220
- });
221
- if (response.status === 204) {
222
- return {};
223
- }
224
- const requestId = response.headers?.get("x-request-id") ?? void 0;
398
+ pool.setFetch(fetchImpl);
399
+ return await trace(
400
+ `${method.toUpperCase()} ${path}`,
401
+ async ({ name, setAttributes }) => {
402
+ const baseUrl = buildBaseUrl({ endpoint, path, workspacesApiUrl, pathParams, apiUrl });
403
+ const fullUrl = resolveUrl(baseUrl, queryParams, pathParams);
404
+ const url = fullUrl.includes("localhost") ? fullUrl.replace(/^[^.]+\./, "http://") : fullUrl;
405
+ setAttributes({
406
+ [TraceAttributes.HTTP_URL]: url,
407
+ [TraceAttributes.HTTP_TARGET]: resolveUrl(path, queryParams, pathParams)
408
+ });
409
+ const xataAgent = compact([
410
+ ["client", "TS_SDK"],
411
+ ["version", VERSION],
412
+ isDefined(clientName) ? ["service", clientName] : void 0
413
+ ]).map(([key, value]) => `${key}=${value}`).join("; ");
414
+ const headers = {
415
+ "Accept-Encoding": "identity",
416
+ "Content-Type": "application/json",
417
+ "X-Xata-Client-ID": clientID ?? defaultClientID,
418
+ "X-Xata-Session-ID": sessionID ?? generateUUID(),
419
+ "X-Xata-Agent": xataAgent,
420
+ ...customHeaders,
421
+ ...hostHeader(fullUrl),
422
+ Authorization: `Bearer ${apiKey}`
423
+ };
424
+ const response = await pool.request(url, {
425
+ ...fetchOptions,
426
+ method: method.toUpperCase(),
427
+ body: body ? JSON.stringify(body) : void 0,
428
+ headers,
429
+ signal
430
+ });
431
+ const { host, protocol } = parseUrl(response.url);
432
+ const requestId = response.headers?.get("x-request-id") ?? void 0;
433
+ setAttributes({
434
+ [TraceAttributes.KIND]: "http",
435
+ [TraceAttributes.HTTP_REQUEST_ID]: requestId,
436
+ [TraceAttributes.HTTP_STATUS_CODE]: response.status,
437
+ [TraceAttributes.HTTP_HOST]: host,
438
+ [TraceAttributes.HTTP_SCHEME]: protocol?.replace(":", "")
439
+ });
440
+ if (response.status === 204) {
441
+ return {};
442
+ }
443
+ if (response.status === 429) {
444
+ throw new FetcherError(response.status, "Rate limit exceeded", requestId);
445
+ }
446
+ try {
447
+ const jsonResponse = await response.json();
448
+ if (response.ok) {
449
+ return jsonResponse;
450
+ }
451
+ throw new FetcherError(response.status, jsonResponse, requestId);
452
+ } catch (error) {
453
+ throw new FetcherError(response.status, error, requestId);
454
+ }
455
+ },
456
+ { [TraceAttributes.HTTP_METHOD]: method.toUpperCase(), [TraceAttributes.HTTP_ROUTE]: path }
457
+ );
458
+ }
459
+ function parseUrl(url) {
225
460
  try {
226
- const jsonResponse = await response.json();
227
- if (response.ok) {
228
- return jsonResponse;
229
- }
230
- throw new FetcherError(response.status, jsonResponse, requestId);
461
+ const { host, protocol } = new URL(url);
462
+ return { host, protocol };
231
463
  } catch (error) {
232
- throw new FetcherError(response.status, error, requestId);
464
+ return {};
233
465
  }
234
466
  }
235
467
 
236
- const getUser = (variables) => fetch$1({ url: "/user", method: "get", ...variables });
237
- const updateUser = (variables) => fetch$1({ url: "/user", method: "put", ...variables });
238
- const deleteUser = (variables) => fetch$1({ url: "/user", method: "delete", ...variables });
239
- const getUserAPIKeys = (variables) => fetch$1({
240
- url: "/user/keys",
241
- method: "get",
242
- ...variables
243
- });
244
- const createUserAPIKey = (variables) => fetch$1({
245
- url: "/user/keys/{keyName}",
246
- method: "post",
247
- ...variables
248
- });
249
- const deleteUserAPIKey = (variables) => fetch$1({
250
- url: "/user/keys/{keyName}",
251
- method: "delete",
252
- ...variables
253
- });
254
- const createWorkspace = (variables) => fetch$1({
255
- url: "/workspaces",
256
- method: "post",
257
- ...variables
258
- });
259
- const getWorkspacesList = (variables) => fetch$1({
260
- url: "/workspaces",
261
- method: "get",
262
- ...variables
263
- });
264
- const getWorkspace = (variables) => fetch$1({
265
- url: "/workspaces/{workspaceId}",
266
- method: "get",
267
- ...variables
268
- });
269
- const updateWorkspace = (variables) => fetch$1({
270
- url: "/workspaces/{workspaceId}",
271
- method: "put",
272
- ...variables
273
- });
274
- const deleteWorkspace = (variables) => fetch$1({
275
- url: "/workspaces/{workspaceId}",
276
- method: "delete",
277
- ...variables
278
- });
279
- const getWorkspaceMembersList = (variables) => fetch$1({
280
- url: "/workspaces/{workspaceId}/members",
281
- method: "get",
282
- ...variables
283
- });
284
- const updateWorkspaceMemberRole = (variables) => fetch$1({ url: "/workspaces/{workspaceId}/members/{userId}", method: "put", ...variables });
285
- const removeWorkspaceMember = (variables) => fetch$1({
286
- url: "/workspaces/{workspaceId}/members/{userId}",
287
- method: "delete",
288
- ...variables
289
- });
290
- const inviteWorkspaceMember = (variables) => fetch$1({ url: "/workspaces/{workspaceId}/invites", method: "post", ...variables });
291
- const updateWorkspaceMemberInvite = (variables) => fetch$1({ url: "/workspaces/{workspaceId}/invites/{inviteId}", method: "patch", ...variables });
292
- const cancelWorkspaceMemberInvite = (variables) => fetch$1({
293
- url: "/workspaces/{workspaceId}/invites/{inviteId}",
294
- method: "delete",
295
- ...variables
296
- });
297
- const resendWorkspaceMemberInvite = (variables) => fetch$1({
298
- url: "/workspaces/{workspaceId}/invites/{inviteId}/resend",
299
- method: "post",
300
- ...variables
301
- });
302
- const acceptWorkspaceMemberInvite = (variables) => fetch$1({
303
- url: "/workspaces/{workspaceId}/invites/{inviteKey}/accept",
304
- method: "post",
305
- ...variables
306
- });
307
- const getDatabaseList = (variables) => fetch$1({
308
- url: "/dbs",
309
- method: "get",
310
- ...variables
311
- });
312
- const getBranchList = (variables) => fetch$1({
313
- url: "/dbs/{dbName}",
314
- method: "get",
315
- ...variables
316
- });
317
- const createDatabase = (variables) => fetch$1({
318
- url: "/dbs/{dbName}",
319
- method: "put",
320
- ...variables
321
- });
322
- const deleteDatabase = (variables) => fetch$1({
468
+ const dataPlaneFetch = async (options) => fetch$1({ ...options, endpoint: "dataPlane" });
469
+
470
+ const getBranchList = (variables, signal) => dataPlaneFetch({
323
471
  url: "/dbs/{dbName}",
324
- method: "delete",
325
- ...variables
326
- });
327
- const getGitBranchesMapping = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "get", ...variables });
328
- const addGitBranchesEntry = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "post", ...variables });
329
- const removeGitBranchesEntry = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "delete", ...variables });
330
- const resolveBranch = (variables) => fetch$1({
331
- url: "/dbs/{dbName}/resolveBranch",
332
472
  method: "get",
333
- ...variables
473
+ ...variables,
474
+ signal
334
475
  });
335
- const getBranchDetails = (variables) => fetch$1({
476
+ const getBranchDetails = (variables, signal) => dataPlaneFetch({
336
477
  url: "/db/{dbBranchName}",
337
478
  method: "get",
338
- ...variables
479
+ ...variables,
480
+ signal
339
481
  });
340
- const createBranch = (variables) => fetch$1({
341
- url: "/db/{dbBranchName}",
342
- method: "put",
343
- ...variables
344
- });
345
- const deleteBranch = (variables) => fetch$1({
482
+ const createBranch = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}", method: "put", ...variables, signal });
483
+ const deleteBranch = (variables, signal) => dataPlaneFetch({
346
484
  url: "/db/{dbBranchName}",
347
485
  method: "delete",
348
- ...variables
486
+ ...variables,
487
+ signal
349
488
  });
350
- const updateBranchMetadata = (variables) => fetch$1({
489
+ const updateBranchMetadata = (variables, signal) => dataPlaneFetch({
351
490
  url: "/db/{dbBranchName}/metadata",
352
491
  method: "put",
353
- ...variables
492
+ ...variables,
493
+ signal
354
494
  });
355
- const getBranchMetadata = (variables) => fetch$1({
495
+ const getBranchMetadata = (variables, signal) => dataPlaneFetch({
356
496
  url: "/db/{dbBranchName}/metadata",
357
497
  method: "get",
358
- ...variables
498
+ ...variables,
499
+ signal
359
500
  });
360
- const getBranchMigrationHistory = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations", method: "get", ...variables });
361
- const executeBranchMigrationPlan = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations/execute", method: "post", ...variables });
362
- const getBranchMigrationPlan = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations/plan", method: "post", ...variables });
363
- const getBranchStats = (variables) => fetch$1({
501
+ const getBranchStats = (variables, signal) => dataPlaneFetch({
364
502
  url: "/db/{dbBranchName}/stats",
365
503
  method: "get",
366
- ...variables
504
+ ...variables,
505
+ signal
506
+ });
507
+ const getGitBranchesMapping = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/gitBranches", method: "get", ...variables, signal });
508
+ const addGitBranchesEntry = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/gitBranches", method: "post", ...variables, signal });
509
+ const removeGitBranchesEntry = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/gitBranches", method: "delete", ...variables, signal });
510
+ const resolveBranch = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/resolveBranch", method: "get", ...variables, signal });
511
+ const getBranchMigrationHistory = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/migrations", method: "get", ...variables, signal });
512
+ const getBranchMigrationPlan = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/migrations/plan", method: "post", ...variables, signal });
513
+ const executeBranchMigrationPlan = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/migrations/execute", method: "post", ...variables, signal });
514
+ const branchTransaction = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/transaction", method: "post", ...variables, signal });
515
+ const queryMigrationRequests = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations/query", method: "post", ...variables, signal });
516
+ const createMigrationRequest = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations", method: "post", ...variables, signal });
517
+ const getMigrationRequest = (variables, signal) => dataPlaneFetch({
518
+ url: "/dbs/{dbName}/migrations/{mrNumber}",
519
+ method: "get",
520
+ ...variables,
521
+ signal
522
+ });
523
+ const updateMigrationRequest = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations/{mrNumber}", method: "patch", ...variables, signal });
524
+ const listMigrationRequestsCommits = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations/{mrNumber}/commits", method: "post", ...variables, signal });
525
+ const compareMigrationRequest = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations/{mrNumber}/compare", method: "post", ...variables, signal });
526
+ const getMigrationRequestIsMerged = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations/{mrNumber}/merge", method: "get", ...variables, signal });
527
+ const mergeMigrationRequest = (variables, signal) => dataPlaneFetch({
528
+ url: "/dbs/{dbName}/migrations/{mrNumber}/merge",
529
+ method: "post",
530
+ ...variables,
531
+ signal
367
532
  });
368
- const createTable = (variables) => fetch$1({
533
+ const getBranchSchemaHistory = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/history", method: "post", ...variables, signal });
534
+ const compareBranchWithUserSchema = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/compare", method: "post", ...variables, signal });
535
+ const compareBranchSchemas = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/compare/{branchName}", method: "post", ...variables, signal });
536
+ const updateBranchSchema = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/update", method: "post", ...variables, signal });
537
+ const previewBranchSchemaEdit = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/preview", method: "post", ...variables, signal });
538
+ const applyBranchSchemaEdit = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/apply", method: "post", ...variables, signal });
539
+ const createTable = (variables, signal) => dataPlaneFetch({
369
540
  url: "/db/{dbBranchName}/tables/{tableName}",
370
541
  method: "put",
371
- ...variables
542
+ ...variables,
543
+ signal
372
544
  });
373
- const deleteTable = (variables) => fetch$1({
545
+ const deleteTable = (variables, signal) => dataPlaneFetch({
374
546
  url: "/db/{dbBranchName}/tables/{tableName}",
375
547
  method: "delete",
376
- ...variables
548
+ ...variables,
549
+ signal
377
550
  });
378
- const updateTable = (variables) => fetch$1({
379
- url: "/db/{dbBranchName}/tables/{tableName}",
380
- method: "patch",
381
- ...variables
382
- });
383
- const getTableSchema = (variables) => fetch$1({
551
+ const updateTable = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}", method: "patch", ...variables, signal });
552
+ const getTableSchema = (variables, signal) => dataPlaneFetch({
384
553
  url: "/db/{dbBranchName}/tables/{tableName}/schema",
385
554
  method: "get",
386
- ...variables
555
+ ...variables,
556
+ signal
387
557
  });
388
- const setTableSchema = (variables) => fetch$1({
389
- url: "/db/{dbBranchName}/tables/{tableName}/schema",
390
- method: "put",
391
- ...variables
392
- });
393
- const getTableColumns = (variables) => fetch$1({
558
+ const setTableSchema = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/schema", method: "put", ...variables, signal });
559
+ const getTableColumns = (variables, signal) => dataPlaneFetch({
394
560
  url: "/db/{dbBranchName}/tables/{tableName}/columns",
395
561
  method: "get",
396
- ...variables
562
+ ...variables,
563
+ signal
397
564
  });
398
- const addTableColumn = (variables) => fetch$1({
399
- url: "/db/{dbBranchName}/tables/{tableName}/columns",
400
- method: "post",
401
- ...variables
402
- });
403
- const getColumn = (variables) => fetch$1({
565
+ const addTableColumn = (variables, signal) => dataPlaneFetch(
566
+ { url: "/db/{dbBranchName}/tables/{tableName}/columns", method: "post", ...variables, signal }
567
+ );
568
+ const getColumn = (variables, signal) => dataPlaneFetch({
404
569
  url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}",
405
570
  method: "get",
406
- ...variables
407
- });
408
- const deleteColumn = (variables) => fetch$1({
409
- url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}",
410
- method: "delete",
411
- ...variables
571
+ ...variables,
572
+ signal
412
573
  });
413
- const updateColumn = (variables) => fetch$1({
574
+ const updateColumn = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}", method: "patch", ...variables, signal });
575
+ const deleteColumn = (variables, signal) => dataPlaneFetch({
414
576
  url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}",
415
- method: "patch",
416
- ...variables
417
- });
418
- const insertRecord = (variables) => fetch$1({
419
- url: "/db/{dbBranchName}/tables/{tableName}/data",
420
- method: "post",
421
- ...variables
422
- });
423
- const insertRecordWithID = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "put", ...variables });
424
- const updateRecordWithID = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "patch", ...variables });
425
- const upsertRecordWithID = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "post", ...variables });
426
- const deleteRecord = (variables) => fetch$1({
427
- url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}",
428
577
  method: "delete",
429
- ...variables
578
+ ...variables,
579
+ signal
430
580
  });
431
- const getRecord = (variables) => fetch$1({
581
+ const insertRecord = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/data", method: "post", ...variables, signal });
582
+ const getRecord = (variables, signal) => dataPlaneFetch({
432
583
  url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}",
433
584
  method: "get",
434
- ...variables
585
+ ...variables,
586
+ signal
435
587
  });
436
- const bulkInsertTableRecords = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/bulk", method: "post", ...variables });
437
- const queryTable = (variables) => fetch$1({
588
+ const insertRecordWithID = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "put", ...variables, signal });
589
+ const updateRecordWithID = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "patch", ...variables, signal });
590
+ const upsertRecordWithID = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "post", ...variables, signal });
591
+ const deleteRecord = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "delete", ...variables, signal });
592
+ const bulkInsertTableRecords = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/bulk", method: "post", ...variables, signal });
593
+ const queryTable = (variables, signal) => dataPlaneFetch({
438
594
  url: "/db/{dbBranchName}/tables/{tableName}/query",
439
595
  method: "post",
440
- ...variables
596
+ ...variables,
597
+ signal
441
598
  });
442
- const searchTable = (variables) => fetch$1({
443
- url: "/db/{dbBranchName}/tables/{tableName}/search",
599
+ const searchBranch = (variables, signal) => dataPlaneFetch({
600
+ url: "/db/{dbBranchName}/search",
444
601
  method: "post",
445
- ...variables
602
+ ...variables,
603
+ signal
446
604
  });
447
- const searchBranch = (variables) => fetch$1({
448
- url: "/db/{dbBranchName}/search",
605
+ const searchTable = (variables, signal) => dataPlaneFetch({
606
+ url: "/db/{dbBranchName}/tables/{tableName}/search",
449
607
  method: "post",
450
- ...variables
608
+ ...variables,
609
+ signal
451
610
  });
452
- const operationsByTag = {
453
- users: { getUser, updateUser, deleteUser, getUserAPIKeys, createUserAPIKey, deleteUserAPIKey },
454
- workspaces: {
455
- createWorkspace,
456
- getWorkspacesList,
457
- getWorkspace,
458
- updateWorkspace,
459
- deleteWorkspace,
460
- getWorkspaceMembersList,
461
- updateWorkspaceMemberRole,
462
- removeWorkspaceMember,
463
- inviteWorkspaceMember,
464
- updateWorkspaceMemberInvite,
465
- cancelWorkspaceMemberInvite,
466
- resendWorkspaceMemberInvite,
467
- acceptWorkspaceMemberInvite
468
- },
469
- database: {
470
- getDatabaseList,
471
- createDatabase,
472
- deleteDatabase,
473
- getGitBranchesMapping,
474
- addGitBranchesEntry,
475
- removeGitBranchesEntry,
476
- resolveBranch
477
- },
611
+ const summarizeTable = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/summarize", method: "post", ...variables, signal });
612
+ const aggregateTable = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/aggregate", method: "post", ...variables, signal });
613
+ const operationsByTag$2 = {
478
614
  branch: {
479
615
  getBranchList,
480
616
  getBranchDetails,
@@ -482,10 +618,42 @@ const operationsByTag = {
482
618
  deleteBranch,
483
619
  updateBranchMetadata,
484
620
  getBranchMetadata,
621
+ getBranchStats,
622
+ getGitBranchesMapping,
623
+ addGitBranchesEntry,
624
+ removeGitBranchesEntry,
625
+ resolveBranch
626
+ },
627
+ migrations: {
485
628
  getBranchMigrationHistory,
486
- executeBranchMigrationPlan,
487
629
  getBranchMigrationPlan,
488
- getBranchStats
630
+ executeBranchMigrationPlan,
631
+ getBranchSchemaHistory,
632
+ compareBranchWithUserSchema,
633
+ compareBranchSchemas,
634
+ updateBranchSchema,
635
+ previewBranchSchemaEdit,
636
+ applyBranchSchemaEdit
637
+ },
638
+ records: {
639
+ branchTransaction,
640
+ insertRecord,
641
+ getRecord,
642
+ insertRecordWithID,
643
+ updateRecordWithID,
644
+ upsertRecordWithID,
645
+ deleteRecord,
646
+ bulkInsertTableRecords
647
+ },
648
+ migrationRequests: {
649
+ queryMigrationRequests,
650
+ createMigrationRequest,
651
+ getMigrationRequest,
652
+ updateMigrationRequest,
653
+ listMigrationRequestsCommits,
654
+ compareMigrationRequest,
655
+ getMigrationRequestIsMerged,
656
+ mergeMigrationRequest
489
657
  },
490
658
  table: {
491
659
  createTable,
@@ -496,27 +664,150 @@ const operationsByTag = {
496
664
  getTableColumns,
497
665
  addTableColumn,
498
666
  getColumn,
499
- deleteColumn,
500
- updateColumn
667
+ updateColumn,
668
+ deleteColumn
501
669
  },
502
- records: {
503
- insertRecord,
504
- insertRecordWithID,
505
- updateRecordWithID,
506
- upsertRecordWithID,
507
- deleteRecord,
508
- getRecord,
509
- bulkInsertTableRecords,
510
- queryTable,
511
- searchTable,
512
- searchBranch
670
+ searchAndFilter: { queryTable, searchBranch, searchTable, summarizeTable, aggregateTable }
671
+ };
672
+
673
+ const controlPlaneFetch = async (options) => fetch$1({ ...options, endpoint: "controlPlane" });
674
+
675
+ const getUser = (variables, signal) => controlPlaneFetch({
676
+ url: "/user",
677
+ method: "get",
678
+ ...variables,
679
+ signal
680
+ });
681
+ const updateUser = (variables, signal) => controlPlaneFetch({
682
+ url: "/user",
683
+ method: "put",
684
+ ...variables,
685
+ signal
686
+ });
687
+ const deleteUser = (variables, signal) => controlPlaneFetch({
688
+ url: "/user",
689
+ method: "delete",
690
+ ...variables,
691
+ signal
692
+ });
693
+ const getUserAPIKeys = (variables, signal) => controlPlaneFetch({
694
+ url: "/user/keys",
695
+ method: "get",
696
+ ...variables,
697
+ signal
698
+ });
699
+ const createUserAPIKey = (variables, signal) => controlPlaneFetch({
700
+ url: "/user/keys/{keyName}",
701
+ method: "post",
702
+ ...variables,
703
+ signal
704
+ });
705
+ const deleteUserAPIKey = (variables, signal) => controlPlaneFetch({
706
+ url: "/user/keys/{keyName}",
707
+ method: "delete",
708
+ ...variables,
709
+ signal
710
+ });
711
+ const getWorkspacesList = (variables, signal) => controlPlaneFetch({
712
+ url: "/workspaces",
713
+ method: "get",
714
+ ...variables,
715
+ signal
716
+ });
717
+ const createWorkspace = (variables, signal) => controlPlaneFetch({
718
+ url: "/workspaces",
719
+ method: "post",
720
+ ...variables,
721
+ signal
722
+ });
723
+ const getWorkspace = (variables, signal) => controlPlaneFetch({
724
+ url: "/workspaces/{workspaceId}",
725
+ method: "get",
726
+ ...variables,
727
+ signal
728
+ });
729
+ const updateWorkspace = (variables, signal) => controlPlaneFetch({
730
+ url: "/workspaces/{workspaceId}",
731
+ method: "put",
732
+ ...variables,
733
+ signal
734
+ });
735
+ const deleteWorkspace = (variables, signal) => controlPlaneFetch({
736
+ url: "/workspaces/{workspaceId}",
737
+ method: "delete",
738
+ ...variables,
739
+ signal
740
+ });
741
+ const getWorkspaceMembersList = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/members", method: "get", ...variables, signal });
742
+ const updateWorkspaceMemberRole = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/members/{userId}", method: "put", ...variables, signal });
743
+ const removeWorkspaceMember = (variables, signal) => controlPlaneFetch({
744
+ url: "/workspaces/{workspaceId}/members/{userId}",
745
+ method: "delete",
746
+ ...variables,
747
+ signal
748
+ });
749
+ const inviteWorkspaceMember = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/invites", method: "post", ...variables, signal });
750
+ const updateWorkspaceMemberInvite = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/invites/{inviteId}", method: "patch", ...variables, signal });
751
+ const cancelWorkspaceMemberInvite = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/invites/{inviteId}", method: "delete", ...variables, signal });
752
+ const acceptWorkspaceMemberInvite = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/invites/{inviteKey}/accept", method: "post", ...variables, signal });
753
+ const resendWorkspaceMemberInvite = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/invites/{inviteId}/resend", method: "post", ...variables, signal });
754
+ const getDatabaseList = (variables, signal) => controlPlaneFetch({
755
+ url: "/workspaces/{workspaceId}/dbs",
756
+ method: "get",
757
+ ...variables,
758
+ signal
759
+ });
760
+ const createDatabase = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/dbs/{dbName}", method: "put", ...variables, signal });
761
+ const deleteDatabase = (variables, signal) => controlPlaneFetch({
762
+ url: "/workspaces/{workspaceId}/dbs/{dbName}",
763
+ method: "delete",
764
+ ...variables,
765
+ signal
766
+ });
767
+ const getDatabaseMetadata = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/dbs/{dbName}", method: "get", ...variables, signal });
768
+ const updateDatabaseMetadata = (variables, signal) => controlPlaneFetch({ url: "/workspaces/{workspaceId}/dbs/{dbName}", method: "patch", ...variables, signal });
769
+ const listRegions = (variables, signal) => controlPlaneFetch({
770
+ url: "/workspaces/{workspaceId}/regions",
771
+ method: "get",
772
+ ...variables,
773
+ signal
774
+ });
775
+ const operationsByTag$1 = {
776
+ users: { getUser, updateUser, deleteUser },
777
+ authentication: { getUserAPIKeys, createUserAPIKey, deleteUserAPIKey },
778
+ workspaces: {
779
+ getWorkspacesList,
780
+ createWorkspace,
781
+ getWorkspace,
782
+ updateWorkspace,
783
+ deleteWorkspace,
784
+ getWorkspaceMembersList,
785
+ updateWorkspaceMemberRole,
786
+ removeWorkspaceMember
787
+ },
788
+ invites: {
789
+ inviteWorkspaceMember,
790
+ updateWorkspaceMemberInvite,
791
+ cancelWorkspaceMemberInvite,
792
+ acceptWorkspaceMemberInvite,
793
+ resendWorkspaceMemberInvite
794
+ },
795
+ databases: {
796
+ getDatabaseList,
797
+ createDatabase,
798
+ deleteDatabase,
799
+ getDatabaseMetadata,
800
+ updateDatabaseMetadata,
801
+ listRegions
513
802
  }
514
803
  };
515
804
 
805
+ const operationsByTag = deepMerge(operationsByTag$2, operationsByTag$1);
806
+
516
807
  function getHostUrl(provider, type) {
517
- if (isValidAlias(provider)) {
808
+ if (isHostProviderAlias(provider)) {
518
809
  return providers[provider][type];
519
- } else if (isValidBuilder(provider)) {
810
+ } else if (isHostProviderBuilder(provider)) {
520
811
  return provider[type];
521
812
  }
522
813
  throw new Error("Invalid API provider");
@@ -524,19 +815,38 @@ function getHostUrl(provider, type) {
524
815
  const providers = {
525
816
  production: {
526
817
  main: "https://api.xata.io",
527
- workspaces: "https://{workspaceId}.xata.sh"
818
+ workspaces: "https://{workspaceId}.{region}.xata.sh"
528
819
  },
529
820
  staging: {
530
821
  main: "https://staging.xatabase.co",
531
- workspaces: "https://{workspaceId}.staging.xatabase.co"
822
+ workspaces: "https://{workspaceId}.staging.{region}.xatabase.co"
532
823
  }
533
824
  };
534
- function isValidAlias(alias) {
825
+ function isHostProviderAlias(alias) {
535
826
  return isString(alias) && Object.keys(providers).includes(alias);
536
827
  }
537
- function isValidBuilder(builder) {
828
+ function isHostProviderBuilder(builder) {
538
829
  return isObject(builder) && isString(builder.main) && isString(builder.workspaces);
539
830
  }
831
+ function parseProviderString(provider = "production") {
832
+ if (isHostProviderAlias(provider)) {
833
+ return provider;
834
+ }
835
+ const [main, workspaces] = provider.split(",");
836
+ if (!main || !workspaces)
837
+ return null;
838
+ return { main, workspaces };
839
+ }
840
+ function parseWorkspacesUrlParts(url) {
841
+ if (!isString(url))
842
+ return null;
843
+ const regex = /(?:https:\/\/)?([^.]+)(?:\.([^.]+))\.xata\.sh.*/;
844
+ const regexStaging = /(?:https:\/\/)?([^.]+)\.staging(?:\.([^.]+))\.xatabase\.co.*/;
845
+ const match = url.match(regex) || url.match(regexStaging);
846
+ if (!match)
847
+ return null;
848
+ return { workspace: match[1], region: match[2] };
849
+ }
540
850
 
541
851
  var __accessCheck$7 = (obj, member, msg) => {
542
852
  if (!member.has(obj))
@@ -562,7 +872,9 @@ class XataApiClient {
562
872
  __privateAdd$7(this, _extraProps, void 0);
563
873
  __privateAdd$7(this, _namespaces, {});
564
874
  const provider = options.host ?? "production";
565
- const apiKey = options?.apiKey ?? getAPIKey();
875
+ const apiKey = options.apiKey ?? getAPIKey();
876
+ const trace = options.trace ?? defaultTrace;
877
+ const clientID = generateUUID();
566
878
  if (!apiKey) {
567
879
  throw new Error("Could not resolve a valid apiKey");
568
880
  }
@@ -570,7 +882,10 @@ class XataApiClient {
570
882
  apiUrl: getHostUrl(provider, "main"),
571
883
  workspacesApiUrl: getHostUrl(provider, "workspaces"),
572
884
  fetchImpl: getFetchImplementation(options.fetch),
573
- apiKey
885
+ apiKey,
886
+ trace,
887
+ clientName: options.clientName,
888
+ clientID
574
889
  });
575
890
  }
576
891
  get user() {
@@ -578,21 +893,41 @@ class XataApiClient {
578
893
  __privateGet$7(this, _namespaces).user = new UserApi(__privateGet$7(this, _extraProps));
579
894
  return __privateGet$7(this, _namespaces).user;
580
895
  }
896
+ get authentication() {
897
+ if (!__privateGet$7(this, _namespaces).authentication)
898
+ __privateGet$7(this, _namespaces).authentication = new AuthenticationApi(__privateGet$7(this, _extraProps));
899
+ return __privateGet$7(this, _namespaces).authentication;
900
+ }
581
901
  get workspaces() {
582
902
  if (!__privateGet$7(this, _namespaces).workspaces)
583
903
  __privateGet$7(this, _namespaces).workspaces = new WorkspaceApi(__privateGet$7(this, _extraProps));
584
904
  return __privateGet$7(this, _namespaces).workspaces;
585
905
  }
586
- get databases() {
587
- if (!__privateGet$7(this, _namespaces).databases)
588
- __privateGet$7(this, _namespaces).databases = new DatabaseApi(__privateGet$7(this, _extraProps));
589
- return __privateGet$7(this, _namespaces).databases;
906
+ get invites() {
907
+ if (!__privateGet$7(this, _namespaces).invites)
908
+ __privateGet$7(this, _namespaces).invites = new InvitesApi(__privateGet$7(this, _extraProps));
909
+ return __privateGet$7(this, _namespaces).invites;
910
+ }
911
+ get database() {
912
+ if (!__privateGet$7(this, _namespaces).database)
913
+ __privateGet$7(this, _namespaces).database = new DatabaseApi(__privateGet$7(this, _extraProps));
914
+ return __privateGet$7(this, _namespaces).database;
590
915
  }
591
916
  get branches() {
592
917
  if (!__privateGet$7(this, _namespaces).branches)
593
918
  __privateGet$7(this, _namespaces).branches = new BranchApi(__privateGet$7(this, _extraProps));
594
919
  return __privateGet$7(this, _namespaces).branches;
595
920
  }
921
+ get migrations() {
922
+ if (!__privateGet$7(this, _namespaces).migrations)
923
+ __privateGet$7(this, _namespaces).migrations = new MigrationsApi(__privateGet$7(this, _extraProps));
924
+ return __privateGet$7(this, _namespaces).migrations;
925
+ }
926
+ get migrationRequests() {
927
+ if (!__privateGet$7(this, _namespaces).migrationRequests)
928
+ __privateGet$7(this, _namespaces).migrationRequests = new MigrationRequestsApi(__privateGet$7(this, _extraProps));
929
+ return __privateGet$7(this, _namespaces).migrationRequests;
930
+ }
596
931
  get tables() {
597
932
  if (!__privateGet$7(this, _namespaces).tables)
598
933
  __privateGet$7(this, _namespaces).tables = new TableApi(__privateGet$7(this, _extraProps));
@@ -603,6 +938,11 @@ class XataApiClient {
603
938
  __privateGet$7(this, _namespaces).records = new RecordsApi(__privateGet$7(this, _extraProps));
604
939
  return __privateGet$7(this, _namespaces).records;
605
940
  }
941
+ get searchAndFilter() {
942
+ if (!__privateGet$7(this, _namespaces).searchAndFilter)
943
+ __privateGet$7(this, _namespaces).searchAndFilter = new SearchAndFilterApi(__privateGet$7(this, _extraProps));
944
+ return __privateGet$7(this, _namespaces).searchAndFilter;
945
+ }
606
946
  }
607
947
  _extraProps = new WeakMap();
608
948
  _namespaces = new WeakMap();
@@ -613,24 +953,29 @@ class UserApi {
613
953
  getUser() {
614
954
  return operationsByTag.users.getUser({ ...this.extraProps });
615
955
  }
616
- updateUser(user) {
956
+ updateUser({ user }) {
617
957
  return operationsByTag.users.updateUser({ body: user, ...this.extraProps });
618
958
  }
619
959
  deleteUser() {
620
960
  return operationsByTag.users.deleteUser({ ...this.extraProps });
621
961
  }
962
+ }
963
+ class AuthenticationApi {
964
+ constructor(extraProps) {
965
+ this.extraProps = extraProps;
966
+ }
622
967
  getUserAPIKeys() {
623
- return operationsByTag.users.getUserAPIKeys({ ...this.extraProps });
968
+ return operationsByTag.authentication.getUserAPIKeys({ ...this.extraProps });
624
969
  }
625
- createUserAPIKey(keyName) {
626
- return operationsByTag.users.createUserAPIKey({
627
- pathParams: { keyName },
970
+ createUserAPIKey({ name }) {
971
+ return operationsByTag.authentication.createUserAPIKey({
972
+ pathParams: { keyName: name },
628
973
  ...this.extraProps
629
974
  });
630
975
  }
631
- deleteUserAPIKey(keyName) {
632
- return operationsByTag.users.deleteUserAPIKey({
633
- pathParams: { keyName },
976
+ deleteUserAPIKey({ name }) {
977
+ return operationsByTag.authentication.deleteUserAPIKey({
978
+ pathParams: { keyName: name },
634
979
  ...this.extraProps
635
980
  });
636
981
  }
@@ -639,349 +984,897 @@ class WorkspaceApi {
639
984
  constructor(extraProps) {
640
985
  this.extraProps = extraProps;
641
986
  }
642
- createWorkspace(workspaceMeta) {
987
+ getWorkspacesList() {
988
+ return operationsByTag.workspaces.getWorkspacesList({ ...this.extraProps });
989
+ }
990
+ createWorkspace({ data }) {
643
991
  return operationsByTag.workspaces.createWorkspace({
644
- body: workspaceMeta,
992
+ body: data,
645
993
  ...this.extraProps
646
994
  });
647
995
  }
648
- getWorkspacesList() {
649
- return operationsByTag.workspaces.getWorkspacesList({ ...this.extraProps });
650
- }
651
- getWorkspace(workspaceId) {
996
+ getWorkspace({ workspace }) {
652
997
  return operationsByTag.workspaces.getWorkspace({
653
- pathParams: { workspaceId },
998
+ pathParams: { workspaceId: workspace },
654
999
  ...this.extraProps
655
1000
  });
656
1001
  }
657
- updateWorkspace(workspaceId, workspaceMeta) {
1002
+ updateWorkspace({
1003
+ workspace,
1004
+ update
1005
+ }) {
658
1006
  return operationsByTag.workspaces.updateWorkspace({
659
- pathParams: { workspaceId },
660
- body: workspaceMeta,
1007
+ pathParams: { workspaceId: workspace },
1008
+ body: update,
661
1009
  ...this.extraProps
662
1010
  });
663
1011
  }
664
- deleteWorkspace(workspaceId) {
1012
+ deleteWorkspace({ workspace }) {
665
1013
  return operationsByTag.workspaces.deleteWorkspace({
666
- pathParams: { workspaceId },
1014
+ pathParams: { workspaceId: workspace },
667
1015
  ...this.extraProps
668
1016
  });
669
1017
  }
670
- getWorkspaceMembersList(workspaceId) {
1018
+ getWorkspaceMembersList({ workspace }) {
671
1019
  return operationsByTag.workspaces.getWorkspaceMembersList({
672
- pathParams: { workspaceId },
1020
+ pathParams: { workspaceId: workspace },
673
1021
  ...this.extraProps
674
1022
  });
675
1023
  }
676
- updateWorkspaceMemberRole(workspaceId, userId, role) {
1024
+ updateWorkspaceMemberRole({
1025
+ workspace,
1026
+ user,
1027
+ role
1028
+ }) {
677
1029
  return operationsByTag.workspaces.updateWorkspaceMemberRole({
678
- pathParams: { workspaceId, userId },
1030
+ pathParams: { workspaceId: workspace, userId: user },
679
1031
  body: { role },
680
1032
  ...this.extraProps
681
1033
  });
682
1034
  }
683
- removeWorkspaceMember(workspaceId, userId) {
1035
+ removeWorkspaceMember({
1036
+ workspace,
1037
+ user
1038
+ }) {
684
1039
  return operationsByTag.workspaces.removeWorkspaceMember({
685
- pathParams: { workspaceId, userId },
1040
+ pathParams: { workspaceId: workspace, userId: user },
686
1041
  ...this.extraProps
687
1042
  });
688
1043
  }
689
- inviteWorkspaceMember(workspaceId, email, role) {
690
- return operationsByTag.workspaces.inviteWorkspaceMember({
691
- pathParams: { workspaceId },
1044
+ }
1045
+ class InvitesApi {
1046
+ constructor(extraProps) {
1047
+ this.extraProps = extraProps;
1048
+ }
1049
+ inviteWorkspaceMember({
1050
+ workspace,
1051
+ email,
1052
+ role
1053
+ }) {
1054
+ return operationsByTag.invites.inviteWorkspaceMember({
1055
+ pathParams: { workspaceId: workspace },
692
1056
  body: { email, role },
693
1057
  ...this.extraProps
694
1058
  });
695
1059
  }
696
- updateWorkspaceMemberInvite(workspaceId, inviteId, role) {
697
- return operationsByTag.workspaces.updateWorkspaceMemberInvite({
698
- pathParams: { workspaceId, inviteId },
1060
+ updateWorkspaceMemberInvite({
1061
+ workspace,
1062
+ invite,
1063
+ role
1064
+ }) {
1065
+ return operationsByTag.invites.updateWorkspaceMemberInvite({
1066
+ pathParams: { workspaceId: workspace, inviteId: invite },
699
1067
  body: { role },
700
1068
  ...this.extraProps
701
1069
  });
702
1070
  }
703
- cancelWorkspaceMemberInvite(workspaceId, inviteId) {
704
- return operationsByTag.workspaces.cancelWorkspaceMemberInvite({
705
- pathParams: { workspaceId, inviteId },
1071
+ cancelWorkspaceMemberInvite({
1072
+ workspace,
1073
+ invite
1074
+ }) {
1075
+ return operationsByTag.invites.cancelWorkspaceMemberInvite({
1076
+ pathParams: { workspaceId: workspace, inviteId: invite },
706
1077
  ...this.extraProps
707
1078
  });
708
1079
  }
709
- resendWorkspaceMemberInvite(workspaceId, inviteId) {
710
- return operationsByTag.workspaces.resendWorkspaceMemberInvite({
711
- pathParams: { workspaceId, inviteId },
1080
+ acceptWorkspaceMemberInvite({
1081
+ workspace,
1082
+ key
1083
+ }) {
1084
+ return operationsByTag.invites.acceptWorkspaceMemberInvite({
1085
+ pathParams: { workspaceId: workspace, inviteKey: key },
712
1086
  ...this.extraProps
713
1087
  });
714
1088
  }
715
- acceptWorkspaceMemberInvite(workspaceId, inviteKey) {
716
- return operationsByTag.workspaces.acceptWorkspaceMemberInvite({
717
- pathParams: { workspaceId, inviteKey },
1089
+ resendWorkspaceMemberInvite({
1090
+ workspace,
1091
+ invite
1092
+ }) {
1093
+ return operationsByTag.invites.resendWorkspaceMemberInvite({
1094
+ pathParams: { workspaceId: workspace, inviteId: invite },
718
1095
  ...this.extraProps
719
1096
  });
720
1097
  }
721
1098
  }
722
- class DatabaseApi {
1099
+ class BranchApi {
723
1100
  constructor(extraProps) {
724
1101
  this.extraProps = extraProps;
725
1102
  }
726
- getDatabaseList(workspace) {
727
- return operationsByTag.database.getDatabaseList({
728
- pathParams: { workspace },
1103
+ getBranchList({
1104
+ workspace,
1105
+ region,
1106
+ database
1107
+ }) {
1108
+ return operationsByTag.branch.getBranchList({
1109
+ pathParams: { workspace, region, dbName: database },
729
1110
  ...this.extraProps
730
1111
  });
731
1112
  }
732
- createDatabase(workspace, dbName, options = {}) {
733
- return operationsByTag.database.createDatabase({
734
- pathParams: { workspace, dbName },
735
- body: options,
1113
+ getBranchDetails({
1114
+ workspace,
1115
+ region,
1116
+ database,
1117
+ branch
1118
+ }) {
1119
+ return operationsByTag.branch.getBranchDetails({
1120
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
736
1121
  ...this.extraProps
737
1122
  });
738
1123
  }
739
- deleteDatabase(workspace, dbName) {
740
- return operationsByTag.database.deleteDatabase({
741
- pathParams: { workspace, dbName },
1124
+ createBranch({
1125
+ workspace,
1126
+ region,
1127
+ database,
1128
+ branch,
1129
+ from,
1130
+ metadata
1131
+ }) {
1132
+ return operationsByTag.branch.createBranch({
1133
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
1134
+ body: { from, metadata },
1135
+ ...this.extraProps
1136
+ });
1137
+ }
1138
+ deleteBranch({
1139
+ workspace,
1140
+ region,
1141
+ database,
1142
+ branch
1143
+ }) {
1144
+ return operationsByTag.branch.deleteBranch({
1145
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
742
1146
  ...this.extraProps
743
1147
  });
744
1148
  }
745
- getGitBranchesMapping(workspace, dbName) {
746
- return operationsByTag.database.getGitBranchesMapping({
747
- pathParams: { workspace, dbName },
1149
+ updateBranchMetadata({
1150
+ workspace,
1151
+ region,
1152
+ database,
1153
+ branch,
1154
+ metadata
1155
+ }) {
1156
+ return operationsByTag.branch.updateBranchMetadata({
1157
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
1158
+ body: metadata,
748
1159
  ...this.extraProps
749
1160
  });
750
1161
  }
751
- addGitBranchesEntry(workspace, dbName, body) {
752
- return operationsByTag.database.addGitBranchesEntry({
753
- pathParams: { workspace, dbName },
754
- body,
1162
+ getBranchMetadata({
1163
+ workspace,
1164
+ region,
1165
+ database,
1166
+ branch
1167
+ }) {
1168
+ return operationsByTag.branch.getBranchMetadata({
1169
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
755
1170
  ...this.extraProps
756
1171
  });
757
1172
  }
758
- removeGitBranchesEntry(workspace, dbName, gitBranch) {
759
- return operationsByTag.database.removeGitBranchesEntry({
760
- pathParams: { workspace, dbName },
1173
+ getBranchStats({
1174
+ workspace,
1175
+ region,
1176
+ database,
1177
+ branch
1178
+ }) {
1179
+ return operationsByTag.branch.getBranchStats({
1180
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
1181
+ ...this.extraProps
1182
+ });
1183
+ }
1184
+ getGitBranchesMapping({
1185
+ workspace,
1186
+ region,
1187
+ database
1188
+ }) {
1189
+ return operationsByTag.branch.getGitBranchesMapping({
1190
+ pathParams: { workspace, region, dbName: database },
1191
+ ...this.extraProps
1192
+ });
1193
+ }
1194
+ addGitBranchesEntry({
1195
+ workspace,
1196
+ region,
1197
+ database,
1198
+ gitBranch,
1199
+ xataBranch
1200
+ }) {
1201
+ return operationsByTag.branch.addGitBranchesEntry({
1202
+ pathParams: { workspace, region, dbName: database },
1203
+ body: { gitBranch, xataBranch },
1204
+ ...this.extraProps
1205
+ });
1206
+ }
1207
+ removeGitBranchesEntry({
1208
+ workspace,
1209
+ region,
1210
+ database,
1211
+ gitBranch
1212
+ }) {
1213
+ return operationsByTag.branch.removeGitBranchesEntry({
1214
+ pathParams: { workspace, region, dbName: database },
761
1215
  queryParams: { gitBranch },
762
1216
  ...this.extraProps
763
1217
  });
764
1218
  }
765
- resolveBranch(workspace, dbName, gitBranch, fallbackBranch) {
766
- return operationsByTag.database.resolveBranch({
767
- pathParams: { workspace, dbName },
1219
+ resolveBranch({
1220
+ workspace,
1221
+ region,
1222
+ database,
1223
+ gitBranch,
1224
+ fallbackBranch
1225
+ }) {
1226
+ return operationsByTag.branch.resolveBranch({
1227
+ pathParams: { workspace, region, dbName: database },
768
1228
  queryParams: { gitBranch, fallbackBranch },
769
1229
  ...this.extraProps
770
1230
  });
771
1231
  }
772
1232
  }
773
- class BranchApi {
1233
+ class TableApi {
774
1234
  constructor(extraProps) {
775
1235
  this.extraProps = extraProps;
776
1236
  }
777
- getBranchList(workspace, dbName) {
778
- return operationsByTag.branch.getBranchList({
779
- pathParams: { workspace, dbName },
1237
+ createTable({
1238
+ workspace,
1239
+ region,
1240
+ database,
1241
+ branch,
1242
+ table
1243
+ }) {
1244
+ return operationsByTag.table.createTable({
1245
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
780
1246
  ...this.extraProps
781
1247
  });
782
1248
  }
783
- getBranchDetails(workspace, database, branch) {
784
- return operationsByTag.branch.getBranchDetails({
785
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1249
+ deleteTable({
1250
+ workspace,
1251
+ region,
1252
+ database,
1253
+ branch,
1254
+ table
1255
+ }) {
1256
+ return operationsByTag.table.deleteTable({
1257
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
1258
+ ...this.extraProps
1259
+ });
1260
+ }
1261
+ updateTable({
1262
+ workspace,
1263
+ region,
1264
+ database,
1265
+ branch,
1266
+ table,
1267
+ update
1268
+ }) {
1269
+ return operationsByTag.table.updateTable({
1270
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
1271
+ body: update,
786
1272
  ...this.extraProps
787
1273
  });
788
1274
  }
789
- createBranch(workspace, database, branch, from, options = {}) {
790
- return operationsByTag.branch.createBranch({
791
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
792
- queryParams: isString(from) ? { from } : void 0,
793
- body: options,
1275
+ getTableSchema({
1276
+ workspace,
1277
+ region,
1278
+ database,
1279
+ branch,
1280
+ table
1281
+ }) {
1282
+ return operationsByTag.table.getTableSchema({
1283
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
1284
+ ...this.extraProps
1285
+ });
1286
+ }
1287
+ setTableSchema({
1288
+ workspace,
1289
+ region,
1290
+ database,
1291
+ branch,
1292
+ table,
1293
+ schema
1294
+ }) {
1295
+ return operationsByTag.table.setTableSchema({
1296
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
1297
+ body: schema,
1298
+ ...this.extraProps
1299
+ });
1300
+ }
1301
+ getTableColumns({
1302
+ workspace,
1303
+ region,
1304
+ database,
1305
+ branch,
1306
+ table
1307
+ }) {
1308
+ return operationsByTag.table.getTableColumns({
1309
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
1310
+ ...this.extraProps
1311
+ });
1312
+ }
1313
+ addTableColumn({
1314
+ workspace,
1315
+ region,
1316
+ database,
1317
+ branch,
1318
+ table,
1319
+ column
1320
+ }) {
1321
+ return operationsByTag.table.addTableColumn({
1322
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
1323
+ body: column,
1324
+ ...this.extraProps
1325
+ });
1326
+ }
1327
+ getColumn({
1328
+ workspace,
1329
+ region,
1330
+ database,
1331
+ branch,
1332
+ table,
1333
+ column
1334
+ }) {
1335
+ return operationsByTag.table.getColumn({
1336
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, columnName: column },
1337
+ ...this.extraProps
1338
+ });
1339
+ }
1340
+ updateColumn({
1341
+ workspace,
1342
+ region,
1343
+ database,
1344
+ branch,
1345
+ table,
1346
+ column,
1347
+ update
1348
+ }) {
1349
+ return operationsByTag.table.updateColumn({
1350
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, columnName: column },
1351
+ body: update,
1352
+ ...this.extraProps
1353
+ });
1354
+ }
1355
+ deleteColumn({
1356
+ workspace,
1357
+ region,
1358
+ database,
1359
+ branch,
1360
+ table,
1361
+ column
1362
+ }) {
1363
+ return operationsByTag.table.deleteColumn({
1364
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, columnName: column },
1365
+ ...this.extraProps
1366
+ });
1367
+ }
1368
+ }
1369
+ class RecordsApi {
1370
+ constructor(extraProps) {
1371
+ this.extraProps = extraProps;
1372
+ }
1373
+ insertRecord({
1374
+ workspace,
1375
+ region,
1376
+ database,
1377
+ branch,
1378
+ table,
1379
+ record,
1380
+ columns
1381
+ }) {
1382
+ return operationsByTag.records.insertRecord({
1383
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
1384
+ queryParams: { columns },
1385
+ body: record,
1386
+ ...this.extraProps
1387
+ });
1388
+ }
1389
+ getRecord({
1390
+ workspace,
1391
+ region,
1392
+ database,
1393
+ branch,
1394
+ table,
1395
+ id,
1396
+ columns
1397
+ }) {
1398
+ return operationsByTag.records.getRecord({
1399
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
1400
+ queryParams: { columns },
1401
+ ...this.extraProps
1402
+ });
1403
+ }
1404
+ insertRecordWithID({
1405
+ workspace,
1406
+ region,
1407
+ database,
1408
+ branch,
1409
+ table,
1410
+ id,
1411
+ record,
1412
+ columns,
1413
+ createOnly,
1414
+ ifVersion
1415
+ }) {
1416
+ return operationsByTag.records.insertRecordWithID({
1417
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
1418
+ queryParams: { columns, createOnly, ifVersion },
1419
+ body: record,
1420
+ ...this.extraProps
1421
+ });
1422
+ }
1423
+ updateRecordWithID({
1424
+ workspace,
1425
+ region,
1426
+ database,
1427
+ branch,
1428
+ table,
1429
+ id,
1430
+ record,
1431
+ columns,
1432
+ ifVersion
1433
+ }) {
1434
+ return operationsByTag.records.updateRecordWithID({
1435
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
1436
+ queryParams: { columns, ifVersion },
1437
+ body: record,
1438
+ ...this.extraProps
1439
+ });
1440
+ }
1441
+ upsertRecordWithID({
1442
+ workspace,
1443
+ region,
1444
+ database,
1445
+ branch,
1446
+ table,
1447
+ id,
1448
+ record,
1449
+ columns,
1450
+ ifVersion
1451
+ }) {
1452
+ return operationsByTag.records.upsertRecordWithID({
1453
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
1454
+ queryParams: { columns, ifVersion },
1455
+ body: record,
1456
+ ...this.extraProps
1457
+ });
1458
+ }
1459
+ deleteRecord({
1460
+ workspace,
1461
+ region,
1462
+ database,
1463
+ branch,
1464
+ table,
1465
+ id,
1466
+ columns
1467
+ }) {
1468
+ return operationsByTag.records.deleteRecord({
1469
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
1470
+ queryParams: { columns },
1471
+ ...this.extraProps
1472
+ });
1473
+ }
1474
+ bulkInsertTableRecords({
1475
+ workspace,
1476
+ region,
1477
+ database,
1478
+ branch,
1479
+ table,
1480
+ records,
1481
+ columns
1482
+ }) {
1483
+ return operationsByTag.records.bulkInsertTableRecords({
1484
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
1485
+ queryParams: { columns },
1486
+ body: { records },
1487
+ ...this.extraProps
1488
+ });
1489
+ }
1490
+ branchTransaction({
1491
+ workspace,
1492
+ region,
1493
+ database,
1494
+ branch,
1495
+ operations
1496
+ }) {
1497
+ return operationsByTag.records.branchTransaction({
1498
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
1499
+ body: { operations },
1500
+ ...this.extraProps
1501
+ });
1502
+ }
1503
+ }
1504
+ class SearchAndFilterApi {
1505
+ constructor(extraProps) {
1506
+ this.extraProps = extraProps;
1507
+ }
1508
+ queryTable({
1509
+ workspace,
1510
+ region,
1511
+ database,
1512
+ branch,
1513
+ table,
1514
+ filter,
1515
+ sort,
1516
+ page,
1517
+ columns,
1518
+ consistency
1519
+ }) {
1520
+ return operationsByTag.searchAndFilter.queryTable({
1521
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
1522
+ body: { filter, sort, page, columns, consistency },
1523
+ ...this.extraProps
1524
+ });
1525
+ }
1526
+ searchTable({
1527
+ workspace,
1528
+ region,
1529
+ database,
1530
+ branch,
1531
+ table,
1532
+ query,
1533
+ fuzziness,
1534
+ target,
1535
+ prefix,
1536
+ filter,
1537
+ highlight,
1538
+ boosters
1539
+ }) {
1540
+ return operationsByTag.searchAndFilter.searchTable({
1541
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
1542
+ body: { query, fuzziness, target, prefix, filter, highlight, boosters },
1543
+ ...this.extraProps
1544
+ });
1545
+ }
1546
+ searchBranch({
1547
+ workspace,
1548
+ region,
1549
+ database,
1550
+ branch,
1551
+ tables,
1552
+ query,
1553
+ fuzziness,
1554
+ prefix,
1555
+ highlight
1556
+ }) {
1557
+ return operationsByTag.searchAndFilter.searchBranch({
1558
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
1559
+ body: { tables, query, fuzziness, prefix, highlight },
1560
+ ...this.extraProps
1561
+ });
1562
+ }
1563
+ summarizeTable({
1564
+ workspace,
1565
+ region,
1566
+ database,
1567
+ branch,
1568
+ table,
1569
+ filter,
1570
+ columns,
1571
+ summaries,
1572
+ sort,
1573
+ summariesFilter,
1574
+ page,
1575
+ consistency
1576
+ }) {
1577
+ return operationsByTag.searchAndFilter.summarizeTable({
1578
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
1579
+ body: { filter, columns, summaries, sort, summariesFilter, page, consistency },
1580
+ ...this.extraProps
1581
+ });
1582
+ }
1583
+ aggregateTable({
1584
+ workspace,
1585
+ region,
1586
+ database,
1587
+ branch,
1588
+ table,
1589
+ filter,
1590
+ aggs
1591
+ }) {
1592
+ return operationsByTag.searchAndFilter.aggregateTable({
1593
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
1594
+ body: { filter, aggs },
1595
+ ...this.extraProps
1596
+ });
1597
+ }
1598
+ }
1599
+ class MigrationRequestsApi {
1600
+ constructor(extraProps) {
1601
+ this.extraProps = extraProps;
1602
+ }
1603
+ queryMigrationRequests({
1604
+ workspace,
1605
+ region,
1606
+ database,
1607
+ filter,
1608
+ sort,
1609
+ page,
1610
+ columns
1611
+ }) {
1612
+ return operationsByTag.migrationRequests.queryMigrationRequests({
1613
+ pathParams: { workspace, region, dbName: database },
1614
+ body: { filter, sort, page, columns },
794
1615
  ...this.extraProps
795
1616
  });
796
1617
  }
797
- deleteBranch(workspace, database, branch) {
798
- return operationsByTag.branch.deleteBranch({
799
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1618
+ createMigrationRequest({
1619
+ workspace,
1620
+ region,
1621
+ database,
1622
+ migration
1623
+ }) {
1624
+ return operationsByTag.migrationRequests.createMigrationRequest({
1625
+ pathParams: { workspace, region, dbName: database },
1626
+ body: migration,
800
1627
  ...this.extraProps
801
1628
  });
802
1629
  }
803
- updateBranchMetadata(workspace, database, branch, metadata = {}) {
804
- return operationsByTag.branch.updateBranchMetadata({
805
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
806
- body: metadata,
1630
+ getMigrationRequest({
1631
+ workspace,
1632
+ region,
1633
+ database,
1634
+ migrationRequest
1635
+ }) {
1636
+ return operationsByTag.migrationRequests.getMigrationRequest({
1637
+ pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
807
1638
  ...this.extraProps
808
1639
  });
809
1640
  }
810
- getBranchMetadata(workspace, database, branch) {
811
- return operationsByTag.branch.getBranchMetadata({
812
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1641
+ updateMigrationRequest({
1642
+ workspace,
1643
+ region,
1644
+ database,
1645
+ migrationRequest,
1646
+ update
1647
+ }) {
1648
+ return operationsByTag.migrationRequests.updateMigrationRequest({
1649
+ pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
1650
+ body: update,
813
1651
  ...this.extraProps
814
1652
  });
815
1653
  }
816
- getBranchMigrationHistory(workspace, database, branch, options = {}) {
817
- return operationsByTag.branch.getBranchMigrationHistory({
818
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
819
- body: options,
1654
+ listMigrationRequestsCommits({
1655
+ workspace,
1656
+ region,
1657
+ database,
1658
+ migrationRequest,
1659
+ page
1660
+ }) {
1661
+ return operationsByTag.migrationRequests.listMigrationRequestsCommits({
1662
+ pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
1663
+ body: { page },
820
1664
  ...this.extraProps
821
1665
  });
822
1666
  }
823
- executeBranchMigrationPlan(workspace, database, branch, migrationPlan) {
824
- return operationsByTag.branch.executeBranchMigrationPlan({
825
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
826
- body: migrationPlan,
1667
+ compareMigrationRequest({
1668
+ workspace,
1669
+ region,
1670
+ database,
1671
+ migrationRequest
1672
+ }) {
1673
+ return operationsByTag.migrationRequests.compareMigrationRequest({
1674
+ pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
827
1675
  ...this.extraProps
828
1676
  });
829
1677
  }
830
- getBranchMigrationPlan(workspace, database, branch, schema) {
831
- return operationsByTag.branch.getBranchMigrationPlan({
832
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
833
- body: schema,
1678
+ getMigrationRequestIsMerged({
1679
+ workspace,
1680
+ region,
1681
+ database,
1682
+ migrationRequest
1683
+ }) {
1684
+ return operationsByTag.migrationRequests.getMigrationRequestIsMerged({
1685
+ pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
834
1686
  ...this.extraProps
835
1687
  });
836
1688
  }
837
- getBranchStats(workspace, database, branch) {
838
- return operationsByTag.branch.getBranchStats({
839
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
1689
+ mergeMigrationRequest({
1690
+ workspace,
1691
+ region,
1692
+ database,
1693
+ migrationRequest
1694
+ }) {
1695
+ return operationsByTag.migrationRequests.mergeMigrationRequest({
1696
+ pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
840
1697
  ...this.extraProps
841
1698
  });
842
1699
  }
843
1700
  }
844
- class TableApi {
1701
+ class MigrationsApi {
845
1702
  constructor(extraProps) {
846
1703
  this.extraProps = extraProps;
847
1704
  }
848
- createTable(workspace, database, branch, tableName) {
849
- return operationsByTag.table.createTable({
850
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
851
- ...this.extraProps
852
- });
853
- }
854
- deleteTable(workspace, database, branch, tableName) {
855
- return operationsByTag.table.deleteTable({
856
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
1705
+ getBranchMigrationHistory({
1706
+ workspace,
1707
+ region,
1708
+ database,
1709
+ branch,
1710
+ limit,
1711
+ startFrom
1712
+ }) {
1713
+ return operationsByTag.migrations.getBranchMigrationHistory({
1714
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
1715
+ body: { limit, startFrom },
857
1716
  ...this.extraProps
858
1717
  });
859
1718
  }
860
- updateTable(workspace, database, branch, tableName, options) {
861
- return operationsByTag.table.updateTable({
862
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
863
- body: options,
1719
+ getBranchMigrationPlan({
1720
+ workspace,
1721
+ region,
1722
+ database,
1723
+ branch,
1724
+ schema
1725
+ }) {
1726
+ return operationsByTag.migrations.getBranchMigrationPlan({
1727
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
1728
+ body: schema,
864
1729
  ...this.extraProps
865
1730
  });
866
1731
  }
867
- getTableSchema(workspace, database, branch, tableName) {
868
- return operationsByTag.table.getTableSchema({
869
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
1732
+ executeBranchMigrationPlan({
1733
+ workspace,
1734
+ region,
1735
+ database,
1736
+ branch,
1737
+ plan
1738
+ }) {
1739
+ return operationsByTag.migrations.executeBranchMigrationPlan({
1740
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
1741
+ body: plan,
870
1742
  ...this.extraProps
871
1743
  });
872
1744
  }
873
- setTableSchema(workspace, database, branch, tableName, options) {
874
- return operationsByTag.table.setTableSchema({
875
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
876
- body: options,
1745
+ getBranchSchemaHistory({
1746
+ workspace,
1747
+ region,
1748
+ database,
1749
+ branch,
1750
+ page
1751
+ }) {
1752
+ return operationsByTag.migrations.getBranchSchemaHistory({
1753
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
1754
+ body: { page },
877
1755
  ...this.extraProps
878
1756
  });
879
1757
  }
880
- getTableColumns(workspace, database, branch, tableName) {
881
- return operationsByTag.table.getTableColumns({
882
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
1758
+ compareBranchWithUserSchema({
1759
+ workspace,
1760
+ region,
1761
+ database,
1762
+ branch,
1763
+ schema
1764
+ }) {
1765
+ return operationsByTag.migrations.compareBranchWithUserSchema({
1766
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
1767
+ body: { schema },
883
1768
  ...this.extraProps
884
1769
  });
885
1770
  }
886
- addTableColumn(workspace, database, branch, tableName, column) {
887
- return operationsByTag.table.addTableColumn({
888
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
889
- body: column,
1771
+ compareBranchSchemas({
1772
+ workspace,
1773
+ region,
1774
+ database,
1775
+ branch,
1776
+ compare,
1777
+ schema
1778
+ }) {
1779
+ return operationsByTag.migrations.compareBranchSchemas({
1780
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, branchName: compare },
1781
+ body: { schema },
890
1782
  ...this.extraProps
891
1783
  });
892
1784
  }
893
- getColumn(workspace, database, branch, tableName, columnName) {
894
- return operationsByTag.table.getColumn({
895
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, columnName },
1785
+ updateBranchSchema({
1786
+ workspace,
1787
+ region,
1788
+ database,
1789
+ branch,
1790
+ migration
1791
+ }) {
1792
+ return operationsByTag.migrations.updateBranchSchema({
1793
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
1794
+ body: migration,
896
1795
  ...this.extraProps
897
1796
  });
898
1797
  }
899
- deleteColumn(workspace, database, branch, tableName, columnName) {
900
- return operationsByTag.table.deleteColumn({
901
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, columnName },
1798
+ previewBranchSchemaEdit({
1799
+ workspace,
1800
+ region,
1801
+ database,
1802
+ branch,
1803
+ data
1804
+ }) {
1805
+ return operationsByTag.migrations.previewBranchSchemaEdit({
1806
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
1807
+ body: data,
902
1808
  ...this.extraProps
903
1809
  });
904
1810
  }
905
- updateColumn(workspace, database, branch, tableName, columnName, options) {
906
- return operationsByTag.table.updateColumn({
907
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, columnName },
908
- body: options,
1811
+ applyBranchSchemaEdit({
1812
+ workspace,
1813
+ region,
1814
+ database,
1815
+ branch,
1816
+ edits
1817
+ }) {
1818
+ return operationsByTag.migrations.applyBranchSchemaEdit({
1819
+ pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
1820
+ body: { edits },
909
1821
  ...this.extraProps
910
1822
  });
911
1823
  }
912
1824
  }
913
- class RecordsApi {
1825
+ class DatabaseApi {
914
1826
  constructor(extraProps) {
915
1827
  this.extraProps = extraProps;
916
1828
  }
917
- insertRecord(workspace, database, branch, tableName, record) {
918
- return operationsByTag.records.insertRecord({
919
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
920
- body: record,
921
- ...this.extraProps
922
- });
923
- }
924
- insertRecordWithID(workspace, database, branch, tableName, recordId, record, options = {}) {
925
- return operationsByTag.records.insertRecordWithID({
926
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
927
- queryParams: options,
928
- body: record,
929
- ...this.extraProps
930
- });
931
- }
932
- updateRecordWithID(workspace, database, branch, tableName, recordId, record, options = {}) {
933
- return operationsByTag.records.updateRecordWithID({
934
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
935
- queryParams: options,
936
- body: record,
937
- ...this.extraProps
938
- });
939
- }
940
- upsertRecordWithID(workspace, database, branch, tableName, recordId, record, options = {}) {
941
- return operationsByTag.records.upsertRecordWithID({
942
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
943
- queryParams: options,
944
- body: record,
945
- ...this.extraProps
946
- });
947
- }
948
- deleteRecord(workspace, database, branch, tableName, recordId) {
949
- return operationsByTag.records.deleteRecord({
950
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
1829
+ getDatabaseList({ workspace }) {
1830
+ return operationsByTag.databases.getDatabaseList({
1831
+ pathParams: { workspaceId: workspace },
951
1832
  ...this.extraProps
952
1833
  });
953
1834
  }
954
- getRecord(workspace, database, branch, tableName, recordId, options = {}) {
955
- return operationsByTag.records.getRecord({
956
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
1835
+ createDatabase({
1836
+ workspace,
1837
+ database,
1838
+ data
1839
+ }) {
1840
+ return operationsByTag.databases.createDatabase({
1841
+ pathParams: { workspaceId: workspace, dbName: database },
1842
+ body: data,
957
1843
  ...this.extraProps
958
1844
  });
959
1845
  }
960
- bulkInsertTableRecords(workspace, database, branch, tableName, records) {
961
- return operationsByTag.records.bulkInsertTableRecords({
962
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
963
- body: { records },
1846
+ deleteDatabase({
1847
+ workspace,
1848
+ database
1849
+ }) {
1850
+ return operationsByTag.databases.deleteDatabase({
1851
+ pathParams: { workspaceId: workspace, dbName: database },
964
1852
  ...this.extraProps
965
1853
  });
966
1854
  }
967
- queryTable(workspace, database, branch, tableName, query) {
968
- return operationsByTag.records.queryTable({
969
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
970
- body: query,
1855
+ getDatabaseMetadata({
1856
+ workspace,
1857
+ database
1858
+ }) {
1859
+ return operationsByTag.databases.getDatabaseMetadata({
1860
+ pathParams: { workspaceId: workspace, dbName: database },
971
1861
  ...this.extraProps
972
1862
  });
973
1863
  }
974
- searchTable(workspace, database, branch, tableName, query) {
975
- return operationsByTag.records.searchTable({
976
- pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
977
- body: query,
1864
+ updateDatabaseMetadata({
1865
+ workspace,
1866
+ database,
1867
+ metadata
1868
+ }) {
1869
+ return operationsByTag.databases.updateDatabaseMetadata({
1870
+ pathParams: { workspaceId: workspace, dbName: database },
1871
+ body: metadata,
978
1872
  ...this.extraProps
979
1873
  });
980
1874
  }
981
- searchBranch(workspace, database, branch, query) {
982
- return operationsByTag.records.searchBranch({
983
- pathParams: { workspace, dbBranchName: `${database}:${branch}` },
984
- body: query,
1875
+ listRegions({ workspace }) {
1876
+ return operationsByTag.databases.listRegions({
1877
+ pathParams: { workspaceId: workspace },
985
1878
  ...this.extraProps
986
1879
  });
987
1880
  }
@@ -997,6 +1890,13 @@ class XataApiPlugin {
997
1890
  class XataPlugin {
998
1891
  }
999
1892
 
1893
+ function cleanFilter(filter) {
1894
+ if (!filter)
1895
+ return void 0;
1896
+ const values = Object.values(filter).filter(Boolean).filter((value) => Array.isArray(value) ? value.length > 0 : true);
1897
+ return values.length > 0 ? filter : void 0;
1898
+ }
1899
+
1000
1900
  var __accessCheck$6 = (obj, member, msg) => {
1001
1901
  if (!member.has(obj))
1002
1902
  throw TypeError("Cannot " + msg);
@@ -1029,11 +1929,11 @@ class Page {
1029
1929
  async previousPage(size, offset) {
1030
1930
  return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, before: this.meta.page.cursor } });
1031
1931
  }
1032
- async firstPage(size, offset) {
1033
- return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, first: this.meta.page.cursor } });
1932
+ async startPage(size, offset) {
1933
+ return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, start: this.meta.page.cursor } });
1034
1934
  }
1035
- async lastPage(size, offset) {
1036
- return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, last: this.meta.page.cursor } });
1935
+ async endPage(size, offset) {
1936
+ return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, end: this.meta.page.cursor } });
1037
1937
  }
1038
1938
  hasNextPage() {
1039
1939
  return this.meta.page.more;
@@ -1045,7 +1945,7 @@ const PAGINATION_DEFAULT_SIZE = 20;
1045
1945
  const PAGINATION_MAX_OFFSET = 800;
1046
1946
  const PAGINATION_DEFAULT_OFFSET = 0;
1047
1947
  function isCursorPaginationOptions(options) {
1048
- return isDefined(options) && (isDefined(options.first) || isDefined(options.last) || isDefined(options.after) || isDefined(options.before));
1948
+ return isDefined(options) && (isDefined(options.start) || isDefined(options.end) || isDefined(options.after) || isDefined(options.before));
1049
1949
  }
1050
1950
  const _RecordArray = class extends Array {
1051
1951
  constructor(...args) {
@@ -1077,12 +1977,12 @@ const _RecordArray = class extends Array {
1077
1977
  const newPage = await __privateGet$6(this, _page).previousPage(size, offset);
1078
1978
  return new _RecordArray(newPage);
1079
1979
  }
1080
- async firstPage(size, offset) {
1081
- const newPage = await __privateGet$6(this, _page).firstPage(size, offset);
1980
+ async startPage(size, offset) {
1981
+ const newPage = await __privateGet$6(this, _page).startPage(size, offset);
1082
1982
  return new _RecordArray(newPage);
1083
1983
  }
1084
- async lastPage(size, offset) {
1085
- const newPage = await __privateGet$6(this, _page).lastPage(size, offset);
1984
+ async endPage(size, offset) {
1985
+ const newPage = await __privateGet$6(this, _page).endPage(size, offset);
1086
1986
  return new _RecordArray(newPage);
1087
1987
  }
1088
1988
  hasNextPage() {
@@ -1110,9 +2010,14 @@ var __privateSet$5 = (obj, member, value, setter) => {
1110
2010
  setter ? setter.call(obj, value) : member.set(obj, value);
1111
2011
  return value;
1112
2012
  };
1113
- var _table$1, _repository, _data;
2013
+ var __privateMethod$3 = (obj, member, method) => {
2014
+ __accessCheck$5(obj, member, "access private method");
2015
+ return method;
2016
+ };
2017
+ var _table$1, _repository, _data, _cleanFilterConstraint, cleanFilterConstraint_fn;
1114
2018
  const _Query = class {
1115
2019
  constructor(repository, table, data, rawParent) {
2020
+ __privateAdd$5(this, _cleanFilterConstraint);
1116
2021
  __privateAdd$5(this, _table$1, void 0);
1117
2022
  __privateAdd$5(this, _repository, void 0);
1118
2023
  __privateAdd$5(this, _data, { filter: {} });
@@ -1131,9 +2036,11 @@ const _Query = class {
1131
2036
  __privateGet$5(this, _data).filter.$not = data.filter?.$not ?? parent?.filter?.$not;
1132
2037
  __privateGet$5(this, _data).filter.$none = data.filter?.$none ?? parent?.filter?.$none;
1133
2038
  __privateGet$5(this, _data).sort = data.sort ?? parent?.sort;
1134
- __privateGet$5(this, _data).columns = data.columns ?? parent?.columns ?? ["*"];
2039
+ __privateGet$5(this, _data).columns = data.columns ?? parent?.columns;
2040
+ __privateGet$5(this, _data).consistency = data.consistency ?? parent?.consistency;
1135
2041
  __privateGet$5(this, _data).pagination = data.pagination ?? parent?.pagination;
1136
2042
  __privateGet$5(this, _data).cache = data.cache ?? parent?.cache;
2043
+ __privateGet$5(this, _data).fetchOptions = data.fetchOptions ?? parent?.fetchOptions;
1137
2044
  this.any = this.any.bind(this);
1138
2045
  this.all = this.all.bind(this);
1139
2046
  this.not = this.not.bind(this);
@@ -1169,21 +2076,29 @@ const _Query = class {
1169
2076
  }
1170
2077
  filter(a, b) {
1171
2078
  if (arguments.length === 1) {
1172
- const constraints = Object.entries(a).map(([column, constraint]) => ({ [column]: constraint }));
2079
+ const constraints = Object.entries(a ?? {}).map(([column, constraint]) => ({
2080
+ [column]: __privateMethod$3(this, _cleanFilterConstraint, cleanFilterConstraint_fn).call(this, column, constraint)
2081
+ }));
1173
2082
  const $all = compact([__privateGet$5(this, _data).filter?.$all].flat().concat(constraints));
1174
2083
  return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
1175
2084
  } else {
1176
- const $all = compact([__privateGet$5(this, _data).filter?.$all].flat().concat([{ [a]: b }]));
2085
+ const constraints = isDefined(a) && isDefined(b) ? [{ [a]: __privateMethod$3(this, _cleanFilterConstraint, cleanFilterConstraint_fn).call(this, a, b) }] : void 0;
2086
+ const $all = compact([__privateGet$5(this, _data).filter?.$all].flat().concat(constraints));
1177
2087
  return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
1178
2088
  }
1179
2089
  }
1180
- sort(column, direction) {
2090
+ sort(column, direction = "asc") {
1181
2091
  const originalSort = [__privateGet$5(this, _data).sort ?? []].flat();
1182
2092
  const sort = [...originalSort, { column, direction }];
1183
2093
  return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { sort }, __privateGet$5(this, _data));
1184
2094
  }
1185
2095
  select(columns) {
1186
- return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { columns }, __privateGet$5(this, _data));
2096
+ return new _Query(
2097
+ __privateGet$5(this, _repository),
2098
+ __privateGet$5(this, _table$1),
2099
+ { columns },
2100
+ __privateGet$5(this, _data)
2101
+ );
1187
2102
  }
1188
2103
  getPaginated(options = {}) {
1189
2104
  const query = new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), options, __privateGet$5(this, _data));
@@ -1206,11 +2121,20 @@ const _Query = class {
1206
2121
  }
1207
2122
  }
1208
2123
  async getMany(options = {}) {
1209
- const page = await this.getPaginated(options);
2124
+ const { pagination = {}, ...rest } = options;
2125
+ const { size = PAGINATION_DEFAULT_SIZE, offset } = pagination;
2126
+ const batchSize = size <= PAGINATION_MAX_SIZE ? size : PAGINATION_MAX_SIZE;
2127
+ let page = await this.getPaginated({ ...rest, pagination: { size: batchSize, offset } });
2128
+ const results = [...page.records];
2129
+ while (page.hasNextPage() && results.length < size) {
2130
+ page = await page.nextPage();
2131
+ results.push(...page.records);
2132
+ }
1210
2133
  if (page.hasNextPage() && options.pagination?.size === void 0) {
1211
2134
  console.trace("Calling getMany does not return all results. Paginate to get all results or call getAll.");
1212
2135
  }
1213
- return page.records;
2136
+ const array = new RecordArray(page, results.slice(0, size));
2137
+ return array;
1214
2138
  }
1215
2139
  async getAll(options = {}) {
1216
2140
  const { batchSize = PAGINATION_MAX_SIZE, ...rest } = options;
@@ -1224,19 +2148,35 @@ const _Query = class {
1224
2148
  const records = await this.getMany({ ...options, pagination: { size: 1 } });
1225
2149
  return records[0] ?? null;
1226
2150
  }
2151
+ async getFirstOrThrow(options = {}) {
2152
+ const records = await this.getMany({ ...options, pagination: { size: 1 } });
2153
+ if (records[0] === void 0)
2154
+ throw new Error("No results found.");
2155
+ return records[0];
2156
+ }
2157
+ async summarize(params = {}) {
2158
+ const { summaries, summariesFilter, ...options } = params;
2159
+ const query = new _Query(
2160
+ __privateGet$5(this, _repository),
2161
+ __privateGet$5(this, _table$1),
2162
+ options,
2163
+ __privateGet$5(this, _data)
2164
+ );
2165
+ return __privateGet$5(this, _repository).summarizeTable(query, summaries, summariesFilter);
2166
+ }
1227
2167
  cache(ttl) {
1228
2168
  return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { cache: ttl }, __privateGet$5(this, _data));
1229
2169
  }
1230
2170
  nextPage(size, offset) {
1231
- return this.firstPage(size, offset);
2171
+ return this.startPage(size, offset);
1232
2172
  }
1233
2173
  previousPage(size, offset) {
1234
- return this.firstPage(size, offset);
2174
+ return this.startPage(size, offset);
1235
2175
  }
1236
- firstPage(size, offset) {
2176
+ startPage(size, offset) {
1237
2177
  return this.getPaginated({ pagination: { size, offset } });
1238
2178
  }
1239
- lastPage(size, offset) {
2179
+ endPage(size, offset) {
1240
2180
  return this.getPaginated({ pagination: { size, offset, before: "end" } });
1241
2181
  }
1242
2182
  hasNextPage() {
@@ -1247,9 +2187,20 @@ let Query = _Query;
1247
2187
  _table$1 = new WeakMap();
1248
2188
  _repository = new WeakMap();
1249
2189
  _data = new WeakMap();
2190
+ _cleanFilterConstraint = new WeakSet();
2191
+ cleanFilterConstraint_fn = function(column, value) {
2192
+ const columnType = __privateGet$5(this, _table$1).schema?.columns.find(({ name }) => name === column)?.type;
2193
+ if (columnType === "multiple" && (isString(value) || isStringArray(value))) {
2194
+ return { $includes: value };
2195
+ }
2196
+ if (columnType === "link" && isObject(value) && isString(value.id)) {
2197
+ return value.id;
2198
+ }
2199
+ return value;
2200
+ };
1250
2201
  function cleanParent(data, parent) {
1251
2202
  if (isCursorPaginationOptions(data.pagination)) {
1252
- return { ...parent, sorting: void 0, filter: void 0 };
2203
+ return { ...parent, sort: void 0, filter: void 0 };
1253
2204
  }
1254
2205
  return parent;
1255
2206
  }
@@ -1308,317 +2259,574 @@ var __privateMethod$2 = (obj, member, method) => {
1308
2259
  __accessCheck$4(obj, member, "access private method");
1309
2260
  return method;
1310
2261
  };
1311
- var _table, _getFetchProps, _cache, _schemaTables$2, _insertRecordWithoutId, insertRecordWithoutId_fn, _insertRecordWithId, insertRecordWithId_fn, _bulkInsertTableRecords, bulkInsertTableRecords_fn, _updateRecordWithID, updateRecordWithID_fn, _upsertRecordWithID, upsertRecordWithID_fn, _deleteRecord, deleteRecord_fn, _invalidateCache, invalidateCache_fn, _setCacheRecord, setCacheRecord_fn, _getCacheRecord, getCacheRecord_fn, _setCacheQuery, setCacheQuery_fn, _getCacheQuery, getCacheQuery_fn, _getSchemaTables$1, getSchemaTables_fn$1;
2262
+ 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;
2263
+ const BULK_OPERATION_MAX_SIZE = 1e3;
1312
2264
  class Repository extends Query {
1313
2265
  }
1314
2266
  class RestRepository extends Query {
1315
2267
  constructor(options) {
1316
- super(null, options.table, {});
2268
+ super(
2269
+ null,
2270
+ { name: options.table, schema: options.schemaTables?.find((table) => table.name === options.table) },
2271
+ {}
2272
+ );
1317
2273
  __privateAdd$4(this, _insertRecordWithoutId);
1318
2274
  __privateAdd$4(this, _insertRecordWithId);
1319
- __privateAdd$4(this, _bulkInsertTableRecords);
2275
+ __privateAdd$4(this, _insertRecords);
1320
2276
  __privateAdd$4(this, _updateRecordWithID);
2277
+ __privateAdd$4(this, _updateRecords);
1321
2278
  __privateAdd$4(this, _upsertRecordWithID);
1322
2279
  __privateAdd$4(this, _deleteRecord);
1323
- __privateAdd$4(this, _invalidateCache);
1324
- __privateAdd$4(this, _setCacheRecord);
1325
- __privateAdd$4(this, _getCacheRecord);
2280
+ __privateAdd$4(this, _deleteRecords);
1326
2281
  __privateAdd$4(this, _setCacheQuery);
1327
2282
  __privateAdd$4(this, _getCacheQuery);
1328
2283
  __privateAdd$4(this, _getSchemaTables$1);
1329
2284
  __privateAdd$4(this, _table, void 0);
1330
2285
  __privateAdd$4(this, _getFetchProps, void 0);
2286
+ __privateAdd$4(this, _db, void 0);
1331
2287
  __privateAdd$4(this, _cache, void 0);
1332
2288
  __privateAdd$4(this, _schemaTables$2, void 0);
2289
+ __privateAdd$4(this, _trace, void 0);
1333
2290
  __privateSet$4(this, _table, options.table);
1334
- __privateSet$4(this, _getFetchProps, options.pluginOptions.getFetchProps);
1335
- this.db = options.db;
2291
+ __privateSet$4(this, _db, options.db);
1336
2292
  __privateSet$4(this, _cache, options.pluginOptions.cache);
1337
2293
  __privateSet$4(this, _schemaTables$2, options.schemaTables);
2294
+ __privateSet$4(this, _getFetchProps, async () => {
2295
+ const props = await options.pluginOptions.getFetchProps();
2296
+ return { ...props, sessionID: generateUUID() };
2297
+ });
2298
+ const trace = options.pluginOptions.trace ?? defaultTrace;
2299
+ __privateSet$4(this, _trace, async (name, fn, options2 = {}) => {
2300
+ return trace(name, fn, {
2301
+ ...options2,
2302
+ [TraceAttributes.TABLE]: __privateGet$4(this, _table),
2303
+ [TraceAttributes.KIND]: "sdk-operation",
2304
+ [TraceAttributes.VERSION]: VERSION
2305
+ });
2306
+ });
1338
2307
  }
1339
- async create(a, b) {
1340
- if (Array.isArray(a)) {
1341
- if (a.length === 0)
1342
- return [];
1343
- const records = await __privateMethod$2(this, _bulkInsertTableRecords, bulkInsertTableRecords_fn).call(this, a);
1344
- await Promise.all(records.map((record) => __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record)));
1345
- return records;
1346
- }
1347
- if (isString(a) && isObject(b)) {
1348
- if (a === "")
1349
- throw new Error("The id can't be empty");
1350
- const record = await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a, b);
1351
- await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
1352
- return record;
1353
- }
1354
- if (isObject(a) && isString(a.id)) {
1355
- if (a.id === "")
1356
- throw new Error("The id can't be empty");
1357
- const record = await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a.id, { ...a, id: void 0 });
1358
- await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
1359
- return record;
1360
- }
1361
- if (isObject(a)) {
1362
- const record = await __privateMethod$2(this, _insertRecordWithoutId, insertRecordWithoutId_fn).call(this, a);
1363
- await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
1364
- return record;
1365
- }
1366
- throw new Error("Invalid arguments for create method");
1367
- }
1368
- async read(a) {
1369
- if (Array.isArray(a)) {
1370
- if (a.length === 0)
1371
- return [];
1372
- const ids = a.map((item) => isString(item) ? item : item.id).filter((id2) => isString(id2));
1373
- return this.getAll({ filter: { id: { $any: ids } } });
1374
- }
1375
- const id = isString(a) ? a : a.id;
1376
- if (isString(id)) {
1377
- const cacheRecord = await __privateMethod$2(this, _getCacheRecord, getCacheRecord_fn).call(this, id);
1378
- if (cacheRecord)
1379
- return cacheRecord;
1380
- const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1381
- try {
1382
- const response = await getRecord({
1383
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId: id },
1384
- ...fetchProps
2308
+ async create(a, b, c, d) {
2309
+ return __privateGet$4(this, _trace).call(this, "create", async () => {
2310
+ const ifVersion = parseIfVersion(b, c, d);
2311
+ if (Array.isArray(a)) {
2312
+ if (a.length === 0)
2313
+ return [];
2314
+ const ids = await __privateMethod$2(this, _insertRecords, insertRecords_fn).call(this, a, { ifVersion, createOnly: true });
2315
+ const columns = isStringArray(b) ? b : ["*"];
2316
+ const result = await this.read(ids, columns);
2317
+ return result;
2318
+ }
2319
+ if (isString(a) && isObject(b)) {
2320
+ if (a === "")
2321
+ throw new Error("The id can't be empty");
2322
+ const columns = isStringArray(c) ? c : void 0;
2323
+ return await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a, b, columns, { createOnly: true, ifVersion });
2324
+ }
2325
+ if (isObject(a) && isString(a.id)) {
2326
+ if (a.id === "")
2327
+ throw new Error("The id can't be empty");
2328
+ const columns = isStringArray(b) ? b : void 0;
2329
+ return await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a.id, { ...a, id: void 0 }, columns, { createOnly: true, ifVersion });
2330
+ }
2331
+ if (isObject(a)) {
2332
+ const columns = isStringArray(b) ? b : void 0;
2333
+ return __privateMethod$2(this, _insertRecordWithoutId, insertRecordWithoutId_fn).call(this, a, columns);
2334
+ }
2335
+ throw new Error("Invalid arguments for create method");
2336
+ });
2337
+ }
2338
+ async read(a, b) {
2339
+ return __privateGet$4(this, _trace).call(this, "read", async () => {
2340
+ const columns = isStringArray(b) ? b : ["*"];
2341
+ if (Array.isArray(a)) {
2342
+ if (a.length === 0)
2343
+ return [];
2344
+ const ids = a.map((item) => extractId(item));
2345
+ const finalObjects = await this.getAll({ filter: { id: { $any: compact(ids) } }, columns });
2346
+ const dictionary = finalObjects.reduce((acc, object) => {
2347
+ acc[object.id] = object;
2348
+ return acc;
2349
+ }, {});
2350
+ return ids.map((id2) => dictionary[id2 ?? ""] ?? null);
2351
+ }
2352
+ const id = extractId(a);
2353
+ if (id) {
2354
+ const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
2355
+ try {
2356
+ const response = await getRecord({
2357
+ pathParams: {
2358
+ workspace: "{workspaceId}",
2359
+ dbBranchName: "{dbBranch}",
2360
+ region: "{region}",
2361
+ tableName: __privateGet$4(this, _table),
2362
+ recordId: id
2363
+ },
2364
+ queryParams: { columns },
2365
+ ...fetchProps
2366
+ });
2367
+ const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
2368
+ return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
2369
+ } catch (e) {
2370
+ if (isObject(e) && e.status === 404) {
2371
+ return null;
2372
+ }
2373
+ throw e;
2374
+ }
2375
+ }
2376
+ return null;
2377
+ });
2378
+ }
2379
+ async readOrThrow(a, b) {
2380
+ return __privateGet$4(this, _trace).call(this, "readOrThrow", async () => {
2381
+ const result = await this.read(a, b);
2382
+ if (Array.isArray(result)) {
2383
+ const missingIds = compact(
2384
+ a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
2385
+ );
2386
+ if (missingIds.length > 0) {
2387
+ throw new Error(`Could not find records with ids: ${missingIds.join(", ")}`);
2388
+ }
2389
+ return result;
2390
+ }
2391
+ if (result === null) {
2392
+ const id = extractId(a) ?? "unknown";
2393
+ throw new Error(`Record with id ${id} not found`);
2394
+ }
2395
+ return result;
2396
+ });
2397
+ }
2398
+ async update(a, b, c, d) {
2399
+ return __privateGet$4(this, _trace).call(this, "update", async () => {
2400
+ const ifVersion = parseIfVersion(b, c, d);
2401
+ if (Array.isArray(a)) {
2402
+ if (a.length === 0)
2403
+ return [];
2404
+ const existing = await this.read(a, ["id"]);
2405
+ const updates = a.filter((_item, index) => existing[index] !== null);
2406
+ await __privateMethod$2(this, _updateRecords, updateRecords_fn).call(this, updates, {
2407
+ ifVersion,
2408
+ upsert: false
1385
2409
  });
1386
- const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
1387
- return initObject(this.db, schemaTables, __privateGet$4(this, _table), response);
1388
- } catch (e) {
1389
- if (isObject(e) && e.status === 404) {
2410
+ const columns = isStringArray(b) ? b : ["*"];
2411
+ const result = await this.read(a, columns);
2412
+ return result;
2413
+ }
2414
+ try {
2415
+ if (isString(a) && isObject(b)) {
2416
+ const columns = isStringArray(c) ? c : void 0;
2417
+ return await __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a, b, columns, { ifVersion });
2418
+ }
2419
+ if (isObject(a) && isString(a.id)) {
2420
+ const columns = isStringArray(b) ? b : void 0;
2421
+ return await __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns, { ifVersion });
2422
+ }
2423
+ } catch (error) {
2424
+ if (error.status === 422)
1390
2425
  return null;
2426
+ throw error;
2427
+ }
2428
+ throw new Error("Invalid arguments for update method");
2429
+ });
2430
+ }
2431
+ async updateOrThrow(a, b, c, d) {
2432
+ return __privateGet$4(this, _trace).call(this, "updateOrThrow", async () => {
2433
+ const result = await this.update(a, b, c, d);
2434
+ if (Array.isArray(result)) {
2435
+ const missingIds = compact(
2436
+ a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
2437
+ );
2438
+ if (missingIds.length > 0) {
2439
+ throw new Error(`Could not find records with ids: ${missingIds.join(", ")}`);
1391
2440
  }
1392
- throw e;
2441
+ return result;
1393
2442
  }
1394
- }
2443
+ if (result === null) {
2444
+ const id = extractId(a) ?? "unknown";
2445
+ throw new Error(`Record with id ${id} not found`);
2446
+ }
2447
+ return result;
2448
+ });
1395
2449
  }
1396
- async update(a, b) {
1397
- if (Array.isArray(a)) {
1398
- if (a.length === 0)
1399
- return [];
1400
- if (a.length > 100) {
1401
- console.warn("Bulk update operation is not optimized in the Xata API yet, this request might be slow");
2450
+ async createOrUpdate(a, b, c, d) {
2451
+ return __privateGet$4(this, _trace).call(this, "createOrUpdate", async () => {
2452
+ const ifVersion = parseIfVersion(b, c, d);
2453
+ if (Array.isArray(a)) {
2454
+ if (a.length === 0)
2455
+ return [];
2456
+ await __privateMethod$2(this, _updateRecords, updateRecords_fn).call(this, a, {
2457
+ ifVersion,
2458
+ upsert: true
2459
+ });
2460
+ const columns = isStringArray(b) ? b : ["*"];
2461
+ const result = await this.read(a, columns);
2462
+ return result;
1402
2463
  }
1403
- return Promise.all(a.map((object) => this.update(object)));
1404
- }
1405
- if (isString(a) && isObject(b)) {
1406
- await __privateMethod$2(this, _invalidateCache, invalidateCache_fn).call(this, a);
1407
- const record = await __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a, b);
1408
- await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
1409
- return record;
1410
- }
1411
- if (isObject(a) && isString(a.id)) {
1412
- await __privateMethod$2(this, _invalidateCache, invalidateCache_fn).call(this, a.id);
1413
- const record = await __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a.id, { ...a, id: void 0 });
1414
- await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
1415
- return record;
1416
- }
1417
- throw new Error("Invalid arguments for update method");
1418
- }
1419
- async createOrUpdate(a, b) {
1420
- if (Array.isArray(a)) {
1421
- if (a.length === 0)
1422
- return [];
1423
- if (a.length > 100) {
1424
- console.warn("Bulk update operation is not optimized in the Xata API yet, this request might be slow");
2464
+ if (isString(a) && isObject(b)) {
2465
+ const columns = isStringArray(c) ? c : void 0;
2466
+ return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a, b, columns, { ifVersion });
1425
2467
  }
1426
- return Promise.all(a.map((object) => this.createOrUpdate(object)));
1427
- }
1428
- if (isString(a) && isObject(b)) {
1429
- await __privateMethod$2(this, _invalidateCache, invalidateCache_fn).call(this, a);
1430
- const record = await __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a, b);
1431
- await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
1432
- return record;
1433
- }
1434
- if (isObject(a) && isString(a.id)) {
1435
- await __privateMethod$2(this, _invalidateCache, invalidateCache_fn).call(this, a.id);
1436
- const record = await __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a.id, { ...a, id: void 0 });
1437
- await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
1438
- return record;
1439
- }
1440
- throw new Error("Invalid arguments for createOrUpdate method");
1441
- }
1442
- async delete(a) {
1443
- if (Array.isArray(a)) {
1444
- if (a.length === 0)
1445
- return;
1446
- if (a.length > 100) {
1447
- console.warn("Bulk delete operation is not optimized in the Xata API yet, this request might be slow");
2468
+ if (isObject(a) && isString(a.id)) {
2469
+ const columns = isStringArray(c) ? c : void 0;
2470
+ return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns, { ifVersion });
1448
2471
  }
1449
- await Promise.all(a.map((id) => this.delete(id)));
1450
- return;
1451
- }
1452
- if (isString(a)) {
1453
- await __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a);
1454
- await __privateMethod$2(this, _invalidateCache, invalidateCache_fn).call(this, a);
1455
- return;
1456
- }
1457
- if (isObject(a) && isString(a.id)) {
1458
- await __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a.id);
1459
- await __privateMethod$2(this, _invalidateCache, invalidateCache_fn).call(this, a.id);
1460
- return;
1461
- }
1462
- throw new Error("Invalid arguments for delete method");
2472
+ throw new Error("Invalid arguments for createOrUpdate method");
2473
+ });
2474
+ }
2475
+ async createOrReplace(a, b, c, d) {
2476
+ return __privateGet$4(this, _trace).call(this, "createOrReplace", async () => {
2477
+ const ifVersion = parseIfVersion(b, c, d);
2478
+ if (Array.isArray(a)) {
2479
+ if (a.length === 0)
2480
+ return [];
2481
+ const ids = await __privateMethod$2(this, _insertRecords, insertRecords_fn).call(this, a, { ifVersion, createOnly: false });
2482
+ const columns = isStringArray(b) ? b : ["*"];
2483
+ const result = await this.read(ids, columns);
2484
+ return result;
2485
+ }
2486
+ if (isString(a) && isObject(b)) {
2487
+ const columns = isStringArray(c) ? c : void 0;
2488
+ return __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a, b, columns, { createOnly: false, ifVersion });
2489
+ }
2490
+ if (isObject(a) && isString(a.id)) {
2491
+ const columns = isStringArray(c) ? c : void 0;
2492
+ return __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a.id, { ...a, id: void 0 }, columns, { createOnly: false, ifVersion });
2493
+ }
2494
+ throw new Error("Invalid arguments for createOrReplace method");
2495
+ });
2496
+ }
2497
+ async delete(a, b) {
2498
+ return __privateGet$4(this, _trace).call(this, "delete", async () => {
2499
+ if (Array.isArray(a)) {
2500
+ if (a.length === 0)
2501
+ return [];
2502
+ const ids = a.map((o) => {
2503
+ if (isString(o))
2504
+ return o;
2505
+ if (isString(o.id))
2506
+ return o.id;
2507
+ throw new Error("Invalid arguments for delete method");
2508
+ });
2509
+ const columns = isStringArray(b) ? b : ["*"];
2510
+ const result = await this.read(a, columns);
2511
+ await __privateMethod$2(this, _deleteRecords, deleteRecords_fn).call(this, ids);
2512
+ return result;
2513
+ }
2514
+ if (isString(a)) {
2515
+ return __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a, b);
2516
+ }
2517
+ if (isObject(a) && isString(a.id)) {
2518
+ return __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a.id, b);
2519
+ }
2520
+ throw new Error("Invalid arguments for delete method");
2521
+ });
2522
+ }
2523
+ async deleteOrThrow(a, b) {
2524
+ return __privateGet$4(this, _trace).call(this, "deleteOrThrow", async () => {
2525
+ const result = await this.delete(a, b);
2526
+ if (Array.isArray(result)) {
2527
+ const missingIds = compact(
2528
+ a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
2529
+ );
2530
+ if (missingIds.length > 0) {
2531
+ throw new Error(`Could not find records with ids: ${missingIds.join(", ")}`);
2532
+ }
2533
+ return result;
2534
+ } else if (result === null) {
2535
+ const id = extractId(a) ?? "unknown";
2536
+ throw new Error(`Record with id ${id} not found`);
2537
+ }
2538
+ return result;
2539
+ });
1463
2540
  }
1464
2541
  async search(query, options = {}) {
1465
- const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1466
- const { records } = await searchTable({
1467
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table) },
1468
- body: {
1469
- query,
1470
- fuzziness: options.fuzziness,
1471
- highlight: options.highlight,
1472
- filter: options.filter
1473
- },
1474
- ...fetchProps
2542
+ return __privateGet$4(this, _trace).call(this, "search", async () => {
2543
+ const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
2544
+ const { records } = await searchTable({
2545
+ pathParams: {
2546
+ workspace: "{workspaceId}",
2547
+ dbBranchName: "{dbBranch}",
2548
+ region: "{region}",
2549
+ tableName: __privateGet$4(this, _table)
2550
+ },
2551
+ body: {
2552
+ query,
2553
+ fuzziness: options.fuzziness,
2554
+ prefix: options.prefix,
2555
+ highlight: options.highlight,
2556
+ filter: options.filter,
2557
+ boosters: options.boosters,
2558
+ page: options.page,
2559
+ target: options.target
2560
+ },
2561
+ ...fetchProps
2562
+ });
2563
+ const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
2564
+ return records.map((item) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), item, ["*"]));
2565
+ });
2566
+ }
2567
+ async aggregate(aggs, filter) {
2568
+ return __privateGet$4(this, _trace).call(this, "aggregate", async () => {
2569
+ const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
2570
+ const result = await aggregateTable({
2571
+ pathParams: {
2572
+ workspace: "{workspaceId}",
2573
+ dbBranchName: "{dbBranch}",
2574
+ region: "{region}",
2575
+ tableName: __privateGet$4(this, _table)
2576
+ },
2577
+ body: { aggs, filter },
2578
+ ...fetchProps
2579
+ });
2580
+ return result;
1475
2581
  });
1476
- const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
1477
- return records.map((item) => initObject(this.db, schemaTables, __privateGet$4(this, _table), item));
1478
2582
  }
1479
2583
  async query(query) {
1480
- const cacheQuery = await __privateMethod$2(this, _getCacheQuery, getCacheQuery_fn).call(this, query);
1481
- if (cacheQuery)
1482
- return new Page(query, cacheQuery.meta, cacheQuery.records);
1483
- const data = query.getQueryOptions();
1484
- const body = {
1485
- filter: Object.values(data.filter ?? {}).some(Boolean) ? data.filter : void 0,
1486
- sort: data.sort !== void 0 ? buildSortFilter(data.sort) : void 0,
1487
- page: data.pagination,
1488
- columns: data.columns
1489
- };
1490
- const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1491
- const { meta, records: objects } = await queryTable({
1492
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table) },
1493
- body,
1494
- ...fetchProps
2584
+ return __privateGet$4(this, _trace).call(this, "query", async () => {
2585
+ const cacheQuery = await __privateMethod$2(this, _getCacheQuery, getCacheQuery_fn).call(this, query);
2586
+ if (cacheQuery)
2587
+ return new Page(query, cacheQuery.meta, cacheQuery.records);
2588
+ const data = query.getQueryOptions();
2589
+ const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
2590
+ const { meta, records: objects } = await queryTable({
2591
+ pathParams: {
2592
+ workspace: "{workspaceId}",
2593
+ dbBranchName: "{dbBranch}",
2594
+ region: "{region}",
2595
+ tableName: __privateGet$4(this, _table)
2596
+ },
2597
+ body: {
2598
+ filter: cleanFilter(data.filter),
2599
+ sort: data.sort !== void 0 ? buildSortFilter(data.sort) : void 0,
2600
+ page: data.pagination,
2601
+ columns: data.columns ?? ["*"],
2602
+ consistency: data.consistency
2603
+ },
2604
+ fetchOptions: data.fetchOptions,
2605
+ ...fetchProps
2606
+ });
2607
+ const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
2608
+ const records = objects.map(
2609
+ (record) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), record, data.columns ?? ["*"])
2610
+ );
2611
+ await __privateMethod$2(this, _setCacheQuery, setCacheQuery_fn).call(this, query, meta, records);
2612
+ return new Page(query, meta, records);
2613
+ });
2614
+ }
2615
+ async summarizeTable(query, summaries, summariesFilter) {
2616
+ return __privateGet$4(this, _trace).call(this, "summarize", async () => {
2617
+ const data = query.getQueryOptions();
2618
+ const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
2619
+ const result = await summarizeTable({
2620
+ pathParams: {
2621
+ workspace: "{workspaceId}",
2622
+ dbBranchName: "{dbBranch}",
2623
+ region: "{region}",
2624
+ tableName: __privateGet$4(this, _table)
2625
+ },
2626
+ body: {
2627
+ filter: cleanFilter(data.filter),
2628
+ sort: data.sort !== void 0 ? buildSortFilter(data.sort) : void 0,
2629
+ columns: data.columns,
2630
+ consistency: data.consistency,
2631
+ page: data.pagination?.size !== void 0 ? { size: data.pagination?.size } : void 0,
2632
+ summaries,
2633
+ summariesFilter
2634
+ },
2635
+ ...fetchProps
2636
+ });
2637
+ return result;
1495
2638
  });
1496
- const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
1497
- const records = objects.map((record) => initObject(this.db, schemaTables, __privateGet$4(this, _table), record));
1498
- await __privateMethod$2(this, _setCacheQuery, setCacheQuery_fn).call(this, query, meta, records);
1499
- return new Page(query, meta, records);
1500
2639
  }
1501
2640
  }
1502
2641
  _table = new WeakMap();
1503
2642
  _getFetchProps = new WeakMap();
2643
+ _db = new WeakMap();
1504
2644
  _cache = new WeakMap();
1505
2645
  _schemaTables$2 = new WeakMap();
2646
+ _trace = new WeakMap();
1506
2647
  _insertRecordWithoutId = new WeakSet();
1507
- insertRecordWithoutId_fn = async function(object) {
2648
+ insertRecordWithoutId_fn = async function(object, columns = ["*"]) {
1508
2649
  const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1509
2650
  const record = transformObjectLinks(object);
1510
2651
  const response = await insertRecord({
1511
2652
  pathParams: {
1512
2653
  workspace: "{workspaceId}",
1513
2654
  dbBranchName: "{dbBranch}",
2655
+ region: "{region}",
1514
2656
  tableName: __privateGet$4(this, _table)
1515
2657
  },
2658
+ queryParams: { columns },
1516
2659
  body: record,
1517
2660
  ...fetchProps
1518
2661
  });
1519
- const finalObject = await this.read(response.id);
1520
- if (!finalObject) {
1521
- throw new Error("The server failed to save the record");
1522
- }
1523
- return finalObject;
2662
+ const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
2663
+ return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
1524
2664
  };
1525
2665
  _insertRecordWithId = new WeakSet();
1526
- insertRecordWithId_fn = async function(recordId, object) {
2666
+ insertRecordWithId_fn = async function(recordId, object, columns = ["*"], { createOnly, ifVersion }) {
1527
2667
  const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1528
2668
  const record = transformObjectLinks(object);
1529
2669
  const response = await insertRecordWithID({
1530
2670
  pathParams: {
1531
2671
  workspace: "{workspaceId}",
1532
2672
  dbBranchName: "{dbBranch}",
2673
+ region: "{region}",
1533
2674
  tableName: __privateGet$4(this, _table),
1534
2675
  recordId
1535
2676
  },
1536
2677
  body: record,
1537
- queryParams: { createOnly: true },
2678
+ queryParams: { createOnly, columns, ifVersion },
1538
2679
  ...fetchProps
1539
2680
  });
1540
- const finalObject = await this.read(response.id);
1541
- if (!finalObject) {
1542
- throw new Error("The server failed to save the record");
1543
- }
1544
- return finalObject;
2681
+ const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
2682
+ return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
1545
2683
  };
1546
- _bulkInsertTableRecords = new WeakSet();
1547
- bulkInsertTableRecords_fn = async function(objects) {
2684
+ _insertRecords = new WeakSet();
2685
+ insertRecords_fn = async function(objects, { createOnly, ifVersion }) {
1548
2686
  const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1549
- const records = objects.map((object) => transformObjectLinks(object));
1550
- const { recordIDs } = await bulkInsertTableRecords({
1551
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table) },
1552
- body: { records },
1553
- ...fetchProps
1554
- });
1555
- const finalObjects = await this.read(recordIDs);
1556
- if (finalObjects.length !== objects.length) {
1557
- throw new Error("The server failed to save some records");
2687
+ const chunkedOperations = chunk(
2688
+ objects.map((object) => ({
2689
+ insert: { table: __privateGet$4(this, _table), record: transformObjectLinks(object), createOnly, ifVersion }
2690
+ })),
2691
+ BULK_OPERATION_MAX_SIZE
2692
+ );
2693
+ const ids = [];
2694
+ for (const operations of chunkedOperations) {
2695
+ const { results } = await branchTransaction({
2696
+ pathParams: {
2697
+ workspace: "{workspaceId}",
2698
+ dbBranchName: "{dbBranch}",
2699
+ region: "{region}"
2700
+ },
2701
+ body: { operations },
2702
+ ...fetchProps
2703
+ });
2704
+ for (const result of results) {
2705
+ if (result.operation === "insert") {
2706
+ ids.push(result.id);
2707
+ } else {
2708
+ ids.push(null);
2709
+ }
2710
+ }
1558
2711
  }
1559
- const dictionary = finalObjects.reduce((acc, object) => {
1560
- acc[object.id] = object;
1561
- return acc;
1562
- }, {});
1563
- return recordIDs.map((id) => dictionary[id]);
2712
+ return ids;
1564
2713
  };
1565
2714
  _updateRecordWithID = new WeakSet();
1566
- updateRecordWithID_fn = async function(recordId, object) {
2715
+ updateRecordWithID_fn = async function(recordId, object, columns = ["*"], { ifVersion }) {
1567
2716
  const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1568
- const record = transformObjectLinks(object);
1569
- const response = await updateRecordWithID({
1570
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
1571
- body: record,
1572
- ...fetchProps
1573
- });
1574
- const item = await this.read(response.id);
1575
- if (!item)
1576
- throw new Error("The server failed to save the record");
1577
- return item;
2717
+ const { id: _id, ...record } = transformObjectLinks(object);
2718
+ try {
2719
+ const response = await updateRecordWithID({
2720
+ pathParams: {
2721
+ workspace: "{workspaceId}",
2722
+ dbBranchName: "{dbBranch}",
2723
+ region: "{region}",
2724
+ tableName: __privateGet$4(this, _table),
2725
+ recordId
2726
+ },
2727
+ queryParams: { columns, ifVersion },
2728
+ body: record,
2729
+ ...fetchProps
2730
+ });
2731
+ const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
2732
+ return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
2733
+ } catch (e) {
2734
+ if (isObject(e) && e.status === 404) {
2735
+ return null;
2736
+ }
2737
+ throw e;
2738
+ }
2739
+ };
2740
+ _updateRecords = new WeakSet();
2741
+ updateRecords_fn = async function(objects, { ifVersion, upsert }) {
2742
+ const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
2743
+ const chunkedOperations = chunk(
2744
+ objects.map(({ id, ...object }) => ({
2745
+ update: { table: __privateGet$4(this, _table), id, ifVersion, upsert, fields: transformObjectLinks(object) }
2746
+ })),
2747
+ BULK_OPERATION_MAX_SIZE
2748
+ );
2749
+ const ids = [];
2750
+ for (const operations of chunkedOperations) {
2751
+ const { results } = await branchTransaction({
2752
+ pathParams: {
2753
+ workspace: "{workspaceId}",
2754
+ dbBranchName: "{dbBranch}",
2755
+ region: "{region}"
2756
+ },
2757
+ body: { operations },
2758
+ ...fetchProps
2759
+ });
2760
+ for (const result of results) {
2761
+ if (result.operation === "update") {
2762
+ ids.push(result.id);
2763
+ } else {
2764
+ ids.push(null);
2765
+ }
2766
+ }
2767
+ }
2768
+ return ids;
1578
2769
  };
1579
2770
  _upsertRecordWithID = new WeakSet();
1580
- upsertRecordWithID_fn = async function(recordId, object) {
2771
+ upsertRecordWithID_fn = async function(recordId, object, columns = ["*"], { ifVersion }) {
1581
2772
  const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1582
2773
  const response = await upsertRecordWithID({
1583
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
2774
+ pathParams: {
2775
+ workspace: "{workspaceId}",
2776
+ dbBranchName: "{dbBranch}",
2777
+ region: "{region}",
2778
+ tableName: __privateGet$4(this, _table),
2779
+ recordId
2780
+ },
2781
+ queryParams: { columns, ifVersion },
1584
2782
  body: object,
1585
2783
  ...fetchProps
1586
2784
  });
1587
- const item = await this.read(response.id);
1588
- if (!item)
1589
- throw new Error("The server failed to save the record");
1590
- return item;
2785
+ const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
2786
+ return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
1591
2787
  };
1592
2788
  _deleteRecord = new WeakSet();
1593
- deleteRecord_fn = async function(recordId) {
2789
+ deleteRecord_fn = async function(recordId, columns = ["*"]) {
1594
2790
  const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1595
- await deleteRecord({
1596
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
1597
- ...fetchProps
1598
- });
2791
+ try {
2792
+ const response = await deleteRecord({
2793
+ pathParams: {
2794
+ workspace: "{workspaceId}",
2795
+ dbBranchName: "{dbBranch}",
2796
+ region: "{region}",
2797
+ tableName: __privateGet$4(this, _table),
2798
+ recordId
2799
+ },
2800
+ queryParams: { columns },
2801
+ ...fetchProps
2802
+ });
2803
+ const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
2804
+ return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
2805
+ } catch (e) {
2806
+ if (isObject(e) && e.status === 404) {
2807
+ return null;
2808
+ }
2809
+ throw e;
2810
+ }
1599
2811
  };
1600
- _invalidateCache = new WeakSet();
1601
- invalidateCache_fn = async function(recordId) {
1602
- await __privateGet$4(this, _cache).delete(`rec_${__privateGet$4(this, _table)}:${recordId}`);
1603
- const cacheItems = await __privateGet$4(this, _cache).getAll();
1604
- const queries = Object.entries(cacheItems).filter(([key]) => key.startsWith("query_"));
1605
- for (const [key, value] of queries) {
1606
- const ids = getIds(value);
1607
- if (ids.includes(recordId))
1608
- await __privateGet$4(this, _cache).delete(key);
1609
- }
1610
- };
1611
- _setCacheRecord = new WeakSet();
1612
- setCacheRecord_fn = async function(record) {
1613
- if (!__privateGet$4(this, _cache).cacheRecords)
1614
- return;
1615
- await __privateGet$4(this, _cache).set(`rec_${__privateGet$4(this, _table)}:${record.id}`, record);
1616
- };
1617
- _getCacheRecord = new WeakSet();
1618
- getCacheRecord_fn = async function(recordId) {
1619
- if (!__privateGet$4(this, _cache).cacheRecords)
1620
- return null;
1621
- return __privateGet$4(this, _cache).get(`rec_${__privateGet$4(this, _table)}:${recordId}`);
2812
+ _deleteRecords = new WeakSet();
2813
+ deleteRecords_fn = async function(recordIds) {
2814
+ const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
2815
+ const chunkedOperations = chunk(
2816
+ recordIds.map((id) => ({ delete: { table: __privateGet$4(this, _table), id } })),
2817
+ BULK_OPERATION_MAX_SIZE
2818
+ );
2819
+ for (const operations of chunkedOperations) {
2820
+ await branchTransaction({
2821
+ pathParams: {
2822
+ workspace: "{workspaceId}",
2823
+ dbBranchName: "{dbBranch}",
2824
+ region: "{region}"
2825
+ },
2826
+ body: { operations },
2827
+ ...fetchProps
2828
+ });
2829
+ }
1622
2830
  };
1623
2831
  _setCacheQuery = new WeakSet();
1624
2832
  setCacheQuery_fn = async function(query, meta, records) {
@@ -1642,7 +2850,7 @@ getSchemaTables_fn$1 = async function() {
1642
2850
  return __privateGet$4(this, _schemaTables$2);
1643
2851
  const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
1644
2852
  const { schema } = await getBranchDetails({
1645
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
2853
+ pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
1646
2854
  ...fetchProps
1647
2855
  });
1648
2856
  __privateSet$4(this, _schemaTables$2, schema.tables);
@@ -1655,22 +2863,24 @@ const transformObjectLinks = (object) => {
1655
2863
  return { ...acc, [key]: isIdentifiable(value) ? value.id : value };
1656
2864
  }, {});
1657
2865
  };
1658
- const initObject = (db, schemaTables, table, object) => {
1659
- const result = {};
2866
+ const initObject = (db, schemaTables, table, object, selectedColumns) => {
2867
+ const data = {};
1660
2868
  const { xata, ...rest } = object ?? {};
1661
- Object.assign(result, rest);
2869
+ Object.assign(data, rest);
1662
2870
  const { columns } = schemaTables.find(({ name }) => name === table) ?? {};
1663
2871
  if (!columns)
1664
2872
  console.error(`Table ${table} not found in schema`);
1665
2873
  for (const column of columns ?? []) {
1666
- const value = result[column.name];
2874
+ if (!isValidColumn(selectedColumns, column))
2875
+ continue;
2876
+ const value = data[column.name];
1667
2877
  switch (column.type) {
1668
2878
  case "datetime": {
1669
- const date = value !== void 0 ? new Date(value) : void 0;
1670
- if (date && isNaN(date.getTime())) {
2879
+ const date = value !== void 0 ? new Date(value) : null;
2880
+ if (date !== null && isNaN(date.getTime())) {
1671
2881
  console.error(`Failed to parse date ${value} for field ${column.name}`);
1672
- } else if (date) {
1673
- result[column.name] = date;
2882
+ } else {
2883
+ data[column.name] = date;
1674
2884
  }
1675
2885
  break;
1676
2886
  }
@@ -1679,38 +2889,82 @@ const initObject = (db, schemaTables, table, object) => {
1679
2889
  if (!linkTable) {
1680
2890
  console.error(`Failed to parse link for field ${column.name}`);
1681
2891
  } else if (isObject(value)) {
1682
- result[column.name] = initObject(db, schemaTables, linkTable, value);
2892
+ const selectedLinkColumns = selectedColumns.reduce((acc, item) => {
2893
+ if (item === column.name) {
2894
+ return [...acc, "*"];
2895
+ }
2896
+ if (item.startsWith(`${column.name}.`)) {
2897
+ const [, ...path] = item.split(".");
2898
+ return [...acc, path.join(".")];
2899
+ }
2900
+ return acc;
2901
+ }, []);
2902
+ data[column.name] = initObject(db, schemaTables, linkTable, value, selectedLinkColumns);
2903
+ } else {
2904
+ data[column.name] = null;
1683
2905
  }
1684
2906
  break;
1685
2907
  }
2908
+ default:
2909
+ data[column.name] = value ?? null;
2910
+ if (column.notNull === true && value === null) {
2911
+ console.error(`Parse error, column ${column.name} is non nullable and value resolves null`);
2912
+ }
2913
+ break;
1686
2914
  }
1687
2915
  }
1688
- result.read = function() {
1689
- return db[table].read(result["id"]);
2916
+ const record = { ...data };
2917
+ record.read = function(columns2) {
2918
+ return db[table].read(record["id"], columns2);
1690
2919
  };
1691
- result.update = function(data) {
1692
- return db[table].update(result["id"], data);
2920
+ record.update = function(data2, b, c) {
2921
+ const columns2 = isStringArray(b) ? b : ["*"];
2922
+ const ifVersion = parseIfVersion(b, c);
2923
+ return db[table].update(record["id"], data2, columns2, { ifVersion });
1693
2924
  };
1694
- result.delete = function() {
1695
- return db[table].delete(result["id"]);
2925
+ record.replace = function(data2, b, c) {
2926
+ const columns2 = isStringArray(b) ? b : ["*"];
2927
+ const ifVersion = parseIfVersion(b, c);
2928
+ return db[table].createOrReplace(record["id"], data2, columns2, { ifVersion });
1696
2929
  };
1697
- result.getMetadata = function() {
2930
+ record.delete = function() {
2931
+ return db[table].delete(record["id"]);
2932
+ };
2933
+ record.getMetadata = function() {
1698
2934
  return xata;
1699
2935
  };
1700
- for (const prop of ["read", "update", "delete", "getMetadata"]) {
1701
- Object.defineProperty(result, prop, { enumerable: false });
2936
+ record.toJSON = function() {
2937
+ return JSON.parse(JSON.stringify(transformObjectLinks(data)));
2938
+ };
2939
+ for (const prop of ["read", "update", "replace", "delete", "getMetadata", "toJSON"]) {
2940
+ Object.defineProperty(record, prop, { enumerable: false });
1702
2941
  }
1703
- Object.freeze(result);
1704
- return result;
2942
+ Object.freeze(record);
2943
+ return record;
1705
2944
  };
1706
- function getIds(value) {
1707
- if (Array.isArray(value)) {
1708
- return value.map((item) => getIds(item)).flat();
2945
+ function extractId(value) {
2946
+ if (isString(value))
2947
+ return value;
2948
+ if (isObject(value) && isString(value.id))
2949
+ return value.id;
2950
+ return void 0;
2951
+ }
2952
+ function isValidColumn(columns, column) {
2953
+ if (columns.includes("*"))
2954
+ return true;
2955
+ if (column.type === "link") {
2956
+ const linkColumns = columns.filter((item) => item.startsWith(column.name));
2957
+ return linkColumns.length > 0;
2958
+ }
2959
+ return columns.includes(column.name);
2960
+ }
2961
+ function parseIfVersion(...args) {
2962
+ for (const arg of args) {
2963
+ if (isObject(arg) && isNumber(arg.ifVersion)) {
2964
+ return arg.ifVersion;
2965
+ }
1709
2966
  }
1710
- if (!isObject(value))
1711
- return [];
1712
- const nestedIds = Object.values(value).map((item) => getIds(item)).flat();
1713
- return isString(value.id) ? [value.id, ...nestedIds] : nestedIds;
2967
+ return void 0;
1714
2968
  }
1715
2969
 
1716
2970
  var __accessCheck$3 = (obj, member, msg) => {
@@ -1737,7 +2991,6 @@ class SimpleCache {
1737
2991
  __privateAdd$3(this, _map, void 0);
1738
2992
  __privateSet$3(this, _map, /* @__PURE__ */ new Map());
1739
2993
  this.capacity = options.max ?? 500;
1740
- this.cacheRecords = options.cacheRecords ?? true;
1741
2994
  this.defaultQueryTTL = options.defaultQueryTTL ?? 60 * 1e3;
1742
2995
  }
1743
2996
  async getAll() {
@@ -1763,18 +3016,25 @@ class SimpleCache {
1763
3016
  }
1764
3017
  _map = new WeakMap();
1765
3018
 
1766
- const gt = (value) => ({ $gt: value });
1767
- const ge = (value) => ({ $ge: value });
1768
- const gte = (value) => ({ $ge: value });
1769
- const lt = (value) => ({ $lt: value });
1770
- const lte = (value) => ({ $le: value });
1771
- const le = (value) => ({ $le: value });
3019
+ const greaterThan = (value) => ({ $gt: value });
3020
+ const gt = greaterThan;
3021
+ const greaterThanEquals = (value) => ({ $ge: value });
3022
+ const greaterEquals = greaterThanEquals;
3023
+ const gte = greaterThanEquals;
3024
+ const ge = greaterThanEquals;
3025
+ const lessThan = (value) => ({ $lt: value });
3026
+ const lt = lessThan;
3027
+ const lessThanEquals = (value) => ({ $le: value });
3028
+ const lessEquals = lessThanEquals;
3029
+ const lte = lessThanEquals;
3030
+ const le = lessThanEquals;
1772
3031
  const exists = (column) => ({ $exists: column });
1773
3032
  const notExists = (column) => ({ $notExists: column });
1774
3033
  const startsWith = (value) => ({ $startsWith: value });
1775
3034
  const endsWith = (value) => ({ $endsWith: value });
1776
3035
  const pattern = (value) => ({ $pattern: value });
1777
3036
  const is = (value) => ({ $is: value });
3037
+ const equals = is;
1778
3038
  const isNot = (value) => ({ $isNot: value });
1779
3039
  const contains = (value) => ({ $contains: value });
1780
3040
  const includes = (value) => ({ $includes: value });
@@ -1809,16 +3069,19 @@ class SchemaPlugin extends XataPlugin {
1809
3069
  __privateSet$2(this, _schemaTables$1, schemaTables);
1810
3070
  }
1811
3071
  build(pluginOptions) {
1812
- const db = new Proxy({}, {
1813
- get: (_target, table) => {
1814
- if (!isString(table))
1815
- throw new Error("Invalid table name");
1816
- if (__privateGet$2(this, _tables)[table] === void 0) {
1817
- __privateGet$2(this, _tables)[table] = new RestRepository({ db, pluginOptions, table, schemaTables: __privateGet$2(this, _schemaTables$1) });
3072
+ const db = new Proxy(
3073
+ {},
3074
+ {
3075
+ get: (_target, table) => {
3076
+ if (!isString(table))
3077
+ throw new Error("Invalid table name");
3078
+ if (__privateGet$2(this, _tables)[table] === void 0) {
3079
+ __privateGet$2(this, _tables)[table] = new RestRepository({ db, pluginOptions, table, schemaTables: __privateGet$2(this, _schemaTables$1) });
3080
+ }
3081
+ return __privateGet$2(this, _tables)[table];
1818
3082
  }
1819
- return __privateGet$2(this, _tables)[table];
1820
3083
  }
1821
- });
3084
+ );
1822
3085
  const tableNames = __privateGet$2(this, _schemaTables$1)?.map(({ name }) => name) ?? [];
1823
3086
  for (const table of tableNames) {
1824
3087
  db[table] = new RestRepository({ db, pluginOptions, table, schemaTables: __privateGet$2(this, _schemaTables$1) });
@@ -1868,7 +3131,7 @@ class SearchPlugin extends XataPlugin {
1868
3131
  const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, getFetchProps);
1869
3132
  return records.map((record) => {
1870
3133
  const { table = "orphan" } = record.xata;
1871
- return { table, record: initObject(this.db, schemaTables, table, record) };
3134
+ return { table, record: initObject(this.db, schemaTables, table, record, ["*"]) };
1872
3135
  });
1873
3136
  },
1874
3137
  byTable: async (query, options = {}) => {
@@ -1877,7 +3140,7 @@ class SearchPlugin extends XataPlugin {
1877
3140
  return records.reduce((acc, record) => {
1878
3141
  const { table = "orphan" } = record.xata;
1879
3142
  const items = acc[table] ?? [];
1880
- const item = initObject(this.db, schemaTables, table, record);
3143
+ const item = initObject(this.db, schemaTables, table, record, ["*"]);
1881
3144
  return { ...acc, [table]: [...items, item] };
1882
3145
  }, {});
1883
3146
  }
@@ -1888,10 +3151,10 @@ _schemaTables = new WeakMap();
1888
3151
  _search = new WeakSet();
1889
3152
  search_fn = async function(query, options, getFetchProps) {
1890
3153
  const fetchProps = await getFetchProps();
1891
- const { tables, fuzziness, highlight } = options ?? {};
3154
+ const { tables, fuzziness, highlight, prefix, page } = options ?? {};
1892
3155
  const { records } = await searchBranch({
1893
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
1894
- body: { tables, query, fuzziness, highlight },
3156
+ pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
3157
+ body: { tables, query, fuzziness, prefix, highlight, page },
1895
3158
  ...fetchProps
1896
3159
  });
1897
3160
  return records;
@@ -1902,25 +3165,37 @@ getSchemaTables_fn = async function(getFetchProps) {
1902
3165
  return __privateGet$1(this, _schemaTables);
1903
3166
  const fetchProps = await getFetchProps();
1904
3167
  const { schema } = await getBranchDetails({
1905
- pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
3168
+ pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
1906
3169
  ...fetchProps
1907
3170
  });
1908
3171
  __privateSet$1(this, _schemaTables, schema.tables);
1909
3172
  return schema.tables;
1910
3173
  };
1911
3174
 
3175
+ class TransactionPlugin extends XataPlugin {
3176
+ build({ getFetchProps }) {
3177
+ return {
3178
+ run: async (operations) => {
3179
+ const fetchProps = await getFetchProps();
3180
+ const response = await branchTransaction({
3181
+ pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
3182
+ body: { operations },
3183
+ ...fetchProps
3184
+ });
3185
+ return response;
3186
+ }
3187
+ };
3188
+ }
3189
+ }
3190
+
1912
3191
  const isBranchStrategyBuilder = (strategy) => {
1913
3192
  return typeof strategy === "function";
1914
3193
  };
1915
3194
 
1916
3195
  async function getCurrentBranchName(options) {
1917
3196
  const { branch, envBranch } = getEnvironment();
1918
- if (branch) {
1919
- const details = await getDatabaseBranch(branch, options);
1920
- if (details)
1921
- return branch;
1922
- console.warn(`Branch ${branch} not found in Xata. Ignoring...`);
1923
- }
3197
+ if (branch)
3198
+ return branch;
1924
3199
  const gitBranch = envBranch || await getGitBranch();
1925
3200
  return resolveXataBranch(gitBranch, options);
1926
3201
  }
@@ -1932,19 +3207,28 @@ async function resolveXataBranch(gitBranch, options) {
1932
3207
  const databaseURL = options?.databaseURL || getDatabaseURL();
1933
3208
  const apiKey = options?.apiKey || getAPIKey();
1934
3209
  if (!databaseURL)
1935
- throw new Error("A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely");
3210
+ throw new Error(
3211
+ "A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely"
3212
+ );
1936
3213
  if (!apiKey)
1937
- throw new Error("An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely");
3214
+ throw new Error(
3215
+ "An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely"
3216
+ );
1938
3217
  const [protocol, , host, , dbName] = databaseURL.split("/");
1939
- const [workspace] = host.split(".");
3218
+ const urlParts = parseWorkspacesUrlParts(host);
3219
+ if (!urlParts)
3220
+ throw new Error(`Unable to parse workspace and region: ${databaseURL}`);
3221
+ const { workspace, region } = urlParts;
1940
3222
  const { fallbackBranch } = getEnvironment();
1941
3223
  const { branch } = await resolveBranch({
1942
3224
  apiKey,
1943
3225
  apiUrl: databaseURL,
1944
3226
  fetchImpl: getFetchImplementation(options?.fetchImpl),
1945
3227
  workspacesApiUrl: `${protocol}//${host}`,
1946
- pathParams: { dbName, workspace },
1947
- queryParams: { gitBranch, fallbackBranch }
3228
+ pathParams: { dbName, workspace, region },
3229
+ queryParams: { gitBranch, fallbackBranch },
3230
+ trace: defaultTrace,
3231
+ clientName: options?.clientName
1948
3232
  });
1949
3233
  return branch;
1950
3234
  }
@@ -1952,19 +3236,26 @@ async function getDatabaseBranch(branch, options) {
1952
3236
  const databaseURL = options?.databaseURL || getDatabaseURL();
1953
3237
  const apiKey = options?.apiKey || getAPIKey();
1954
3238
  if (!databaseURL)
1955
- throw new Error("A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely");
3239
+ throw new Error(
3240
+ "A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely"
3241
+ );
1956
3242
  if (!apiKey)
1957
- throw new Error("An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely");
3243
+ throw new Error(
3244
+ "An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely"
3245
+ );
1958
3246
  const [protocol, , host, , database] = databaseURL.split("/");
1959
- const [workspace] = host.split(".");
1960
- const dbBranchName = `${database}:${branch}`;
3247
+ const urlParts = parseWorkspacesUrlParts(host);
3248
+ if (!urlParts)
3249
+ throw new Error(`Unable to parse workspace and region: ${databaseURL}`);
3250
+ const { workspace, region } = urlParts;
1961
3251
  try {
1962
3252
  return await getBranchDetails({
1963
3253
  apiKey,
1964
3254
  apiUrl: databaseURL,
1965
3255
  fetchImpl: getFetchImplementation(options?.fetchImpl),
1966
3256
  workspacesApiUrl: `${protocol}//${host}`,
1967
- pathParams: { dbBranchName, workspace }
3257
+ pathParams: { dbBranchName: `${database}:${branch}`, workspace, region },
3258
+ trace: defaultTrace
1968
3259
  });
1969
3260
  } catch (err) {
1970
3261
  if (isObject(err) && err.status === 404)
@@ -2004,22 +3295,27 @@ var __privateMethod = (obj, member, method) => {
2004
3295
  return method;
2005
3296
  };
2006
3297
  const buildClient = (plugins) => {
2007
- var _branch, _parseOptions, parseOptions_fn, _getFetchProps, getFetchProps_fn, _evaluateBranch, evaluateBranch_fn, _a;
3298
+ var _branch, _options, _parseOptions, parseOptions_fn, _getFetchProps, getFetchProps_fn, _evaluateBranch, evaluateBranch_fn, _a;
2008
3299
  return _a = class {
2009
3300
  constructor(options = {}, schemaTables) {
2010
3301
  __privateAdd(this, _parseOptions);
2011
3302
  __privateAdd(this, _getFetchProps);
2012
3303
  __privateAdd(this, _evaluateBranch);
2013
3304
  __privateAdd(this, _branch, void 0);
3305
+ __privateAdd(this, _options, void 0);
2014
3306
  const safeOptions = __privateMethod(this, _parseOptions, parseOptions_fn).call(this, options);
3307
+ __privateSet(this, _options, safeOptions);
2015
3308
  const pluginOptions = {
2016
3309
  getFetchProps: () => __privateMethod(this, _getFetchProps, getFetchProps_fn).call(this, safeOptions),
2017
- cache: safeOptions.cache
3310
+ cache: safeOptions.cache,
3311
+ trace: safeOptions.trace
2018
3312
  };
2019
3313
  const db = new SchemaPlugin(schemaTables).build(pluginOptions);
2020
3314
  const search = new SearchPlugin(db, schemaTables).build(pluginOptions);
3315
+ const transactions = new TransactionPlugin().build(pluginOptions);
2021
3316
  this.db = db;
2022
3317
  this.search = search;
3318
+ this.transactions = transactions;
2023
3319
  for (const [key, namespace] of Object.entries(plugins ?? {})) {
2024
3320
  if (namespace === void 0)
2025
3321
  continue;
@@ -2033,21 +3329,46 @@ const buildClient = (plugins) => {
2033
3329
  }
2034
3330
  }
2035
3331
  }
2036
- }, _branch = new WeakMap(), _parseOptions = new WeakSet(), parseOptions_fn = function(options) {
3332
+ async getConfig() {
3333
+ const databaseURL = __privateGet(this, _options).databaseURL;
3334
+ const branch = await __privateGet(this, _options).branch();
3335
+ return { databaseURL, branch };
3336
+ }
3337
+ }, _branch = new WeakMap(), _options = new WeakMap(), _parseOptions = new WeakSet(), parseOptions_fn = function(options) {
3338
+ const enableBrowser = options?.enableBrowser ?? getEnableBrowserVariable() ?? false;
3339
+ const isBrowser = typeof window !== "undefined" && typeof Deno === "undefined";
3340
+ if (isBrowser && !enableBrowser) {
3341
+ throw new Error(
3342
+ "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."
3343
+ );
3344
+ }
2037
3345
  const fetch = getFetchImplementation(options?.fetch);
2038
3346
  const databaseURL = options?.databaseURL || getDatabaseURL();
2039
3347
  const apiKey = options?.apiKey || getAPIKey();
2040
- const cache = options?.cache ?? new SimpleCache({ cacheRecords: false, defaultQueryTTL: 0 });
2041
- const branch = async () => options?.branch !== void 0 ? await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, options.branch) : await getCurrentBranchName({ apiKey, databaseURL, fetchImpl: options?.fetch });
2042
- if (!databaseURL || !apiKey) {
2043
- throw new Error("Options databaseURL and apiKey are required");
3348
+ const cache = options?.cache ?? new SimpleCache({ defaultQueryTTL: 0 });
3349
+ const trace = options?.trace ?? defaultTrace;
3350
+ const clientName = options?.clientName;
3351
+ const branch = async () => options?.branch !== void 0 ? await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, options.branch) : await getCurrentBranchName({
3352
+ apiKey,
3353
+ databaseURL,
3354
+ fetchImpl: options?.fetch,
3355
+ clientName: options?.clientName
3356
+ });
3357
+ if (!apiKey) {
3358
+ throw new Error("Option apiKey is required");
2044
3359
  }
2045
- return { fetch, databaseURL, apiKey, branch, cache };
3360
+ if (!databaseURL) {
3361
+ throw new Error("Option databaseURL is required");
3362
+ }
3363
+ return { fetch, databaseURL, apiKey, branch, cache, trace, clientID: generateUUID(), enableBrowser, clientName };
2046
3364
  }, _getFetchProps = new WeakSet(), getFetchProps_fn = async function({
2047
3365
  fetch,
2048
3366
  apiKey,
2049
3367
  databaseURL,
2050
- branch
3368
+ branch,
3369
+ trace,
3370
+ clientID,
3371
+ clientName
2051
3372
  }) {
2052
3373
  const branchValue = await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, branch);
2053
3374
  if (!branchValue)
@@ -2058,9 +3379,12 @@ const buildClient = (plugins) => {
2058
3379
  apiUrl: "",
2059
3380
  workspacesApiUrl: (path, params) => {
2060
3381
  const hasBranch = params.dbBranchName ?? params.branch;
2061
- const newPath = path.replace(/^\/db\/[^/]+/, hasBranch ? `:${branchValue}` : "");
3382
+ const newPath = path.replace(/^\/db\/[^/]+/, hasBranch !== void 0 ? `:${branchValue}` : "");
2062
3383
  return databaseURL + newPath;
2063
- }
3384
+ },
3385
+ trace,
3386
+ clientID,
3387
+ clientName
2064
3388
  };
2065
3389
  }, _evaluateBranch = new WeakSet(), evaluateBranch_fn = async function(param) {
2066
3390
  if (__privateGet(this, _branch))
@@ -2142,25 +3466,25 @@ class Serializer {
2142
3466
  });
2143
3467
  }
2144
3468
  }
2145
- const serialize = () => {
2146
- throw new Error("Not implemented");
3469
+ const defaultSerializer = new Serializer();
3470
+ const serialize = (data) => {
3471
+ return defaultSerializer.toJSON(data);
2147
3472
  };
2148
- const deserialize = () => {
2149
- throw new Error("Not implemented");
3473
+ const deserialize = (json) => {
3474
+ return defaultSerializer.fromJSON(json);
2150
3475
  };
2151
3476
 
2152
3477
  function buildWorkerRunner(config) {
2153
- return function xataWorker(name, _worker) {
3478
+ return function xataWorker(name, worker) {
2154
3479
  return async (...args) => {
2155
- const result = await fetch("http://localhost:64749", {
3480
+ const url = process.env.NODE_ENV === "development" ? `http://localhost:64749/${name}` : `https://dispatcher.xata.workers.dev/${config.workspace}/${config.worker}/${name}`;
3481
+ const result = await fetch(url, {
2156
3482
  method: "POST",
2157
3483
  headers: { "Content-Type": "application/json" },
2158
- body: JSON.stringify({
2159
- name,
2160
- payload: args
2161
- })
3484
+ body: serialize({ args })
2162
3485
  });
2163
- return result.json();
3486
+ const text = await result.text();
3487
+ return deserialize(text);
2164
3488
  };
2165
3489
  };
2166
3490
  }
@@ -2172,5 +3496,5 @@ class XataError extends Error {
2172
3496
  }
2173
3497
  }
2174
3498
 
2175
- 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, buildClient, buildWorkerRunner, bulkInsertTableRecords, cancelWorkspaceMemberInvite, contains, createBranch, createDatabase, createTable, createUserAPIKey, createWorkspace, deleteBranch, deleteColumn, deleteDatabase, deleteRecord, deleteTable, deleteUser, deleteUserAPIKey, deleteWorkspace, deserialize, endsWith, executeBranchMigrationPlan, exists, ge, getAPIKey, getBranchDetails, getBranchList, getBranchMetadata, getBranchMigrationHistory, getBranchMigrationPlan, getBranchStats, getColumn, getCurrentBranchDetails, getCurrentBranchName, getDatabaseList, getDatabaseURL, getGitBranchesMapping, getRecord, getTableColumns, getTableSchema, getUser, getUserAPIKeys, getWorkspace, getWorkspaceMembersList, getWorkspacesList, gt, gte, includes, includesAll, includesAny, includesNone, insertRecord, insertRecordWithID, inviteWorkspaceMember, is, isCursorPaginationOptions, isIdentifiable, isNot, isXataRecord, le, lt, lte, notExists, operationsByTag, pattern, queryTable, removeGitBranchesEntry, removeWorkspaceMember, resendWorkspaceMemberInvite, resolveBranch, searchBranch, searchTable, serialize, setTableSchema, startsWith, updateBranchMetadata, updateColumn, updateRecordWithID, updateTable, updateUser, updateWorkspace, updateWorkspaceMemberInvite, updateWorkspaceMemberRole, upsertRecordWithID };
3499
+ 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, branchTransaction, 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, getHostUrl, getMigrationRequest, getMigrationRequestIsMerged, 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, queryMigrationRequests, queryTable, removeGitBranchesEntry, removeWorkspaceMember, resendWorkspaceMemberInvite, resolveBranch, searchBranch, searchTable, serialize, setTableSchema, startsWith, summarizeTable, updateBranchMetadata, updateBranchSchema, updateColumn, updateDatabaseMetadata, updateMigrationRequest, updateRecordWithID, updateTable, updateUser, updateWorkspace, updateWorkspaceMemberInvite, updateWorkspaceMemberRole, upsertRecordWithID };
2176
3500
  //# sourceMappingURL=index.mjs.map