@xata.io/client 0.0.0-alpha.vf2043e7 → 0.0.0-alpha.vf20a10c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +3 -3
- package/.turbo/turbo-add-version.log +4 -0
- package/.turbo/turbo-build.log +13 -0
- package/CHANGELOG.md +422 -0
- package/README.md +280 -1
- package/Usage.md +451 -0
- package/dist/index.cjs +2676 -775
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +5767 -1352
- package/dist/index.mjs +2631 -775
- package/dist/index.mjs.map +1 -1
- package/package.json +11 -8
- 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() {
|
15
88
|
try {
|
16
|
-
if (
|
17
|
-
return
|
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
|
+
};
|
18
97
|
}
|
19
98
|
} catch (err) {
|
20
99
|
}
|
21
100
|
try {
|
22
|
-
if (isObject(Deno) &&
|
23
|
-
return
|
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
|
+
};
|
24
109
|
}
|
25
110
|
} catch (err) {
|
26
111
|
}
|
112
|
+
return {
|
113
|
+
apiKey: getGlobalApiKey(),
|
114
|
+
databaseURL: getGlobalDatabaseURL(),
|
115
|
+
branch: getGlobalBranch(),
|
116
|
+
envBranch: void 0,
|
117
|
+
fallbackBranch: getGlobalFallbackBranch()
|
118
|
+
};
|
119
|
+
}
|
120
|
+
function getEnableBrowserVariable() {
|
121
|
+
try {
|
122
|
+
if (isObject(process) && isObject(process.env) && process.env.XATA_ENABLE_BROWSER !== void 0) {
|
123
|
+
return process.env.XATA_ENABLE_BROWSER === "true";
|
124
|
+
}
|
125
|
+
} catch (err) {
|
126
|
+
}
|
127
|
+
try {
|
128
|
+
if (isObject(Deno) && isObject(Deno.env) && Deno.env.get("XATA_ENABLE_BROWSER") !== void 0) {
|
129
|
+
return Deno.env.get("XATA_ENABLE_BROWSER") === "true";
|
130
|
+
}
|
131
|
+
} catch (err) {
|
132
|
+
}
|
133
|
+
try {
|
134
|
+
return XATA_ENABLE_BROWSER === true || XATA_ENABLE_BROWSER === "true";
|
135
|
+
} catch (err) {
|
136
|
+
return void 0;
|
137
|
+
}
|
138
|
+
}
|
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
|
+
};
|
62
294
|
|
63
|
-
|
64
|
-
|
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.21.6";
|
303
|
+
|
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 ({ 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
|
233
|
-
|
234
|
-
const createDatabase = (variables) => fetch$1({
|
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
|
473
|
+
...variables,
|
474
|
+
signal
|
243
475
|
});
|
244
|
-
const getBranchDetails = (variables) =>
|
476
|
+
const getBranchDetails = (variables, signal) => dataPlaneFetch({
|
245
477
|
url: "/db/{dbBranchName}",
|
246
478
|
method: "get",
|
247
|
-
...variables
|
479
|
+
...variables,
|
480
|
+
signal
|
248
481
|
});
|
249
|
-
const createBranch = (variables) =>
|
250
|
-
|
251
|
-
method: "put",
|
252
|
-
...variables
|
253
|
-
});
|
254
|
-
const deleteBranch = (variables) => fetch$1({
|
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
|
506
|
+
});
|
507
|
+
const getGitBranchesMapping = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/gitBranches", method: "get", ...variables, signal });
|
508
|
+
const addGitBranchesEntry = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/gitBranches", method: "post", ...variables, signal });
|
509
|
+
const removeGitBranchesEntry = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/gitBranches", method: "delete", ...variables, signal });
|
510
|
+
const resolveBranch = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/resolveBranch", method: "get", ...variables, signal });
|
511
|
+
const getBranchMigrationHistory = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/migrations", method: "get", ...variables, signal });
|
512
|
+
const getBranchMigrationPlan = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/migrations/plan", method: "post", ...variables, signal });
|
513
|
+
const executeBranchMigrationPlan = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/migrations/execute", method: "post", ...variables, signal });
|
514
|
+
const queryMigrationRequests = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations/query", method: "post", ...variables, signal });
|
515
|
+
const createMigrationRequest = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations", method: "post", ...variables, signal });
|
516
|
+
const getMigrationRequest = (variables, signal) => dataPlaneFetch({
|
517
|
+
url: "/dbs/{dbName}/migrations/{mrNumber}",
|
518
|
+
method: "get",
|
519
|
+
...variables,
|
520
|
+
signal
|
276
521
|
});
|
277
|
-
const
|
522
|
+
const updateMigrationRequest = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations/{mrNumber}", method: "patch", ...variables, signal });
|
523
|
+
const listMigrationRequestsCommits = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations/{mrNumber}/commits", method: "post", ...variables, signal });
|
524
|
+
const compareMigrationRequest = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations/{mrNumber}/compare", method: "post", ...variables, signal });
|
525
|
+
const getMigrationRequestIsMerged = (variables, signal) => dataPlaneFetch({ url: "/dbs/{dbName}/migrations/{mrNumber}/merge", method: "get", ...variables, signal });
|
526
|
+
const mergeMigrationRequest = (variables, signal) => dataPlaneFetch({
|
527
|
+
url: "/dbs/{dbName}/migrations/{mrNumber}/merge",
|
528
|
+
method: "post",
|
529
|
+
...variables,
|
530
|
+
signal
|
531
|
+
});
|
532
|
+
const getBranchSchemaHistory = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/history", method: "post", ...variables, signal });
|
533
|
+
const compareBranchWithUserSchema = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/compare", method: "post", ...variables, signal });
|
534
|
+
const compareBranchSchemas = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/compare/{branchName}", method: "post", ...variables, signal });
|
535
|
+
const updateBranchSchema = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/update", method: "post", ...variables, signal });
|
536
|
+
const previewBranchSchemaEdit = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/preview", method: "post", ...variables, signal });
|
537
|
+
const applyBranchSchemaEdit = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/schema/apply", method: "post", ...variables, signal });
|
538
|
+
const createTable = (variables, signal) => dataPlaneFetch({
|
278
539
|
url: "/db/{dbBranchName}/tables/{tableName}",
|
279
540
|
method: "put",
|
280
|
-
...variables
|
541
|
+
...variables,
|
542
|
+
signal
|
281
543
|
});
|
282
|
-
const deleteTable = (variables) =>
|
544
|
+
const deleteTable = (variables, signal) => dataPlaneFetch({
|
283
545
|
url: "/db/{dbBranchName}/tables/{tableName}",
|
284
546
|
method: "delete",
|
285
|
-
...variables
|
286
|
-
|
287
|
-
const updateTable = (variables) => fetch$1({
|
288
|
-
url: "/db/{dbBranchName}/tables/{tableName}",
|
289
|
-
method: "patch",
|
290
|
-
...variables
|
547
|
+
...variables,
|
548
|
+
signal
|
291
549
|
});
|
292
|
-
const
|
550
|
+
const updateTable = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}", method: "patch", ...variables, signal });
|
551
|
+
const getTableSchema = (variables, signal) => dataPlaneFetch({
|
293
552
|
url: "/db/{dbBranchName}/tables/{tableName}/schema",
|
294
553
|
method: "get",
|
295
|
-
...variables
|
554
|
+
...variables,
|
555
|
+
signal
|
296
556
|
});
|
297
|
-
const setTableSchema = (variables) =>
|
298
|
-
|
299
|
-
method: "put",
|
300
|
-
...variables
|
301
|
-
});
|
302
|
-
const getTableColumns = (variables) => fetch$1({
|
557
|
+
const setTableSchema = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/schema", method: "put", ...variables, signal });
|
558
|
+
const getTableColumns = (variables, signal) => dataPlaneFetch({
|
303
559
|
url: "/db/{dbBranchName}/tables/{tableName}/columns",
|
304
560
|
method: "get",
|
305
|
-
...variables
|
306
|
-
|
307
|
-
const addTableColumn = (variables) => fetch$1({
|
308
|
-
url: "/db/{dbBranchName}/tables/{tableName}/columns",
|
309
|
-
method: "post",
|
310
|
-
...variables
|
561
|
+
...variables,
|
562
|
+
signal
|
311
563
|
});
|
312
|
-
const
|
564
|
+
const addTableColumn = (variables, signal) => dataPlaneFetch(
|
565
|
+
{ url: "/db/{dbBranchName}/tables/{tableName}/columns", method: "post", ...variables, signal }
|
566
|
+
);
|
567
|
+
const getColumn = (variables, signal) => dataPlaneFetch({
|
313
568
|
url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}",
|
314
569
|
method: "get",
|
315
|
-
...variables
|
316
|
-
|
317
|
-
const deleteColumn = (variables) => fetch$1({
|
318
|
-
url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}",
|
319
|
-
method: "delete",
|
320
|
-
...variables
|
570
|
+
...variables,
|
571
|
+
signal
|
321
572
|
});
|
322
|
-
const updateColumn = (variables) =>
|
573
|
+
const updateColumn = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/tables/{tableName}/columns/{columnName}", method: "patch", ...variables, signal });
|
574
|
+
const deleteColumn = (variables, signal) => dataPlaneFetch({
|
323
575
|
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
576
|
method: "delete",
|
338
|
-
...variables
|
577
|
+
...variables,
|
578
|
+
signal
|
339
579
|
});
|
340
|
-
const
|
580
|
+
const branchTransaction = (variables, signal) => dataPlaneFetch({ url: "/db/{dbBranchName}/transaction", method: "post", ...variables, signal });
|
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,32 @@ 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
|
+
migrationRequests: {
|
639
|
+
queryMigrationRequests,
|
640
|
+
createMigrationRequest,
|
641
|
+
getMigrationRequest,
|
642
|
+
updateMigrationRequest,
|
643
|
+
listMigrationRequestsCommits,
|
644
|
+
compareMigrationRequest,
|
645
|
+
getMigrationRequestIsMerged,
|
646
|
+
mergeMigrationRequest
|
384
647
|
},
|
385
648
|
table: {
|
386
649
|
createTable,
|
@@ -391,26 +654,160 @@ const operationsByTag = {
|
|
391
654
|
getTableColumns,
|
392
655
|
addTableColumn,
|
393
656
|
getColumn,
|
394
|
-
|
395
|
-
|
657
|
+
updateColumn,
|
658
|
+
deleteColumn
|
396
659
|
},
|
397
660
|
records: {
|
661
|
+
branchTransaction,
|
398
662
|
insertRecord,
|
663
|
+
getRecord,
|
399
664
|
insertRecordWithID,
|
400
665
|
updateRecordWithID,
|
401
666
|
upsertRecordWithID,
|
402
667
|
deleteRecord,
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
668
|
+
bulkInsertTableRecords
|
669
|
+
},
|
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 },
|
580
|
-
...this.extraProps
|
581
|
-
});
|
582
|
-
}
|
583
|
-
inviteWorkspaceMember(workspaceId, email, role) {
|
584
|
-
return operationsByTag.workspaces.inviteWorkspaceMember({
|
585
|
-
pathParams: { workspaceId },
|
586
|
-
body: { email, role },
|
1040
|
+
pathParams: { workspaceId: workspace, userId: user },
|
587
1041
|
...this.extraProps
|
588
1042
|
});
|
589
1043
|
}
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
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 },
|
824
1675
|
...this.extraProps
|
825
1676
|
});
|
826
1677
|
}
|
827
|
-
|
828
|
-
|
829
|
-
|
830
|
-
|
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 },
|
1861
|
+
...this.extraProps
|
1862
|
+
});
|
1863
|
+
}
|
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,112 @@ 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
|
+
toSerializable() {
|
1970
|
+
return JSON.parse(this.toString());
|
1971
|
+
}
|
1972
|
+
toString() {
|
1973
|
+
return JSON.stringify(this.toArray());
|
1974
|
+
}
|
1975
|
+
map(callbackfn, thisArg) {
|
1976
|
+
return this.toArray().map(callbackfn, thisArg);
|
1977
|
+
}
|
1978
|
+
async nextPage(size, offset) {
|
1979
|
+
const newPage = await __privateGet$6(this, _page).nextPage(size, offset);
|
1980
|
+
return new _RecordArray(newPage);
|
1981
|
+
}
|
1982
|
+
async previousPage(size, offset) {
|
1983
|
+
const newPage = await __privateGet$6(this, _page).previousPage(size, offset);
|
1984
|
+
return new _RecordArray(newPage);
|
1985
|
+
}
|
1986
|
+
async startPage(size, offset) {
|
1987
|
+
const newPage = await __privateGet$6(this, _page).startPage(size, offset);
|
1988
|
+
return new _RecordArray(newPage);
|
1989
|
+
}
|
1990
|
+
async endPage(size, offset) {
|
1991
|
+
const newPage = await __privateGet$6(this, _page).endPage(size, offset);
|
1992
|
+
return new _RecordArray(newPage);
|
1993
|
+
}
|
1994
|
+
hasNextPage() {
|
1995
|
+
return __privateGet$6(this, _page).meta.page.more;
|
1996
|
+
}
|
1997
|
+
};
|
1998
|
+
let RecordArray = _RecordArray;
|
1999
|
+
_page = new WeakMap();
|
900
2000
|
|
901
|
-
var __accessCheck$
|
2001
|
+
var __accessCheck$5 = (obj, member, msg) => {
|
902
2002
|
if (!member.has(obj))
|
903
2003
|
throw TypeError("Cannot " + msg);
|
904
2004
|
};
|
905
|
-
var __privateGet$
|
906
|
-
__accessCheck$
|
2005
|
+
var __privateGet$5 = (obj, member, getter) => {
|
2006
|
+
__accessCheck$5(obj, member, "read from private field");
|
907
2007
|
return getter ? getter.call(obj) : member.get(obj);
|
908
2008
|
};
|
909
|
-
var __privateAdd$
|
2009
|
+
var __privateAdd$5 = (obj, member, value) => {
|
910
2010
|
if (member.has(obj))
|
911
2011
|
throw TypeError("Cannot add the same private member more than once");
|
912
2012
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
913
2013
|
};
|
914
|
-
var __privateSet$
|
915
|
-
__accessCheck$
|
2014
|
+
var __privateSet$5 = (obj, member, value, setter) => {
|
2015
|
+
__accessCheck$5(obj, member, "write to private field");
|
916
2016
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
917
2017
|
return value;
|
918
2018
|
};
|
919
|
-
var
|
2019
|
+
var __privateMethod$3 = (obj, member, method) => {
|
2020
|
+
__accessCheck$5(obj, member, "access private method");
|
2021
|
+
return method;
|
2022
|
+
};
|
2023
|
+
var _table$1, _repository, _data, _cleanFilterConstraint, cleanFilterConstraint_fn;
|
920
2024
|
const _Query = class {
|
921
|
-
constructor(repository, table, data,
|
922
|
-
__privateAdd$
|
923
|
-
__privateAdd$
|
924
|
-
__privateAdd$
|
2025
|
+
constructor(repository, table, data, rawParent) {
|
2026
|
+
__privateAdd$5(this, _cleanFilterConstraint);
|
2027
|
+
__privateAdd$5(this, _table$1, void 0);
|
2028
|
+
__privateAdd$5(this, _repository, void 0);
|
2029
|
+
__privateAdd$5(this, _data, { filter: {} });
|
925
2030
|
this.meta = { page: { cursor: "start", more: true } };
|
926
|
-
this.records = [];
|
927
|
-
__privateSet$
|
2031
|
+
this.records = new RecordArray(this, []);
|
2032
|
+
__privateSet$5(this, _table$1, table);
|
928
2033
|
if (repository) {
|
929
|
-
__privateSet$
|
2034
|
+
__privateSet$5(this, _repository, repository);
|
930
2035
|
} else {
|
931
|
-
__privateSet$
|
2036
|
+
__privateSet$5(this, _repository, this);
|
932
2037
|
}
|
933
|
-
|
934
|
-
__privateGet$
|
935
|
-
__privateGet$
|
936
|
-
__privateGet$
|
937
|
-
__privateGet$
|
938
|
-
__privateGet$
|
939
|
-
__privateGet$
|
940
|
-
__privateGet$
|
2038
|
+
const parent = cleanParent(data, rawParent);
|
2039
|
+
__privateGet$5(this, _data).filter = data.filter ?? parent?.filter ?? {};
|
2040
|
+
__privateGet$5(this, _data).filter.$any = data.filter?.$any ?? parent?.filter?.$any;
|
2041
|
+
__privateGet$5(this, _data).filter.$all = data.filter?.$all ?? parent?.filter?.$all;
|
2042
|
+
__privateGet$5(this, _data).filter.$not = data.filter?.$not ?? parent?.filter?.$not;
|
2043
|
+
__privateGet$5(this, _data).filter.$none = data.filter?.$none ?? parent?.filter?.$none;
|
2044
|
+
__privateGet$5(this, _data).sort = data.sort ?? parent?.sort;
|
2045
|
+
__privateGet$5(this, _data).columns = data.columns ?? parent?.columns;
|
2046
|
+
__privateGet$5(this, _data).consistency = data.consistency ?? parent?.consistency;
|
2047
|
+
__privateGet$5(this, _data).pagination = data.pagination ?? parent?.pagination;
|
2048
|
+
__privateGet$5(this, _data).cache = data.cache ?? parent?.cache;
|
2049
|
+
__privateGet$5(this, _data).fetchOptions = data.fetchOptions ?? parent?.fetchOptions;
|
941
2050
|
this.any = this.any.bind(this);
|
942
2051
|
this.all = this.all.bind(this);
|
943
2052
|
this.not = this.not.bind(this);
|
@@ -948,87 +2057,133 @@ const _Query = class {
|
|
948
2057
|
Object.defineProperty(this, "repository", { enumerable: false });
|
949
2058
|
}
|
950
2059
|
getQueryOptions() {
|
951
|
-
return __privateGet$
|
2060
|
+
return __privateGet$5(this, _data);
|
2061
|
+
}
|
2062
|
+
key() {
|
2063
|
+
const { columns = [], filter = {}, sort = [], pagination = {} } = __privateGet$5(this, _data);
|
2064
|
+
const key = JSON.stringify({ columns, filter, sort, pagination });
|
2065
|
+
return toBase64(key);
|
952
2066
|
}
|
953
2067
|
any(...queries) {
|
954
2068
|
const $any = queries.map((query) => query.getQueryOptions().filter ?? {});
|
955
|
-
return new _Query(__privateGet$
|
2069
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $any } }, __privateGet$5(this, _data));
|
956
2070
|
}
|
957
2071
|
all(...queries) {
|
958
2072
|
const $all = queries.map((query) => query.getQueryOptions().filter ?? {});
|
959
|
-
return new _Query(__privateGet$
|
2073
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
960
2074
|
}
|
961
2075
|
not(...queries) {
|
962
2076
|
const $not = queries.map((query) => query.getQueryOptions().filter ?? {});
|
963
|
-
return new _Query(__privateGet$
|
2077
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $not } }, __privateGet$5(this, _data));
|
964
2078
|
}
|
965
2079
|
none(...queries) {
|
966
2080
|
const $none = queries.map((query) => query.getQueryOptions().filter ?? {});
|
967
|
-
return new _Query(__privateGet$
|
2081
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $none } }, __privateGet$5(this, _data));
|
968
2082
|
}
|
969
2083
|
filter(a, b) {
|
970
2084
|
if (arguments.length === 1) {
|
971
|
-
const constraints = Object.entries(a).map(([column, constraint]) => ({
|
972
|
-
|
973
|
-
|
2085
|
+
const constraints = Object.entries(a ?? {}).map(([column, constraint]) => ({
|
2086
|
+
[column]: __privateMethod$3(this, _cleanFilterConstraint, cleanFilterConstraint_fn).call(this, column, constraint)
|
2087
|
+
}));
|
2088
|
+
const $all = compact([__privateGet$5(this, _data).filter?.$all].flat().concat(constraints));
|
2089
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
974
2090
|
} else {
|
975
|
-
const
|
976
|
-
|
2091
|
+
const constraints = isDefined(a) && isDefined(b) ? [{ [a]: __privateMethod$3(this, _cleanFilterConstraint, cleanFilterConstraint_fn).call(this, a, b) }] : void 0;
|
2092
|
+
const $all = compact([__privateGet$5(this, _data).filter?.$all].flat().concat(constraints));
|
2093
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
977
2094
|
}
|
978
2095
|
}
|
979
|
-
sort(column, direction) {
|
980
|
-
const originalSort = [__privateGet$
|
2096
|
+
sort(column, direction = "asc") {
|
2097
|
+
const originalSort = [__privateGet$5(this, _data).sort ?? []].flat();
|
981
2098
|
const sort = [...originalSort, { column, direction }];
|
982
|
-
return new _Query(__privateGet$
|
2099
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { sort }, __privateGet$5(this, _data));
|
983
2100
|
}
|
984
2101
|
select(columns) {
|
985
|
-
return new _Query(
|
2102
|
+
return new _Query(
|
2103
|
+
__privateGet$5(this, _repository),
|
2104
|
+
__privateGet$5(this, _table$1),
|
2105
|
+
{ columns },
|
2106
|
+
__privateGet$5(this, _data)
|
2107
|
+
);
|
986
2108
|
}
|
987
2109
|
getPaginated(options = {}) {
|
988
|
-
const query = new _Query(__privateGet$
|
989
|
-
return __privateGet$
|
2110
|
+
const query = new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), options, __privateGet$5(this, _data));
|
2111
|
+
return __privateGet$5(this, _repository).query(query);
|
990
2112
|
}
|
991
2113
|
async *[Symbol.asyncIterator]() {
|
992
|
-
for await (const [record] of this.getIterator(1)) {
|
2114
|
+
for await (const [record] of this.getIterator({ batchSize: 1 })) {
|
993
2115
|
yield record;
|
994
2116
|
}
|
995
2117
|
}
|
996
|
-
async *getIterator(
|
997
|
-
|
998
|
-
let
|
999
|
-
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
2118
|
+
async *getIterator(options = {}) {
|
2119
|
+
const { batchSize = 1 } = options;
|
2120
|
+
let page = await this.getPaginated({ ...options, pagination: { size: batchSize, offset: 0 } });
|
2121
|
+
let more = page.hasNextPage();
|
2122
|
+
yield page.records;
|
2123
|
+
while (more) {
|
2124
|
+
page = await page.nextPage();
|
2125
|
+
more = page.hasNextPage();
|
2126
|
+
yield page.records;
|
1004
2127
|
}
|
1005
2128
|
}
|
1006
2129
|
async getMany(options = {}) {
|
1007
|
-
const {
|
1008
|
-
|
2130
|
+
const { pagination = {}, ...rest } = options;
|
2131
|
+
const { size = PAGINATION_DEFAULT_SIZE, offset } = pagination;
|
2132
|
+
const batchSize = size <= PAGINATION_MAX_SIZE ? size : PAGINATION_MAX_SIZE;
|
2133
|
+
let page = await this.getPaginated({ ...rest, pagination: { size: batchSize, offset } });
|
2134
|
+
const results = [...page.records];
|
2135
|
+
while (page.hasNextPage() && results.length < size) {
|
2136
|
+
page = await page.nextPage();
|
2137
|
+
results.push(...page.records);
|
2138
|
+
}
|
2139
|
+
if (page.hasNextPage() && options.pagination?.size === void 0) {
|
2140
|
+
console.trace("Calling getMany does not return all results. Paginate to get all results or call getAll.");
|
2141
|
+
}
|
2142
|
+
const array = new RecordArray(page, results.slice(0, size));
|
2143
|
+
return array;
|
1009
2144
|
}
|
1010
|
-
async getAll(
|
2145
|
+
async getAll(options = {}) {
|
2146
|
+
const { batchSize = PAGINATION_MAX_SIZE, ...rest } = options;
|
1011
2147
|
const results = [];
|
1012
|
-
for await (const page of this.getIterator(
|
2148
|
+
for await (const page of this.getIterator({ ...rest, batchSize })) {
|
1013
2149
|
results.push(...page);
|
1014
2150
|
}
|
1015
2151
|
return results;
|
1016
2152
|
}
|
1017
|
-
async
|
1018
|
-
const records = await this.getMany({ ...options,
|
1019
|
-
return records[0]
|
2153
|
+
async getFirst(options = {}) {
|
2154
|
+
const records = await this.getMany({ ...options, pagination: { size: 1 } });
|
2155
|
+
return records[0] ?? null;
|
2156
|
+
}
|
2157
|
+
async getFirstOrThrow(options = {}) {
|
2158
|
+
const records = await this.getMany({ ...options, pagination: { size: 1 } });
|
2159
|
+
if (records[0] === void 0)
|
2160
|
+
throw new Error("No results found.");
|
2161
|
+
return records[0];
|
2162
|
+
}
|
2163
|
+
async summarize(params = {}) {
|
2164
|
+
const { summaries, summariesFilter, ...options } = params;
|
2165
|
+
const query = new _Query(
|
2166
|
+
__privateGet$5(this, _repository),
|
2167
|
+
__privateGet$5(this, _table$1),
|
2168
|
+
options,
|
2169
|
+
__privateGet$5(this, _data)
|
2170
|
+
);
|
2171
|
+
return __privateGet$5(this, _repository).summarizeTable(query, summaries, summariesFilter);
|
2172
|
+
}
|
2173
|
+
cache(ttl) {
|
2174
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { cache: ttl }, __privateGet$5(this, _data));
|
1020
2175
|
}
|
1021
2176
|
nextPage(size, offset) {
|
1022
|
-
return this.
|
2177
|
+
return this.startPage(size, offset);
|
1023
2178
|
}
|
1024
2179
|
previousPage(size, offset) {
|
1025
|
-
return this.
|
2180
|
+
return this.startPage(size, offset);
|
1026
2181
|
}
|
1027
|
-
|
1028
|
-
return this.getPaginated({
|
2182
|
+
startPage(size, offset) {
|
2183
|
+
return this.getPaginated({ pagination: { size, offset } });
|
1029
2184
|
}
|
1030
|
-
|
1031
|
-
return this.getPaginated({
|
2185
|
+
endPage(size, offset) {
|
2186
|
+
return this.getPaginated({ pagination: { size, offset, before: "end" } });
|
1032
2187
|
}
|
1033
2188
|
hasNextPage() {
|
1034
2189
|
return this.meta.page.more;
|
@@ -1038,12 +2193,31 @@ let Query = _Query;
|
|
1038
2193
|
_table$1 = new WeakMap();
|
1039
2194
|
_repository = new WeakMap();
|
1040
2195
|
_data = new WeakMap();
|
2196
|
+
_cleanFilterConstraint = new WeakSet();
|
2197
|
+
cleanFilterConstraint_fn = function(column, value) {
|
2198
|
+
const columnType = __privateGet$5(this, _table$1).schema?.columns.find(({ name }) => name === column)?.type;
|
2199
|
+
if (columnType === "multiple" && (isString(value) || isStringArray(value))) {
|
2200
|
+
return { $includes: value };
|
2201
|
+
}
|
2202
|
+
if (columnType === "link" && isObject(value) && isString(value.id)) {
|
2203
|
+
return value.id;
|
2204
|
+
}
|
2205
|
+
return value;
|
2206
|
+
};
|
2207
|
+
function cleanParent(data, parent) {
|
2208
|
+
if (isCursorPaginationOptions(data.pagination)) {
|
2209
|
+
return { ...parent, sort: void 0, filter: void 0 };
|
2210
|
+
}
|
2211
|
+
return parent;
|
2212
|
+
}
|
1041
2213
|
|
1042
2214
|
function isIdentifiable(x) {
|
1043
2215
|
return isObject(x) && isString(x?.id);
|
1044
2216
|
}
|
1045
2217
|
function isXataRecord(x) {
|
1046
|
-
|
2218
|
+
const record = x;
|
2219
|
+
const metadata = record?.getMetadata();
|
2220
|
+
return isIdentifiable(x) && isObject(metadata) && typeof metadata.version === "number";
|
1047
2221
|
}
|
1048
2222
|
|
1049
2223
|
function isSortFilterString(value) {
|
@@ -1069,249 +2243,624 @@ function buildSortFilter(filter) {
|
|
1069
2243
|
}
|
1070
2244
|
}
|
1071
2245
|
|
1072
|
-
var __accessCheck$
|
2246
|
+
var __accessCheck$4 = (obj, member, msg) => {
|
1073
2247
|
if (!member.has(obj))
|
1074
2248
|
throw TypeError("Cannot " + msg);
|
1075
|
-
};
|
1076
|
-
var __privateGet$
|
1077
|
-
__accessCheck$
|
2249
|
+
};
|
2250
|
+
var __privateGet$4 = (obj, member, getter) => {
|
2251
|
+
__accessCheck$4(obj, member, "read from private field");
|
1078
2252
|
return getter ? getter.call(obj) : member.get(obj);
|
1079
2253
|
};
|
1080
|
-
var __privateAdd$
|
2254
|
+
var __privateAdd$4 = (obj, member, value) => {
|
1081
2255
|
if (member.has(obj))
|
1082
2256
|
throw TypeError("Cannot add the same private member more than once");
|
1083
2257
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
1084
2258
|
};
|
1085
|
-
var __privateSet$
|
1086
|
-
__accessCheck$
|
2259
|
+
var __privateSet$4 = (obj, member, value, setter) => {
|
2260
|
+
__accessCheck$4(obj, member, "write to private field");
|
1087
2261
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
1088
2262
|
return value;
|
1089
2263
|
};
|
1090
2264
|
var __privateMethod$2 = (obj, member, method) => {
|
1091
|
-
__accessCheck$
|
2265
|
+
__accessCheck$4(obj, member, "access private method");
|
1092
2266
|
return method;
|
1093
2267
|
};
|
1094
|
-
var _table,
|
2268
|
+
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;
|
2269
|
+
const BULK_OPERATION_MAX_SIZE = 1e3;
|
1095
2270
|
class Repository extends Query {
|
1096
2271
|
}
|
1097
2272
|
class RestRepository extends Query {
|
1098
2273
|
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
|
2274
|
+
super(
|
2275
|
+
null,
|
2276
|
+
{ name: options.table, schema: options.schemaTables?.find((table) => table.name === options.table) },
|
2277
|
+
{}
|
2278
|
+
);
|
2279
|
+
__privateAdd$4(this, _insertRecordWithoutId);
|
2280
|
+
__privateAdd$4(this, _insertRecordWithId);
|
2281
|
+
__privateAdd$4(this, _insertRecords);
|
2282
|
+
__privateAdd$4(this, _updateRecordWithID);
|
2283
|
+
__privateAdd$4(this, _updateRecords);
|
2284
|
+
__privateAdd$4(this, _upsertRecordWithID);
|
2285
|
+
__privateAdd$4(this, _deleteRecord);
|
2286
|
+
__privateAdd$4(this, _deleteRecords);
|
2287
|
+
__privateAdd$4(this, _setCacheQuery);
|
2288
|
+
__privateAdd$4(this, _getCacheQuery);
|
2289
|
+
__privateAdd$4(this, _getSchemaTables$1);
|
2290
|
+
__privateAdd$4(this, _table, void 0);
|
2291
|
+
__privateAdd$4(this, _getFetchProps, void 0);
|
2292
|
+
__privateAdd$4(this, _db, void 0);
|
2293
|
+
__privateAdd$4(this, _cache, void 0);
|
2294
|
+
__privateAdd$4(this, _schemaTables$2, void 0);
|
2295
|
+
__privateAdd$4(this, _trace, void 0);
|
2296
|
+
__privateSet$4(this, _table, options.table);
|
2297
|
+
__privateSet$4(this, _db, options.db);
|
2298
|
+
__privateSet$4(this, _cache, options.pluginOptions.cache);
|
2299
|
+
__privateSet$4(this, _schemaTables$2, options.schemaTables);
|
2300
|
+
__privateSet$4(this, _getFetchProps, async () => {
|
2301
|
+
const props = await options.pluginOptions.getFetchProps();
|
2302
|
+
return { ...props, sessionID: generateUUID() };
|
2303
|
+
});
|
2304
|
+
const trace = options.pluginOptions.trace ?? defaultTrace;
|
2305
|
+
__privateSet$4(this, _trace, async (name, fn, options2 = {}) => {
|
2306
|
+
return trace(name, fn, {
|
2307
|
+
...options2,
|
2308
|
+
[TraceAttributes.TABLE]: __privateGet$4(this, _table),
|
2309
|
+
[TraceAttributes.KIND]: "sdk-operation",
|
2310
|
+
[TraceAttributes.VERSION]: VERSION
|
1139
2311
|
});
|
1140
|
-
|
1141
|
-
|
1142
|
-
|
1143
|
-
|
2312
|
+
});
|
2313
|
+
}
|
2314
|
+
async create(a, b, c, d) {
|
2315
|
+
return __privateGet$4(this, _trace).call(this, "create", async () => {
|
2316
|
+
const ifVersion = parseIfVersion(b, c, d);
|
2317
|
+
if (Array.isArray(a)) {
|
2318
|
+
if (a.length === 0)
|
2319
|
+
return [];
|
2320
|
+
const ids = await __privateMethod$2(this, _insertRecords, insertRecords_fn).call(this, a, { ifVersion, createOnly: true });
|
2321
|
+
const columns = isStringArray(b) ? b : ["*"];
|
2322
|
+
const result = await this.read(ids, columns);
|
2323
|
+
return result;
|
1144
2324
|
}
|
1145
|
-
|
1146
|
-
|
2325
|
+
if (isString(a) && isObject(b)) {
|
2326
|
+
if (a === "")
|
2327
|
+
throw new Error("The id can't be empty");
|
2328
|
+
const columns = isStringArray(c) ? c : void 0;
|
2329
|
+
return await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a, b, columns, { createOnly: true, ifVersion });
|
2330
|
+
}
|
2331
|
+
if (isObject(a) && isString(a.id)) {
|
2332
|
+
if (a.id === "")
|
2333
|
+
throw new Error("The id can't be empty");
|
2334
|
+
const columns = isStringArray(b) ? b : void 0;
|
2335
|
+
return await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a.id, { ...a, id: void 0 }, columns, { createOnly: true, ifVersion });
|
2336
|
+
}
|
2337
|
+
if (isObject(a)) {
|
2338
|
+
const columns = isStringArray(b) ? b : void 0;
|
2339
|
+
return __privateMethod$2(this, _insertRecordWithoutId, insertRecordWithoutId_fn).call(this, a, columns);
|
2340
|
+
}
|
2341
|
+
throw new Error("Invalid arguments for create method");
|
2342
|
+
});
|
1147
2343
|
}
|
1148
|
-
async
|
1149
|
-
|
1150
|
-
|
1151
|
-
|
2344
|
+
async read(a, b) {
|
2345
|
+
return __privateGet$4(this, _trace).call(this, "read", async () => {
|
2346
|
+
const columns = isStringArray(b) ? b : ["*"];
|
2347
|
+
if (Array.isArray(a)) {
|
2348
|
+
if (a.length === 0)
|
2349
|
+
return [];
|
2350
|
+
const ids = a.map((item) => extractId(item));
|
2351
|
+
const finalObjects = await this.getAll({ filter: { id: { $any: compact(ids) } }, columns });
|
2352
|
+
const dictionary = finalObjects.reduce((acc, object) => {
|
2353
|
+
acc[object.id] = object;
|
2354
|
+
return acc;
|
2355
|
+
}, {});
|
2356
|
+
return ids.map((id2) => dictionary[id2 ?? ""] ?? null);
|
1152
2357
|
}
|
1153
|
-
|
1154
|
-
|
1155
|
-
|
1156
|
-
|
1157
|
-
|
1158
|
-
|
1159
|
-
|
1160
|
-
|
1161
|
-
|
2358
|
+
const id = extractId(a);
|
2359
|
+
if (id) {
|
2360
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
2361
|
+
try {
|
2362
|
+
const response = await getRecord({
|
2363
|
+
pathParams: {
|
2364
|
+
workspace: "{workspaceId}",
|
2365
|
+
dbBranchName: "{dbBranch}",
|
2366
|
+
region: "{region}",
|
2367
|
+
tableName: __privateGet$4(this, _table),
|
2368
|
+
recordId: id
|
2369
|
+
},
|
2370
|
+
queryParams: { columns },
|
2371
|
+
...fetchProps
|
2372
|
+
});
|
2373
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
2374
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
2375
|
+
} catch (e) {
|
2376
|
+
if (isObject(e) && e.status === 404) {
|
2377
|
+
return null;
|
2378
|
+
}
|
2379
|
+
throw e;
|
2380
|
+
}
|
2381
|
+
}
|
2382
|
+
return null;
|
2383
|
+
});
|
1162
2384
|
}
|
1163
|
-
async
|
1164
|
-
|
1165
|
-
|
1166
|
-
|
2385
|
+
async readOrThrow(a, b) {
|
2386
|
+
return __privateGet$4(this, _trace).call(this, "readOrThrow", async () => {
|
2387
|
+
const result = await this.read(a, b);
|
2388
|
+
if (Array.isArray(result)) {
|
2389
|
+
const missingIds = compact(
|
2390
|
+
a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
|
2391
|
+
);
|
2392
|
+
if (missingIds.length > 0) {
|
2393
|
+
throw new Error(`Could not find records with ids: ${missingIds.join(", ")}`);
|
2394
|
+
}
|
2395
|
+
return result;
|
1167
2396
|
}
|
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");
|
2397
|
+
if (result === null) {
|
2398
|
+
const id = extractId(a) ?? "unknown";
|
2399
|
+
throw new Error(`Record with id ${id} not found`);
|
2400
|
+
}
|
2401
|
+
return result;
|
2402
|
+
});
|
1177
2403
|
}
|
1178
|
-
async
|
1179
|
-
|
1180
|
-
|
1181
|
-
|
2404
|
+
async update(a, b, c, d) {
|
2405
|
+
return __privateGet$4(this, _trace).call(this, "update", async () => {
|
2406
|
+
const ifVersion = parseIfVersion(b, c, d);
|
2407
|
+
if (Array.isArray(a)) {
|
2408
|
+
if (a.length === 0)
|
2409
|
+
return [];
|
2410
|
+
const existing = await this.read(a, ["id"]);
|
2411
|
+
const updates = a.filter((_item, index) => existing[index] !== null);
|
2412
|
+
await __privateMethod$2(this, _updateRecords, updateRecords_fn).call(this, updates, {
|
2413
|
+
ifVersion,
|
2414
|
+
upsert: false
|
2415
|
+
});
|
2416
|
+
const columns = isStringArray(b) ? b : ["*"];
|
2417
|
+
const result = await this.read(a, columns);
|
2418
|
+
return result;
|
1182
2419
|
}
|
1183
|
-
|
1184
|
-
|
1185
|
-
|
1186
|
-
|
1187
|
-
|
1188
|
-
|
1189
|
-
|
1190
|
-
|
1191
|
-
|
1192
|
-
|
1193
|
-
|
1194
|
-
|
2420
|
+
try {
|
2421
|
+
if (isString(a) && isObject(b)) {
|
2422
|
+
const columns = isStringArray(c) ? c : void 0;
|
2423
|
+
return await __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a, b, columns, { ifVersion });
|
2424
|
+
}
|
2425
|
+
if (isObject(a) && isString(a.id)) {
|
2426
|
+
const columns = isStringArray(b) ? b : void 0;
|
2427
|
+
return await __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns, { ifVersion });
|
2428
|
+
}
|
2429
|
+
} catch (error) {
|
2430
|
+
if (error.status === 422)
|
2431
|
+
return null;
|
2432
|
+
throw error;
|
2433
|
+
}
|
2434
|
+
throw new Error("Invalid arguments for update method");
|
2435
|
+
});
|
2436
|
+
}
|
2437
|
+
async updateOrThrow(a, b, c, d) {
|
2438
|
+
return __privateGet$4(this, _trace).call(this, "updateOrThrow", async () => {
|
2439
|
+
const result = await this.update(a, b, c, d);
|
2440
|
+
if (Array.isArray(result)) {
|
2441
|
+
const missingIds = compact(
|
2442
|
+
a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
|
2443
|
+
);
|
2444
|
+
if (missingIds.length > 0) {
|
2445
|
+
throw new Error(`Could not find records with ids: ${missingIds.join(", ")}`);
|
2446
|
+
}
|
2447
|
+
return result;
|
2448
|
+
}
|
2449
|
+
if (result === null) {
|
2450
|
+
const id = extractId(a) ?? "unknown";
|
2451
|
+
throw new Error(`Record with id ${id} not found`);
|
2452
|
+
}
|
2453
|
+
return result;
|
2454
|
+
});
|
2455
|
+
}
|
2456
|
+
async createOrUpdate(a, b, c, d) {
|
2457
|
+
return __privateGet$4(this, _trace).call(this, "createOrUpdate", async () => {
|
2458
|
+
const ifVersion = parseIfVersion(b, c, d);
|
2459
|
+
if (Array.isArray(a)) {
|
2460
|
+
if (a.length === 0)
|
2461
|
+
return [];
|
2462
|
+
await __privateMethod$2(this, _updateRecords, updateRecords_fn).call(this, a, {
|
2463
|
+
ifVersion,
|
2464
|
+
upsert: true
|
2465
|
+
});
|
2466
|
+
const columns = isStringArray(b) ? b : ["*"];
|
2467
|
+
const result = await this.read(a, columns);
|
2468
|
+
return result;
|
2469
|
+
}
|
2470
|
+
if (isString(a) && isObject(b)) {
|
2471
|
+
const columns = isStringArray(c) ? c : void 0;
|
2472
|
+
return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a, b, columns, { ifVersion });
|
2473
|
+
}
|
2474
|
+
if (isObject(a) && isString(a.id)) {
|
2475
|
+
const columns = isStringArray(c) ? c : void 0;
|
2476
|
+
return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns, { ifVersion });
|
2477
|
+
}
|
2478
|
+
throw new Error("Invalid arguments for createOrUpdate method");
|
2479
|
+
});
|
2480
|
+
}
|
2481
|
+
async createOrReplace(a, b, c, d) {
|
2482
|
+
return __privateGet$4(this, _trace).call(this, "createOrReplace", async () => {
|
2483
|
+
const ifVersion = parseIfVersion(b, c, d);
|
2484
|
+
if (Array.isArray(a)) {
|
2485
|
+
if (a.length === 0)
|
2486
|
+
return [];
|
2487
|
+
const ids = await __privateMethod$2(this, _insertRecords, insertRecords_fn).call(this, a, { ifVersion, createOnly: false });
|
2488
|
+
const columns = isStringArray(b) ? b : ["*"];
|
2489
|
+
const result = await this.read(ids, columns);
|
2490
|
+
return result;
|
2491
|
+
}
|
2492
|
+
if (isString(a) && isObject(b)) {
|
2493
|
+
const columns = isStringArray(c) ? c : void 0;
|
2494
|
+
return __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a, b, columns, { createOnly: false, ifVersion });
|
2495
|
+
}
|
2496
|
+
if (isObject(a) && isString(a.id)) {
|
2497
|
+
const columns = isStringArray(c) ? c : void 0;
|
2498
|
+
return __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a.id, { ...a, id: void 0 }, columns, { createOnly: false, ifVersion });
|
2499
|
+
}
|
2500
|
+
throw new Error("Invalid arguments for createOrReplace method");
|
2501
|
+
});
|
2502
|
+
}
|
2503
|
+
async delete(a, b) {
|
2504
|
+
return __privateGet$4(this, _trace).call(this, "delete", async () => {
|
2505
|
+
if (Array.isArray(a)) {
|
2506
|
+
if (a.length === 0)
|
2507
|
+
return [];
|
2508
|
+
const ids = a.map((o) => {
|
2509
|
+
if (isString(o))
|
2510
|
+
return o;
|
2511
|
+
if (isString(o.id))
|
2512
|
+
return o.id;
|
2513
|
+
throw new Error("Invalid arguments for delete method");
|
2514
|
+
});
|
2515
|
+
const columns = isStringArray(b) ? b : ["*"];
|
2516
|
+
const result = await this.read(a, columns);
|
2517
|
+
await __privateMethod$2(this, _deleteRecords, deleteRecords_fn).call(this, ids);
|
2518
|
+
return result;
|
2519
|
+
}
|
2520
|
+
if (isString(a)) {
|
2521
|
+
return __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a, b);
|
2522
|
+
}
|
2523
|
+
if (isObject(a) && isString(a.id)) {
|
2524
|
+
return __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a.id, b);
|
2525
|
+
}
|
2526
|
+
throw new Error("Invalid arguments for delete method");
|
2527
|
+
});
|
2528
|
+
}
|
2529
|
+
async deleteOrThrow(a, b) {
|
2530
|
+
return __privateGet$4(this, _trace).call(this, "deleteOrThrow", async () => {
|
2531
|
+
const result = await this.delete(a, b);
|
2532
|
+
if (Array.isArray(result)) {
|
2533
|
+
const missingIds = compact(
|
2534
|
+
a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
|
2535
|
+
);
|
2536
|
+
if (missingIds.length > 0) {
|
2537
|
+
throw new Error(`Could not find records with ids: ${missingIds.join(", ")}`);
|
2538
|
+
}
|
2539
|
+
return result;
|
2540
|
+
} else if (result === null) {
|
2541
|
+
const id = extractId(a) ?? "unknown";
|
2542
|
+
throw new Error(`Record with id ${id} not found`);
|
2543
|
+
}
|
2544
|
+
return result;
|
2545
|
+
});
|
1195
2546
|
}
|
1196
2547
|
async search(query, options = {}) {
|
1197
|
-
|
1198
|
-
|
1199
|
-
|
1200
|
-
|
1201
|
-
|
2548
|
+
return __privateGet$4(this, _trace).call(this, "search", async () => {
|
2549
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
2550
|
+
const { records } = await searchTable({
|
2551
|
+
pathParams: {
|
2552
|
+
workspace: "{workspaceId}",
|
2553
|
+
dbBranchName: "{dbBranch}",
|
2554
|
+
region: "{region}",
|
2555
|
+
tableName: __privateGet$4(this, _table)
|
2556
|
+
},
|
2557
|
+
body: {
|
2558
|
+
query,
|
2559
|
+
fuzziness: options.fuzziness,
|
2560
|
+
prefix: options.prefix,
|
2561
|
+
highlight: options.highlight,
|
2562
|
+
filter: options.filter,
|
2563
|
+
boosters: options.boosters,
|
2564
|
+
page: options.page,
|
2565
|
+
target: options.target
|
2566
|
+
},
|
2567
|
+
...fetchProps
|
2568
|
+
});
|
2569
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
2570
|
+
return records.map((item) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), item, ["*"]));
|
2571
|
+
});
|
2572
|
+
}
|
2573
|
+
async aggregate(aggs, filter) {
|
2574
|
+
return __privateGet$4(this, _trace).call(this, "aggregate", async () => {
|
2575
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
2576
|
+
const result = await aggregateTable({
|
2577
|
+
pathParams: {
|
2578
|
+
workspace: "{workspaceId}",
|
2579
|
+
dbBranchName: "{dbBranch}",
|
2580
|
+
region: "{region}",
|
2581
|
+
tableName: __privateGet$4(this, _table)
|
2582
|
+
},
|
2583
|
+
body: { aggs, filter },
|
2584
|
+
...fetchProps
|
2585
|
+
});
|
2586
|
+
return result;
|
1202
2587
|
});
|
1203
|
-
return records.map((item) => initObject(this.db, __privateGet$2(this, _links), __privateGet$2(this, _table), item));
|
1204
2588
|
}
|
1205
2589
|
async query(query) {
|
1206
|
-
|
1207
|
-
|
1208
|
-
|
1209
|
-
|
1210
|
-
|
1211
|
-
|
1212
|
-
|
1213
|
-
|
1214
|
-
|
1215
|
-
|
1216
|
-
|
1217
|
-
|
2590
|
+
return __privateGet$4(this, _trace).call(this, "query", async () => {
|
2591
|
+
const cacheQuery = await __privateMethod$2(this, _getCacheQuery, getCacheQuery_fn).call(this, query);
|
2592
|
+
if (cacheQuery)
|
2593
|
+
return new Page(query, cacheQuery.meta, cacheQuery.records);
|
2594
|
+
const data = query.getQueryOptions();
|
2595
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
2596
|
+
const { meta, records: objects } = await queryTable({
|
2597
|
+
pathParams: {
|
2598
|
+
workspace: "{workspaceId}",
|
2599
|
+
dbBranchName: "{dbBranch}",
|
2600
|
+
region: "{region}",
|
2601
|
+
tableName: __privateGet$4(this, _table)
|
2602
|
+
},
|
2603
|
+
body: {
|
2604
|
+
filter: cleanFilter(data.filter),
|
2605
|
+
sort: data.sort !== void 0 ? buildSortFilter(data.sort) : void 0,
|
2606
|
+
page: data.pagination,
|
2607
|
+
columns: data.columns ?? ["*"],
|
2608
|
+
consistency: data.consistency
|
2609
|
+
},
|
2610
|
+
fetchOptions: data.fetchOptions,
|
2611
|
+
...fetchProps
|
2612
|
+
});
|
2613
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
2614
|
+
const records = objects.map(
|
2615
|
+
(record) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), record, data.columns ?? ["*"])
|
2616
|
+
);
|
2617
|
+
await __privateMethod$2(this, _setCacheQuery, setCacheQuery_fn).call(this, query, meta, records);
|
2618
|
+
return new Page(query, meta, records);
|
2619
|
+
});
|
2620
|
+
}
|
2621
|
+
async summarizeTable(query, summaries, summariesFilter) {
|
2622
|
+
return __privateGet$4(this, _trace).call(this, "summarize", async () => {
|
2623
|
+
const data = query.getQueryOptions();
|
2624
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
2625
|
+
const result = await summarizeTable({
|
2626
|
+
pathParams: {
|
2627
|
+
workspace: "{workspaceId}",
|
2628
|
+
dbBranchName: "{dbBranch}",
|
2629
|
+
region: "{region}",
|
2630
|
+
tableName: __privateGet$4(this, _table)
|
2631
|
+
},
|
2632
|
+
body: {
|
2633
|
+
filter: cleanFilter(data.filter),
|
2634
|
+
sort: data.sort !== void 0 ? buildSortFilter(data.sort) : void 0,
|
2635
|
+
columns: data.columns,
|
2636
|
+
consistency: data.consistency,
|
2637
|
+
page: data.pagination?.size !== void 0 ? { size: data.pagination?.size } : void 0,
|
2638
|
+
summaries,
|
2639
|
+
summariesFilter
|
2640
|
+
},
|
2641
|
+
...fetchProps
|
2642
|
+
});
|
2643
|
+
return result;
|
1218
2644
|
});
|
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
2645
|
}
|
1222
2646
|
}
|
1223
2647
|
_table = new WeakMap();
|
1224
|
-
_links = new WeakMap();
|
1225
2648
|
_getFetchProps = new WeakMap();
|
2649
|
+
_db = new WeakMap();
|
2650
|
+
_cache = new WeakMap();
|
2651
|
+
_schemaTables$2 = new WeakMap();
|
2652
|
+
_trace = new WeakMap();
|
1226
2653
|
_insertRecordWithoutId = new WeakSet();
|
1227
|
-
insertRecordWithoutId_fn = async function(object) {
|
1228
|
-
const fetchProps = await __privateGet$
|
2654
|
+
insertRecordWithoutId_fn = async function(object, columns = ["*"]) {
|
2655
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1229
2656
|
const record = transformObjectLinks(object);
|
1230
2657
|
const response = await insertRecord({
|
1231
2658
|
pathParams: {
|
1232
2659
|
workspace: "{workspaceId}",
|
1233
2660
|
dbBranchName: "{dbBranch}",
|
1234
|
-
|
2661
|
+
region: "{region}",
|
2662
|
+
tableName: __privateGet$4(this, _table)
|
1235
2663
|
},
|
2664
|
+
queryParams: { columns },
|
1236
2665
|
body: record,
|
1237
2666
|
...fetchProps
|
1238
2667
|
});
|
1239
|
-
const
|
1240
|
-
|
1241
|
-
throw new Error("The server failed to save the record");
|
1242
|
-
}
|
1243
|
-
return finalObject;
|
2668
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
2669
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
1244
2670
|
};
|
1245
2671
|
_insertRecordWithId = new WeakSet();
|
1246
|
-
insertRecordWithId_fn = async function(recordId, object) {
|
1247
|
-
const fetchProps = await __privateGet$
|
2672
|
+
insertRecordWithId_fn = async function(recordId, object, columns = ["*"], { createOnly, ifVersion }) {
|
2673
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1248
2674
|
const record = transformObjectLinks(object);
|
1249
2675
|
const response = await insertRecordWithID({
|
1250
2676
|
pathParams: {
|
1251
2677
|
workspace: "{workspaceId}",
|
1252
2678
|
dbBranchName: "{dbBranch}",
|
1253
|
-
|
2679
|
+
region: "{region}",
|
2680
|
+
tableName: __privateGet$4(this, _table),
|
1254
2681
|
recordId
|
1255
2682
|
},
|
1256
2683
|
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 },
|
2684
|
+
queryParams: { createOnly, columns, ifVersion },
|
1273
2685
|
...fetchProps
|
1274
2686
|
});
|
1275
|
-
const
|
1276
|
-
|
1277
|
-
|
2687
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
2688
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
2689
|
+
};
|
2690
|
+
_insertRecords = new WeakSet();
|
2691
|
+
insertRecords_fn = async function(objects, { createOnly, ifVersion }) {
|
2692
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
2693
|
+
const chunkedOperations = chunk(
|
2694
|
+
objects.map((object) => ({
|
2695
|
+
insert: { table: __privateGet$4(this, _table), record: transformObjectLinks(object), createOnly, ifVersion }
|
2696
|
+
})),
|
2697
|
+
BULK_OPERATION_MAX_SIZE
|
2698
|
+
);
|
2699
|
+
const ids = [];
|
2700
|
+
for (const operations of chunkedOperations) {
|
2701
|
+
const { results } = await branchTransaction({
|
2702
|
+
pathParams: {
|
2703
|
+
workspace: "{workspaceId}",
|
2704
|
+
dbBranchName: "{dbBranch}",
|
2705
|
+
region: "{region}"
|
2706
|
+
},
|
2707
|
+
body: { operations },
|
2708
|
+
...fetchProps
|
2709
|
+
});
|
2710
|
+
for (const result of results) {
|
2711
|
+
if (result.operation === "insert") {
|
2712
|
+
ids.push(result.id);
|
2713
|
+
} else {
|
2714
|
+
ids.push(null);
|
2715
|
+
}
|
2716
|
+
}
|
1278
2717
|
}
|
1279
|
-
return
|
2718
|
+
return ids;
|
1280
2719
|
};
|
1281
2720
|
_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
|
-
|
2721
|
+
updateRecordWithID_fn = async function(recordId, object, columns = ["*"], { ifVersion }) {
|
2722
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
2723
|
+
const { id: _id, ...record } = transformObjectLinks(object);
|
2724
|
+
try {
|
2725
|
+
const response = await updateRecordWithID({
|
2726
|
+
pathParams: {
|
2727
|
+
workspace: "{workspaceId}",
|
2728
|
+
dbBranchName: "{dbBranch}",
|
2729
|
+
region: "{region}",
|
2730
|
+
tableName: __privateGet$4(this, _table),
|
2731
|
+
recordId
|
2732
|
+
},
|
2733
|
+
queryParams: { columns, ifVersion },
|
2734
|
+
body: record,
|
2735
|
+
...fetchProps
|
2736
|
+
});
|
2737
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
2738
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
2739
|
+
} catch (e) {
|
2740
|
+
if (isObject(e) && e.status === 404) {
|
2741
|
+
return null;
|
2742
|
+
}
|
2743
|
+
throw e;
|
2744
|
+
}
|
2745
|
+
};
|
2746
|
+
_updateRecords = new WeakSet();
|
2747
|
+
updateRecords_fn = async function(objects, { ifVersion, upsert }) {
|
2748
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
2749
|
+
const chunkedOperations = chunk(
|
2750
|
+
objects.map(({ id, ...object }) => ({
|
2751
|
+
update: { table: __privateGet$4(this, _table), id, ifVersion, upsert, fields: transformObjectLinks(object) }
|
2752
|
+
})),
|
2753
|
+
BULK_OPERATION_MAX_SIZE
|
2754
|
+
);
|
2755
|
+
const ids = [];
|
2756
|
+
for (const operations of chunkedOperations) {
|
2757
|
+
const { results } = await branchTransaction({
|
2758
|
+
pathParams: {
|
2759
|
+
workspace: "{workspaceId}",
|
2760
|
+
dbBranchName: "{dbBranch}",
|
2761
|
+
region: "{region}"
|
2762
|
+
},
|
2763
|
+
body: { operations },
|
2764
|
+
...fetchProps
|
2765
|
+
});
|
2766
|
+
for (const result of results) {
|
2767
|
+
if (result.operation === "update") {
|
2768
|
+
ids.push(result.id);
|
2769
|
+
} else {
|
2770
|
+
ids.push(null);
|
2771
|
+
}
|
2772
|
+
}
|
2773
|
+
}
|
2774
|
+
return ids;
|
1294
2775
|
};
|
1295
2776
|
_upsertRecordWithID = new WeakSet();
|
1296
|
-
upsertRecordWithID_fn = async function(recordId, object) {
|
1297
|
-
const fetchProps = await __privateGet$
|
2777
|
+
upsertRecordWithID_fn = async function(recordId, object, columns = ["*"], { ifVersion }) {
|
2778
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1298
2779
|
const response = await upsertRecordWithID({
|
1299
|
-
pathParams: {
|
2780
|
+
pathParams: {
|
2781
|
+
workspace: "{workspaceId}",
|
2782
|
+
dbBranchName: "{dbBranch}",
|
2783
|
+
region: "{region}",
|
2784
|
+
tableName: __privateGet$4(this, _table),
|
2785
|
+
recordId
|
2786
|
+
},
|
2787
|
+
queryParams: { columns, ifVersion },
|
1300
2788
|
body: object,
|
1301
2789
|
...fetchProps
|
1302
2790
|
});
|
1303
|
-
const
|
1304
|
-
|
1305
|
-
throw new Error("The server failed to save the record");
|
1306
|
-
return item;
|
2791
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
2792
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
1307
2793
|
};
|
1308
2794
|
_deleteRecord = new WeakSet();
|
1309
|
-
deleteRecord_fn = async function(recordId) {
|
1310
|
-
const fetchProps = await __privateGet$
|
1311
|
-
|
1312
|
-
|
2795
|
+
deleteRecord_fn = async function(recordId, columns = ["*"]) {
|
2796
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
2797
|
+
try {
|
2798
|
+
const response = await deleteRecord({
|
2799
|
+
pathParams: {
|
2800
|
+
workspace: "{workspaceId}",
|
2801
|
+
dbBranchName: "{dbBranch}",
|
2802
|
+
region: "{region}",
|
2803
|
+
tableName: __privateGet$4(this, _table),
|
2804
|
+
recordId
|
2805
|
+
},
|
2806
|
+
queryParams: { columns },
|
2807
|
+
...fetchProps
|
2808
|
+
});
|
2809
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
2810
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
2811
|
+
} catch (e) {
|
2812
|
+
if (isObject(e) && e.status === 404) {
|
2813
|
+
return null;
|
2814
|
+
}
|
2815
|
+
throw e;
|
2816
|
+
}
|
2817
|
+
};
|
2818
|
+
_deleteRecords = new WeakSet();
|
2819
|
+
deleteRecords_fn = async function(recordIds) {
|
2820
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
2821
|
+
const chunkedOperations = chunk(
|
2822
|
+
recordIds.map((id) => ({ delete: { table: __privateGet$4(this, _table), id } })),
|
2823
|
+
BULK_OPERATION_MAX_SIZE
|
2824
|
+
);
|
2825
|
+
for (const operations of chunkedOperations) {
|
2826
|
+
await branchTransaction({
|
2827
|
+
pathParams: {
|
2828
|
+
workspace: "{workspaceId}",
|
2829
|
+
dbBranchName: "{dbBranch}",
|
2830
|
+
region: "{region}"
|
2831
|
+
},
|
2832
|
+
body: { operations },
|
2833
|
+
...fetchProps
|
2834
|
+
});
|
2835
|
+
}
|
2836
|
+
};
|
2837
|
+
_setCacheQuery = new WeakSet();
|
2838
|
+
setCacheQuery_fn = async function(query, meta, records) {
|
2839
|
+
await __privateGet$4(this, _cache).set(`query_${__privateGet$4(this, _table)}:${query.key()}`, { date: new Date(), meta, records });
|
2840
|
+
};
|
2841
|
+
_getCacheQuery = new WeakSet();
|
2842
|
+
getCacheQuery_fn = async function(query) {
|
2843
|
+
const key = `query_${__privateGet$4(this, _table)}:${query.key()}`;
|
2844
|
+
const result = await __privateGet$4(this, _cache).get(key);
|
2845
|
+
if (!result)
|
2846
|
+
return null;
|
2847
|
+
const { cache: ttl = __privateGet$4(this, _cache).defaultQueryTTL } = query.getQueryOptions();
|
2848
|
+
if (ttl < 0)
|
2849
|
+
return null;
|
2850
|
+
const hasExpired = result.date.getTime() + ttl < Date.now();
|
2851
|
+
return hasExpired ? null : result;
|
2852
|
+
};
|
2853
|
+
_getSchemaTables$1 = new WeakSet();
|
2854
|
+
getSchemaTables_fn$1 = async function() {
|
2855
|
+
if (__privateGet$4(this, _schemaTables$2))
|
2856
|
+
return __privateGet$4(this, _schemaTables$2);
|
2857
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
2858
|
+
const { schema } = await getBranchDetails({
|
2859
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
|
1313
2860
|
...fetchProps
|
1314
2861
|
});
|
2862
|
+
__privateSet$4(this, _schemaTables$2, schema.tables);
|
2863
|
+
return schema.tables;
|
1315
2864
|
};
|
1316
2865
|
const transformObjectLinks = (object) => {
|
1317
2866
|
return Object.entries(object).reduce((acc, [key, value]) => {
|
@@ -1320,45 +2869,181 @@ const transformObjectLinks = (object) => {
|
|
1320
2869
|
return { ...acc, [key]: isIdentifiable(value) ? value.id : value };
|
1321
2870
|
}, {});
|
1322
2871
|
};
|
1323
|
-
const initObject = (db,
|
1324
|
-
const
|
1325
|
-
|
1326
|
-
|
1327
|
-
|
1328
|
-
|
1329
|
-
|
1330
|
-
|
1331
|
-
|
2872
|
+
const initObject = (db, schemaTables, table, object, selectedColumns) => {
|
2873
|
+
const data = {};
|
2874
|
+
const { xata, ...rest } = object ?? {};
|
2875
|
+
Object.assign(data, rest);
|
2876
|
+
const { columns } = schemaTables.find(({ name }) => name === table) ?? {};
|
2877
|
+
if (!columns)
|
2878
|
+
console.error(`Table ${table} not found in schema`);
|
2879
|
+
for (const column of columns ?? []) {
|
2880
|
+
if (!isValidColumn(selectedColumns, column))
|
2881
|
+
continue;
|
2882
|
+
const value = data[column.name];
|
2883
|
+
switch (column.type) {
|
2884
|
+
case "datetime": {
|
2885
|
+
const date = value !== void 0 ? new Date(value) : null;
|
2886
|
+
if (date !== null && isNaN(date.getTime())) {
|
2887
|
+
console.error(`Failed to parse date ${value} for field ${column.name}`);
|
2888
|
+
} else {
|
2889
|
+
data[column.name] = date;
|
2890
|
+
}
|
2891
|
+
break;
|
2892
|
+
}
|
2893
|
+
case "link": {
|
2894
|
+
const linkTable = column.link?.table;
|
2895
|
+
if (!linkTable) {
|
2896
|
+
console.error(`Failed to parse link for field ${column.name}`);
|
2897
|
+
} else if (isObject(value)) {
|
2898
|
+
const selectedLinkColumns = selectedColumns.reduce((acc, item) => {
|
2899
|
+
if (item === column.name) {
|
2900
|
+
return [...acc, "*"];
|
2901
|
+
}
|
2902
|
+
if (item.startsWith(`${column.name}.`)) {
|
2903
|
+
const [, ...path] = item.split(".");
|
2904
|
+
return [...acc, path.join(".")];
|
2905
|
+
}
|
2906
|
+
return acc;
|
2907
|
+
}, []);
|
2908
|
+
data[column.name] = initObject(db, schemaTables, linkTable, value, selectedLinkColumns);
|
2909
|
+
} else {
|
2910
|
+
data[column.name] = null;
|
2911
|
+
}
|
2912
|
+
break;
|
2913
|
+
}
|
2914
|
+
default:
|
2915
|
+
data[column.name] = value ?? null;
|
2916
|
+
if (column.notNull === true && value === null) {
|
2917
|
+
console.error(`Parse error, column ${column.name} is non nullable and value resolves null`);
|
2918
|
+
}
|
2919
|
+
break;
|
1332
2920
|
}
|
1333
2921
|
}
|
1334
|
-
|
1335
|
-
|
2922
|
+
const record = { ...data };
|
2923
|
+
record.read = function(columns2) {
|
2924
|
+
return db[table].read(record["id"], columns2);
|
2925
|
+
};
|
2926
|
+
record.update = function(data2, b, c) {
|
2927
|
+
const columns2 = isStringArray(b) ? b : ["*"];
|
2928
|
+
const ifVersion = parseIfVersion(b, c);
|
2929
|
+
return db[table].update(record["id"], data2, columns2, { ifVersion });
|
2930
|
+
};
|
2931
|
+
record.replace = function(data2, b, c) {
|
2932
|
+
const columns2 = isStringArray(b) ? b : ["*"];
|
2933
|
+
const ifVersion = parseIfVersion(b, c);
|
2934
|
+
return db[table].createOrReplace(record["id"], data2, columns2, { ifVersion });
|
1336
2935
|
};
|
1337
|
-
|
1338
|
-
return db[table].
|
2936
|
+
record.delete = function() {
|
2937
|
+
return db[table].delete(record["id"]);
|
1339
2938
|
};
|
1340
|
-
|
1341
|
-
return
|
2939
|
+
record.getMetadata = function() {
|
2940
|
+
return xata;
|
1342
2941
|
};
|
1343
|
-
|
1344
|
-
|
2942
|
+
record.toSerializable = function() {
|
2943
|
+
return JSON.parse(JSON.stringify(transformObjectLinks(data)));
|
2944
|
+
};
|
2945
|
+
record.toString = function() {
|
2946
|
+
return JSON.stringify(transformObjectLinks(data));
|
2947
|
+
};
|
2948
|
+
for (const prop of ["read", "update", "replace", "delete", "getMetadata", "toSerializable", "toString"]) {
|
2949
|
+
Object.defineProperty(record, prop, { enumerable: false });
|
1345
2950
|
}
|
1346
|
-
Object.freeze(
|
1347
|
-
return
|
2951
|
+
Object.freeze(record);
|
2952
|
+
return record;
|
2953
|
+
};
|
2954
|
+
function extractId(value) {
|
2955
|
+
if (isString(value))
|
2956
|
+
return value;
|
2957
|
+
if (isObject(value) && isString(value.id))
|
2958
|
+
return value.id;
|
2959
|
+
return void 0;
|
2960
|
+
}
|
2961
|
+
function isValidColumn(columns, column) {
|
2962
|
+
if (columns.includes("*"))
|
2963
|
+
return true;
|
2964
|
+
if (column.type === "link") {
|
2965
|
+
const linkColumns = columns.filter((item) => item.startsWith(column.name));
|
2966
|
+
return linkColumns.length > 0;
|
2967
|
+
}
|
2968
|
+
return columns.includes(column.name);
|
2969
|
+
}
|
2970
|
+
function parseIfVersion(...args) {
|
2971
|
+
for (const arg of args) {
|
2972
|
+
if (isObject(arg) && isNumber(arg.ifVersion)) {
|
2973
|
+
return arg.ifVersion;
|
2974
|
+
}
|
2975
|
+
}
|
2976
|
+
return void 0;
|
2977
|
+
}
|
2978
|
+
|
2979
|
+
var __accessCheck$3 = (obj, member, msg) => {
|
2980
|
+
if (!member.has(obj))
|
2981
|
+
throw TypeError("Cannot " + msg);
|
2982
|
+
};
|
2983
|
+
var __privateGet$3 = (obj, member, getter) => {
|
2984
|
+
__accessCheck$3(obj, member, "read from private field");
|
2985
|
+
return getter ? getter.call(obj) : member.get(obj);
|
2986
|
+
};
|
2987
|
+
var __privateAdd$3 = (obj, member, value) => {
|
2988
|
+
if (member.has(obj))
|
2989
|
+
throw TypeError("Cannot add the same private member more than once");
|
2990
|
+
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
2991
|
+
};
|
2992
|
+
var __privateSet$3 = (obj, member, value, setter) => {
|
2993
|
+
__accessCheck$3(obj, member, "write to private field");
|
2994
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
2995
|
+
return value;
|
1348
2996
|
};
|
2997
|
+
var _map;
|
2998
|
+
class SimpleCache {
|
2999
|
+
constructor(options = {}) {
|
3000
|
+
__privateAdd$3(this, _map, void 0);
|
3001
|
+
__privateSet$3(this, _map, /* @__PURE__ */ new Map());
|
3002
|
+
this.capacity = options.max ?? 500;
|
3003
|
+
this.defaultQueryTTL = options.defaultQueryTTL ?? 60 * 1e3;
|
3004
|
+
}
|
3005
|
+
async getAll() {
|
3006
|
+
return Object.fromEntries(__privateGet$3(this, _map));
|
3007
|
+
}
|
3008
|
+
async get(key) {
|
3009
|
+
return __privateGet$3(this, _map).get(key) ?? null;
|
3010
|
+
}
|
3011
|
+
async set(key, value) {
|
3012
|
+
await this.delete(key);
|
3013
|
+
__privateGet$3(this, _map).set(key, value);
|
3014
|
+
if (__privateGet$3(this, _map).size > this.capacity) {
|
3015
|
+
const leastRecentlyUsed = __privateGet$3(this, _map).keys().next().value;
|
3016
|
+
await this.delete(leastRecentlyUsed);
|
3017
|
+
}
|
3018
|
+
}
|
3019
|
+
async delete(key) {
|
3020
|
+
__privateGet$3(this, _map).delete(key);
|
3021
|
+
}
|
3022
|
+
async clear() {
|
3023
|
+
return __privateGet$3(this, _map).clear();
|
3024
|
+
}
|
3025
|
+
}
|
3026
|
+
_map = new WeakMap();
|
1349
3027
|
|
1350
|
-
const
|
1351
|
-
const
|
1352
|
-
const
|
1353
|
-
const
|
1354
|
-
const
|
1355
|
-
const
|
3028
|
+
const greaterThan = (value) => ({ $gt: value });
|
3029
|
+
const gt = greaterThan;
|
3030
|
+
const greaterThanEquals = (value) => ({ $ge: value });
|
3031
|
+
const greaterEquals = greaterThanEquals;
|
3032
|
+
const gte = greaterThanEquals;
|
3033
|
+
const ge = greaterThanEquals;
|
3034
|
+
const lessThan = (value) => ({ $lt: value });
|
3035
|
+
const lt = lessThan;
|
3036
|
+
const lessThanEquals = (value) => ({ $le: value });
|
3037
|
+
const lessEquals = lessThanEquals;
|
3038
|
+
const lte = lessThanEquals;
|
3039
|
+
const le = lessThanEquals;
|
1356
3040
|
const exists = (column) => ({ $exists: column });
|
1357
3041
|
const notExists = (column) => ({ $notExists: column });
|
1358
3042
|
const startsWith = (value) => ({ $startsWith: value });
|
1359
3043
|
const endsWith = (value) => ({ $endsWith: value });
|
1360
3044
|
const pattern = (value) => ({ $pattern: value });
|
1361
3045
|
const is = (value) => ({ $is: value });
|
3046
|
+
const equals = is;
|
1362
3047
|
const isNot = (value) => ({ $isNot: value });
|
1363
3048
|
const contains = (value) => ({ $contains: value });
|
1364
3049
|
const includes = (value) => ({ $includes: value });
|
@@ -1370,7 +3055,7 @@ var __accessCheck$2 = (obj, member, msg) => {
|
|
1370
3055
|
if (!member.has(obj))
|
1371
3056
|
throw TypeError("Cannot " + msg);
|
1372
3057
|
};
|
1373
|
-
var __privateGet$
|
3058
|
+
var __privateGet$2 = (obj, member, getter) => {
|
1374
3059
|
__accessCheck$2(obj, member, "read from private field");
|
1375
3060
|
return getter ? getter.call(obj) : member.get(obj);
|
1376
3061
|
};
|
@@ -1379,143 +3064,207 @@ var __privateAdd$2 = (obj, member, value) => {
|
|
1379
3064
|
throw TypeError("Cannot add the same private member more than once");
|
1380
3065
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
1381
3066
|
};
|
1382
|
-
var
|
3067
|
+
var __privateSet$2 = (obj, member, value, setter) => {
|
3068
|
+
__accessCheck$2(obj, member, "write to private field");
|
3069
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
3070
|
+
return value;
|
3071
|
+
};
|
3072
|
+
var _tables, _schemaTables$1;
|
1383
3073
|
class SchemaPlugin extends XataPlugin {
|
1384
|
-
constructor(
|
3074
|
+
constructor(schemaTables) {
|
1385
3075
|
super();
|
1386
|
-
this.links = links;
|
1387
|
-
this.tableNames = tableNames;
|
1388
3076
|
__privateAdd$2(this, _tables, {});
|
1389
|
-
|
1390
|
-
|
1391
|
-
|
1392
|
-
|
1393
|
-
const db = new Proxy(
|
1394
|
-
|
1395
|
-
|
1396
|
-
|
1397
|
-
|
1398
|
-
|
1399
|
-
|
3077
|
+
__privateAdd$2(this, _schemaTables$1, void 0);
|
3078
|
+
__privateSet$2(this, _schemaTables$1, schemaTables);
|
3079
|
+
}
|
3080
|
+
build(pluginOptions) {
|
3081
|
+
const db = new Proxy(
|
3082
|
+
{},
|
3083
|
+
{
|
3084
|
+
get: (_target, table) => {
|
3085
|
+
if (!isString(table))
|
3086
|
+
throw new Error("Invalid table name");
|
3087
|
+
if (__privateGet$2(this, _tables)[table] === void 0) {
|
3088
|
+
__privateGet$2(this, _tables)[table] = new RestRepository({ db, pluginOptions, table, schemaTables: __privateGet$2(this, _schemaTables$1) });
|
3089
|
+
}
|
3090
|
+
return __privateGet$2(this, _tables)[table];
|
3091
|
+
}
|
1400
3092
|
}
|
1401
|
-
|
1402
|
-
|
1403
|
-
|
3093
|
+
);
|
3094
|
+
const tableNames = __privateGet$2(this, _schemaTables$1)?.map(({ name }) => name) ?? [];
|
3095
|
+
for (const table of tableNames) {
|
3096
|
+
db[table] = new RestRepository({ db, pluginOptions, table, schemaTables: __privateGet$2(this, _schemaTables$1) });
|
1404
3097
|
}
|
1405
3098
|
return db;
|
1406
3099
|
}
|
1407
3100
|
}
|
1408
3101
|
_tables = new WeakMap();
|
3102
|
+
_schemaTables$1 = new WeakMap();
|
1409
3103
|
|
1410
3104
|
var __accessCheck$1 = (obj, member, msg) => {
|
1411
3105
|
if (!member.has(obj))
|
1412
3106
|
throw TypeError("Cannot " + msg);
|
1413
3107
|
};
|
3108
|
+
var __privateGet$1 = (obj, member, getter) => {
|
3109
|
+
__accessCheck$1(obj, member, "read from private field");
|
3110
|
+
return getter ? getter.call(obj) : member.get(obj);
|
3111
|
+
};
|
1414
3112
|
var __privateAdd$1 = (obj, member, value) => {
|
1415
3113
|
if (member.has(obj))
|
1416
3114
|
throw TypeError("Cannot add the same private member more than once");
|
1417
3115
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
1418
3116
|
};
|
3117
|
+
var __privateSet$1 = (obj, member, value, setter) => {
|
3118
|
+
__accessCheck$1(obj, member, "write to private field");
|
3119
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
3120
|
+
return value;
|
3121
|
+
};
|
1419
3122
|
var __privateMethod$1 = (obj, member, method) => {
|
1420
3123
|
__accessCheck$1(obj, member, "access private method");
|
1421
3124
|
return method;
|
1422
3125
|
};
|
1423
|
-
var _search, search_fn;
|
3126
|
+
var _schemaTables, _search, search_fn, _getSchemaTables, getSchemaTables_fn;
|
1424
3127
|
class SearchPlugin extends XataPlugin {
|
1425
|
-
constructor(db,
|
3128
|
+
constructor(db, schemaTables) {
|
1426
3129
|
super();
|
1427
3130
|
this.db = db;
|
1428
|
-
this.links = links;
|
1429
3131
|
__privateAdd$1(this, _search);
|
3132
|
+
__privateAdd$1(this, _getSchemaTables);
|
3133
|
+
__privateAdd$1(this, _schemaTables, void 0);
|
3134
|
+
__privateSet$1(this, _schemaTables, schemaTables);
|
1430
3135
|
}
|
1431
3136
|
build({ getFetchProps }) {
|
1432
3137
|
return {
|
1433
3138
|
all: async (query, options = {}) => {
|
1434
3139
|
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options, getFetchProps);
|
3140
|
+
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, getFetchProps);
|
1435
3141
|
return records.map((record) => {
|
1436
3142
|
const { table = "orphan" } = record.xata;
|
1437
|
-
return { table, record: initObject(this.db,
|
3143
|
+
return { table, record: initObject(this.db, schemaTables, table, record, ["*"]) };
|
1438
3144
|
});
|
1439
3145
|
},
|
1440
3146
|
byTable: async (query, options = {}) => {
|
1441
3147
|
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options, getFetchProps);
|
3148
|
+
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, getFetchProps);
|
1442
3149
|
return records.reduce((acc, record) => {
|
1443
3150
|
const { table = "orphan" } = record.xata;
|
1444
3151
|
const items = acc[table] ?? [];
|
1445
|
-
const item = initObject(this.db,
|
3152
|
+
const item = initObject(this.db, schemaTables, table, record, ["*"]);
|
1446
3153
|
return { ...acc, [table]: [...items, item] };
|
1447
3154
|
}, {});
|
1448
3155
|
}
|
1449
3156
|
};
|
1450
3157
|
}
|
1451
3158
|
}
|
3159
|
+
_schemaTables = new WeakMap();
|
1452
3160
|
_search = new WeakSet();
|
1453
3161
|
search_fn = async function(query, options, getFetchProps) {
|
1454
3162
|
const fetchProps = await getFetchProps();
|
1455
|
-
const { tables, fuzziness } = options ?? {};
|
3163
|
+
const { tables, fuzziness, highlight, prefix, page } = options ?? {};
|
1456
3164
|
const { records } = await searchBranch({
|
1457
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
1458
|
-
body: { tables, query, fuzziness },
|
3165
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
|
3166
|
+
body: { tables, query, fuzziness, prefix, highlight, page },
|
1459
3167
|
...fetchProps
|
1460
3168
|
});
|
1461
3169
|
return records;
|
1462
3170
|
};
|
3171
|
+
_getSchemaTables = new WeakSet();
|
3172
|
+
getSchemaTables_fn = async function(getFetchProps) {
|
3173
|
+
if (__privateGet$1(this, _schemaTables))
|
3174
|
+
return __privateGet$1(this, _schemaTables);
|
3175
|
+
const fetchProps = await getFetchProps();
|
3176
|
+
const { schema } = await getBranchDetails({
|
3177
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
|
3178
|
+
...fetchProps
|
3179
|
+
});
|
3180
|
+
__privateSet$1(this, _schemaTables, schema.tables);
|
3181
|
+
return schema.tables;
|
3182
|
+
};
|
3183
|
+
|
3184
|
+
class TransactionPlugin extends XataPlugin {
|
3185
|
+
build({ getFetchProps }) {
|
3186
|
+
return {
|
3187
|
+
run: async (operations) => {
|
3188
|
+
const fetchProps = await getFetchProps();
|
3189
|
+
const response = await branchTransaction({
|
3190
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", region: "{region}" },
|
3191
|
+
body: { operations },
|
3192
|
+
...fetchProps
|
3193
|
+
});
|
3194
|
+
return response;
|
3195
|
+
}
|
3196
|
+
};
|
3197
|
+
}
|
3198
|
+
}
|
1463
3199
|
|
1464
3200
|
const isBranchStrategyBuilder = (strategy) => {
|
1465
3201
|
return typeof strategy === "function";
|
1466
3202
|
};
|
1467
3203
|
|
1468
|
-
const envBranchNames = [
|
1469
|
-
"XATA_BRANCH",
|
1470
|
-
"VERCEL_GIT_COMMIT_REF",
|
1471
|
-
"CF_PAGES_BRANCH",
|
1472
|
-
"BRANCH"
|
1473
|
-
];
|
1474
|
-
const defaultBranch = "main";
|
1475
3204
|
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)
|
3205
|
+
const { branch, envBranch } = getEnvironment();
|
3206
|
+
if (branch)
|
1484
3207
|
return branch;
|
1485
|
-
|
3208
|
+
const gitBranch = envBranch || await getGitBranch();
|
3209
|
+
return resolveXataBranch(gitBranch, options);
|
1486
3210
|
}
|
1487
3211
|
async function getCurrentBranchDetails(options) {
|
1488
|
-
const
|
1489
|
-
|
1490
|
-
|
1491
|
-
|
1492
|
-
|
1493
|
-
|
1494
|
-
|
1495
|
-
|
1496
|
-
|
1497
|
-
|
3212
|
+
const branch = await getCurrentBranchName(options);
|
3213
|
+
return getDatabaseBranch(branch, options);
|
3214
|
+
}
|
3215
|
+
async function resolveXataBranch(gitBranch, options) {
|
3216
|
+
const databaseURL = options?.databaseURL || getDatabaseURL();
|
3217
|
+
const apiKey = options?.apiKey || getAPIKey();
|
3218
|
+
if (!databaseURL)
|
3219
|
+
throw new Error(
|
3220
|
+
"A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely"
|
3221
|
+
);
|
3222
|
+
if (!apiKey)
|
3223
|
+
throw new Error(
|
3224
|
+
"An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely"
|
3225
|
+
);
|
3226
|
+
const [protocol, , host, , dbName] = databaseURL.split("/");
|
3227
|
+
const urlParts = parseWorkspacesUrlParts(host);
|
3228
|
+
if (!urlParts)
|
3229
|
+
throw new Error(`Unable to parse workspace and region: ${databaseURL}`);
|
3230
|
+
const { workspace, region } = urlParts;
|
3231
|
+
const { fallbackBranch } = getEnvironment();
|
3232
|
+
const { branch } = await resolveBranch({
|
3233
|
+
apiKey,
|
3234
|
+
apiUrl: databaseURL,
|
3235
|
+
fetchImpl: getFetchImplementation(options?.fetchImpl),
|
3236
|
+
workspacesApiUrl: `${protocol}//${host}`,
|
3237
|
+
pathParams: { dbName, workspace, region },
|
3238
|
+
queryParams: { gitBranch, fallbackBranch },
|
3239
|
+
trace: defaultTrace,
|
3240
|
+
clientName: options?.clientName
|
3241
|
+
});
|
3242
|
+
return branch;
|
1498
3243
|
}
|
1499
3244
|
async function getDatabaseBranch(branch, options) {
|
1500
3245
|
const databaseURL = options?.databaseURL || getDatabaseURL();
|
1501
3246
|
const apiKey = options?.apiKey || getAPIKey();
|
1502
3247
|
if (!databaseURL)
|
1503
|
-
throw new Error(
|
3248
|
+
throw new Error(
|
3249
|
+
"A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely"
|
3250
|
+
);
|
1504
3251
|
if (!apiKey)
|
1505
|
-
throw new Error(
|
3252
|
+
throw new Error(
|
3253
|
+
"An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely"
|
3254
|
+
);
|
1506
3255
|
const [protocol, , host, , database] = databaseURL.split("/");
|
1507
|
-
const
|
1508
|
-
|
3256
|
+
const urlParts = parseWorkspacesUrlParts(host);
|
3257
|
+
if (!urlParts)
|
3258
|
+
throw new Error(`Unable to parse workspace and region: ${databaseURL}`);
|
3259
|
+
const { workspace, region } = urlParts;
|
1509
3260
|
try {
|
1510
3261
|
return await getBranchDetails({
|
1511
3262
|
apiKey,
|
1512
3263
|
apiUrl: databaseURL,
|
1513
3264
|
fetchImpl: getFetchImplementation(options?.fetchImpl),
|
1514
3265
|
workspacesApiUrl: `${protocol}//${host}`,
|
1515
|
-
pathParams: {
|
1516
|
-
|
1517
|
-
workspace
|
1518
|
-
}
|
3266
|
+
pathParams: { dbBranchName: `${database}:${branch}`, workspace, region },
|
3267
|
+
trace: defaultTrace
|
1519
3268
|
});
|
1520
3269
|
} catch (err) {
|
1521
3270
|
if (isObject(err) && err.status === 404)
|
@@ -1523,21 +3272,10 @@ async function getDatabaseBranch(branch, options) {
|
|
1523
3272
|
throw err;
|
1524
3273
|
}
|
1525
3274
|
}
|
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
3275
|
function getDatabaseURL() {
|
1539
3276
|
try {
|
1540
|
-
|
3277
|
+
const { databaseURL } = getEnvironment();
|
3278
|
+
return databaseURL;
|
1541
3279
|
} catch (err) {
|
1542
3280
|
return void 0;
|
1543
3281
|
}
|
@@ -1566,24 +3304,31 @@ var __privateMethod = (obj, member, method) => {
|
|
1566
3304
|
return method;
|
1567
3305
|
};
|
1568
3306
|
const buildClient = (plugins) => {
|
1569
|
-
var _branch, _parseOptions, parseOptions_fn, _getFetchProps, getFetchProps_fn, _evaluateBranch, evaluateBranch_fn, _a;
|
3307
|
+
var _branch, _options, _parseOptions, parseOptions_fn, _getFetchProps, getFetchProps_fn, _evaluateBranch, evaluateBranch_fn, _a;
|
1570
3308
|
return _a = class {
|
1571
|
-
constructor(options = {},
|
3309
|
+
constructor(options = {}, schemaTables) {
|
1572
3310
|
__privateAdd(this, _parseOptions);
|
1573
3311
|
__privateAdd(this, _getFetchProps);
|
1574
3312
|
__privateAdd(this, _evaluateBranch);
|
1575
3313
|
__privateAdd(this, _branch, void 0);
|
3314
|
+
__privateAdd(this, _options, void 0);
|
1576
3315
|
const safeOptions = __privateMethod(this, _parseOptions, parseOptions_fn).call(this, options);
|
1577
|
-
|
1578
|
-
const
|
1579
|
-
getFetchProps: () => __privateMethod(this, _getFetchProps, getFetchProps_fn).call(this, safeOptions)
|
1580
|
-
|
3316
|
+
__privateSet(this, _options, safeOptions);
|
3317
|
+
const pluginOptions = {
|
3318
|
+
getFetchProps: () => __privateMethod(this, _getFetchProps, getFetchProps_fn).call(this, safeOptions),
|
3319
|
+
cache: safeOptions.cache,
|
3320
|
+
trace: safeOptions.trace
|
3321
|
+
};
|
3322
|
+
const db = new SchemaPlugin(schemaTables).build(pluginOptions);
|
3323
|
+
const search = new SearchPlugin(db, schemaTables).build(pluginOptions);
|
3324
|
+
const transactions = new TransactionPlugin().build(pluginOptions);
|
1581
3325
|
this.db = db;
|
1582
3326
|
this.search = search;
|
3327
|
+
this.transactions = transactions;
|
1583
3328
|
for (const [key, namespace] of Object.entries(plugins ?? {})) {
|
1584
|
-
if (
|
3329
|
+
if (namespace === void 0)
|
1585
3330
|
continue;
|
1586
|
-
const result = namespace.build(
|
3331
|
+
const result = namespace.build(pluginOptions);
|
1587
3332
|
if (result instanceof Promise) {
|
1588
3333
|
void result.then((namespace2) => {
|
1589
3334
|
this[key] = namespace2;
|
@@ -1593,20 +3338,46 @@ const buildClient = (plugins) => {
|
|
1593
3338
|
}
|
1594
3339
|
}
|
1595
3340
|
}
|
1596
|
-
|
3341
|
+
async getConfig() {
|
3342
|
+
const databaseURL = __privateGet(this, _options).databaseURL;
|
3343
|
+
const branch = await __privateGet(this, _options).branch();
|
3344
|
+
return { databaseURL, branch };
|
3345
|
+
}
|
3346
|
+
}, _branch = new WeakMap(), _options = new WeakMap(), _parseOptions = new WeakSet(), parseOptions_fn = function(options) {
|
3347
|
+
const enableBrowser = options?.enableBrowser ?? getEnableBrowserVariable() ?? false;
|
3348
|
+
const isBrowser = typeof window !== "undefined" && typeof Deno === "undefined";
|
3349
|
+
if (isBrowser && !enableBrowser) {
|
3350
|
+
throw new Error(
|
3351
|
+
"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."
|
3352
|
+
);
|
3353
|
+
}
|
1597
3354
|
const fetch = getFetchImplementation(options?.fetch);
|
1598
3355
|
const databaseURL = options?.databaseURL || getDatabaseURL();
|
1599
3356
|
const apiKey = options?.apiKey || getAPIKey();
|
1600
|
-
const
|
1601
|
-
|
1602
|
-
|
3357
|
+
const cache = options?.cache ?? new SimpleCache({ defaultQueryTTL: 0 });
|
3358
|
+
const trace = options?.trace ?? defaultTrace;
|
3359
|
+
const clientName = options?.clientName;
|
3360
|
+
const branch = async () => options?.branch !== void 0 ? await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, options.branch) : await getCurrentBranchName({
|
3361
|
+
apiKey,
|
3362
|
+
databaseURL,
|
3363
|
+
fetchImpl: options?.fetch,
|
3364
|
+
clientName: options?.clientName
|
3365
|
+
});
|
3366
|
+
if (!apiKey) {
|
3367
|
+
throw new Error("Option apiKey is required");
|
1603
3368
|
}
|
1604
|
-
|
3369
|
+
if (!databaseURL) {
|
3370
|
+
throw new Error("Option databaseURL is required");
|
3371
|
+
}
|
3372
|
+
return { fetch, databaseURL, apiKey, branch, cache, trace, clientID: generateUUID(), enableBrowser, clientName };
|
1605
3373
|
}, _getFetchProps = new WeakSet(), getFetchProps_fn = async function({
|
1606
3374
|
fetch,
|
1607
3375
|
apiKey,
|
1608
3376
|
databaseURL,
|
1609
|
-
branch
|
3377
|
+
branch,
|
3378
|
+
trace,
|
3379
|
+
clientID,
|
3380
|
+
clientName
|
1610
3381
|
}) {
|
1611
3382
|
const branchValue = await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, branch);
|
1612
3383
|
if (!branchValue)
|
@@ -1617,14 +3388,17 @@ const buildClient = (plugins) => {
|
|
1617
3388
|
apiUrl: "",
|
1618
3389
|
workspacesApiUrl: (path, params) => {
|
1619
3390
|
const hasBranch = params.dbBranchName ?? params.branch;
|
1620
|
-
const newPath = path.replace(/^\/db\/[^/]+/, hasBranch ? `:${branchValue}` : "");
|
3391
|
+
const newPath = path.replace(/^\/db\/[^/]+/, hasBranch !== void 0 ? `:${branchValue}` : "");
|
1621
3392
|
return databaseURL + newPath;
|
1622
|
-
}
|
3393
|
+
},
|
3394
|
+
trace,
|
3395
|
+
clientID,
|
3396
|
+
clientName
|
1623
3397
|
};
|
1624
3398
|
}, _evaluateBranch = new WeakSet(), evaluateBranch_fn = async function(param) {
|
1625
3399
|
if (__privateGet(this, _branch))
|
1626
3400
|
return __privateGet(this, _branch);
|
1627
|
-
if (
|
3401
|
+
if (param === void 0)
|
1628
3402
|
return void 0;
|
1629
3403
|
const strategies = Array.isArray(param) ? [...param] : [param];
|
1630
3404
|
const evaluateBranch = async (strategy) => {
|
@@ -1642,6 +3416,88 @@ const buildClient = (plugins) => {
|
|
1642
3416
|
class BaseClient extends buildClient() {
|
1643
3417
|
}
|
1644
3418
|
|
3419
|
+
const META = "__";
|
3420
|
+
const VALUE = "___";
|
3421
|
+
class Serializer {
|
3422
|
+
constructor() {
|
3423
|
+
this.classes = {};
|
3424
|
+
}
|
3425
|
+
add(clazz) {
|
3426
|
+
this.classes[clazz.name] = clazz;
|
3427
|
+
}
|
3428
|
+
toJSON(data) {
|
3429
|
+
function visit(obj) {
|
3430
|
+
if (Array.isArray(obj))
|
3431
|
+
return obj.map(visit);
|
3432
|
+
const type = typeof obj;
|
3433
|
+
if (type === "undefined")
|
3434
|
+
return { [META]: "undefined" };
|
3435
|
+
if (type === "bigint")
|
3436
|
+
return { [META]: "bigint", [VALUE]: obj.toString() };
|
3437
|
+
if (obj === null || type !== "object")
|
3438
|
+
return obj;
|
3439
|
+
const constructor = obj.constructor;
|
3440
|
+
const o = { [META]: constructor.name };
|
3441
|
+
for (const [key, value] of Object.entries(obj)) {
|
3442
|
+
o[key] = visit(value);
|
3443
|
+
}
|
3444
|
+
if (constructor === Date)
|
3445
|
+
o[VALUE] = obj.toISOString();
|
3446
|
+
if (constructor === Map)
|
3447
|
+
o[VALUE] = Object.fromEntries(obj);
|
3448
|
+
if (constructor === Set)
|
3449
|
+
o[VALUE] = [...obj];
|
3450
|
+
return o;
|
3451
|
+
}
|
3452
|
+
return JSON.stringify(visit(data));
|
3453
|
+
}
|
3454
|
+
fromJSON(json) {
|
3455
|
+
return JSON.parse(json, (key, value) => {
|
3456
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
3457
|
+
const { [META]: clazz, [VALUE]: val, ...rest } = value;
|
3458
|
+
const constructor = this.classes[clazz];
|
3459
|
+
if (constructor) {
|
3460
|
+
return Object.assign(Object.create(constructor.prototype), rest);
|
3461
|
+
}
|
3462
|
+
if (clazz === "Date")
|
3463
|
+
return new Date(val);
|
3464
|
+
if (clazz === "Set")
|
3465
|
+
return new Set(val);
|
3466
|
+
if (clazz === "Map")
|
3467
|
+
return new Map(Object.entries(val));
|
3468
|
+
if (clazz === "bigint")
|
3469
|
+
return BigInt(val);
|
3470
|
+
if (clazz === "undefined")
|
3471
|
+
return void 0;
|
3472
|
+
return rest;
|
3473
|
+
}
|
3474
|
+
return value;
|
3475
|
+
});
|
3476
|
+
}
|
3477
|
+
}
|
3478
|
+
const defaultSerializer = new Serializer();
|
3479
|
+
const serialize = (data) => {
|
3480
|
+
return defaultSerializer.toJSON(data);
|
3481
|
+
};
|
3482
|
+
const deserialize = (json) => {
|
3483
|
+
return defaultSerializer.fromJSON(json);
|
3484
|
+
};
|
3485
|
+
|
3486
|
+
function buildWorkerRunner(config) {
|
3487
|
+
return function xataWorker(name, worker) {
|
3488
|
+
return async (...args) => {
|
3489
|
+
const url = process.env.NODE_ENV === "development" ? `http://localhost:64749/${name}` : `https://dispatcher.xata.workers.dev/${config.workspace}/${config.worker}/${name}`;
|
3490
|
+
const result = await fetch(url, {
|
3491
|
+
method: "POST",
|
3492
|
+
headers: { "Content-Type": "application/json" },
|
3493
|
+
body: serialize({ args })
|
3494
|
+
});
|
3495
|
+
const text = await result.text();
|
3496
|
+
return deserialize(text);
|
3497
|
+
};
|
3498
|
+
};
|
3499
|
+
}
|
3500
|
+
|
1645
3501
|
class XataError extends Error {
|
1646
3502
|
constructor(message, status) {
|
1647
3503
|
super(message);
|
@@ -1649,5 +3505,5 @@ class XataError extends Error {
|
|
1649
3505
|
}
|
1650
3506
|
}
|
1651
3507
|
|
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 };
|
3508
|
+
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
3509
|
//# sourceMappingURL=index.mjs.map
|