@xata.io/client 0.0.0-alpha.vf38f30b → 0.0.0-alpha.vf457e1d
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 -3
- package/CHANGELOG.md +410 -0
- package/README.md +273 -1
- package/Usage.md +451 -0
- package/dist/index.cjs +2669 -780
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +5729 -1337
- package/dist/index.mjs +2624 -780
- package/dist/index.mjs.map +1 -1
- package/package.json +9 -5
- package/rollup.config.mjs +44 -0
- package/tsconfig.json +1 -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
|
}
|
@@ -7,36 +30,153 @@ function compact(arr) {
|
|
7
30
|
function isObject(value) {
|
8
31
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
9
32
|
}
|
33
|
+
function isDefined(value) {
|
34
|
+
return value !== null && value !== void 0;
|
35
|
+
}
|
10
36
|
function isString(value) {
|
11
|
-
return value
|
37
|
+
return isDefined(value) && typeof value === "string";
|
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
|
+
}
|
57
|
+
function toBase64(value) {
|
58
|
+
try {
|
59
|
+
return btoa(value);
|
60
|
+
} catch (err) {
|
61
|
+
const buf = Buffer;
|
62
|
+
return buf.from(value).toString("base64");
|
63
|
+
}
|
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));
|
12
85
|
}
|
13
86
|
|
14
|
-
function
|
87
|
+
function getEnvironment() {
|
88
|
+
try {
|
89
|
+
if (isDefined(process) && isDefined(process.env)) {
|
90
|
+
return {
|
91
|
+
apiKey: process.env.XATA_API_KEY ?? getGlobalApiKey(),
|
92
|
+
databaseURL: process.env.XATA_DATABASE_URL ?? getGlobalDatabaseURL(),
|
93
|
+
branch: process.env.XATA_BRANCH ?? getGlobalBranch(),
|
94
|
+
envBranch: process.env.VERCEL_GIT_COMMIT_REF ?? process.env.CF_PAGES_BRANCH ?? process.env.BRANCH,
|
95
|
+
fallbackBranch: process.env.XATA_FALLBACK_BRANCH ?? getGlobalFallbackBranch()
|
96
|
+
};
|
97
|
+
}
|
98
|
+
} catch (err) {
|
99
|
+
}
|
100
|
+
try {
|
101
|
+
if (isObject(Deno) && isObject(Deno.env)) {
|
102
|
+
return {
|
103
|
+
apiKey: Deno.env.get("XATA_API_KEY") ?? getGlobalApiKey(),
|
104
|
+
databaseURL: Deno.env.get("XATA_DATABASE_URL") ?? getGlobalDatabaseURL(),
|
105
|
+
branch: Deno.env.get("XATA_BRANCH") ?? getGlobalBranch(),
|
106
|
+
envBranch: Deno.env.get("VERCEL_GIT_COMMIT_REF") ?? Deno.env.get("CF_PAGES_BRANCH") ?? Deno.env.get("BRANCH"),
|
107
|
+
fallbackBranch: Deno.env.get("XATA_FALLBACK_BRANCH") ?? getGlobalFallbackBranch()
|
108
|
+
};
|
109
|
+
}
|
110
|
+
} catch (err) {
|
111
|
+
}
|
112
|
+
return {
|
113
|
+
apiKey: getGlobalApiKey(),
|
114
|
+
databaseURL: getGlobalDatabaseURL(),
|
115
|
+
branch: getGlobalBranch(),
|
116
|
+
envBranch: void 0,
|
117
|
+
fallbackBranch: getGlobalFallbackBranch()
|
118
|
+
};
|
119
|
+
}
|
120
|
+
function getEnableBrowserVariable() {
|
15
121
|
try {
|
16
|
-
if (isObject(process) &&
|
17
|
-
return process.env
|
122
|
+
if (isObject(process) && isObject(process.env) && process.env.XATA_ENABLE_BROWSER !== void 0) {
|
123
|
+
return process.env.XATA_ENABLE_BROWSER === "true";
|
18
124
|
}
|
19
125
|
} catch (err) {
|
20
126
|
}
|
21
127
|
try {
|
22
|
-
if (isObject(Deno) &&
|
23
|
-
return Deno.env.get(
|
128
|
+
if (isObject(Deno) && isObject(Deno.env) && Deno.env.get("XATA_ENABLE_BROWSER") !== void 0) {
|
129
|
+
return Deno.env.get("XATA_ENABLE_BROWSER") === "true";
|
24
130
|
}
|
25
131
|
} catch (err) {
|
26
132
|
}
|
133
|
+
try {
|
134
|
+
return XATA_ENABLE_BROWSER === true || XATA_ENABLE_BROWSER === "true";
|
135
|
+
} catch (err) {
|
136
|
+
return void 0;
|
137
|
+
}
|
138
|
+
}
|
139
|
+
function getGlobalApiKey() {
|
140
|
+
try {
|
141
|
+
return XATA_API_KEY;
|
142
|
+
} catch (err) {
|
143
|
+
return void 0;
|
144
|
+
}
|
145
|
+
}
|
146
|
+
function getGlobalDatabaseURL() {
|
147
|
+
try {
|
148
|
+
return XATA_DATABASE_URL;
|
149
|
+
} catch (err) {
|
150
|
+
return void 0;
|
151
|
+
}
|
152
|
+
}
|
153
|
+
function getGlobalBranch() {
|
154
|
+
try {
|
155
|
+
return XATA_BRANCH;
|
156
|
+
} catch (err) {
|
157
|
+
return void 0;
|
158
|
+
}
|
159
|
+
}
|
160
|
+
function getGlobalFallbackBranch() {
|
161
|
+
try {
|
162
|
+
return XATA_FALLBACK_BRANCH;
|
163
|
+
} catch (err) {
|
164
|
+
return void 0;
|
165
|
+
}
|
27
166
|
}
|
28
167
|
async function getGitBranch() {
|
168
|
+
const cmd = ["git", "branch", "--show-current"];
|
169
|
+
const fullCmd = cmd.join(" ");
|
170
|
+
const nodeModule = ["child", "process"].join("_");
|
171
|
+
const execOptions = { encoding: "utf-8", stdio: ["ignore", "pipe", "ignore"] };
|
29
172
|
try {
|
30
|
-
|
173
|
+
const { execSync } = await import(nodeModule);
|
174
|
+
return execSync(fullCmd, execOptions).toString().trim();
|
31
175
|
} catch (err) {
|
32
176
|
}
|
33
177
|
try {
|
34
178
|
if (isObject(Deno)) {
|
35
|
-
const process2 = Deno.run({
|
36
|
-
cmd: ["git", "branch", "--show-current"],
|
37
|
-
stdout: "piped",
|
38
|
-
stderr: "piped"
|
39
|
-
});
|
179
|
+
const process2 = Deno.run({ cmd, stdout: "piped", stderr: "null" });
|
40
180
|
return new TextDecoder().decode(await process2.output()).trim();
|
41
181
|
}
|
42
182
|
} catch (err) {
|
@@ -45,31 +185,142 @@ async function getGitBranch() {
|
|
45
185
|
|
46
186
|
function getAPIKey() {
|
47
187
|
try {
|
48
|
-
|
188
|
+
const { apiKey } = getEnvironment();
|
189
|
+
return apiKey;
|
49
190
|
} catch (err) {
|
50
191
|
return void 0;
|
51
192
|
}
|
52
193
|
}
|
53
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;
|
54
218
|
function getFetchImplementation(userFetch) {
|
55
219
|
const globalFetch = typeof fetch !== "undefined" ? fetch : void 0;
|
56
220
|
const fetchImpl = userFetch ?? globalFetch;
|
57
221
|
if (!fetchImpl) {
|
58
|
-
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
|
+
);
|
59
225
|
}
|
60
226
|
return fetchImpl;
|
61
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
|
+
}
|
301
|
+
|
302
|
+
const VERSION = "0.0.0-alpha.vf457e1d";
|
62
303
|
|
63
|
-
class
|
64
|
-
constructor(
|
304
|
+
class ErrorWithCause extends Error {
|
305
|
+
constructor(message, options) {
|
306
|
+
super(message, options);
|
307
|
+
}
|
308
|
+
}
|
309
|
+
class FetcherError extends ErrorWithCause {
|
310
|
+
constructor(status, data, requestId) {
|
65
311
|
super(getMessage(data));
|
66
312
|
this.status = status;
|
67
|
-
this.errors = isBulkError(data) ? data.errors :
|
313
|
+
this.errors = isBulkError(data) ? data.errors : [{ message: getMessage(data), status }];
|
314
|
+
this.requestId = requestId;
|
68
315
|
if (data instanceof Error) {
|
69
316
|
this.stack = data.stack;
|
70
317
|
this.cause = data.cause;
|
71
318
|
}
|
72
319
|
}
|
320
|
+
toString() {
|
321
|
+
const error = super.toString();
|
322
|
+
return `[${this.status}] (${this.requestId ?? "Unknown"}): ${error}`;
|
323
|
+
}
|
73
324
|
}
|
74
325
|
function isBulkError(error) {
|
75
326
|
return isObject(error) && Array.isArray(error.errors);
|
@@ -91,285 +342,275 @@ function getMessage(data) {
|
|
91
342
|
}
|
92
343
|
}
|
93
344
|
|
345
|
+
const pool = new ApiRequestPool();
|
94
346
|
const resolveUrl = (url, queryParams = {}, pathParams = {}) => {
|
95
|
-
const
|
347
|
+
const cleanQueryParams = Object.entries(queryParams).reduce((acc, [key, value]) => {
|
348
|
+
if (value === void 0 || value === null)
|
349
|
+
return acc;
|
350
|
+
return { ...acc, [key]: value };
|
351
|
+
}, {});
|
352
|
+
const query = new URLSearchParams(cleanQueryParams).toString();
|
96
353
|
const queryString = query.length > 0 ? `?${query}` : "";
|
97
|
-
|
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;
|
98
358
|
};
|
99
359
|
function buildBaseUrl({
|
360
|
+
endpoint,
|
100
361
|
path,
|
101
362
|
workspacesApiUrl,
|
102
363
|
apiUrl,
|
103
|
-
pathParams
|
364
|
+
pathParams = {}
|
104
365
|
}) {
|
105
|
-
if (
|
106
|
-
|
107
|
-
|
108
|
-
|
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}`;
|
109
372
|
}
|
110
373
|
function hostHeader(url) {
|
111
374
|
const pattern = /.*:\/\/(?<host>[^/]+).*/;
|
112
375
|
const { groups } = pattern.exec(url) ?? {};
|
113
376
|
return groups?.host ? { Host: groups.host } : {};
|
114
377
|
}
|
378
|
+
const defaultClientID = generateUUID();
|
115
379
|
async function fetch$1({
|
116
380
|
url: path,
|
117
381
|
method,
|
118
382
|
body,
|
119
|
-
headers,
|
383
|
+
headers: customHeaders,
|
120
384
|
pathParams,
|
121
385
|
queryParams,
|
122
386
|
fetchImpl,
|
123
387
|
apiKey,
|
388
|
+
endpoint,
|
124
389
|
apiUrl,
|
125
|
-
workspacesApiUrl
|
390
|
+
workspacesApiUrl,
|
391
|
+
trace,
|
392
|
+
signal,
|
393
|
+
clientID,
|
394
|
+
sessionID,
|
395
|
+
clientName,
|
396
|
+
fetchOptions = {}
|
126
397
|
}) {
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
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) {
|
143
460
|
try {
|
144
|
-
const
|
145
|
-
|
146
|
-
return jsonResponse;
|
147
|
-
}
|
148
|
-
throw new FetcherError(response.status, jsonResponse);
|
461
|
+
const { host, protocol } = new URL(url);
|
462
|
+
return { host, protocol };
|
149
463
|
} catch (error) {
|
150
|
-
|
464
|
+
return {};
|
151
465
|
}
|
152
466
|
}
|
153
467
|
|
154
|
-
const
|
155
|
-
|
156
|
-
const
|
157
|
-
const getUserAPIKeys = (variables) => fetch$1({
|
158
|
-
url: "/user/keys",
|
159
|
-
method: "get",
|
160
|
-
...variables
|
161
|
-
});
|
162
|
-
const createUserAPIKey = (variables) => fetch$1({
|
163
|
-
url: "/user/keys/{keyName}",
|
164
|
-
method: "post",
|
165
|
-
...variables
|
166
|
-
});
|
167
|
-
const deleteUserAPIKey = (variables) => fetch$1({
|
168
|
-
url: "/user/keys/{keyName}",
|
169
|
-
method: "delete",
|
170
|
-
...variables
|
171
|
-
});
|
172
|
-
const createWorkspace = (variables) => fetch$1({
|
173
|
-
url: "/workspaces",
|
174
|
-
method: "post",
|
175
|
-
...variables
|
176
|
-
});
|
177
|
-
const getWorkspacesList = (variables) => fetch$1({
|
178
|
-
url: "/workspaces",
|
179
|
-
method: "get",
|
180
|
-
...variables
|
181
|
-
});
|
182
|
-
const getWorkspace = (variables) => fetch$1({
|
183
|
-
url: "/workspaces/{workspaceId}",
|
184
|
-
method: "get",
|
185
|
-
...variables
|
186
|
-
});
|
187
|
-
const updateWorkspace = (variables) => fetch$1({
|
188
|
-
url: "/workspaces/{workspaceId}",
|
189
|
-
method: "put",
|
190
|
-
...variables
|
191
|
-
});
|
192
|
-
const deleteWorkspace = (variables) => fetch$1({
|
193
|
-
url: "/workspaces/{workspaceId}",
|
194
|
-
method: "delete",
|
195
|
-
...variables
|
196
|
-
});
|
197
|
-
const getWorkspaceMembersList = (variables) => fetch$1({
|
198
|
-
url: "/workspaces/{workspaceId}/members",
|
199
|
-
method: "get",
|
200
|
-
...variables
|
201
|
-
});
|
202
|
-
const updateWorkspaceMemberRole = (variables) => fetch$1({ url: "/workspaces/{workspaceId}/members/{userId}", method: "put", ...variables });
|
203
|
-
const removeWorkspaceMember = (variables) => fetch$1({
|
204
|
-
url: "/workspaces/{workspaceId}/members/{userId}",
|
205
|
-
method: "delete",
|
206
|
-
...variables
|
207
|
-
});
|
208
|
-
const inviteWorkspaceMember = (variables) => fetch$1({ url: "/workspaces/{workspaceId}/invites", method: "post", ...variables });
|
209
|
-
const cancelWorkspaceMemberInvite = (variables) => fetch$1({
|
210
|
-
url: "/workspaces/{workspaceId}/invites/{inviteId}",
|
211
|
-
method: "delete",
|
212
|
-
...variables
|
213
|
-
});
|
214
|
-
const resendWorkspaceMemberInvite = (variables) => fetch$1({
|
215
|
-
url: "/workspaces/{workspaceId}/invites/{inviteId}/resend",
|
216
|
-
method: "post",
|
217
|
-
...variables
|
218
|
-
});
|
219
|
-
const acceptWorkspaceMemberInvite = (variables) => fetch$1({
|
220
|
-
url: "/workspaces/{workspaceId}/invites/{inviteKey}/accept",
|
221
|
-
method: "post",
|
222
|
-
...variables
|
223
|
-
});
|
224
|
-
const getDatabaseList = (variables) => fetch$1({
|
225
|
-
url: "/dbs",
|
226
|
-
method: "get",
|
227
|
-
...variables
|
228
|
-
});
|
229
|
-
const getBranchList = (variables) => fetch$1({
|
468
|
+
const dataPlaneFetch = async (options) => fetch$1({ ...options, endpoint: "dataPlane" });
|
469
|
+
|
470
|
+
const getBranchList = (variables, signal) => dataPlaneFetch({
|
230
471
|
url: "/dbs/{dbName}",
|
231
472
|
method: "get",
|
232
|
-
...variables
|
473
|
+
...variables,
|
474
|
+
signal
|
233
475
|
});
|
234
|
-
const
|
235
|
-
url: "/dbs/{dbName}",
|
236
|
-
method: "put",
|
237
|
-
...variables
|
238
|
-
});
|
239
|
-
const deleteDatabase = (variables) => fetch$1({
|
240
|
-
url: "/dbs/{dbName}",
|
241
|
-
method: "delete",
|
242
|
-
...variables
|
243
|
-
});
|
244
|
-
const getBranchDetails = (variables) => fetch$1({
|
476
|
+
const getBranchDetails = (variables, signal) => dataPlaneFetch({
|
245
477
|
url: "/db/{dbBranchName}",
|
246
478
|
method: "get",
|
247
|
-
...variables
|
248
|
-
|
249
|
-
const createBranch = (variables) => fetch$1({
|
250
|
-
url: "/db/{dbBranchName}",
|
251
|
-
method: "put",
|
252
|
-
...variables
|
479
|
+
...variables,
|
480
|
+
signal
|
253
481
|
});
|
254
|
-
const
|
482
|
+
const createBranch = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}", method: "put", ...variables, signal });
|
483
|
+
const deleteBranch = (variables, signal) => dataPlaneFetch({
|
255
484
|
url: "/db/{dbBranchName}",
|
256
485
|
method: "delete",
|
257
|
-
...variables
|
486
|
+
...variables,
|
487
|
+
signal
|
258
488
|
});
|
259
|
-
const updateBranchMetadata = (variables) =>
|
489
|
+
const updateBranchMetadata = (variables, signal) => dataPlaneFetch({
|
260
490
|
url: "/db/{dbBranchName}/metadata",
|
261
491
|
method: "put",
|
262
|
-
...variables
|
492
|
+
...variables,
|
493
|
+
signal
|
263
494
|
});
|
264
|
-
const getBranchMetadata = (variables) =>
|
495
|
+
const getBranchMetadata = (variables, signal) => dataPlaneFetch({
|
265
496
|
url: "/db/{dbBranchName}/metadata",
|
266
497
|
method: "get",
|
267
|
-
...variables
|
498
|
+
...variables,
|
499
|
+
signal
|
268
500
|
});
|
269
|
-
const
|
270
|
-
const executeBranchMigrationPlan = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations/execute", method: "post", ...variables });
|
271
|
-
const getBranchMigrationPlan = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations/plan", method: "post", ...variables });
|
272
|
-
const getBranchStats = (variables) => fetch$1({
|
501
|
+
const getBranchStats = (variables, signal) => dataPlaneFetch({
|
273
502
|
url: "/db/{dbBranchName}/stats",
|
274
503
|
method: "get",
|
275
|
-
...variables
|
504
|
+
...variables,
|
505
|
+
signal
|
276
506
|
});
|
277
|
-
const
|
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
|
532
|
+
});
|
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({
|
278
540
|
url: "/db/{dbBranchName}/tables/{tableName}",
|
279
541
|
method: "put",
|
280
|
-
...variables
|
542
|
+
...variables,
|
543
|
+
signal
|
281
544
|
});
|
282
|
-
const deleteTable = (variables) =>
|
545
|
+
const deleteTable = (variables, signal) => dataPlaneFetch({
|
283
546
|
url: "/db/{dbBranchName}/tables/{tableName}",
|
284
547
|
method: "delete",
|
285
|
-
...variables
|
548
|
+
...variables,
|
549
|
+
signal
|
286
550
|
});
|
287
|
-
const updateTable = (variables) =>
|
288
|
-
|
289
|
-
method: "patch",
|
290
|
-
...variables
|
291
|
-
});
|
292
|
-
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({
|
293
553
|
url: "/db/{dbBranchName}/tables/{tableName}/schema",
|
294
554
|
method: "get",
|
295
|
-
...variables
|
296
|
-
|
297
|
-
const setTableSchema = (variables) => fetch$1({
|
298
|
-
url: "/db/{dbBranchName}/tables/{tableName}/schema",
|
299
|
-
method: "put",
|
300
|
-
...variables
|
555
|
+
...variables,
|
556
|
+
signal
|
301
557
|
});
|
302
|
-
const
|
558
|
+
const setTableSchema = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/schema", method: "put", ...variables, signal });
|
559
|
+
const getTableColumns = (variables, signal) => dataPlaneFetch({
|
303
560
|
url: "/db/{dbBranchName}/tables/{tableName}/columns",
|
304
561
|
method: "get",
|
305
|
-
...variables
|
562
|
+
...variables,
|
563
|
+
signal
|
306
564
|
});
|
307
|
-
const addTableColumn = (variables) =>
|
308
|
-
url: "/db/{dbBranchName}/tables/{tableName}/columns",
|
309
|
-
|
310
|
-
|
311
|
-
});
|
312
|
-
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({
|
313
569
|
url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}",
|
314
570
|
method: "get",
|
315
|
-
...variables
|
571
|
+
...variables,
|
572
|
+
signal
|
316
573
|
});
|
317
|
-
const
|
574
|
+
const updateColumn = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}", method: "patch", ...variables, signal });
|
575
|
+
const deleteColumn = (variables, signal) => dataPlaneFetch({
|
318
576
|
url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}",
|
319
577
|
method: "delete",
|
320
|
-
...variables
|
321
|
-
|
322
|
-
const updateColumn = (variables) => fetch$1({
|
323
|
-
url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}",
|
324
|
-
method: "patch",
|
325
|
-
...variables
|
326
|
-
});
|
327
|
-
const insertRecord = (variables) => fetch$1({
|
328
|
-
url: "/db/{dbBranchName}/tables/{tableName}/data",
|
329
|
-
method: "post",
|
330
|
-
...variables
|
331
|
-
});
|
332
|
-
const insertRecordWithID = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "put", ...variables });
|
333
|
-
const updateRecordWithID = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "patch", ...variables });
|
334
|
-
const upsertRecordWithID = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "post", ...variables });
|
335
|
-
const deleteRecord = (variables) => fetch$1({
|
336
|
-
url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}",
|
337
|
-
method: "delete",
|
338
|
-
...variables
|
578
|
+
...variables,
|
579
|
+
signal
|
339
580
|
});
|
340
|
-
const
|
581
|
+
const insertRecord = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/data", method: "post", ...variables, signal });
|
582
|
+
const getRecord = (variables, signal) => dataPlaneFetch({
|
341
583
|
url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}",
|
342
584
|
method: "get",
|
343
|
-
...variables
|
585
|
+
...variables,
|
586
|
+
signal
|
344
587
|
});
|
345
|
-
const
|
346
|
-
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({
|
347
594
|
url: "/db/{dbBranchName}/tables/{tableName}/query",
|
348
595
|
method: "post",
|
349
|
-
...variables
|
596
|
+
...variables,
|
597
|
+
signal
|
350
598
|
});
|
351
|
-
const searchBranch = (variables) =>
|
599
|
+
const searchBranch = (variables, signal) => dataPlaneFetch({
|
352
600
|
url: "/db/{dbBranchName}/search",
|
353
601
|
method: "post",
|
354
|
-
...variables
|
602
|
+
...variables,
|
603
|
+
signal
|
355
604
|
});
|
356
|
-
const
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
updateWorkspaceMemberRole,
|
366
|
-
removeWorkspaceMember,
|
367
|
-
inviteWorkspaceMember,
|
368
|
-
cancelWorkspaceMemberInvite,
|
369
|
-
resendWorkspaceMemberInvite,
|
370
|
-
acceptWorkspaceMemberInvite
|
371
|
-
},
|
372
|
-
database: { getDatabaseList, createDatabase, deleteDatabase },
|
605
|
+
const searchTable = (variables, signal) => dataPlaneFetch({
|
606
|
+
url: "/db/{dbBranchName}/tables/{tableName}/search",
|
607
|
+
method: "post",
|
608
|
+
...variables,
|
609
|
+
signal
|
610
|
+
});
|
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 = {
|
373
614
|
branch: {
|
374
615
|
getBranchList,
|
375
616
|
getBranchDetails,
|
@@ -377,10 +618,42 @@ const operationsByTag = {
|
|
377
618
|
deleteBranch,
|
378
619
|
updateBranchMetadata,
|
379
620
|
getBranchMetadata,
|
621
|
+
getBranchStats,
|
622
|
+
getGitBranchesMapping,
|
623
|
+
addGitBranchesEntry,
|
624
|
+
removeGitBranchesEntry,
|
625
|
+
resolveBranch
|
626
|
+
},
|
627
|
+
migrations: {
|
380
628
|
getBranchMigrationHistory,
|
381
|
-
executeBranchMigrationPlan,
|
382
629
|
getBranchMigrationPlan,
|
383
|
-
|
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
|
384
657
|
},
|
385
658
|
table: {
|
386
659
|
createTable,
|
@@ -391,26 +664,150 @@ const operationsByTag = {
|
|
391
664
|
getTableColumns,
|
392
665
|
addTableColumn,
|
393
666
|
getColumn,
|
394
|
-
|
395
|
-
|
667
|
+
updateColumn,
|
668
|
+
deleteColumn
|
396
669
|
},
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
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
|
407
802
|
}
|
408
803
|
};
|
409
804
|
|
805
|
+
const operationsByTag = deepMerge(operationsByTag$2, operationsByTag$1);
|
806
|
+
|
410
807
|
function getHostUrl(provider, type) {
|
411
|
-
if (
|
808
|
+
if (isHostProviderAlias(provider)) {
|
412
809
|
return providers[provider][type];
|
413
|
-
} else if (
|
810
|
+
} else if (isHostProviderBuilder(provider)) {
|
414
811
|
return provider[type];
|
415
812
|
}
|
416
813
|
throw new Error("Invalid API provider");
|
@@ -418,84 +815,133 @@ function getHostUrl(provider, type) {
|
|
418
815
|
const providers = {
|
419
816
|
production: {
|
420
817
|
main: "https://api.xata.io",
|
421
|
-
workspaces: "https://{workspaceId}.xata.sh"
|
818
|
+
workspaces: "https://{workspaceId}.{region}.xata.sh"
|
422
819
|
},
|
423
820
|
staging: {
|
424
821
|
main: "https://staging.xatabase.co",
|
425
|
-
workspaces: "https://{workspaceId}.staging.xatabase.co"
|
822
|
+
workspaces: "https://{workspaceId}.staging.{region}.xatabase.co"
|
426
823
|
}
|
427
824
|
};
|
428
|
-
function
|
825
|
+
function isHostProviderAlias(alias) {
|
429
826
|
return isString(alias) && Object.keys(providers).includes(alias);
|
430
827
|
}
|
431
|
-
function
|
828
|
+
function isHostProviderBuilder(builder) {
|
432
829
|
return isObject(builder) && isString(builder.main) && isString(builder.workspaces);
|
433
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
|
+
}
|
434
850
|
|
435
|
-
var __accessCheck$
|
851
|
+
var __accessCheck$7 = (obj, member, msg) => {
|
436
852
|
if (!member.has(obj))
|
437
853
|
throw TypeError("Cannot " + msg);
|
438
854
|
};
|
439
|
-
var __privateGet$
|
440
|
-
__accessCheck$
|
855
|
+
var __privateGet$7 = (obj, member, getter) => {
|
856
|
+
__accessCheck$7(obj, member, "read from private field");
|
441
857
|
return getter ? getter.call(obj) : member.get(obj);
|
442
858
|
};
|
443
|
-
var __privateAdd$
|
859
|
+
var __privateAdd$7 = (obj, member, value) => {
|
444
860
|
if (member.has(obj))
|
445
861
|
throw TypeError("Cannot add the same private member more than once");
|
446
862
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
447
863
|
};
|
448
|
-
var __privateSet$
|
449
|
-
__accessCheck$
|
864
|
+
var __privateSet$7 = (obj, member, value, setter) => {
|
865
|
+
__accessCheck$7(obj, member, "write to private field");
|
450
866
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
451
867
|
return value;
|
452
868
|
};
|
453
869
|
var _extraProps, _namespaces;
|
454
870
|
class XataApiClient {
|
455
871
|
constructor(options = {}) {
|
456
|
-
__privateAdd$
|
457
|
-
__privateAdd$
|
872
|
+
__privateAdd$7(this, _extraProps, void 0);
|
873
|
+
__privateAdd$7(this, _namespaces, {});
|
458
874
|
const provider = options.host ?? "production";
|
459
|
-
const apiKey = options
|
875
|
+
const apiKey = options.apiKey ?? getAPIKey();
|
876
|
+
const trace = options.trace ?? defaultTrace;
|
877
|
+
const clientID = generateUUID();
|
460
878
|
if (!apiKey) {
|
461
879
|
throw new Error("Could not resolve a valid apiKey");
|
462
880
|
}
|
463
|
-
__privateSet$
|
881
|
+
__privateSet$7(this, _extraProps, {
|
464
882
|
apiUrl: getHostUrl(provider, "main"),
|
465
883
|
workspacesApiUrl: getHostUrl(provider, "workspaces"),
|
466
884
|
fetchImpl: getFetchImplementation(options.fetch),
|
467
|
-
apiKey
|
885
|
+
apiKey,
|
886
|
+
trace,
|
887
|
+
clientName: options.clientName,
|
888
|
+
clientID
|
468
889
|
});
|
469
890
|
}
|
470
891
|
get user() {
|
471
|
-
if (!__privateGet$
|
472
|
-
__privateGet$
|
473
|
-
return __privateGet$
|
892
|
+
if (!__privateGet$7(this, _namespaces).user)
|
893
|
+
__privateGet$7(this, _namespaces).user = new UserApi(__privateGet$7(this, _extraProps));
|
894
|
+
return __privateGet$7(this, _namespaces).user;
|
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;
|
474
900
|
}
|
475
901
|
get workspaces() {
|
476
|
-
if (!__privateGet$
|
477
|
-
__privateGet$
|
478
|
-
return __privateGet$
|
902
|
+
if (!__privateGet$7(this, _namespaces).workspaces)
|
903
|
+
__privateGet$7(this, _namespaces).workspaces = new WorkspaceApi(__privateGet$7(this, _extraProps));
|
904
|
+
return __privateGet$7(this, _namespaces).workspaces;
|
905
|
+
}
|
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;
|
479
910
|
}
|
480
|
-
get
|
481
|
-
if (!__privateGet$
|
482
|
-
__privateGet$
|
483
|
-
return __privateGet$
|
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;
|
484
915
|
}
|
485
916
|
get branches() {
|
486
|
-
if (!__privateGet$
|
487
|
-
__privateGet$
|
488
|
-
return __privateGet$
|
917
|
+
if (!__privateGet$7(this, _namespaces).branches)
|
918
|
+
__privateGet$7(this, _namespaces).branches = new BranchApi(__privateGet$7(this, _extraProps));
|
919
|
+
return __privateGet$7(this, _namespaces).branches;
|
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;
|
489
930
|
}
|
490
931
|
get tables() {
|
491
|
-
if (!__privateGet$
|
492
|
-
__privateGet$
|
493
|
-
return __privateGet$
|
932
|
+
if (!__privateGet$7(this, _namespaces).tables)
|
933
|
+
__privateGet$7(this, _namespaces).tables = new TableApi(__privateGet$7(this, _extraProps));
|
934
|
+
return __privateGet$7(this, _namespaces).tables;
|
494
935
|
}
|
495
936
|
get records() {
|
496
|
-
if (!__privateGet$
|
497
|
-
__privateGet$
|
498
|
-
return __privateGet$
|
937
|
+
if (!__privateGet$7(this, _namespaces).records)
|
938
|
+
__privateGet$7(this, _namespaces).records = new RecordsApi(__privateGet$7(this, _extraProps));
|
939
|
+
return __privateGet$7(this, _namespaces).records;
|
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;
|
499
945
|
}
|
500
946
|
}
|
501
947
|
_extraProps = new WeakMap();
|
@@ -507,24 +953,29 @@ class UserApi {
|
|
507
953
|
getUser() {
|
508
954
|
return operationsByTag.users.getUser({ ...this.extraProps });
|
509
955
|
}
|
510
|
-
updateUser(user) {
|
956
|
+
updateUser({ user }) {
|
511
957
|
return operationsByTag.users.updateUser({ body: user, ...this.extraProps });
|
512
958
|
}
|
513
959
|
deleteUser() {
|
514
960
|
return operationsByTag.users.deleteUser({ ...this.extraProps });
|
515
961
|
}
|
962
|
+
}
|
963
|
+
class AuthenticationApi {
|
964
|
+
constructor(extraProps) {
|
965
|
+
this.extraProps = extraProps;
|
966
|
+
}
|
516
967
|
getUserAPIKeys() {
|
517
|
-
return operationsByTag.
|
968
|
+
return operationsByTag.authentication.getUserAPIKeys({ ...this.extraProps });
|
518
969
|
}
|
519
|
-
createUserAPIKey(
|
520
|
-
return operationsByTag.
|
521
|
-
pathParams: { keyName },
|
970
|
+
createUserAPIKey({ name }) {
|
971
|
+
return operationsByTag.authentication.createUserAPIKey({
|
972
|
+
pathParams: { keyName: name },
|
522
973
|
...this.extraProps
|
523
974
|
});
|
524
975
|
}
|
525
|
-
deleteUserAPIKey(
|
526
|
-
return operationsByTag.
|
527
|
-
pathParams: { keyName },
|
976
|
+
deleteUserAPIKey({ name }) {
|
977
|
+
return operationsByTag.authentication.deleteUserAPIKey({
|
978
|
+
pathParams: { keyName: name },
|
528
979
|
...this.extraProps
|
529
980
|
});
|
530
981
|
}
|
@@ -533,99 +984,114 @@ class WorkspaceApi {
|
|
533
984
|
constructor(extraProps) {
|
534
985
|
this.extraProps = extraProps;
|
535
986
|
}
|
536
|
-
|
987
|
+
getWorkspacesList() {
|
988
|
+
return operationsByTag.workspaces.getWorkspacesList({ ...this.extraProps });
|
989
|
+
}
|
990
|
+
createWorkspace({ data }) {
|
537
991
|
return operationsByTag.workspaces.createWorkspace({
|
538
|
-
body:
|
992
|
+
body: data,
|
539
993
|
...this.extraProps
|
540
994
|
});
|
541
995
|
}
|
542
|
-
|
543
|
-
return operationsByTag.workspaces.getWorkspacesList({ ...this.extraProps });
|
544
|
-
}
|
545
|
-
getWorkspace(workspaceId) {
|
996
|
+
getWorkspace({ workspace }) {
|
546
997
|
return operationsByTag.workspaces.getWorkspace({
|
547
|
-
pathParams: { workspaceId },
|
998
|
+
pathParams: { workspaceId: workspace },
|
548
999
|
...this.extraProps
|
549
1000
|
});
|
550
1001
|
}
|
551
|
-
updateWorkspace(
|
1002
|
+
updateWorkspace({
|
1003
|
+
workspace,
|
1004
|
+
update
|
1005
|
+
}) {
|
552
1006
|
return operationsByTag.workspaces.updateWorkspace({
|
553
|
-
pathParams: { workspaceId },
|
554
|
-
body:
|
1007
|
+
pathParams: { workspaceId: workspace },
|
1008
|
+
body: update,
|
555
1009
|
...this.extraProps
|
556
1010
|
});
|
557
1011
|
}
|
558
|
-
deleteWorkspace(
|
1012
|
+
deleteWorkspace({ workspace }) {
|
559
1013
|
return operationsByTag.workspaces.deleteWorkspace({
|
560
|
-
pathParams: { workspaceId },
|
1014
|
+
pathParams: { workspaceId: workspace },
|
561
1015
|
...this.extraProps
|
562
1016
|
});
|
563
1017
|
}
|
564
|
-
getWorkspaceMembersList(
|
1018
|
+
getWorkspaceMembersList({ workspace }) {
|
565
1019
|
return operationsByTag.workspaces.getWorkspaceMembersList({
|
566
|
-
pathParams: { workspaceId },
|
1020
|
+
pathParams: { workspaceId: workspace },
|
567
1021
|
...this.extraProps
|
568
1022
|
});
|
569
1023
|
}
|
570
|
-
updateWorkspaceMemberRole(
|
1024
|
+
updateWorkspaceMemberRole({
|
1025
|
+
workspace,
|
1026
|
+
user,
|
1027
|
+
role
|
1028
|
+
}) {
|
571
1029
|
return operationsByTag.workspaces.updateWorkspaceMemberRole({
|
572
|
-
pathParams: { workspaceId, userId },
|
1030
|
+
pathParams: { workspaceId: workspace, userId: user },
|
573
1031
|
body: { role },
|
574
1032
|
...this.extraProps
|
575
1033
|
});
|
576
1034
|
}
|
577
|
-
removeWorkspaceMember(
|
1035
|
+
removeWorkspaceMember({
|
1036
|
+
workspace,
|
1037
|
+
user
|
1038
|
+
}) {
|
578
1039
|
return operationsByTag.workspaces.removeWorkspaceMember({
|
579
|
-
pathParams: { workspaceId, userId },
|
1040
|
+
pathParams: { workspaceId: workspace, userId: user },
|
580
1041
|
...this.extraProps
|
581
1042
|
});
|
582
1043
|
}
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
...this.extraProps
|
588
|
-
});
|
589
|
-
}
|
590
|
-
cancelWorkspaceMemberInvite(workspaceId, inviteId) {
|
591
|
-
return operationsByTag.workspaces.cancelWorkspaceMemberInvite({
|
592
|
-
pathParams: { workspaceId, inviteId },
|
593
|
-
...this.extraProps
|
594
|
-
});
|
1044
|
+
}
|
1045
|
+
class InvitesApi {
|
1046
|
+
constructor(extraProps) {
|
1047
|
+
this.extraProps = extraProps;
|
595
1048
|
}
|
596
|
-
|
597
|
-
|
598
|
-
|
1049
|
+
inviteWorkspaceMember({
|
1050
|
+
workspace,
|
1051
|
+
email,
|
1052
|
+
role
|
1053
|
+
}) {
|
1054
|
+
return operationsByTag.invites.inviteWorkspaceMember({
|
1055
|
+
pathParams: { workspaceId: workspace },
|
1056
|
+
body: { email, role },
|
599
1057
|
...this.extraProps
|
600
1058
|
});
|
601
1059
|
}
|
602
|
-
|
603
|
-
|
604
|
-
|
1060
|
+
updateWorkspaceMemberInvite({
|
1061
|
+
workspace,
|
1062
|
+
invite,
|
1063
|
+
role
|
1064
|
+
}) {
|
1065
|
+
return operationsByTag.invites.updateWorkspaceMemberInvite({
|
1066
|
+
pathParams: { workspaceId: workspace, inviteId: invite },
|
1067
|
+
body: { role },
|
605
1068
|
...this.extraProps
|
606
1069
|
});
|
607
1070
|
}
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
return operationsByTag.database.getDatabaseList({
|
615
|
-
pathParams: { workspace },
|
1071
|
+
cancelWorkspaceMemberInvite({
|
1072
|
+
workspace,
|
1073
|
+
invite
|
1074
|
+
}) {
|
1075
|
+
return operationsByTag.invites.cancelWorkspaceMemberInvite({
|
1076
|
+
pathParams: { workspaceId: workspace, inviteId: invite },
|
616
1077
|
...this.extraProps
|
617
1078
|
});
|
618
1079
|
}
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
1080
|
+
acceptWorkspaceMemberInvite({
|
1081
|
+
workspace,
|
1082
|
+
key
|
1083
|
+
}) {
|
1084
|
+
return operationsByTag.invites.acceptWorkspaceMemberInvite({
|
1085
|
+
pathParams: { workspaceId: workspace, inviteKey: key },
|
623
1086
|
...this.extraProps
|
624
1087
|
});
|
625
1088
|
}
|
626
|
-
|
627
|
-
|
628
|
-
|
1089
|
+
resendWorkspaceMemberInvite({
|
1090
|
+
workspace,
|
1091
|
+
invite
|
1092
|
+
}) {
|
1093
|
+
return operationsByTag.invites.resendWorkspaceMemberInvite({
|
1094
|
+
pathParams: { workspaceId: workspace, inviteId: invite },
|
629
1095
|
...this.extraProps
|
630
1096
|
});
|
631
1097
|
}
|
@@ -634,69 +1100,132 @@ class BranchApi {
|
|
634
1100
|
constructor(extraProps) {
|
635
1101
|
this.extraProps = extraProps;
|
636
1102
|
}
|
637
|
-
getBranchList(
|
1103
|
+
getBranchList({
|
1104
|
+
workspace,
|
1105
|
+
region,
|
1106
|
+
database
|
1107
|
+
}) {
|
638
1108
|
return operationsByTag.branch.getBranchList({
|
639
|
-
pathParams: { workspace, dbName },
|
1109
|
+
pathParams: { workspace, region, dbName: database },
|
640
1110
|
...this.extraProps
|
641
1111
|
});
|
642
1112
|
}
|
643
|
-
getBranchDetails(
|
1113
|
+
getBranchDetails({
|
1114
|
+
workspace,
|
1115
|
+
region,
|
1116
|
+
database,
|
1117
|
+
branch
|
1118
|
+
}) {
|
644
1119
|
return operationsByTag.branch.getBranchDetails({
|
645
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
1120
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
646
1121
|
...this.extraProps
|
647
1122
|
});
|
648
1123
|
}
|
649
|
-
createBranch(
|
1124
|
+
createBranch({
|
1125
|
+
workspace,
|
1126
|
+
region,
|
1127
|
+
database,
|
1128
|
+
branch,
|
1129
|
+
from,
|
1130
|
+
metadata
|
1131
|
+
}) {
|
650
1132
|
return operationsByTag.branch.createBranch({
|
651
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
652
|
-
|
653
|
-
body: options,
|
1133
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
1134
|
+
body: { from, metadata },
|
654
1135
|
...this.extraProps
|
655
1136
|
});
|
656
1137
|
}
|
657
|
-
deleteBranch(
|
1138
|
+
deleteBranch({
|
1139
|
+
workspace,
|
1140
|
+
region,
|
1141
|
+
database,
|
1142
|
+
branch
|
1143
|
+
}) {
|
658
1144
|
return operationsByTag.branch.deleteBranch({
|
659
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
1145
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
660
1146
|
...this.extraProps
|
661
1147
|
});
|
662
1148
|
}
|
663
|
-
updateBranchMetadata(
|
1149
|
+
updateBranchMetadata({
|
1150
|
+
workspace,
|
1151
|
+
region,
|
1152
|
+
database,
|
1153
|
+
branch,
|
1154
|
+
metadata
|
1155
|
+
}) {
|
664
1156
|
return operationsByTag.branch.updateBranchMetadata({
|
665
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
1157
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
666
1158
|
body: metadata,
|
667
1159
|
...this.extraProps
|
668
1160
|
});
|
669
1161
|
}
|
670
|
-
getBranchMetadata(
|
1162
|
+
getBranchMetadata({
|
1163
|
+
workspace,
|
1164
|
+
region,
|
1165
|
+
database,
|
1166
|
+
branch
|
1167
|
+
}) {
|
671
1168
|
return operationsByTag.branch.getBranchMetadata({
|
672
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
1169
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
673
1170
|
...this.extraProps
|
674
1171
|
});
|
675
1172
|
}
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
1173
|
+
getBranchStats({
|
1174
|
+
workspace,
|
1175
|
+
region,
|
1176
|
+
database,
|
1177
|
+
branch
|
1178
|
+
}) {
|
1179
|
+
return operationsByTag.branch.getBranchStats({
|
1180
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}` },
|
680
1181
|
...this.extraProps
|
681
1182
|
});
|
682
1183
|
}
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
1184
|
+
getGitBranchesMapping({
|
1185
|
+
workspace,
|
1186
|
+
region,
|
1187
|
+
database
|
1188
|
+
}) {
|
1189
|
+
return operationsByTag.branch.getGitBranchesMapping({
|
1190
|
+
pathParams: { workspace, region, dbName: database },
|
687
1191
|
...this.extraProps
|
688
1192
|
});
|
689
1193
|
}
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
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 },
|
694
1204
|
...this.extraProps
|
695
1205
|
});
|
696
1206
|
}
|
697
|
-
|
698
|
-
|
699
|
-
|
1207
|
+
removeGitBranchesEntry({
|
1208
|
+
workspace,
|
1209
|
+
region,
|
1210
|
+
database,
|
1211
|
+
gitBranch
|
1212
|
+
}) {
|
1213
|
+
return operationsByTag.branch.removeGitBranchesEntry({
|
1214
|
+
pathParams: { workspace, region, dbName: database },
|
1215
|
+
queryParams: { gitBranch },
|
1216
|
+
...this.extraProps
|
1217
|
+
});
|
1218
|
+
}
|
1219
|
+
resolveBranch({
|
1220
|
+
workspace,
|
1221
|
+
region,
|
1222
|
+
database,
|
1223
|
+
gitBranch,
|
1224
|
+
fallbackBranch
|
1225
|
+
}) {
|
1226
|
+
return operationsByTag.branch.resolveBranch({
|
1227
|
+
pathParams: { workspace, region, dbName: database },
|
1228
|
+
queryParams: { gitBranch, fallbackBranch },
|
700
1229
|
...this.extraProps
|
701
1230
|
});
|
702
1231
|
}
|
@@ -705,67 +1234,134 @@ class TableApi {
|
|
705
1234
|
constructor(extraProps) {
|
706
1235
|
this.extraProps = extraProps;
|
707
1236
|
}
|
708
|
-
createTable(
|
1237
|
+
createTable({
|
1238
|
+
workspace,
|
1239
|
+
region,
|
1240
|
+
database,
|
1241
|
+
branch,
|
1242
|
+
table
|
1243
|
+
}) {
|
709
1244
|
return operationsByTag.table.createTable({
|
710
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1245
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
711
1246
|
...this.extraProps
|
712
1247
|
});
|
713
1248
|
}
|
714
|
-
deleteTable(
|
1249
|
+
deleteTable({
|
1250
|
+
workspace,
|
1251
|
+
region,
|
1252
|
+
database,
|
1253
|
+
branch,
|
1254
|
+
table
|
1255
|
+
}) {
|
715
1256
|
return operationsByTag.table.deleteTable({
|
716
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1257
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
717
1258
|
...this.extraProps
|
718
1259
|
});
|
719
1260
|
}
|
720
|
-
updateTable(
|
1261
|
+
updateTable({
|
1262
|
+
workspace,
|
1263
|
+
region,
|
1264
|
+
database,
|
1265
|
+
branch,
|
1266
|
+
table,
|
1267
|
+
update
|
1268
|
+
}) {
|
721
1269
|
return operationsByTag.table.updateTable({
|
722
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
723
|
-
body:
|
1270
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
1271
|
+
body: update,
|
724
1272
|
...this.extraProps
|
725
1273
|
});
|
726
1274
|
}
|
727
|
-
getTableSchema(
|
1275
|
+
getTableSchema({
|
1276
|
+
workspace,
|
1277
|
+
region,
|
1278
|
+
database,
|
1279
|
+
branch,
|
1280
|
+
table
|
1281
|
+
}) {
|
728
1282
|
return operationsByTag.table.getTableSchema({
|
729
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1283
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
730
1284
|
...this.extraProps
|
731
1285
|
});
|
732
1286
|
}
|
733
|
-
setTableSchema(
|
1287
|
+
setTableSchema({
|
1288
|
+
workspace,
|
1289
|
+
region,
|
1290
|
+
database,
|
1291
|
+
branch,
|
1292
|
+
table,
|
1293
|
+
schema
|
1294
|
+
}) {
|
734
1295
|
return operationsByTag.table.setTableSchema({
|
735
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
736
|
-
body:
|
1296
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
1297
|
+
body: schema,
|
737
1298
|
...this.extraProps
|
738
1299
|
});
|
739
1300
|
}
|
740
|
-
getTableColumns(
|
1301
|
+
getTableColumns({
|
1302
|
+
workspace,
|
1303
|
+
region,
|
1304
|
+
database,
|
1305
|
+
branch,
|
1306
|
+
table
|
1307
|
+
}) {
|
741
1308
|
return operationsByTag.table.getTableColumns({
|
742
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1309
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
743
1310
|
...this.extraProps
|
744
1311
|
});
|
745
1312
|
}
|
746
|
-
addTableColumn(
|
1313
|
+
addTableColumn({
|
1314
|
+
workspace,
|
1315
|
+
region,
|
1316
|
+
database,
|
1317
|
+
branch,
|
1318
|
+
table,
|
1319
|
+
column
|
1320
|
+
}) {
|
747
1321
|
return operationsByTag.table.addTableColumn({
|
748
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1322
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
749
1323
|
body: column,
|
750
1324
|
...this.extraProps
|
751
1325
|
});
|
752
1326
|
}
|
753
|
-
getColumn(
|
1327
|
+
getColumn({
|
1328
|
+
workspace,
|
1329
|
+
region,
|
1330
|
+
database,
|
1331
|
+
branch,
|
1332
|
+
table,
|
1333
|
+
column
|
1334
|
+
}) {
|
754
1335
|
return operationsByTag.table.getColumn({
|
755
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, columnName },
|
1336
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, columnName: column },
|
756
1337
|
...this.extraProps
|
757
1338
|
});
|
758
1339
|
}
|
759
|
-
|
760
|
-
|
761
|
-
|
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,
|
762
1352
|
...this.extraProps
|
763
1353
|
});
|
764
1354
|
}
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
|
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 },
|
769
1365
|
...this.extraProps
|
770
1366
|
});
|
771
1367
|
}
|
@@ -774,67 +1370,511 @@ class RecordsApi {
|
|
774
1370
|
constructor(extraProps) {
|
775
1371
|
this.extraProps = extraProps;
|
776
1372
|
}
|
777
|
-
insertRecord(
|
1373
|
+
insertRecord({
|
1374
|
+
workspace,
|
1375
|
+
region,
|
1376
|
+
database,
|
1377
|
+
branch,
|
1378
|
+
table,
|
1379
|
+
record,
|
1380
|
+
columns
|
1381
|
+
}) {
|
778
1382
|
return operationsByTag.records.insertRecord({
|
779
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1383
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table },
|
1384
|
+
queryParams: { columns },
|
780
1385
|
body: record,
|
781
1386
|
...this.extraProps
|
782
1387
|
});
|
783
1388
|
}
|
784
|
-
|
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
|
+
}) {
|
785
1416
|
return operationsByTag.records.insertRecordWithID({
|
786
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
|
787
|
-
queryParams:
|
1417
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
|
1418
|
+
queryParams: { columns, createOnly, ifVersion },
|
788
1419
|
body: record,
|
789
1420
|
...this.extraProps
|
790
1421
|
});
|
791
1422
|
}
|
792
|
-
updateRecordWithID(
|
1423
|
+
updateRecordWithID({
|
1424
|
+
workspace,
|
1425
|
+
region,
|
1426
|
+
database,
|
1427
|
+
branch,
|
1428
|
+
table,
|
1429
|
+
id,
|
1430
|
+
record,
|
1431
|
+
columns,
|
1432
|
+
ifVersion
|
1433
|
+
}) {
|
793
1434
|
return operationsByTag.records.updateRecordWithID({
|
794
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
|
795
|
-
queryParams:
|
1435
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
|
1436
|
+
queryParams: { columns, ifVersion },
|
796
1437
|
body: record,
|
797
1438
|
...this.extraProps
|
798
1439
|
});
|
799
1440
|
}
|
800
|
-
upsertRecordWithID(
|
1441
|
+
upsertRecordWithID({
|
1442
|
+
workspace,
|
1443
|
+
region,
|
1444
|
+
database,
|
1445
|
+
branch,
|
1446
|
+
table,
|
1447
|
+
id,
|
1448
|
+
record,
|
1449
|
+
columns,
|
1450
|
+
ifVersion
|
1451
|
+
}) {
|
801
1452
|
return operationsByTag.records.upsertRecordWithID({
|
802
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
|
803
|
-
queryParams:
|
1453
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
|
1454
|
+
queryParams: { columns, ifVersion },
|
804
1455
|
body: record,
|
805
1456
|
...this.extraProps
|
806
1457
|
});
|
807
1458
|
}
|
808
|
-
deleteRecord(
|
1459
|
+
deleteRecord({
|
1460
|
+
workspace,
|
1461
|
+
region,
|
1462
|
+
database,
|
1463
|
+
branch,
|
1464
|
+
table,
|
1465
|
+
id,
|
1466
|
+
columns
|
1467
|
+
}) {
|
809
1468
|
return operationsByTag.records.deleteRecord({
|
810
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
|
1469
|
+
pathParams: { workspace, region, dbBranchName: `${database}:${branch}`, tableName: table, recordId: id },
|
1470
|
+
queryParams: { columns },
|
811
1471
|
...this.extraProps
|
812
1472
|
});
|
813
1473
|
}
|
814
|
-
|
815
|
-
|
816
|
-
|
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 },
|
817
1487
|
...this.extraProps
|
818
1488
|
});
|
819
1489
|
}
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
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 },
|
1615
|
+
...this.extraProps
|
1616
|
+
});
|
1617
|
+
}
|
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,
|
1627
|
+
...this.extraProps
|
1628
|
+
});
|
1629
|
+
}
|
1630
|
+
getMigrationRequest({
|
1631
|
+
workspace,
|
1632
|
+
region,
|
1633
|
+
database,
|
1634
|
+
migrationRequest
|
1635
|
+
}) {
|
1636
|
+
return operationsByTag.migrationRequests.getMigrationRequest({
|
1637
|
+
pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
|
1638
|
+
...this.extraProps
|
1639
|
+
});
|
1640
|
+
}
|
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,
|
1651
|
+
...this.extraProps
|
1652
|
+
});
|
1653
|
+
}
|
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 },
|
1664
|
+
...this.extraProps
|
1665
|
+
});
|
1666
|
+
}
|
1667
|
+
compareMigrationRequest({
|
1668
|
+
workspace,
|
1669
|
+
region,
|
1670
|
+
database,
|
1671
|
+
migrationRequest
|
1672
|
+
}) {
|
1673
|
+
return operationsByTag.migrationRequests.compareMigrationRequest({
|
1674
|
+
pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
|
1675
|
+
...this.extraProps
|
1676
|
+
});
|
1677
|
+
}
|
1678
|
+
getMigrationRequestIsMerged({
|
1679
|
+
workspace,
|
1680
|
+
region,
|
1681
|
+
database,
|
1682
|
+
migrationRequest
|
1683
|
+
}) {
|
1684
|
+
return operationsByTag.migrationRequests.getMigrationRequestIsMerged({
|
1685
|
+
pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
|
1686
|
+
...this.extraProps
|
1687
|
+
});
|
1688
|
+
}
|
1689
|
+
mergeMigrationRequest({
|
1690
|
+
workspace,
|
1691
|
+
region,
|
1692
|
+
database,
|
1693
|
+
migrationRequest
|
1694
|
+
}) {
|
1695
|
+
return operationsByTag.migrationRequests.mergeMigrationRequest({
|
1696
|
+
pathParams: { workspace, region, dbName: database, mrNumber: migrationRequest },
|
1697
|
+
...this.extraProps
|
1698
|
+
});
|
1699
|
+
}
|
1700
|
+
}
|
1701
|
+
class MigrationsApi {
|
1702
|
+
constructor(extraProps) {
|
1703
|
+
this.extraProps = extraProps;
|
1704
|
+
}
|
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 },
|
1716
|
+
...this.extraProps
|
1717
|
+
});
|
1718
|
+
}
|
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,
|
1729
|
+
...this.extraProps
|
1730
|
+
});
|
1731
|
+
}
|
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,
|
1742
|
+
...this.extraProps
|
1743
|
+
});
|
1744
|
+
}
|
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 },
|
1755
|
+
...this.extraProps
|
1756
|
+
});
|
1757
|
+
}
|
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 },
|
1768
|
+
...this.extraProps
|
1769
|
+
});
|
1770
|
+
}
|
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 },
|
1782
|
+
...this.extraProps
|
1783
|
+
});
|
1784
|
+
}
|
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,
|
1795
|
+
...this.extraProps
|
1796
|
+
});
|
1797
|
+
}
|
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,
|
1808
|
+
...this.extraProps
|
1809
|
+
});
|
1810
|
+
}
|
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 },
|
1821
|
+
...this.extraProps
|
1822
|
+
});
|
1823
|
+
}
|
1824
|
+
}
|
1825
|
+
class DatabaseApi {
|
1826
|
+
constructor(extraProps) {
|
1827
|
+
this.extraProps = extraProps;
|
1828
|
+
}
|
1829
|
+
getDatabaseList({ workspace }) {
|
1830
|
+
return operationsByTag.databases.getDatabaseList({
|
1831
|
+
pathParams: { workspaceId: workspace },
|
1832
|
+
...this.extraProps
|
1833
|
+
});
|
1834
|
+
}
|
1835
|
+
createDatabase({
|
1836
|
+
workspace,
|
1837
|
+
database,
|
1838
|
+
data
|
1839
|
+
}) {
|
1840
|
+
return operationsByTag.databases.createDatabase({
|
1841
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
1842
|
+
body: data,
|
1843
|
+
...this.extraProps
|
1844
|
+
});
|
1845
|
+
}
|
1846
|
+
deleteDatabase({
|
1847
|
+
workspace,
|
1848
|
+
database
|
1849
|
+
}) {
|
1850
|
+
return operationsByTag.databases.deleteDatabase({
|
1851
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
1852
|
+
...this.extraProps
|
1853
|
+
});
|
1854
|
+
}
|
1855
|
+
getDatabaseMetadata({
|
1856
|
+
workspace,
|
1857
|
+
database
|
1858
|
+
}) {
|
1859
|
+
return operationsByTag.databases.getDatabaseMetadata({
|
1860
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
824
1861
|
...this.extraProps
|
825
1862
|
});
|
826
1863
|
}
|
827
|
-
|
828
|
-
|
829
|
-
|
830
|
-
|
1864
|
+
updateDatabaseMetadata({
|
1865
|
+
workspace,
|
1866
|
+
database,
|
1867
|
+
metadata
|
1868
|
+
}) {
|
1869
|
+
return operationsByTag.databases.updateDatabaseMetadata({
|
1870
|
+
pathParams: { workspaceId: workspace, dbName: database },
|
1871
|
+
body: metadata,
|
831
1872
|
...this.extraProps
|
832
1873
|
});
|
833
1874
|
}
|
834
|
-
|
835
|
-
return operationsByTag.
|
836
|
-
pathParams: {
|
837
|
-
body: query,
|
1875
|
+
listRegions({ workspace }) {
|
1876
|
+
return operationsByTag.databases.listRegions({
|
1877
|
+
pathParams: { workspaceId: workspace },
|
838
1878
|
...this.extraProps
|
839
1879
|
});
|
840
1880
|
}
|
@@ -850,43 +1890,50 @@ class XataApiPlugin {
|
|
850
1890
|
class XataPlugin {
|
851
1891
|
}
|
852
1892
|
|
853
|
-
|
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
|
+
|
1900
|
+
var __accessCheck$6 = (obj, member, msg) => {
|
854
1901
|
if (!member.has(obj))
|
855
1902
|
throw TypeError("Cannot " + msg);
|
856
1903
|
};
|
857
|
-
var __privateGet$
|
858
|
-
__accessCheck$
|
1904
|
+
var __privateGet$6 = (obj, member, getter) => {
|
1905
|
+
__accessCheck$6(obj, member, "read from private field");
|
859
1906
|
return getter ? getter.call(obj) : member.get(obj);
|
860
1907
|
};
|
861
|
-
var __privateAdd$
|
1908
|
+
var __privateAdd$6 = (obj, member, value) => {
|
862
1909
|
if (member.has(obj))
|
863
1910
|
throw TypeError("Cannot add the same private member more than once");
|
864
1911
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
865
1912
|
};
|
866
|
-
var __privateSet$
|
867
|
-
__accessCheck$
|
1913
|
+
var __privateSet$6 = (obj, member, value, setter) => {
|
1914
|
+
__accessCheck$6(obj, member, "write to private field");
|
868
1915
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
869
1916
|
return value;
|
870
1917
|
};
|
871
|
-
var _query;
|
1918
|
+
var _query, _page;
|
872
1919
|
class Page {
|
873
1920
|
constructor(query, meta, records = []) {
|
874
|
-
__privateAdd$
|
875
|
-
__privateSet$
|
1921
|
+
__privateAdd$6(this, _query, void 0);
|
1922
|
+
__privateSet$6(this, _query, query);
|
876
1923
|
this.meta = meta;
|
877
|
-
this.records = records;
|
1924
|
+
this.records = new RecordArray(this, records);
|
878
1925
|
}
|
879
1926
|
async nextPage(size, offset) {
|
880
|
-
return __privateGet$
|
1927
|
+
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, after: this.meta.page.cursor } });
|
881
1928
|
}
|
882
1929
|
async previousPage(size, offset) {
|
883
|
-
return __privateGet$
|
1930
|
+
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, before: this.meta.page.cursor } });
|
884
1931
|
}
|
885
|
-
async
|
886
|
-
return __privateGet$
|
1932
|
+
async startPage(size, offset) {
|
1933
|
+
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, start: this.meta.page.cursor } });
|
887
1934
|
}
|
888
|
-
async
|
889
|
-
return __privateGet$
|
1935
|
+
async endPage(size, offset) {
|
1936
|
+
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, end: this.meta.page.cursor } });
|
890
1937
|
}
|
891
1938
|
hasNextPage() {
|
892
1939
|
return this.meta.page.more;
|
@@ -894,50 +1941,106 @@ class Page {
|
|
894
1941
|
}
|
895
1942
|
_query = new WeakMap();
|
896
1943
|
const PAGINATION_MAX_SIZE = 200;
|
897
|
-
const PAGINATION_DEFAULT_SIZE =
|
1944
|
+
const PAGINATION_DEFAULT_SIZE = 20;
|
898
1945
|
const PAGINATION_MAX_OFFSET = 800;
|
899
1946
|
const PAGINATION_DEFAULT_OFFSET = 0;
|
1947
|
+
function isCursorPaginationOptions(options) {
|
1948
|
+
return isDefined(options) && (isDefined(options.start) || isDefined(options.end) || isDefined(options.after) || isDefined(options.before));
|
1949
|
+
}
|
1950
|
+
const _RecordArray = class extends Array {
|
1951
|
+
constructor(...args) {
|
1952
|
+
super(..._RecordArray.parseConstructorParams(...args));
|
1953
|
+
__privateAdd$6(this, _page, void 0);
|
1954
|
+
__privateSet$6(this, _page, isObject(args[0]?.meta) ? args[0] : { meta: { page: { cursor: "", more: false } }, records: [] });
|
1955
|
+
}
|
1956
|
+
static parseConstructorParams(...args) {
|
1957
|
+
if (args.length === 1 && typeof args[0] === "number") {
|
1958
|
+
return new Array(args[0]);
|
1959
|
+
}
|
1960
|
+
if (args.length <= 2 && isObject(args[0]?.meta) && Array.isArray(args[1] ?? [])) {
|
1961
|
+
const result = args[1] ?? args[0].records ?? [];
|
1962
|
+
return new Array(...result);
|
1963
|
+
}
|
1964
|
+
return new Array(...args);
|
1965
|
+
}
|
1966
|
+
toArray() {
|
1967
|
+
return new Array(...this);
|
1968
|
+
}
|
1969
|
+
map(callbackfn, thisArg) {
|
1970
|
+
return this.toArray().map(callbackfn, thisArg);
|
1971
|
+
}
|
1972
|
+
async nextPage(size, offset) {
|
1973
|
+
const newPage = await __privateGet$6(this, _page).nextPage(size, offset);
|
1974
|
+
return new _RecordArray(newPage);
|
1975
|
+
}
|
1976
|
+
async previousPage(size, offset) {
|
1977
|
+
const newPage = await __privateGet$6(this, _page).previousPage(size, offset);
|
1978
|
+
return new _RecordArray(newPage);
|
1979
|
+
}
|
1980
|
+
async startPage(size, offset) {
|
1981
|
+
const newPage = await __privateGet$6(this, _page).startPage(size, offset);
|
1982
|
+
return new _RecordArray(newPage);
|
1983
|
+
}
|
1984
|
+
async endPage(size, offset) {
|
1985
|
+
const newPage = await __privateGet$6(this, _page).endPage(size, offset);
|
1986
|
+
return new _RecordArray(newPage);
|
1987
|
+
}
|
1988
|
+
hasNextPage() {
|
1989
|
+
return __privateGet$6(this, _page).meta.page.more;
|
1990
|
+
}
|
1991
|
+
};
|
1992
|
+
let RecordArray = _RecordArray;
|
1993
|
+
_page = new WeakMap();
|
900
1994
|
|
901
|
-
var __accessCheck$
|
1995
|
+
var __accessCheck$5 = (obj, member, msg) => {
|
902
1996
|
if (!member.has(obj))
|
903
1997
|
throw TypeError("Cannot " + msg);
|
904
1998
|
};
|
905
|
-
var __privateGet$
|
906
|
-
__accessCheck$
|
1999
|
+
var __privateGet$5 = (obj, member, getter) => {
|
2000
|
+
__accessCheck$5(obj, member, "read from private field");
|
907
2001
|
return getter ? getter.call(obj) : member.get(obj);
|
908
2002
|
};
|
909
|
-
var __privateAdd$
|
2003
|
+
var __privateAdd$5 = (obj, member, value) => {
|
910
2004
|
if (member.has(obj))
|
911
2005
|
throw TypeError("Cannot add the same private member more than once");
|
912
2006
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
913
2007
|
};
|
914
|
-
var __privateSet$
|
915
|
-
__accessCheck$
|
2008
|
+
var __privateSet$5 = (obj, member, value, setter) => {
|
2009
|
+
__accessCheck$5(obj, member, "write to private field");
|
916
2010
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
917
2011
|
return value;
|
918
2012
|
};
|
919
|
-
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;
|
920
2018
|
const _Query = class {
|
921
|
-
constructor(repository, table, data,
|
922
|
-
__privateAdd$
|
923
|
-
__privateAdd$
|
924
|
-
__privateAdd$
|
2019
|
+
constructor(repository, table, data, rawParent) {
|
2020
|
+
__privateAdd$5(this, _cleanFilterConstraint);
|
2021
|
+
__privateAdd$5(this, _table$1, void 0);
|
2022
|
+
__privateAdd$5(this, _repository, void 0);
|
2023
|
+
__privateAdd$5(this, _data, { filter: {} });
|
925
2024
|
this.meta = { page: { cursor: "start", more: true } };
|
926
|
-
this.records = [];
|
927
|
-
__privateSet$
|
2025
|
+
this.records = new RecordArray(this, []);
|
2026
|
+
__privateSet$5(this, _table$1, table);
|
928
2027
|
if (repository) {
|
929
|
-
__privateSet$
|
2028
|
+
__privateSet$5(this, _repository, repository);
|
930
2029
|
} else {
|
931
|
-
__privateSet$
|
2030
|
+
__privateSet$5(this, _repository, this);
|
932
2031
|
}
|
933
|
-
|
934
|
-
__privateGet$
|
935
|
-
__privateGet$
|
936
|
-
__privateGet$
|
937
|
-
__privateGet$
|
938
|
-
__privateGet$
|
939
|
-
__privateGet$
|
940
|
-
__privateGet$
|
2032
|
+
const parent = cleanParent(data, rawParent);
|
2033
|
+
__privateGet$5(this, _data).filter = data.filter ?? parent?.filter ?? {};
|
2034
|
+
__privateGet$5(this, _data).filter.$any = data.filter?.$any ?? parent?.filter?.$any;
|
2035
|
+
__privateGet$5(this, _data).filter.$all = data.filter?.$all ?? parent?.filter?.$all;
|
2036
|
+
__privateGet$5(this, _data).filter.$not = data.filter?.$not ?? parent?.filter?.$not;
|
2037
|
+
__privateGet$5(this, _data).filter.$none = data.filter?.$none ?? parent?.filter?.$none;
|
2038
|
+
__privateGet$5(this, _data).sort = data.sort ?? parent?.sort;
|
2039
|
+
__privateGet$5(this, _data).columns = data.columns ?? parent?.columns;
|
2040
|
+
__privateGet$5(this, _data).consistency = data.consistency ?? parent?.consistency;
|
2041
|
+
__privateGet$5(this, _data).pagination = data.pagination ?? parent?.pagination;
|
2042
|
+
__privateGet$5(this, _data).cache = data.cache ?? parent?.cache;
|
2043
|
+
__privateGet$5(this, _data).fetchOptions = data.fetchOptions ?? parent?.fetchOptions;
|
941
2044
|
this.any = this.any.bind(this);
|
942
2045
|
this.all = this.all.bind(this);
|
943
2046
|
this.not = this.not.bind(this);
|
@@ -948,87 +2051,133 @@ const _Query = class {
|
|
948
2051
|
Object.defineProperty(this, "repository", { enumerable: false });
|
949
2052
|
}
|
950
2053
|
getQueryOptions() {
|
951
|
-
return __privateGet$
|
2054
|
+
return __privateGet$5(this, _data);
|
2055
|
+
}
|
2056
|
+
key() {
|
2057
|
+
const { columns = [], filter = {}, sort = [], pagination = {} } = __privateGet$5(this, _data);
|
2058
|
+
const key = JSON.stringify({ columns, filter, sort, pagination });
|
2059
|
+
return toBase64(key);
|
952
2060
|
}
|
953
2061
|
any(...queries) {
|
954
2062
|
const $any = queries.map((query) => query.getQueryOptions().filter ?? {});
|
955
|
-
return new _Query(__privateGet$
|
2063
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $any } }, __privateGet$5(this, _data));
|
956
2064
|
}
|
957
2065
|
all(...queries) {
|
958
2066
|
const $all = queries.map((query) => query.getQueryOptions().filter ?? {});
|
959
|
-
return new _Query(__privateGet$
|
2067
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
960
2068
|
}
|
961
2069
|
not(...queries) {
|
962
2070
|
const $not = queries.map((query) => query.getQueryOptions().filter ?? {});
|
963
|
-
return new _Query(__privateGet$
|
2071
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $not } }, __privateGet$5(this, _data));
|
964
2072
|
}
|
965
2073
|
none(...queries) {
|
966
2074
|
const $none = queries.map((query) => query.getQueryOptions().filter ?? {});
|
967
|
-
return new _Query(__privateGet$
|
2075
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $none } }, __privateGet$5(this, _data));
|
968
2076
|
}
|
969
2077
|
filter(a, b) {
|
970
2078
|
if (arguments.length === 1) {
|
971
|
-
const constraints = Object.entries(a).map(([column, constraint]) => ({
|
972
|
-
|
973
|
-
|
2079
|
+
const constraints = Object.entries(a ?? {}).map(([column, constraint]) => ({
|
2080
|
+
[column]: __privateMethod$3(this, _cleanFilterConstraint, cleanFilterConstraint_fn).call(this, column, constraint)
|
2081
|
+
}));
|
2082
|
+
const $all = compact([__privateGet$5(this, _data).filter?.$all].flat().concat(constraints));
|
2083
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
974
2084
|
} else {
|
975
|
-
const
|
976
|
-
|
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));
|
2087
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
977
2088
|
}
|
978
2089
|
}
|
979
|
-
sort(column, direction) {
|
980
|
-
const originalSort = [__privateGet$
|
2090
|
+
sort(column, direction = "asc") {
|
2091
|
+
const originalSort = [__privateGet$5(this, _data).sort ?? []].flat();
|
981
2092
|
const sort = [...originalSort, { column, direction }];
|
982
|
-
return new _Query(__privateGet$
|
2093
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { sort }, __privateGet$5(this, _data));
|
983
2094
|
}
|
984
2095
|
select(columns) {
|
985
|
-
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
|
+
);
|
986
2102
|
}
|
987
2103
|
getPaginated(options = {}) {
|
988
|
-
const query = new _Query(__privateGet$
|
989
|
-
return __privateGet$
|
2104
|
+
const query = new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), options, __privateGet$5(this, _data));
|
2105
|
+
return __privateGet$5(this, _repository).query(query);
|
990
2106
|
}
|
991
2107
|
async *[Symbol.asyncIterator]() {
|
992
|
-
for await (const [record] of this.getIterator(1)) {
|
2108
|
+
for await (const [record] of this.getIterator({ batchSize: 1 })) {
|
993
2109
|
yield record;
|
994
2110
|
}
|
995
2111
|
}
|
996
|
-
async *getIterator(
|
997
|
-
|
998
|
-
let
|
999
|
-
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
2112
|
+
async *getIterator(options = {}) {
|
2113
|
+
const { batchSize = 1 } = options;
|
2114
|
+
let page = await this.getPaginated({ ...options, pagination: { size: batchSize, offset: 0 } });
|
2115
|
+
let more = page.hasNextPage();
|
2116
|
+
yield page.records;
|
2117
|
+
while (more) {
|
2118
|
+
page = await page.nextPage();
|
2119
|
+
more = page.hasNextPage();
|
2120
|
+
yield page.records;
|
1004
2121
|
}
|
1005
2122
|
}
|
1006
2123
|
async getMany(options = {}) {
|
1007
|
-
const {
|
1008
|
-
|
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
|
+
}
|
2133
|
+
if (page.hasNextPage() && options.pagination?.size === void 0) {
|
2134
|
+
console.trace("Calling getMany does not return all results. Paginate to get all results or call getAll.");
|
2135
|
+
}
|
2136
|
+
const array = new RecordArray(page, results.slice(0, size));
|
2137
|
+
return array;
|
1009
2138
|
}
|
1010
|
-
async getAll(
|
2139
|
+
async getAll(options = {}) {
|
2140
|
+
const { batchSize = PAGINATION_MAX_SIZE, ...rest } = options;
|
1011
2141
|
const results = [];
|
1012
|
-
for await (const page of this.getIterator(
|
2142
|
+
for await (const page of this.getIterator({ ...rest, batchSize })) {
|
1013
2143
|
results.push(...page);
|
1014
2144
|
}
|
1015
2145
|
return results;
|
1016
2146
|
}
|
1017
|
-
async
|
1018
|
-
const records = await this.getMany({ ...options,
|
1019
|
-
return records[0]
|
2147
|
+
async getFirst(options = {}) {
|
2148
|
+
const records = await this.getMany({ ...options, pagination: { size: 1 } });
|
2149
|
+
return records[0] ?? null;
|
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
|
+
}
|
2167
|
+
cache(ttl) {
|
2168
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { cache: ttl }, __privateGet$5(this, _data));
|
1020
2169
|
}
|
1021
2170
|
nextPage(size, offset) {
|
1022
|
-
return this.
|
2171
|
+
return this.startPage(size, offset);
|
1023
2172
|
}
|
1024
2173
|
previousPage(size, offset) {
|
1025
|
-
return this.
|
2174
|
+
return this.startPage(size, offset);
|
1026
2175
|
}
|
1027
|
-
|
1028
|
-
return this.getPaginated({
|
2176
|
+
startPage(size, offset) {
|
2177
|
+
return this.getPaginated({ pagination: { size, offset } });
|
1029
2178
|
}
|
1030
|
-
|
1031
|
-
return this.getPaginated({
|
2179
|
+
endPage(size, offset) {
|
2180
|
+
return this.getPaginated({ pagination: { size, offset, before: "end" } });
|
1032
2181
|
}
|
1033
2182
|
hasNextPage() {
|
1034
2183
|
return this.meta.page.more;
|
@@ -1038,12 +2187,31 @@ let Query = _Query;
|
|
1038
2187
|
_table$1 = new WeakMap();
|
1039
2188
|
_repository = new WeakMap();
|
1040
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
|
+
};
|
2201
|
+
function cleanParent(data, parent) {
|
2202
|
+
if (isCursorPaginationOptions(data.pagination)) {
|
2203
|
+
return { ...parent, sort: void 0, filter: void 0 };
|
2204
|
+
}
|
2205
|
+
return parent;
|
2206
|
+
}
|
1041
2207
|
|
1042
2208
|
function isIdentifiable(x) {
|
1043
2209
|
return isObject(x) && isString(x?.id);
|
1044
2210
|
}
|
1045
2211
|
function isXataRecord(x) {
|
1046
|
-
|
2212
|
+
const record = x;
|
2213
|
+
const metadata = record?.getMetadata();
|
2214
|
+
return isIdentifiable(x) && isObject(metadata) && typeof metadata.version === "number";
|
1047
2215
|
}
|
1048
2216
|
|
1049
2217
|
function isSortFilterString(value) {
|
@@ -1069,249 +2237,624 @@ function buildSortFilter(filter) {
|
|
1069
2237
|
}
|
1070
2238
|
}
|
1071
2239
|
|
1072
|
-
var __accessCheck$
|
2240
|
+
var __accessCheck$4 = (obj, member, msg) => {
|
1073
2241
|
if (!member.has(obj))
|
1074
2242
|
throw TypeError("Cannot " + msg);
|
1075
2243
|
};
|
1076
|
-
var __privateGet$
|
1077
|
-
__accessCheck$
|
2244
|
+
var __privateGet$4 = (obj, member, getter) => {
|
2245
|
+
__accessCheck$4(obj, member, "read from private field");
|
1078
2246
|
return getter ? getter.call(obj) : member.get(obj);
|
1079
2247
|
};
|
1080
|
-
var __privateAdd$
|
2248
|
+
var __privateAdd$4 = (obj, member, value) => {
|
1081
2249
|
if (member.has(obj))
|
1082
2250
|
throw TypeError("Cannot add the same private member more than once");
|
1083
2251
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
1084
2252
|
};
|
1085
|
-
var __privateSet$
|
1086
|
-
__accessCheck$
|
2253
|
+
var __privateSet$4 = (obj, member, value, setter) => {
|
2254
|
+
__accessCheck$4(obj, member, "write to private field");
|
1087
2255
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
1088
2256
|
return value;
|
1089
2257
|
};
|
1090
2258
|
var __privateMethod$2 = (obj, member, method) => {
|
1091
|
-
__accessCheck$
|
2259
|
+
__accessCheck$4(obj, member, "access private method");
|
1092
2260
|
return method;
|
1093
2261
|
};
|
1094
|
-
var _table,
|
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;
|
1095
2264
|
class Repository extends Query {
|
1096
2265
|
}
|
1097
2266
|
class RestRepository extends Query {
|
1098
2267
|
constructor(options) {
|
1099
|
-
super(
|
1100
|
-
|
1101
|
-
|
1102
|
-
|
1103
|
-
|
1104
|
-
__privateAdd$
|
1105
|
-
__privateAdd$
|
1106
|
-
__privateAdd$
|
1107
|
-
__privateAdd$
|
1108
|
-
__privateAdd$
|
1109
|
-
|
1110
|
-
|
1111
|
-
|
1112
|
-
this
|
1113
|
-
|
1114
|
-
|
1115
|
-
|
1116
|
-
|
1117
|
-
|
1118
|
-
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1122
|
-
|
1123
|
-
|
1124
|
-
|
1125
|
-
|
1126
|
-
|
1127
|
-
|
1128
|
-
|
1129
|
-
|
1130
|
-
}
|
1131
|
-
|
1132
|
-
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1136
|
-
const response = await getRecord({
|
1137
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$2(this, _table), recordId },
|
1138
|
-
...fetchProps
|
2268
|
+
super(
|
2269
|
+
null,
|
2270
|
+
{ name: options.table, schema: options.schemaTables?.find((table) => table.name === options.table) },
|
2271
|
+
{}
|
2272
|
+
);
|
2273
|
+
__privateAdd$4(this, _insertRecordWithoutId);
|
2274
|
+
__privateAdd$4(this, _insertRecordWithId);
|
2275
|
+
__privateAdd$4(this, _insertRecords);
|
2276
|
+
__privateAdd$4(this, _updateRecordWithID);
|
2277
|
+
__privateAdd$4(this, _updateRecords);
|
2278
|
+
__privateAdd$4(this, _upsertRecordWithID);
|
2279
|
+
__privateAdd$4(this, _deleteRecord);
|
2280
|
+
__privateAdd$4(this, _deleteRecords);
|
2281
|
+
__privateAdd$4(this, _setCacheQuery);
|
2282
|
+
__privateAdd$4(this, _getCacheQuery);
|
2283
|
+
__privateAdd$4(this, _getSchemaTables$1);
|
2284
|
+
__privateAdd$4(this, _table, void 0);
|
2285
|
+
__privateAdd$4(this, _getFetchProps, void 0);
|
2286
|
+
__privateAdd$4(this, _db, void 0);
|
2287
|
+
__privateAdd$4(this, _cache, void 0);
|
2288
|
+
__privateAdd$4(this, _schemaTables$2, void 0);
|
2289
|
+
__privateAdd$4(this, _trace, void 0);
|
2290
|
+
__privateSet$4(this, _table, options.table);
|
2291
|
+
__privateSet$4(this, _db, options.db);
|
2292
|
+
__privateSet$4(this, _cache, options.pluginOptions.cache);
|
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
|
1139
2305
|
});
|
1140
|
-
|
1141
|
-
|
1142
|
-
|
1143
|
-
|
2306
|
+
});
|
2307
|
+
}
|
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;
|
1144
2318
|
}
|
1145
|
-
|
1146
|
-
|
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
|
+
});
|
1147
2337
|
}
|
1148
|
-
async
|
1149
|
-
|
1150
|
-
|
1151
|
-
|
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);
|
1152
2351
|
}
|
1153
|
-
|
1154
|
-
|
1155
|
-
|
1156
|
-
|
1157
|
-
|
1158
|
-
|
1159
|
-
|
1160
|
-
|
1161
|
-
|
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
|
+
});
|
1162
2378
|
}
|
1163
|
-
async
|
1164
|
-
|
1165
|
-
|
1166
|
-
|
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;
|
1167
2390
|
}
|
1168
|
-
|
1169
|
-
|
1170
|
-
|
1171
|
-
|
1172
|
-
|
1173
|
-
|
1174
|
-
return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a.id, { ...a, id: void 0 });
|
1175
|
-
}
|
1176
|
-
throw new Error("Invalid arguments for createOrUpdate method");
|
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
|
+
});
|
1177
2397
|
}
|
1178
|
-
async
|
1179
|
-
|
1180
|
-
|
1181
|
-
|
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
|
2409
|
+
});
|
2410
|
+
const columns = isStringArray(b) ? b : ["*"];
|
2411
|
+
const result = await this.read(a, columns);
|
2412
|
+
return result;
|
1182
2413
|
}
|
1183
|
-
|
1184
|
-
|
1185
|
-
|
1186
|
-
|
1187
|
-
|
1188
|
-
|
1189
|
-
|
1190
|
-
|
1191
|
-
|
1192
|
-
|
1193
|
-
|
1194
|
-
|
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)
|
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(", ")}`);
|
2440
|
+
}
|
2441
|
+
return result;
|
2442
|
+
}
|
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
|
+
});
|
2449
|
+
}
|
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;
|
2463
|
+
}
|
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 });
|
2467
|
+
}
|
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 });
|
2471
|
+
}
|
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
|
+
});
|
1195
2540
|
}
|
1196
2541
|
async search(query, options = {}) {
|
1197
|
-
|
1198
|
-
|
1199
|
-
|
1200
|
-
|
1201
|
-
|
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;
|
1202
2581
|
});
|
1203
|
-
return records.map((item) => initObject(this.db, __privateGet$2(this, _links), __privateGet$2(this, _table), item));
|
1204
2582
|
}
|
1205
2583
|
async query(query) {
|
1206
|
-
|
1207
|
-
|
1208
|
-
|
1209
|
-
|
1210
|
-
|
1211
|
-
|
1212
|
-
|
1213
|
-
|
1214
|
-
|
1215
|
-
|
1216
|
-
|
1217
|
-
|
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;
|
1218
2638
|
});
|
1219
|
-
const records = objects.map((record) => initObject(this.db, __privateGet$2(this, _links), __privateGet$2(this, _table), record));
|
1220
|
-
return new Page(query, meta, records);
|
1221
2639
|
}
|
1222
2640
|
}
|
1223
2641
|
_table = new WeakMap();
|
1224
|
-
_links = new WeakMap();
|
1225
2642
|
_getFetchProps = new WeakMap();
|
2643
|
+
_db = new WeakMap();
|
2644
|
+
_cache = new WeakMap();
|
2645
|
+
_schemaTables$2 = new WeakMap();
|
2646
|
+
_trace = new WeakMap();
|
1226
2647
|
_insertRecordWithoutId = new WeakSet();
|
1227
|
-
insertRecordWithoutId_fn = async function(object) {
|
1228
|
-
const fetchProps = await __privateGet$
|
2648
|
+
insertRecordWithoutId_fn = async function(object, columns = ["*"]) {
|
2649
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1229
2650
|
const record = transformObjectLinks(object);
|
1230
2651
|
const response = await insertRecord({
|
1231
2652
|
pathParams: {
|
1232
2653
|
workspace: "{workspaceId}",
|
1233
2654
|
dbBranchName: "{dbBranch}",
|
1234
|
-
|
2655
|
+
region: "{region}",
|
2656
|
+
tableName: __privateGet$4(this, _table)
|
1235
2657
|
},
|
2658
|
+
queryParams: { columns },
|
1236
2659
|
body: record,
|
1237
2660
|
...fetchProps
|
1238
2661
|
});
|
1239
|
-
const
|
1240
|
-
|
1241
|
-
throw new Error("The server failed to save the record");
|
1242
|
-
}
|
1243
|
-
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);
|
1244
2664
|
};
|
1245
2665
|
_insertRecordWithId = new WeakSet();
|
1246
|
-
insertRecordWithId_fn = async function(recordId, object) {
|
1247
|
-
const fetchProps = await __privateGet$
|
2666
|
+
insertRecordWithId_fn = async function(recordId, object, columns = ["*"], { createOnly, ifVersion }) {
|
2667
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1248
2668
|
const record = transformObjectLinks(object);
|
1249
2669
|
const response = await insertRecordWithID({
|
1250
2670
|
pathParams: {
|
1251
2671
|
workspace: "{workspaceId}",
|
1252
2672
|
dbBranchName: "{dbBranch}",
|
1253
|
-
|
2673
|
+
region: "{region}",
|
2674
|
+
tableName: __privateGet$4(this, _table),
|
1254
2675
|
recordId
|
1255
2676
|
},
|
1256
2677
|
body: record,
|
1257
|
-
queryParams: { createOnly
|
1258
|
-
...fetchProps
|
1259
|
-
});
|
1260
|
-
const finalObject = await this.read(response.id);
|
1261
|
-
if (!finalObject) {
|
1262
|
-
throw new Error("The server failed to save the record");
|
1263
|
-
}
|
1264
|
-
return finalObject;
|
1265
|
-
};
|
1266
|
-
_bulkInsertTableRecords = new WeakSet();
|
1267
|
-
bulkInsertTableRecords_fn = async function(objects) {
|
1268
|
-
const fetchProps = await __privateGet$2(this, _getFetchProps).call(this);
|
1269
|
-
const records = objects.map((object) => transformObjectLinks(object));
|
1270
|
-
const response = await bulkInsertTableRecords({
|
1271
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$2(this, _table) },
|
1272
|
-
body: { records },
|
2678
|
+
queryParams: { createOnly, columns, ifVersion },
|
1273
2679
|
...fetchProps
|
1274
2680
|
});
|
1275
|
-
const
|
1276
|
-
|
1277
|
-
|
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);
|
2683
|
+
};
|
2684
|
+
_insertRecords = new WeakSet();
|
2685
|
+
insertRecords_fn = async function(objects, { createOnly, ifVersion }) {
|
2686
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
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
|
+
}
|
1278
2711
|
}
|
1279
|
-
return
|
2712
|
+
return ids;
|
1280
2713
|
};
|
1281
2714
|
_updateRecordWithID = new WeakSet();
|
1282
|
-
updateRecordWithID_fn = async function(recordId, object) {
|
1283
|
-
const fetchProps = await __privateGet$
|
1284
|
-
const record = transformObjectLinks(object);
|
1285
|
-
|
1286
|
-
|
1287
|
-
|
1288
|
-
|
1289
|
-
|
1290
|
-
|
1291
|
-
|
1292
|
-
|
1293
|
-
|
2715
|
+
updateRecordWithID_fn = async function(recordId, object, columns = ["*"], { ifVersion }) {
|
2716
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
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;
|
1294
2769
|
};
|
1295
2770
|
_upsertRecordWithID = new WeakSet();
|
1296
|
-
upsertRecordWithID_fn = async function(recordId, object) {
|
1297
|
-
const fetchProps = await __privateGet$
|
2771
|
+
upsertRecordWithID_fn = async function(recordId, object, columns = ["*"], { ifVersion }) {
|
2772
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1298
2773
|
const response = await upsertRecordWithID({
|
1299
|
-
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 },
|
1300
2782
|
body: object,
|
1301
2783
|
...fetchProps
|
1302
2784
|
});
|
1303
|
-
const
|
1304
|
-
|
1305
|
-
throw new Error("The server failed to save the record");
|
1306
|
-
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);
|
1307
2787
|
};
|
1308
2788
|
_deleteRecord = new WeakSet();
|
1309
|
-
deleteRecord_fn = async function(recordId) {
|
1310
|
-
const fetchProps = await __privateGet$
|
1311
|
-
|
1312
|
-
|
2789
|
+
deleteRecord_fn = async function(recordId, columns = ["*"]) {
|
2790
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
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
|
+
}
|
2811
|
+
};
|
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
|
+
}
|
2830
|
+
};
|
2831
|
+
_setCacheQuery = new WeakSet();
|
2832
|
+
setCacheQuery_fn = async function(query, meta, records) {
|
2833
|
+
await __privateGet$4(this, _cache).set(`query_${__privateGet$4(this, _table)}:${query.key()}`, { date: new Date(), meta, records });
|
2834
|
+
};
|
2835
|
+
_getCacheQuery = new WeakSet();
|
2836
|
+
getCacheQuery_fn = async function(query) {
|
2837
|
+
const key = `query_${__privateGet$4(this, _table)}:${query.key()}`;
|
2838
|
+
const result = await __privateGet$4(this, _cache).get(key);
|
2839
|
+
if (!result)
|
2840
|
+
return null;
|
2841
|
+
const { cache: ttl = __privateGet$4(this, _cache).defaultQueryTTL } = query.getQueryOptions();
|
2842
|
+
if (ttl < 0)
|
2843
|
+
return null;
|
2844
|
+
const hasExpired = result.date.getTime() + ttl < Date.now();
|
2845
|
+
return hasExpired ? null : result;
|
2846
|
+
};
|
2847
|
+
_getSchemaTables$1 = new WeakSet();
|
2848
|
+
getSchemaTables_fn$1 = async function() {
|
2849
|
+
if (__privateGet$4(this, _schemaTables$2))
|
2850
|
+
return __privateGet$4(this, _schemaTables$2);
|
2851
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
2852
|
+
const { schema } = await getBranchDetails({
|
2853
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
|
1313
2854
|
...fetchProps
|
1314
2855
|
});
|
2856
|
+
__privateSet$4(this, _schemaTables$2, schema.tables);
|
2857
|
+
return schema.tables;
|
1315
2858
|
};
|
1316
2859
|
const transformObjectLinks = (object) => {
|
1317
2860
|
return Object.entries(object).reduce((acc, [key, value]) => {
|
@@ -1320,45 +2863,175 @@ const transformObjectLinks = (object) => {
|
|
1320
2863
|
return { ...acc, [key]: isIdentifiable(value) ? value.id : value };
|
1321
2864
|
}, {});
|
1322
2865
|
};
|
1323
|
-
const initObject = (db,
|
1324
|
-
const
|
1325
|
-
|
1326
|
-
|
1327
|
-
|
1328
|
-
|
1329
|
-
|
1330
|
-
|
1331
|
-
|
2866
|
+
const initObject = (db, schemaTables, table, object, selectedColumns) => {
|
2867
|
+
const data = {};
|
2868
|
+
const { xata, ...rest } = object ?? {};
|
2869
|
+
Object.assign(data, rest);
|
2870
|
+
const { columns } = schemaTables.find(({ name }) => name === table) ?? {};
|
2871
|
+
if (!columns)
|
2872
|
+
console.error(`Table ${table} not found in schema`);
|
2873
|
+
for (const column of columns ?? []) {
|
2874
|
+
if (!isValidColumn(selectedColumns, column))
|
2875
|
+
continue;
|
2876
|
+
const value = data[column.name];
|
2877
|
+
switch (column.type) {
|
2878
|
+
case "datetime": {
|
2879
|
+
const date = value !== void 0 ? new Date(value) : null;
|
2880
|
+
if (date !== null && isNaN(date.getTime())) {
|
2881
|
+
console.error(`Failed to parse date ${value} for field ${column.name}`);
|
2882
|
+
} else {
|
2883
|
+
data[column.name] = date;
|
2884
|
+
}
|
2885
|
+
break;
|
2886
|
+
}
|
2887
|
+
case "link": {
|
2888
|
+
const linkTable = column.link?.table;
|
2889
|
+
if (!linkTable) {
|
2890
|
+
console.error(`Failed to parse link for field ${column.name}`);
|
2891
|
+
} else if (isObject(value)) {
|
2892
|
+
const selectedLinkColumns = selectedColumns.reduce((acc, item) => {
|
2893
|
+
if (item === column.name) {
|
2894
|
+
return [...acc, "*"];
|
2895
|
+
}
|
2896
|
+
if (item.startsWith(`${column.name}.`)) {
|
2897
|
+
const [, ...path] = item.split(".");
|
2898
|
+
return [...acc, path.join(".")];
|
2899
|
+
}
|
2900
|
+
return acc;
|
2901
|
+
}, []);
|
2902
|
+
data[column.name] = initObject(db, schemaTables, linkTable, value, selectedLinkColumns);
|
2903
|
+
} else {
|
2904
|
+
data[column.name] = null;
|
2905
|
+
}
|
2906
|
+
break;
|
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;
|
1332
2914
|
}
|
1333
2915
|
}
|
1334
|
-
|
1335
|
-
|
2916
|
+
const record = { ...data };
|
2917
|
+
record.read = function(columns2) {
|
2918
|
+
return db[table].read(record["id"], columns2);
|
1336
2919
|
};
|
1337
|
-
|
1338
|
-
|
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 });
|
1339
2924
|
};
|
1340
|
-
|
1341
|
-
|
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 });
|
1342
2929
|
};
|
1343
|
-
|
1344
|
-
|
2930
|
+
record.delete = function() {
|
2931
|
+
return db[table].delete(record["id"]);
|
2932
|
+
};
|
2933
|
+
record.getMetadata = function() {
|
2934
|
+
return xata;
|
2935
|
+
};
|
2936
|
+
for (const prop of ["read", "update", "replace", "delete", "getMetadata"]) {
|
2937
|
+
Object.defineProperty(record, prop, { enumerable: false });
|
1345
2938
|
}
|
1346
|
-
Object.freeze(
|
1347
|
-
return
|
2939
|
+
Object.freeze(record);
|
2940
|
+
return record;
|
2941
|
+
};
|
2942
|
+
function extractId(value) {
|
2943
|
+
if (isString(value))
|
2944
|
+
return value;
|
2945
|
+
if (isObject(value) && isString(value.id))
|
2946
|
+
return value.id;
|
2947
|
+
return void 0;
|
2948
|
+
}
|
2949
|
+
function isValidColumn(columns, column) {
|
2950
|
+
if (columns.includes("*"))
|
2951
|
+
return true;
|
2952
|
+
if (column.type === "link") {
|
2953
|
+
const linkColumns = columns.filter((item) => item.startsWith(column.name));
|
2954
|
+
return linkColumns.length > 0;
|
2955
|
+
}
|
2956
|
+
return columns.includes(column.name);
|
2957
|
+
}
|
2958
|
+
function parseIfVersion(...args) {
|
2959
|
+
for (const arg of args) {
|
2960
|
+
if (isObject(arg) && isNumber(arg.ifVersion)) {
|
2961
|
+
return arg.ifVersion;
|
2962
|
+
}
|
2963
|
+
}
|
2964
|
+
return void 0;
|
2965
|
+
}
|
2966
|
+
|
2967
|
+
var __accessCheck$3 = (obj, member, msg) => {
|
2968
|
+
if (!member.has(obj))
|
2969
|
+
throw TypeError("Cannot " + msg);
|
2970
|
+
};
|
2971
|
+
var __privateGet$3 = (obj, member, getter) => {
|
2972
|
+
__accessCheck$3(obj, member, "read from private field");
|
2973
|
+
return getter ? getter.call(obj) : member.get(obj);
|
2974
|
+
};
|
2975
|
+
var __privateAdd$3 = (obj, member, value) => {
|
2976
|
+
if (member.has(obj))
|
2977
|
+
throw TypeError("Cannot add the same private member more than once");
|
2978
|
+
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
2979
|
+
};
|
2980
|
+
var __privateSet$3 = (obj, member, value, setter) => {
|
2981
|
+
__accessCheck$3(obj, member, "write to private field");
|
2982
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
2983
|
+
return value;
|
1348
2984
|
};
|
2985
|
+
var _map;
|
2986
|
+
class SimpleCache {
|
2987
|
+
constructor(options = {}) {
|
2988
|
+
__privateAdd$3(this, _map, void 0);
|
2989
|
+
__privateSet$3(this, _map, /* @__PURE__ */ new Map());
|
2990
|
+
this.capacity = options.max ?? 500;
|
2991
|
+
this.defaultQueryTTL = options.defaultQueryTTL ?? 60 * 1e3;
|
2992
|
+
}
|
2993
|
+
async getAll() {
|
2994
|
+
return Object.fromEntries(__privateGet$3(this, _map));
|
2995
|
+
}
|
2996
|
+
async get(key) {
|
2997
|
+
return __privateGet$3(this, _map).get(key) ?? null;
|
2998
|
+
}
|
2999
|
+
async set(key, value) {
|
3000
|
+
await this.delete(key);
|
3001
|
+
__privateGet$3(this, _map).set(key, value);
|
3002
|
+
if (__privateGet$3(this, _map).size > this.capacity) {
|
3003
|
+
const leastRecentlyUsed = __privateGet$3(this, _map).keys().next().value;
|
3004
|
+
await this.delete(leastRecentlyUsed);
|
3005
|
+
}
|
3006
|
+
}
|
3007
|
+
async delete(key) {
|
3008
|
+
__privateGet$3(this, _map).delete(key);
|
3009
|
+
}
|
3010
|
+
async clear() {
|
3011
|
+
return __privateGet$3(this, _map).clear();
|
3012
|
+
}
|
3013
|
+
}
|
3014
|
+
_map = new WeakMap();
|
1349
3015
|
|
1350
|
-
const
|
1351
|
-
const
|
1352
|
-
const
|
1353
|
-
const
|
1354
|
-
const
|
1355
|
-
const
|
3016
|
+
const greaterThan = (value) => ({ $gt: value });
|
3017
|
+
const gt = greaterThan;
|
3018
|
+
const greaterThanEquals = (value) => ({ $ge: value });
|
3019
|
+
const greaterEquals = greaterThanEquals;
|
3020
|
+
const gte = greaterThanEquals;
|
3021
|
+
const ge = greaterThanEquals;
|
3022
|
+
const lessThan = (value) => ({ $lt: value });
|
3023
|
+
const lt = lessThan;
|
3024
|
+
const lessThanEquals = (value) => ({ $le: value });
|
3025
|
+
const lessEquals = lessThanEquals;
|
3026
|
+
const lte = lessThanEquals;
|
3027
|
+
const le = lessThanEquals;
|
1356
3028
|
const exists = (column) => ({ $exists: column });
|
1357
3029
|
const notExists = (column) => ({ $notExists: column });
|
1358
3030
|
const startsWith = (value) => ({ $startsWith: value });
|
1359
3031
|
const endsWith = (value) => ({ $endsWith: value });
|
1360
3032
|
const pattern = (value) => ({ $pattern: value });
|
1361
3033
|
const is = (value) => ({ $is: value });
|
3034
|
+
const equals = is;
|
1362
3035
|
const isNot = (value) => ({ $isNot: value });
|
1363
3036
|
const contains = (value) => ({ $contains: value });
|
1364
3037
|
const includes = (value) => ({ $includes: value });
|
@@ -1370,7 +3043,7 @@ var __accessCheck$2 = (obj, member, msg) => {
|
|
1370
3043
|
if (!member.has(obj))
|
1371
3044
|
throw TypeError("Cannot " + msg);
|
1372
3045
|
};
|
1373
|
-
var __privateGet$
|
3046
|
+
var __privateGet$2 = (obj, member, getter) => {
|
1374
3047
|
__accessCheck$2(obj, member, "read from private field");
|
1375
3048
|
return getter ? getter.call(obj) : member.get(obj);
|
1376
3049
|
};
|
@@ -1379,143 +3052,207 @@ var __privateAdd$2 = (obj, member, value) => {
|
|
1379
3052
|
throw TypeError("Cannot add the same private member more than once");
|
1380
3053
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
1381
3054
|
};
|
1382
|
-
var
|
3055
|
+
var __privateSet$2 = (obj, member, value, setter) => {
|
3056
|
+
__accessCheck$2(obj, member, "write to private field");
|
3057
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
3058
|
+
return value;
|
3059
|
+
};
|
3060
|
+
var _tables, _schemaTables$1;
|
1383
3061
|
class SchemaPlugin extends XataPlugin {
|
1384
|
-
constructor(
|
3062
|
+
constructor(schemaTables) {
|
1385
3063
|
super();
|
1386
|
-
this.links = links;
|
1387
|
-
this.tableNames = tableNames;
|
1388
3064
|
__privateAdd$2(this, _tables, {});
|
1389
|
-
|
1390
|
-
|
1391
|
-
|
1392
|
-
|
1393
|
-
const db = new Proxy(
|
1394
|
-
|
1395
|
-
|
1396
|
-
|
1397
|
-
|
1398
|
-
|
1399
|
-
|
3065
|
+
__privateAdd$2(this, _schemaTables$1, void 0);
|
3066
|
+
__privateSet$2(this, _schemaTables$1, schemaTables);
|
3067
|
+
}
|
3068
|
+
build(pluginOptions) {
|
3069
|
+
const db = new Proxy(
|
3070
|
+
{},
|
3071
|
+
{
|
3072
|
+
get: (_target, table) => {
|
3073
|
+
if (!isString(table))
|
3074
|
+
throw new Error("Invalid table name");
|
3075
|
+
if (__privateGet$2(this, _tables)[table] === void 0) {
|
3076
|
+
__privateGet$2(this, _tables)[table] = new RestRepository({ db, pluginOptions, table, schemaTables: __privateGet$2(this, _schemaTables$1) });
|
3077
|
+
}
|
3078
|
+
return __privateGet$2(this, _tables)[table];
|
3079
|
+
}
|
1400
3080
|
}
|
1401
|
-
|
1402
|
-
|
1403
|
-
|
3081
|
+
);
|
3082
|
+
const tableNames = __privateGet$2(this, _schemaTables$1)?.map(({ name }) => name) ?? [];
|
3083
|
+
for (const table of tableNames) {
|
3084
|
+
db[table] = new RestRepository({ db, pluginOptions, table, schemaTables: __privateGet$2(this, _schemaTables$1) });
|
1404
3085
|
}
|
1405
3086
|
return db;
|
1406
3087
|
}
|
1407
3088
|
}
|
1408
3089
|
_tables = new WeakMap();
|
3090
|
+
_schemaTables$1 = new WeakMap();
|
1409
3091
|
|
1410
3092
|
var __accessCheck$1 = (obj, member, msg) => {
|
1411
3093
|
if (!member.has(obj))
|
1412
3094
|
throw TypeError("Cannot " + msg);
|
1413
3095
|
};
|
3096
|
+
var __privateGet$1 = (obj, member, getter) => {
|
3097
|
+
__accessCheck$1(obj, member, "read from private field");
|
3098
|
+
return getter ? getter.call(obj) : member.get(obj);
|
3099
|
+
};
|
1414
3100
|
var __privateAdd$1 = (obj, member, value) => {
|
1415
3101
|
if (member.has(obj))
|
1416
3102
|
throw TypeError("Cannot add the same private member more than once");
|
1417
3103
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
1418
3104
|
};
|
3105
|
+
var __privateSet$1 = (obj, member, value, setter) => {
|
3106
|
+
__accessCheck$1(obj, member, "write to private field");
|
3107
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
3108
|
+
return value;
|
3109
|
+
};
|
1419
3110
|
var __privateMethod$1 = (obj, member, method) => {
|
1420
3111
|
__accessCheck$1(obj, member, "access private method");
|
1421
3112
|
return method;
|
1422
3113
|
};
|
1423
|
-
var _search, search_fn;
|
3114
|
+
var _schemaTables, _search, search_fn, _getSchemaTables, getSchemaTables_fn;
|
1424
3115
|
class SearchPlugin extends XataPlugin {
|
1425
|
-
constructor(db,
|
3116
|
+
constructor(db, schemaTables) {
|
1426
3117
|
super();
|
1427
3118
|
this.db = db;
|
1428
|
-
this.links = links;
|
1429
3119
|
__privateAdd$1(this, _search);
|
3120
|
+
__privateAdd$1(this, _getSchemaTables);
|
3121
|
+
__privateAdd$1(this, _schemaTables, void 0);
|
3122
|
+
__privateSet$1(this, _schemaTables, schemaTables);
|
1430
3123
|
}
|
1431
3124
|
build({ getFetchProps }) {
|
1432
3125
|
return {
|
1433
3126
|
all: async (query, options = {}) => {
|
1434
3127
|
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options, getFetchProps);
|
3128
|
+
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, getFetchProps);
|
1435
3129
|
return records.map((record) => {
|
1436
3130
|
const { table = "orphan" } = record.xata;
|
1437
|
-
return { table, record: initObject(this.db,
|
3131
|
+
return { table, record: initObject(this.db, schemaTables, table, record, ["*"]) };
|
1438
3132
|
});
|
1439
3133
|
},
|
1440
3134
|
byTable: async (query, options = {}) => {
|
1441
3135
|
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options, getFetchProps);
|
3136
|
+
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, getFetchProps);
|
1442
3137
|
return records.reduce((acc, record) => {
|
1443
3138
|
const { table = "orphan" } = record.xata;
|
1444
3139
|
const items = acc[table] ?? [];
|
1445
|
-
const item = initObject(this.db,
|
3140
|
+
const item = initObject(this.db, schemaTables, table, record, ["*"]);
|
1446
3141
|
return { ...acc, [table]: [...items, item] };
|
1447
3142
|
}, {});
|
1448
3143
|
}
|
1449
3144
|
};
|
1450
3145
|
}
|
1451
3146
|
}
|
3147
|
+
_schemaTables = new WeakMap();
|
1452
3148
|
_search = new WeakSet();
|
1453
3149
|
search_fn = async function(query, options, getFetchProps) {
|
1454
3150
|
const fetchProps = await getFetchProps();
|
1455
|
-
const { tables, fuzziness } = options ?? {};
|
3151
|
+
const { tables, fuzziness, highlight, prefix, page } = options ?? {};
|
1456
3152
|
const { records } = await searchBranch({
|
1457
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
1458
|
-
body: { tables, query, fuzziness },
|
3153
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
|
3154
|
+
body: { tables, query, fuzziness, prefix, highlight, page },
|
1459
3155
|
...fetchProps
|
1460
3156
|
});
|
1461
3157
|
return records;
|
1462
3158
|
};
|
3159
|
+
_getSchemaTables = new WeakSet();
|
3160
|
+
getSchemaTables_fn = async function(getFetchProps) {
|
3161
|
+
if (__privateGet$1(this, _schemaTables))
|
3162
|
+
return __privateGet$1(this, _schemaTables);
|
3163
|
+
const fetchProps = await getFetchProps();
|
3164
|
+
const { schema } = await getBranchDetails({
|
3165
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
|
3166
|
+
...fetchProps
|
3167
|
+
});
|
3168
|
+
__privateSet$1(this, _schemaTables, schema.tables);
|
3169
|
+
return schema.tables;
|
3170
|
+
};
|
3171
|
+
|
3172
|
+
class TransactionPlugin extends XataPlugin {
|
3173
|
+
build({ getFetchProps }) {
|
3174
|
+
return {
|
3175
|
+
run: async (operations) => {
|
3176
|
+
const fetchProps = await getFetchProps();
|
3177
|
+
const response = await branchTransaction({
|
3178
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
|
3179
|
+
body: { operations },
|
3180
|
+
...fetchProps
|
3181
|
+
});
|
3182
|
+
return response;
|
3183
|
+
}
|
3184
|
+
};
|
3185
|
+
}
|
3186
|
+
}
|
1463
3187
|
|
1464
3188
|
const isBranchStrategyBuilder = (strategy) => {
|
1465
3189
|
return typeof strategy === "function";
|
1466
3190
|
};
|
1467
3191
|
|
1468
|
-
const envBranchNames = [
|
1469
|
-
"XATA_BRANCH",
|
1470
|
-
"VERCEL_GIT_COMMIT_REF",
|
1471
|
-
"CF_PAGES_BRANCH",
|
1472
|
-
"BRANCH"
|
1473
|
-
];
|
1474
|
-
const defaultBranch = "main";
|
1475
3192
|
async function getCurrentBranchName(options) {
|
1476
|
-
const
|
1477
|
-
if (
|
1478
|
-
return env;
|
1479
|
-
const branch = await getGitBranch();
|
1480
|
-
if (!branch)
|
1481
|
-
return defaultBranch;
|
1482
|
-
const details = await getDatabaseBranch(branch, options);
|
1483
|
-
if (details)
|
3193
|
+
const { branch, envBranch } = getEnvironment();
|
3194
|
+
if (branch)
|
1484
3195
|
return branch;
|
1485
|
-
|
3196
|
+
const gitBranch = envBranch || await getGitBranch();
|
3197
|
+
return resolveXataBranch(gitBranch, options);
|
1486
3198
|
}
|
1487
3199
|
async function getCurrentBranchDetails(options) {
|
1488
|
-
const
|
1489
|
-
|
1490
|
-
|
1491
|
-
|
1492
|
-
|
1493
|
-
|
1494
|
-
|
1495
|
-
|
1496
|
-
|
1497
|
-
|
3200
|
+
const branch = await getCurrentBranchName(options);
|
3201
|
+
return getDatabaseBranch(branch, options);
|
3202
|
+
}
|
3203
|
+
async function resolveXataBranch(gitBranch, options) {
|
3204
|
+
const databaseURL = options?.databaseURL || getDatabaseURL();
|
3205
|
+
const apiKey = options?.apiKey || getAPIKey();
|
3206
|
+
if (!databaseURL)
|
3207
|
+
throw new Error(
|
3208
|
+
"A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely"
|
3209
|
+
);
|
3210
|
+
if (!apiKey)
|
3211
|
+
throw new Error(
|
3212
|
+
"An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely"
|
3213
|
+
);
|
3214
|
+
const [protocol, , host, , dbName] = databaseURL.split("/");
|
3215
|
+
const urlParts = parseWorkspacesUrlParts(host);
|
3216
|
+
if (!urlParts)
|
3217
|
+
throw new Error(`Unable to parse workspace and region: ${databaseURL}`);
|
3218
|
+
const { workspace, region } = urlParts;
|
3219
|
+
const { fallbackBranch } = getEnvironment();
|
3220
|
+
const { branch } = await resolveBranch({
|
3221
|
+
apiKey,
|
3222
|
+
apiUrl: databaseURL,
|
3223
|
+
fetchImpl: getFetchImplementation(options?.fetchImpl),
|
3224
|
+
workspacesApiUrl: `${protocol}//${host}`,
|
3225
|
+
pathParams: { dbName, workspace, region },
|
3226
|
+
queryParams: { gitBranch, fallbackBranch },
|
3227
|
+
trace: defaultTrace,
|
3228
|
+
clientName: options?.clientName
|
3229
|
+
});
|
3230
|
+
return branch;
|
1498
3231
|
}
|
1499
3232
|
async function getDatabaseBranch(branch, options) {
|
1500
3233
|
const databaseURL = options?.databaseURL || getDatabaseURL();
|
1501
3234
|
const apiKey = options?.apiKey || getAPIKey();
|
1502
3235
|
if (!databaseURL)
|
1503
|
-
throw new Error(
|
3236
|
+
throw new Error(
|
3237
|
+
"A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely"
|
3238
|
+
);
|
1504
3239
|
if (!apiKey)
|
1505
|
-
throw new Error(
|
3240
|
+
throw new Error(
|
3241
|
+
"An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely"
|
3242
|
+
);
|
1506
3243
|
const [protocol, , host, , database] = databaseURL.split("/");
|
1507
|
-
const
|
1508
|
-
|
3244
|
+
const urlParts = parseWorkspacesUrlParts(host);
|
3245
|
+
if (!urlParts)
|
3246
|
+
throw new Error(`Unable to parse workspace and region: ${databaseURL}`);
|
3247
|
+
const { workspace, region } = urlParts;
|
1509
3248
|
try {
|
1510
3249
|
return await getBranchDetails({
|
1511
3250
|
apiKey,
|
1512
3251
|
apiUrl: databaseURL,
|
1513
3252
|
fetchImpl: getFetchImplementation(options?.fetchImpl),
|
1514
3253
|
workspacesApiUrl: `${protocol}//${host}`,
|
1515
|
-
pathParams: {
|
1516
|
-
|
1517
|
-
workspace
|
1518
|
-
}
|
3254
|
+
pathParams: { dbBranchName: `${database}:${branch}`, workspace, region },
|
3255
|
+
trace: defaultTrace
|
1519
3256
|
});
|
1520
3257
|
} catch (err) {
|
1521
3258
|
if (isObject(err) && err.status === 404)
|
@@ -1523,21 +3260,10 @@ async function getDatabaseBranch(branch, options) {
|
|
1523
3260
|
throw err;
|
1524
3261
|
}
|
1525
3262
|
}
|
1526
|
-
function getBranchByEnvVariable() {
|
1527
|
-
for (const name of envBranchNames) {
|
1528
|
-
const value = getEnvVariable(name);
|
1529
|
-
if (value) {
|
1530
|
-
return value;
|
1531
|
-
}
|
1532
|
-
}
|
1533
|
-
try {
|
1534
|
-
return XATA_BRANCH;
|
1535
|
-
} catch (err) {
|
1536
|
-
}
|
1537
|
-
}
|
1538
3263
|
function getDatabaseURL() {
|
1539
3264
|
try {
|
1540
|
-
|
3265
|
+
const { databaseURL } = getEnvironment();
|
3266
|
+
return databaseURL;
|
1541
3267
|
} catch (err) {
|
1542
3268
|
return void 0;
|
1543
3269
|
}
|
@@ -1566,24 +3292,31 @@ var __privateMethod = (obj, member, method) => {
|
|
1566
3292
|
return method;
|
1567
3293
|
};
|
1568
3294
|
const buildClient = (plugins) => {
|
1569
|
-
var _branch, _parseOptions, parseOptions_fn, _getFetchProps, getFetchProps_fn, _evaluateBranch, evaluateBranch_fn, _a;
|
3295
|
+
var _branch, _options, _parseOptions, parseOptions_fn, _getFetchProps, getFetchProps_fn, _evaluateBranch, evaluateBranch_fn, _a;
|
1570
3296
|
return _a = class {
|
1571
|
-
constructor(options = {},
|
3297
|
+
constructor(options = {}, schemaTables) {
|
1572
3298
|
__privateAdd(this, _parseOptions);
|
1573
3299
|
__privateAdd(this, _getFetchProps);
|
1574
3300
|
__privateAdd(this, _evaluateBranch);
|
1575
3301
|
__privateAdd(this, _branch, void 0);
|
3302
|
+
__privateAdd(this, _options, void 0);
|
1576
3303
|
const safeOptions = __privateMethod(this, _parseOptions, parseOptions_fn).call(this, options);
|
1577
|
-
|
1578
|
-
const
|
1579
|
-
getFetchProps: () => __privateMethod(this, _getFetchProps, getFetchProps_fn).call(this, safeOptions)
|
1580
|
-
|
3304
|
+
__privateSet(this, _options, safeOptions);
|
3305
|
+
const pluginOptions = {
|
3306
|
+
getFetchProps: () => __privateMethod(this, _getFetchProps, getFetchProps_fn).call(this, safeOptions),
|
3307
|
+
cache: safeOptions.cache,
|
3308
|
+
trace: safeOptions.trace
|
3309
|
+
};
|
3310
|
+
const db = new SchemaPlugin(schemaTables).build(pluginOptions);
|
3311
|
+
const search = new SearchPlugin(db, schemaTables).build(pluginOptions);
|
3312
|
+
const transactions = new TransactionPlugin().build(pluginOptions);
|
1581
3313
|
this.db = db;
|
1582
3314
|
this.search = search;
|
3315
|
+
this.transactions = transactions;
|
1583
3316
|
for (const [key, namespace] of Object.entries(plugins ?? {})) {
|
1584
|
-
if (
|
3317
|
+
if (namespace === void 0)
|
1585
3318
|
continue;
|
1586
|
-
const result = namespace.build(
|
3319
|
+
const result = namespace.build(pluginOptions);
|
1587
3320
|
if (result instanceof Promise) {
|
1588
3321
|
void result.then((namespace2) => {
|
1589
3322
|
this[key] = namespace2;
|
@@ -1593,20 +3326,46 @@ const buildClient = (plugins) => {
|
|
1593
3326
|
}
|
1594
3327
|
}
|
1595
3328
|
}
|
1596
|
-
|
3329
|
+
async getConfig() {
|
3330
|
+
const databaseURL = __privateGet(this, _options).databaseURL;
|
3331
|
+
const branch = await __privateGet(this, _options).branch();
|
3332
|
+
return { databaseURL, branch };
|
3333
|
+
}
|
3334
|
+
}, _branch = new WeakMap(), _options = new WeakMap(), _parseOptions = new WeakSet(), parseOptions_fn = function(options) {
|
3335
|
+
const enableBrowser = options?.enableBrowser ?? getEnableBrowserVariable() ?? false;
|
3336
|
+
const isBrowser = typeof window !== "undefined" && typeof Deno === "undefined";
|
3337
|
+
if (isBrowser && !enableBrowser) {
|
3338
|
+
throw new Error(
|
3339
|
+
"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."
|
3340
|
+
);
|
3341
|
+
}
|
1597
3342
|
const fetch = getFetchImplementation(options?.fetch);
|
1598
3343
|
const databaseURL = options?.databaseURL || getDatabaseURL();
|
1599
3344
|
const apiKey = options?.apiKey || getAPIKey();
|
1600
|
-
const
|
1601
|
-
|
1602
|
-
|
3345
|
+
const cache = options?.cache ?? new SimpleCache({ defaultQueryTTL: 0 });
|
3346
|
+
const trace = options?.trace ?? defaultTrace;
|
3347
|
+
const clientName = options?.clientName;
|
3348
|
+
const branch = async () => options?.branch !== void 0 ? await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, options.branch) : await getCurrentBranchName({
|
3349
|
+
apiKey,
|
3350
|
+
databaseURL,
|
3351
|
+
fetchImpl: options?.fetch,
|
3352
|
+
clientName: options?.clientName
|
3353
|
+
});
|
3354
|
+
if (!apiKey) {
|
3355
|
+
throw new Error("Option apiKey is required");
|
1603
3356
|
}
|
1604
|
-
|
3357
|
+
if (!databaseURL) {
|
3358
|
+
throw new Error("Option databaseURL is required");
|
3359
|
+
}
|
3360
|
+
return { fetch, databaseURL, apiKey, branch, cache, trace, clientID: generateUUID(), enableBrowser, clientName };
|
1605
3361
|
}, _getFetchProps = new WeakSet(), getFetchProps_fn = async function({
|
1606
3362
|
fetch,
|
1607
3363
|
apiKey,
|
1608
3364
|
databaseURL,
|
1609
|
-
branch
|
3365
|
+
branch,
|
3366
|
+
trace,
|
3367
|
+
clientID,
|
3368
|
+
clientName
|
1610
3369
|
}) {
|
1611
3370
|
const branchValue = await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, branch);
|
1612
3371
|
if (!branchValue)
|
@@ -1617,14 +3376,17 @@ const buildClient = (plugins) => {
|
|
1617
3376
|
apiUrl: "",
|
1618
3377
|
workspacesApiUrl: (path, params) => {
|
1619
3378
|
const hasBranch = params.dbBranchName ?? params.branch;
|
1620
|
-
const newPath = path.replace(/^\/db\/[^/]+/, hasBranch ? `:${branchValue}` : "");
|
3379
|
+
const newPath = path.replace(/^\/db\/[^/]+/, hasBranch !== void 0 ? `:${branchValue}` : "");
|
1621
3380
|
return databaseURL + newPath;
|
1622
|
-
}
|
3381
|
+
},
|
3382
|
+
trace,
|
3383
|
+
clientID,
|
3384
|
+
clientName
|
1623
3385
|
};
|
1624
3386
|
}, _evaluateBranch = new WeakSet(), evaluateBranch_fn = async function(param) {
|
1625
3387
|
if (__privateGet(this, _branch))
|
1626
3388
|
return __privateGet(this, _branch);
|
1627
|
-
if (
|
3389
|
+
if (param === void 0)
|
1628
3390
|
return void 0;
|
1629
3391
|
const strategies = Array.isArray(param) ? [...param] : [param];
|
1630
3392
|
const evaluateBranch = async (strategy) => {
|
@@ -1642,6 +3404,88 @@ const buildClient = (plugins) => {
|
|
1642
3404
|
class BaseClient extends buildClient() {
|
1643
3405
|
}
|
1644
3406
|
|
3407
|
+
const META = "__";
|
3408
|
+
const VALUE = "___";
|
3409
|
+
class Serializer {
|
3410
|
+
constructor() {
|
3411
|
+
this.classes = {};
|
3412
|
+
}
|
3413
|
+
add(clazz) {
|
3414
|
+
this.classes[clazz.name] = clazz;
|
3415
|
+
}
|
3416
|
+
toJSON(data) {
|
3417
|
+
function visit(obj) {
|
3418
|
+
if (Array.isArray(obj))
|
3419
|
+
return obj.map(visit);
|
3420
|
+
const type = typeof obj;
|
3421
|
+
if (type === "undefined")
|
3422
|
+
return { [META]: "undefined" };
|
3423
|
+
if (type === "bigint")
|
3424
|
+
return { [META]: "bigint", [VALUE]: obj.toString() };
|
3425
|
+
if (obj === null || type !== "object")
|
3426
|
+
return obj;
|
3427
|
+
const constructor = obj.constructor;
|
3428
|
+
const o = { [META]: constructor.name };
|
3429
|
+
for (const [key, value] of Object.entries(obj)) {
|
3430
|
+
o[key] = visit(value);
|
3431
|
+
}
|
3432
|
+
if (constructor === Date)
|
3433
|
+
o[VALUE] = obj.toISOString();
|
3434
|
+
if (constructor === Map)
|
3435
|
+
o[VALUE] = Object.fromEntries(obj);
|
3436
|
+
if (constructor === Set)
|
3437
|
+
o[VALUE] = [...obj];
|
3438
|
+
return o;
|
3439
|
+
}
|
3440
|
+
return JSON.stringify(visit(data));
|
3441
|
+
}
|
3442
|
+
fromJSON(json) {
|
3443
|
+
return JSON.parse(json, (key, value) => {
|
3444
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
3445
|
+
const { [META]: clazz, [VALUE]: val, ...rest } = value;
|
3446
|
+
const constructor = this.classes[clazz];
|
3447
|
+
if (constructor) {
|
3448
|
+
return Object.assign(Object.create(constructor.prototype), rest);
|
3449
|
+
}
|
3450
|
+
if (clazz === "Date")
|
3451
|
+
return new Date(val);
|
3452
|
+
if (clazz === "Set")
|
3453
|
+
return new Set(val);
|
3454
|
+
if (clazz === "Map")
|
3455
|
+
return new Map(Object.entries(val));
|
3456
|
+
if (clazz === "bigint")
|
3457
|
+
return BigInt(val);
|
3458
|
+
if (clazz === "undefined")
|
3459
|
+
return void 0;
|
3460
|
+
return rest;
|
3461
|
+
}
|
3462
|
+
return value;
|
3463
|
+
});
|
3464
|
+
}
|
3465
|
+
}
|
3466
|
+
const defaultSerializer = new Serializer();
|
3467
|
+
const serialize = (data) => {
|
3468
|
+
return defaultSerializer.toJSON(data);
|
3469
|
+
};
|
3470
|
+
const deserialize = (json) => {
|
3471
|
+
return defaultSerializer.fromJSON(json);
|
3472
|
+
};
|
3473
|
+
|
3474
|
+
function buildWorkerRunner(config) {
|
3475
|
+
return function xataWorker(name, worker) {
|
3476
|
+
return async (...args) => {
|
3477
|
+
const url = process.env.NODE_ENV === "development" ? `http://localhost:64749/${name}` : `https://dispatcher.xata.workers.dev/${config.workspace}/${config.worker}/${name}`;
|
3478
|
+
const result = await fetch(url, {
|
3479
|
+
method: "POST",
|
3480
|
+
headers: { "Content-Type": "application/json" },
|
3481
|
+
body: serialize({ args })
|
3482
|
+
});
|
3483
|
+
const text = await result.text();
|
3484
|
+
return deserialize(text);
|
3485
|
+
};
|
3486
|
+
};
|
3487
|
+
}
|
3488
|
+
|
1645
3489
|
class XataError extends Error {
|
1646
3490
|
constructor(message, status) {
|
1647
3491
|
super(message);
|
@@ -1649,5 +3493,5 @@ class XataError extends Error {
|
|
1649
3493
|
}
|
1650
3494
|
}
|
1651
3495
|
|
1652
|
-
export { BaseClient, operationsByTag as Operations, PAGINATION_DEFAULT_OFFSET, PAGINATION_DEFAULT_SIZE, PAGINATION_MAX_OFFSET, PAGINATION_MAX_SIZE, Page, Query, Repository, RestRepository, SchemaPlugin, SearchPlugin, XataApiClient, XataApiPlugin, XataError, XataPlugin, acceptWorkspaceMemberInvite, addTableColumn, buildClient, bulkInsertTableRecords, cancelWorkspaceMemberInvite, contains, createBranch, createDatabase, createTable, createUserAPIKey, createWorkspace, deleteBranch, deleteColumn, deleteDatabase, deleteRecord, deleteTable, deleteUser, deleteUserAPIKey, deleteWorkspace, endsWith, executeBranchMigrationPlan, exists, ge, getAPIKey, getBranchDetails, getBranchList, getBranchMetadata, getBranchMigrationHistory, getBranchMigrationPlan, getBranchStats, getColumn, getCurrentBranchDetails, getCurrentBranchName, getDatabaseList, getDatabaseURL, getRecord, getTableColumns, getTableSchema, getUser, getUserAPIKeys, getWorkspace, getWorkspaceMembersList, getWorkspacesList, gt, gte, includes, includesAll, includesAny, includesNone, insertRecord, insertRecordWithID, inviteWorkspaceMember, is, isIdentifiable, isNot, isXataRecord, le, lt, lte, notExists, operationsByTag, pattern, queryTable, removeWorkspaceMember, resendWorkspaceMemberInvite, searchBranch, setTableSchema, startsWith, updateBranchMetadata, updateColumn, updateRecordWithID, updateTable, updateUser, updateWorkspace, updateWorkspaceMemberRole, upsertRecordWithID };
|
3496
|
+
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 };
|
1653
3497
|
//# sourceMappingURL=index.mjs.map
|