@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/.eslintrc.cjs +2 -2
- package/CHANGELOG.md +248 -0
- package/README.md +32 -30
- package/Usage.md +67 -11
- package/dist/index.cjs +2149 -811
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +5190 -1464
- package/dist/index.mjs +2118 -794
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/rollup.config.mjs +44 -0
- package/rollup.config.js +0 -29
package/dist/index.mjs
CHANGED
@@ -1,3 +1,26 @@
|
|
1
|
+
const defaultTrace = async (name, fn, _options) => {
|
2
|
+
return await fn({
|
3
|
+
name,
|
4
|
+
setAttributes: () => {
|
5
|
+
return;
|
6
|
+
}
|
7
|
+
});
|
8
|
+
};
|
9
|
+
const TraceAttributes = {
|
10
|
+
KIND: "xata.trace.kind",
|
11
|
+
VERSION: "xata.sdk.version",
|
12
|
+
TABLE: "xata.table",
|
13
|
+
HTTP_REQUEST_ID: "http.request_id",
|
14
|
+
HTTP_STATUS_CODE: "http.status_code",
|
15
|
+
HTTP_HOST: "http.host",
|
16
|
+
HTTP_SCHEME: "http.scheme",
|
17
|
+
HTTP_USER_AGENT: "http.user_agent",
|
18
|
+
HTTP_METHOD: "http.method",
|
19
|
+
HTTP_URL: "http.url",
|
20
|
+
HTTP_ROUTE: "http.route",
|
21
|
+
HTTP_TARGET: "http.target"
|
22
|
+
};
|
23
|
+
|
1
24
|
function notEmpty(value) {
|
2
25
|
return value !== null && value !== void 0;
|
3
26
|
}
|
@@ -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 (
|
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(
|
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.
|
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 :
|
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
|
-
|
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 (
|
186
|
-
|
187
|
-
|
188
|
-
|
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
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
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
|
227
|
-
|
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
|
-
|
464
|
+
return {};
|
233
465
|
}
|
234
466
|
}
|
235
467
|
|
236
|
-
const
|
237
|
-
|
238
|
-
const
|
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) =>
|
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) =>
|
341
|
-
|
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) =>
|
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) =>
|
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
|
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
|
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) =>
|
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) =>
|
379
|
-
|
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) =>
|
389
|
-
|
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) =>
|
399
|
-
url: "/db/{dbBranchName}/tables/{tableName}/columns",
|
400
|
-
|
401
|
-
|
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) =>
|
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
|
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
|
437
|
-
const
|
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
|
443
|
-
url: "/db/{dbBranchName}/
|
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
|
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
|
453
|
-
|
454
|
-
|
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
|
-
|
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
|
-
|
500
|
-
|
667
|
+
updateColumn,
|
668
|
+
deleteColumn
|
501
669
|
},
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
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 (
|
808
|
+
if (isHostProviderAlias(provider)) {
|
518
809
|
return providers[provider][type];
|
519
|
-
} else if (
|
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
|
825
|
+
function isHostProviderAlias(alias) {
|
535
826
|
return isString(alias) && Object.keys(providers).includes(alias);
|
536
827
|
}
|
537
|
-
function
|
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
|
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
|
587
|
-
if (!__privateGet$7(this, _namespaces).
|
588
|
-
__privateGet$7(this, _namespaces).
|
589
|
-
return __privateGet$7(this, _namespaces).
|
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.
|
968
|
+
return operationsByTag.authentication.getUserAPIKeys({ ...this.extraProps });
|
624
969
|
}
|
625
|
-
createUserAPIKey(
|
626
|
-
return operationsByTag.
|
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(
|
632
|
-
return operationsByTag.
|
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
|
-
|
987
|
+
getWorkspacesList() {
|
988
|
+
return operationsByTag.workspaces.getWorkspacesList({ ...this.extraProps });
|
989
|
+
}
|
990
|
+
createWorkspace({ data }) {
|
643
991
|
return operationsByTag.workspaces.createWorkspace({
|
644
|
-
body:
|
992
|
+
body: data,
|
645
993
|
...this.extraProps
|
646
994
|
});
|
647
995
|
}
|
648
|
-
|
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(
|
1002
|
+
updateWorkspace({
|
1003
|
+
workspace,
|
1004
|
+
update
|
1005
|
+
}) {
|
658
1006
|
return operationsByTag.workspaces.updateWorkspace({
|
659
|
-
pathParams: { workspaceId },
|
660
|
-
body:
|
1007
|
+
pathParams: { workspaceId: workspace },
|
1008
|
+
body: update,
|
661
1009
|
...this.extraProps
|
662
1010
|
});
|
663
1011
|
}
|
664
|
-
deleteWorkspace(
|
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(
|
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(
|
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(
|
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
|
-
|
690
|
-
|
691
|
-
|
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(
|
697
|
-
|
698
|
-
|
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(
|
704
|
-
|
705
|
-
|
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
|
-
|
710
|
-
|
711
|
-
|
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
|
-
|
716
|
-
|
717
|
-
|
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
|
1099
|
+
class BranchApi {
|
723
1100
|
constructor(extraProps) {
|
724
1101
|
this.extraProps = extraProps;
|
725
1102
|
}
|
726
|
-
|
727
|
-
|
728
|
-
|
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
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
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
|
-
|
740
|
-
|
741
|
-
|
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
|
-
|
746
|
-
|
747
|
-
|
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
|
-
|
752
|
-
|
753
|
-
|
754
|
-
|
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
|
-
|
759
|
-
|
760
|
-
|
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(
|
766
|
-
|
767
|
-
|
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
|
1233
|
+
class TableApi {
|
774
1234
|
constructor(extraProps) {
|
775
1235
|
this.extraProps = extraProps;
|
776
1236
|
}
|
777
|
-
|
778
|
-
|
779
|
-
|
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
|
-
|
784
|
-
|
785
|
-
|
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
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
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
|
-
|
798
|
-
|
799
|
-
|
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
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
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
|
-
|
811
|
-
|
812
|
-
|
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
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
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
|
-
|
824
|
-
|
825
|
-
|
826
|
-
|
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
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
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
|
-
|
838
|
-
|
839
|
-
|
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
|
1701
|
+
class MigrationsApi {
|
845
1702
|
constructor(extraProps) {
|
846
1703
|
this.extraProps = extraProps;
|
847
1704
|
}
|
848
|
-
|
849
|
-
|
850
|
-
|
851
|
-
|
852
|
-
|
853
|
-
|
854
|
-
|
855
|
-
|
856
|
-
|
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
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
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
|
-
|
868
|
-
|
869
|
-
|
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
|
-
|
874
|
-
|
875
|
-
|
876
|
-
|
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
|
-
|
881
|
-
|
882
|
-
|
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
|
-
|
887
|
-
|
888
|
-
|
889
|
-
|
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
|
-
|
894
|
-
|
895
|
-
|
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
|
-
|
900
|
-
|
901
|
-
|
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
|
-
|
906
|
-
|
907
|
-
|
908
|
-
|
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
|
1825
|
+
class DatabaseApi {
|
914
1826
|
constructor(extraProps) {
|
915
1827
|
this.extraProps = extraProps;
|
916
1828
|
}
|
917
|
-
|
918
|
-
return operationsByTag.
|
919
|
-
pathParams: {
|
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
|
-
|
955
|
-
|
956
|
-
|
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
|
-
|
961
|
-
|
962
|
-
|
963
|
-
|
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
|
-
|
968
|
-
|
969
|
-
|
970
|
-
|
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
|
-
|
975
|
-
|
976
|
-
|
977
|
-
|
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
|
-
|
982
|
-
return operationsByTag.
|
983
|
-
pathParams: {
|
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
|
1033
|
-
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset,
|
1932
|
+
async startPage(size, offset) {
|
1933
|
+
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, start: this.meta.page.cursor } });
|
1034
1934
|
}
|
1035
|
-
async
|
1036
|
-
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset,
|
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.
|
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
|
1081
|
-
const newPage = await __privateGet$6(this, _page).
|
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
|
1085
|
-
const newPage = await __privateGet$6(this, _page).
|
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
|
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]) => ({
|
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
|
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(
|
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
|
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
|
-
|
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.
|
2171
|
+
return this.startPage(size, offset);
|
1232
2172
|
}
|
1233
2173
|
previousPage(size, offset) {
|
1234
|
-
return this.
|
2174
|
+
return this.startPage(size, offset);
|
1235
2175
|
}
|
1236
|
-
|
2176
|
+
startPage(size, offset) {
|
1237
2177
|
return this.getPaginated({ pagination: { size, offset } });
|
1238
2178
|
}
|
1239
|
-
|
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,
|
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,
|
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(
|
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,
|
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,
|
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,
|
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
|
-
|
1341
|
-
|
1342
|
-
|
1343
|
-
|
1344
|
-
|
1345
|
-
|
1346
|
-
|
1347
|
-
|
1348
|
-
|
1349
|
-
|
1350
|
-
|
1351
|
-
|
1352
|
-
|
1353
|
-
|
1354
|
-
|
1355
|
-
|
1356
|
-
|
1357
|
-
|
1358
|
-
|
1359
|
-
|
1360
|
-
|
1361
|
-
|
1362
|
-
|
1363
|
-
|
1364
|
-
|
1365
|
-
|
1366
|
-
|
1367
|
-
|
1368
|
-
|
1369
|
-
|
1370
|
-
|
1371
|
-
|
1372
|
-
|
1373
|
-
|
1374
|
-
|
1375
|
-
|
1376
|
-
|
1377
|
-
|
1378
|
-
|
1379
|
-
|
1380
|
-
|
1381
|
-
|
1382
|
-
|
1383
|
-
|
1384
|
-
|
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
|
1387
|
-
|
1388
|
-
|
1389
|
-
|
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
|
-
|
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
|
1397
|
-
|
1398
|
-
|
1399
|
-
|
1400
|
-
|
1401
|
-
|
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
|
-
|
1404
|
-
|
1405
|
-
|
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
|
-
|
1427
|
-
|
1428
|
-
|
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
|
-
|
1450
|
-
|
1451
|
-
|
1452
|
-
|
1453
|
-
|
1454
|
-
|
1455
|
-
|
1456
|
-
|
1457
|
-
|
1458
|
-
|
1459
|
-
|
1460
|
-
|
1461
|
-
|
1462
|
-
|
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
|
-
|
1466
|
-
|
1467
|
-
|
1468
|
-
|
1469
|
-
|
1470
|
-
|
1471
|
-
|
1472
|
-
|
1473
|
-
|
1474
|
-
|
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
|
-
|
1481
|
-
|
1482
|
-
|
1483
|
-
|
1484
|
-
|
1485
|
-
|
1486
|
-
|
1487
|
-
|
1488
|
-
|
1489
|
-
|
1490
|
-
|
1491
|
-
|
1492
|
-
|
1493
|
-
|
1494
|
-
|
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
|
1520
|
-
|
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
|
2678
|
+
queryParams: { createOnly, columns, ifVersion },
|
1538
2679
|
...fetchProps
|
1539
2680
|
});
|
1540
|
-
const
|
1541
|
-
|
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
|
-
|
1547
|
-
|
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
|
1550
|
-
|
1551
|
-
|
1552
|
-
|
1553
|
-
|
1554
|
-
|
1555
|
-
const
|
1556
|
-
|
1557
|
-
|
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
|
-
|
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
|
-
|
1570
|
-
|
1571
|
-
|
1572
|
-
|
1573
|
-
|
1574
|
-
|
1575
|
-
|
1576
|
-
|
1577
|
-
|
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: {
|
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
|
1588
|
-
|
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
|
-
|
1596
|
-
|
1597
|
-
|
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
|
-
|
1601
|
-
|
1602
|
-
await __privateGet$4(this,
|
1603
|
-
const
|
1604
|
-
|
1605
|
-
|
1606
|
-
|
1607
|
-
|
1608
|
-
|
1609
|
-
|
1610
|
-
}
|
1611
|
-
|
1612
|
-
|
1613
|
-
|
1614
|
-
|
1615
|
-
|
1616
|
-
};
|
1617
|
-
|
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
|
2866
|
+
const initObject = (db, schemaTables, table, object, selectedColumns) => {
|
2867
|
+
const data = {};
|
1660
2868
|
const { xata, ...rest } = object ?? {};
|
1661
|
-
Object.assign(
|
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
|
-
|
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) :
|
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
|
1673
|
-
|
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
|
-
|
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
|
-
|
1689
|
-
|
2916
|
+
const record = { ...data };
|
2917
|
+
record.read = function(columns2) {
|
2918
|
+
return db[table].read(record["id"], columns2);
|
1690
2919
|
};
|
1691
|
-
|
1692
|
-
|
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
|
-
|
1695
|
-
|
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
|
-
|
2930
|
+
record.delete = function() {
|
2931
|
+
return db[table].delete(record["id"]);
|
2932
|
+
};
|
2933
|
+
record.getMetadata = function() {
|
1698
2934
|
return xata;
|
1699
2935
|
};
|
1700
|
-
|
1701
|
-
|
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(
|
1704
|
-
return
|
2942
|
+
Object.freeze(record);
|
2943
|
+
return record;
|
1705
2944
|
};
|
1706
|
-
function
|
1707
|
-
if (
|
1708
|
-
return value
|
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
|
-
|
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
|
1767
|
-
const
|
1768
|
-
const
|
1769
|
-
const
|
1770
|
-
const
|
1771
|
-
const
|
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
|
-
|
1814
|
-
|
1815
|
-
|
1816
|
-
|
1817
|
-
|
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
|
-
|
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(
|
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(
|
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
|
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(
|
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(
|
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
|
1960
|
-
|
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
|
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
|
-
|
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({
|
2041
|
-
const
|
2042
|
-
|
2043
|
-
|
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
|
-
|
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
|
2146
|
-
|
3469
|
+
const defaultSerializer = new Serializer();
|
3470
|
+
const serialize = (data) => {
|
3471
|
+
return defaultSerializer.toJSON(data);
|
2147
3472
|
};
|
2148
|
-
const deserialize = () => {
|
2149
|
-
|
3473
|
+
const deserialize = (json) => {
|
3474
|
+
return defaultSerializer.fromJSON(json);
|
2150
3475
|
};
|
2151
3476
|
|
2152
3477
|
function buildWorkerRunner(config) {
|
2153
|
-
return function xataWorker(name,
|
3478
|
+
return function xataWorker(name, worker) {
|
2154
3479
|
return async (...args) => {
|
2155
|
-
const
|
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:
|
2159
|
-
name,
|
2160
|
-
payload: args
|
2161
|
-
})
|
3484
|
+
body: serialize({ args })
|
2162
3485
|
});
|
2163
|
-
|
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
|