@xata.io/client 0.0.0-alpha.vecada6d → 0.0.0-alpha.ved155c7
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/CHANGELOG.md +182 -0
- package/README.md +273 -1
- package/Usage.md +449 -0
- package/dist/index.cjs +1011 -434
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1579 -271
- package/dist/index.mjs +964 -435
- package/dist/index.mjs.map +1 -1
- package/package.json +8 -4
package/dist/index.cjs
CHANGED
|
@@ -2,6 +2,46 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
function _interopNamespace(e) {
|
|
6
|
+
if (e && e.__esModule) return e;
|
|
7
|
+
var n = Object.create(null);
|
|
8
|
+
if (e) {
|
|
9
|
+
Object.keys(e).forEach(function (k) {
|
|
10
|
+
if (k !== 'default') {
|
|
11
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
12
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () { return e[k]; }
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
n["default"] = e;
|
|
20
|
+
return Object.freeze(n);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const defaultTrace = async (_name, fn, _options) => {
|
|
24
|
+
return await fn({
|
|
25
|
+
setAttributes: () => {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
const TraceAttributes = {
|
|
31
|
+
KIND: "xata.trace.kind",
|
|
32
|
+
VERSION: "xata.sdk.version",
|
|
33
|
+
TABLE: "xata.table",
|
|
34
|
+
HTTP_REQUEST_ID: "http.request_id",
|
|
35
|
+
HTTP_STATUS_CODE: "http.status_code",
|
|
36
|
+
HTTP_HOST: "http.host",
|
|
37
|
+
HTTP_SCHEME: "http.scheme",
|
|
38
|
+
HTTP_USER_AGENT: "http.user_agent",
|
|
39
|
+
HTTP_METHOD: "http.method",
|
|
40
|
+
HTTP_URL: "http.url",
|
|
41
|
+
HTTP_ROUTE: "http.route",
|
|
42
|
+
HTTP_TARGET: "http.target"
|
|
43
|
+
};
|
|
44
|
+
|
|
5
45
|
function notEmpty(value) {
|
|
6
46
|
return value !== null && value !== void 0;
|
|
7
47
|
}
|
|
@@ -11,46 +51,101 @@ function compact(arr) {
|
|
|
11
51
|
function isObject(value) {
|
|
12
52
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
13
53
|
}
|
|
54
|
+
function isDefined(value) {
|
|
55
|
+
return value !== null && value !== void 0;
|
|
56
|
+
}
|
|
14
57
|
function isString(value) {
|
|
15
|
-
return value
|
|
58
|
+
return isDefined(value) && typeof value === "string";
|
|
59
|
+
}
|
|
60
|
+
function isStringArray(value) {
|
|
61
|
+
return isDefined(value) && Array.isArray(value) && value.every(isString);
|
|
16
62
|
}
|
|
17
63
|
function toBase64(value) {
|
|
18
64
|
try {
|
|
19
65
|
return btoa(value);
|
|
20
66
|
} catch (err) {
|
|
21
|
-
|
|
67
|
+
const buf = Buffer;
|
|
68
|
+
return buf.from(value).toString("base64");
|
|
22
69
|
}
|
|
23
70
|
}
|
|
24
71
|
|
|
25
|
-
function
|
|
72
|
+
function getEnvironment() {
|
|
26
73
|
try {
|
|
27
|
-
if (isObject(process) &&
|
|
28
|
-
return
|
|
74
|
+
if (isObject(process) && isObject(process.env)) {
|
|
75
|
+
return {
|
|
76
|
+
apiKey: process.env.XATA_API_KEY ?? getGlobalApiKey(),
|
|
77
|
+
databaseURL: process.env.XATA_DATABASE_URL ?? getGlobalDatabaseURL(),
|
|
78
|
+
branch: process.env.XATA_BRANCH ?? getGlobalBranch(),
|
|
79
|
+
envBranch: process.env.VERCEL_GIT_COMMIT_REF ?? process.env.CF_PAGES_BRANCH ?? process.env.BRANCH,
|
|
80
|
+
fallbackBranch: process.env.XATA_FALLBACK_BRANCH ?? getGlobalFallbackBranch()
|
|
81
|
+
};
|
|
29
82
|
}
|
|
30
83
|
} catch (err) {
|
|
31
84
|
}
|
|
32
85
|
try {
|
|
33
|
-
if (isObject(Deno) &&
|
|
34
|
-
return
|
|
86
|
+
if (isObject(Deno) && isObject(Deno.env)) {
|
|
87
|
+
return {
|
|
88
|
+
apiKey: Deno.env.get("XATA_API_KEY") ?? getGlobalApiKey(),
|
|
89
|
+
databaseURL: Deno.env.get("XATA_DATABASE_URL") ?? getGlobalDatabaseURL(),
|
|
90
|
+
branch: Deno.env.get("XATA_BRANCH") ?? getGlobalBranch(),
|
|
91
|
+
envBranch: Deno.env.get("VERCEL_GIT_COMMIT_REF") ?? Deno.env.get("CF_PAGES_BRANCH") ?? Deno.env.get("BRANCH"),
|
|
92
|
+
fallbackBranch: Deno.env.get("XATA_FALLBACK_BRANCH") ?? getGlobalFallbackBranch()
|
|
93
|
+
};
|
|
35
94
|
}
|
|
36
95
|
} catch (err) {
|
|
37
96
|
}
|
|
97
|
+
return {
|
|
98
|
+
apiKey: getGlobalApiKey(),
|
|
99
|
+
databaseURL: getGlobalDatabaseURL(),
|
|
100
|
+
branch: getGlobalBranch(),
|
|
101
|
+
envBranch: void 0,
|
|
102
|
+
fallbackBranch: getGlobalFallbackBranch()
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
function getGlobalApiKey() {
|
|
106
|
+
try {
|
|
107
|
+
return XATA_API_KEY;
|
|
108
|
+
} catch (err) {
|
|
109
|
+
return void 0;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function getGlobalDatabaseURL() {
|
|
113
|
+
try {
|
|
114
|
+
return XATA_DATABASE_URL;
|
|
115
|
+
} catch (err) {
|
|
116
|
+
return void 0;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function getGlobalBranch() {
|
|
120
|
+
try {
|
|
121
|
+
return XATA_BRANCH;
|
|
122
|
+
} catch (err) {
|
|
123
|
+
return void 0;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function getGlobalFallbackBranch() {
|
|
127
|
+
try {
|
|
128
|
+
return XATA_FALLBACK_BRANCH;
|
|
129
|
+
} catch (err) {
|
|
130
|
+
return void 0;
|
|
131
|
+
}
|
|
38
132
|
}
|
|
39
133
|
async function getGitBranch() {
|
|
134
|
+
const cmd = ["git", "branch", "--show-current"];
|
|
135
|
+
const fullCmd = cmd.join(" ");
|
|
136
|
+
const nodeModule = ["child", "process"].join("_");
|
|
137
|
+
const execOptions = { encoding: "utf-8", stdio: ["ignore", "pipe", "ignore"] };
|
|
40
138
|
try {
|
|
41
139
|
if (typeof require === "function") {
|
|
42
|
-
|
|
43
|
-
return req("child_process").execSync("git branch --show-current", { encoding: "utf-8" }).trim();
|
|
140
|
+
return require(nodeModule).execSync(fullCmd, execOptions).trim();
|
|
44
141
|
}
|
|
142
|
+
const { execSync } = await (function (t) { return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(t)); }); })(nodeModule);
|
|
143
|
+
return execSync(fullCmd, execOptions).toString().trim();
|
|
45
144
|
} catch (err) {
|
|
46
145
|
}
|
|
47
146
|
try {
|
|
48
147
|
if (isObject(Deno)) {
|
|
49
|
-
const process2 = Deno.run({
|
|
50
|
-
cmd: ["git", "branch", "--show-current"],
|
|
51
|
-
stdout: "piped",
|
|
52
|
-
stderr: "piped"
|
|
53
|
-
});
|
|
148
|
+
const process2 = Deno.run({ cmd, stdout: "piped", stderr: "null" });
|
|
54
149
|
return new TextDecoder().decode(await process2.output()).trim();
|
|
55
150
|
}
|
|
56
151
|
} catch (err) {
|
|
@@ -59,7 +154,8 @@ async function getGitBranch() {
|
|
|
59
154
|
|
|
60
155
|
function getAPIKey() {
|
|
61
156
|
try {
|
|
62
|
-
|
|
157
|
+
const { apiKey } = getEnvironment();
|
|
158
|
+
return apiKey;
|
|
63
159
|
} catch (err) {
|
|
64
160
|
return void 0;
|
|
65
161
|
}
|
|
@@ -69,21 +165,35 @@ function getFetchImplementation(userFetch) {
|
|
|
69
165
|
const globalFetch = typeof fetch !== "undefined" ? fetch : void 0;
|
|
70
166
|
const fetchImpl = userFetch ?? globalFetch;
|
|
71
167
|
if (!fetchImpl) {
|
|
72
|
-
throw new Error(
|
|
168
|
+
throw new Error(
|
|
169
|
+
`Couldn't find \`fetch\`. Install a fetch implementation such as \`node-fetch\` and pass it explicitly.`
|
|
170
|
+
);
|
|
73
171
|
}
|
|
74
172
|
return fetchImpl;
|
|
75
173
|
}
|
|
76
174
|
|
|
77
|
-
|
|
78
|
-
|
|
175
|
+
const VERSION = "0.0.0-alpha.ved155c7";
|
|
176
|
+
|
|
177
|
+
class ErrorWithCause extends Error {
|
|
178
|
+
constructor(message, options) {
|
|
179
|
+
super(message, options);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
class FetcherError extends ErrorWithCause {
|
|
183
|
+
constructor(status, data, requestId) {
|
|
79
184
|
super(getMessage(data));
|
|
80
185
|
this.status = status;
|
|
81
186
|
this.errors = isBulkError(data) ? data.errors : void 0;
|
|
187
|
+
this.requestId = requestId;
|
|
82
188
|
if (data instanceof Error) {
|
|
83
189
|
this.stack = data.stack;
|
|
84
190
|
this.cause = data.cause;
|
|
85
191
|
}
|
|
86
192
|
}
|
|
193
|
+
toString() {
|
|
194
|
+
const error = super.toString();
|
|
195
|
+
return `[${this.status}] (${this.requestId ?? "Unknown"}): ${error}`;
|
|
196
|
+
}
|
|
87
197
|
}
|
|
88
198
|
function isBulkError(error) {
|
|
89
199
|
return isObject(error) && Array.isArray(error.errors);
|
|
@@ -106,9 +216,17 @@ function getMessage(data) {
|
|
|
106
216
|
}
|
|
107
217
|
|
|
108
218
|
const resolveUrl = (url, queryParams = {}, pathParams = {}) => {
|
|
109
|
-
const
|
|
219
|
+
const cleanQueryParams = Object.entries(queryParams).reduce((acc, [key, value]) => {
|
|
220
|
+
if (value === void 0 || value === null)
|
|
221
|
+
return acc;
|
|
222
|
+
return { ...acc, [key]: value };
|
|
223
|
+
}, {});
|
|
224
|
+
const query = new URLSearchParams(cleanQueryParams).toString();
|
|
110
225
|
const queryString = query.length > 0 ? `?${query}` : "";
|
|
111
|
-
|
|
226
|
+
const cleanPathParams = Object.entries(pathParams).reduce((acc, [key, value]) => {
|
|
227
|
+
return { ...acc, [key]: encodeURIComponent(String(value ?? "")).replace("%3A", ":") };
|
|
228
|
+
}, {});
|
|
229
|
+
return url.replace(/\{\w*\}/g, (key) => cleanPathParams[key.slice(1, -1)]) + queryString;
|
|
112
230
|
};
|
|
113
231
|
function buildBaseUrl({
|
|
114
232
|
path,
|
|
@@ -116,10 +234,10 @@ function buildBaseUrl({
|
|
|
116
234
|
apiUrl,
|
|
117
235
|
pathParams
|
|
118
236
|
}) {
|
|
119
|
-
if (
|
|
237
|
+
if (pathParams?.workspace === void 0)
|
|
120
238
|
return `${apiUrl}${path}`;
|
|
121
239
|
const url = typeof workspacesApiUrl === "string" ? `${workspacesApiUrl}${path}` : workspacesApiUrl(path, pathParams);
|
|
122
|
-
return url.replace("{workspaceId}", pathParams.workspace);
|
|
240
|
+
return url.replace("{workspaceId}", String(pathParams.workspace));
|
|
123
241
|
}
|
|
124
242
|
function hostHeader(url) {
|
|
125
243
|
const pattern = /.*:\/\/(?<host>[^/]+).*/;
|
|
@@ -136,32 +254,61 @@ async function fetch$1({
|
|
|
136
254
|
fetchImpl,
|
|
137
255
|
apiKey,
|
|
138
256
|
apiUrl,
|
|
139
|
-
workspacesApiUrl
|
|
257
|
+
workspacesApiUrl,
|
|
258
|
+
trace
|
|
140
259
|
}) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
260
|
+
return trace(
|
|
261
|
+
`${method.toUpperCase()} ${path}`,
|
|
262
|
+
async ({ setAttributes }) => {
|
|
263
|
+
const baseUrl = buildBaseUrl({ path, workspacesApiUrl, pathParams, apiUrl });
|
|
264
|
+
const fullUrl = resolveUrl(baseUrl, queryParams, pathParams);
|
|
265
|
+
const url = fullUrl.includes("localhost") ? fullUrl.replace(/^[^.]+\./, "http://") : fullUrl;
|
|
266
|
+
setAttributes({
|
|
267
|
+
[TraceAttributes.HTTP_URL]: url,
|
|
268
|
+
[TraceAttributes.HTTP_TARGET]: resolveUrl(path, queryParams, pathParams)
|
|
269
|
+
});
|
|
270
|
+
const response = await fetchImpl(url, {
|
|
271
|
+
method: method.toUpperCase(),
|
|
272
|
+
body: body ? JSON.stringify(body) : void 0,
|
|
273
|
+
headers: {
|
|
274
|
+
"Content-Type": "application/json",
|
|
275
|
+
"User-Agent": `Xata client-ts/${VERSION}`,
|
|
276
|
+
...headers,
|
|
277
|
+
...hostHeader(fullUrl),
|
|
278
|
+
Authorization: `Bearer ${apiKey}`
|
|
279
|
+
}
|
|
280
|
+
});
|
|
281
|
+
if (response.status === 204) {
|
|
282
|
+
return {};
|
|
283
|
+
}
|
|
284
|
+
const { host, protocol } = parseUrl(response.url);
|
|
285
|
+
const requestId = response.headers?.get("x-request-id") ?? void 0;
|
|
286
|
+
setAttributes({
|
|
287
|
+
[TraceAttributes.KIND]: "http",
|
|
288
|
+
[TraceAttributes.HTTP_REQUEST_ID]: requestId,
|
|
289
|
+
[TraceAttributes.HTTP_STATUS_CODE]: response.status,
|
|
290
|
+
[TraceAttributes.HTTP_HOST]: host,
|
|
291
|
+
[TraceAttributes.HTTP_SCHEME]: protocol?.replace(":", "")
|
|
292
|
+
});
|
|
293
|
+
try {
|
|
294
|
+
const jsonResponse = await response.json();
|
|
295
|
+
if (response.ok) {
|
|
296
|
+
return jsonResponse;
|
|
297
|
+
}
|
|
298
|
+
throw new FetcherError(response.status, jsonResponse, requestId);
|
|
299
|
+
} catch (error) {
|
|
300
|
+
throw new FetcherError(response.status, error, requestId);
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
{ [TraceAttributes.HTTP_METHOD]: method.toUpperCase(), [TraceAttributes.HTTP_ROUTE]: path }
|
|
304
|
+
);
|
|
305
|
+
}
|
|
306
|
+
function parseUrl(url) {
|
|
157
307
|
try {
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
return jsonResponse;
|
|
161
|
-
}
|
|
162
|
-
throw new FetcherError(response.status, jsonResponse);
|
|
308
|
+
const { host, protocol } = new URL(url);
|
|
309
|
+
return { host, protocol };
|
|
163
310
|
} catch (error) {
|
|
164
|
-
|
|
311
|
+
return {};
|
|
165
312
|
}
|
|
166
313
|
}
|
|
167
314
|
|
|
@@ -220,6 +367,7 @@ const removeWorkspaceMember = (variables) => fetch$1({
|
|
|
220
367
|
...variables
|
|
221
368
|
});
|
|
222
369
|
const inviteWorkspaceMember = (variables) => fetch$1({ url: "/workspaces/{workspaceId}/invites", method: "post", ...variables });
|
|
370
|
+
const updateWorkspaceMemberInvite = (variables) => fetch$1({ url: "/workspaces/{workspaceId}/invites/{inviteId}", method: "patch", ...variables });
|
|
223
371
|
const cancelWorkspaceMemberInvite = (variables) => fetch$1({
|
|
224
372
|
url: "/workspaces/{workspaceId}/invites/{inviteId}",
|
|
225
373
|
method: "delete",
|
|
@@ -255,6 +403,12 @@ const deleteDatabase = (variables) => fetch$1({
|
|
|
255
403
|
method: "delete",
|
|
256
404
|
...variables
|
|
257
405
|
});
|
|
406
|
+
const getDatabaseMetadata = (variables) => fetch$1({
|
|
407
|
+
url: "/dbs/{dbName}/metadata",
|
|
408
|
+
method: "get",
|
|
409
|
+
...variables
|
|
410
|
+
});
|
|
411
|
+
const patchDatabaseMetadata = (variables) => fetch$1({ url: "/dbs/{dbName}/metadata", method: "patch", ...variables });
|
|
258
412
|
const getGitBranchesMapping = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "get", ...variables });
|
|
259
413
|
const addGitBranchesEntry = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "post", ...variables });
|
|
260
414
|
const removeGitBranchesEntry = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "delete", ...variables });
|
|
@@ -263,16 +417,28 @@ const resolveBranch = (variables) => fetch$1({
|
|
|
263
417
|
method: "get",
|
|
264
418
|
...variables
|
|
265
419
|
});
|
|
266
|
-
const
|
|
267
|
-
|
|
420
|
+
const listMigrationRequests = (variables) => fetch$1({ url: "/dbs/{dbName}/migrations/list", method: "post", ...variables });
|
|
421
|
+
const createMigrationRequest = (variables) => fetch$1({ url: "/dbs/{dbName}/migrations", method: "post", ...variables });
|
|
422
|
+
const getMigrationRequest = (variables) => fetch$1({
|
|
423
|
+
url: "/dbs/{dbName}/migrations/{mrNumber}",
|
|
268
424
|
method: "get",
|
|
269
425
|
...variables
|
|
270
426
|
});
|
|
271
|
-
const
|
|
427
|
+
const updateMigrationRequest = (variables) => fetch$1({ url: "/dbs/{dbName}/migrations/{mrNumber}", method: "patch", ...variables });
|
|
428
|
+
const listMigrationRequestsCommits = (variables) => fetch$1({ url: "/dbs/{dbName}/migrations/{mrNumber}/commits", method: "post", ...variables });
|
|
429
|
+
const compareMigrationRequest = (variables) => fetch$1({ url: "/dbs/{dbName}/migrations/{mrNumber}/compare", method: "post", ...variables });
|
|
430
|
+
const getMigrationRequestIsMerged = (variables) => fetch$1({ url: "/dbs/{dbName}/migrations/{mrNumber}/merge", method: "get", ...variables });
|
|
431
|
+
const mergeMigrationRequest = (variables) => fetch$1({
|
|
432
|
+
url: "/dbs/{dbName}/migrations/{mrNumber}/merge",
|
|
433
|
+
method: "post",
|
|
434
|
+
...variables
|
|
435
|
+
});
|
|
436
|
+
const getBranchDetails = (variables) => fetch$1({
|
|
272
437
|
url: "/db/{dbBranchName}",
|
|
273
|
-
method: "
|
|
438
|
+
method: "get",
|
|
274
439
|
...variables
|
|
275
440
|
});
|
|
441
|
+
const createBranch = (variables) => fetch$1({ url: "/db/{dbBranchName}", method: "put", ...variables });
|
|
276
442
|
const deleteBranch = (variables) => fetch$1({
|
|
277
443
|
url: "/db/{dbBranchName}",
|
|
278
444
|
method: "delete",
|
|
@@ -291,6 +457,16 @@ const getBranchMetadata = (variables) => fetch$1({
|
|
|
291
457
|
const getBranchMigrationHistory = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations", method: "get", ...variables });
|
|
292
458
|
const executeBranchMigrationPlan = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations/execute", method: "post", ...variables });
|
|
293
459
|
const getBranchMigrationPlan = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations/plan", method: "post", ...variables });
|
|
460
|
+
const compareBranchWithUserSchema = (variables) => fetch$1({ url: "/db/{dbBranchName}/schema/compare", method: "post", ...variables });
|
|
461
|
+
const compareBranchSchemas = (variables) => fetch$1({ url: "/db/{dbBranchName}/schema/compare/{branchName}", method: "post", ...variables });
|
|
462
|
+
const updateBranchSchema = (variables) => fetch$1({
|
|
463
|
+
url: "/db/{dbBranchName}/schema/update",
|
|
464
|
+
method: "post",
|
|
465
|
+
...variables
|
|
466
|
+
});
|
|
467
|
+
const previewBranchSchemaEdit = (variables) => fetch$1({ url: "/db/{dbBranchName}/schema/preview", method: "post", ...variables });
|
|
468
|
+
const applyBranchSchemaEdit = (variables) => fetch$1({ url: "/db/{dbBranchName}/schema/apply", method: "post", ...variables });
|
|
469
|
+
const getBranchSchemaHistory = (variables) => fetch$1({ url: "/db/{dbBranchName}/schema/history", method: "post", ...variables });
|
|
294
470
|
const getBranchStats = (variables) => fetch$1({
|
|
295
471
|
url: "/db/{dbBranchName}/stats",
|
|
296
472
|
method: "get",
|
|
@@ -346,11 +522,7 @@ const updateColumn = (variables) => fetch$1({
|
|
|
346
522
|
method: "patch",
|
|
347
523
|
...variables
|
|
348
524
|
});
|
|
349
|
-
const insertRecord = (variables) => fetch$1({
|
|
350
|
-
url: "/db/{dbBranchName}/tables/{tableName}/data",
|
|
351
|
-
method: "post",
|
|
352
|
-
...variables
|
|
353
|
-
});
|
|
525
|
+
const insertRecord = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data", method: "post", ...variables });
|
|
354
526
|
const insertRecordWithID = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "put", ...variables });
|
|
355
527
|
const updateRecordWithID = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "patch", ...variables });
|
|
356
528
|
const upsertRecordWithID = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "post", ...variables });
|
|
@@ -392,6 +564,7 @@ const operationsByTag = {
|
|
|
392
564
|
updateWorkspaceMemberRole,
|
|
393
565
|
removeWorkspaceMember,
|
|
394
566
|
inviteWorkspaceMember,
|
|
567
|
+
updateWorkspaceMemberInvite,
|
|
395
568
|
cancelWorkspaceMemberInvite,
|
|
396
569
|
resendWorkspaceMemberInvite,
|
|
397
570
|
acceptWorkspaceMemberInvite
|
|
@@ -400,6 +573,8 @@ const operationsByTag = {
|
|
|
400
573
|
getDatabaseList,
|
|
401
574
|
createDatabase,
|
|
402
575
|
deleteDatabase,
|
|
576
|
+
getDatabaseMetadata,
|
|
577
|
+
patchDatabaseMetadata,
|
|
403
578
|
getGitBranchesMapping,
|
|
404
579
|
addGitBranchesEntry,
|
|
405
580
|
removeGitBranchesEntry,
|
|
@@ -412,10 +587,28 @@ const operationsByTag = {
|
|
|
412
587
|
deleteBranch,
|
|
413
588
|
updateBranchMetadata,
|
|
414
589
|
getBranchMetadata,
|
|
590
|
+
getBranchStats
|
|
591
|
+
},
|
|
592
|
+
migrationRequests: {
|
|
593
|
+
listMigrationRequests,
|
|
594
|
+
createMigrationRequest,
|
|
595
|
+
getMigrationRequest,
|
|
596
|
+
updateMigrationRequest,
|
|
597
|
+
listMigrationRequestsCommits,
|
|
598
|
+
compareMigrationRequest,
|
|
599
|
+
getMigrationRequestIsMerged,
|
|
600
|
+
mergeMigrationRequest
|
|
601
|
+
},
|
|
602
|
+
branchSchema: {
|
|
415
603
|
getBranchMigrationHistory,
|
|
416
604
|
executeBranchMigrationPlan,
|
|
417
605
|
getBranchMigrationPlan,
|
|
418
|
-
|
|
606
|
+
compareBranchWithUserSchema,
|
|
607
|
+
compareBranchSchemas,
|
|
608
|
+
updateBranchSchema,
|
|
609
|
+
previewBranchSchemaEdit,
|
|
610
|
+
applyBranchSchemaEdit,
|
|
611
|
+
getBranchSchemaHistory
|
|
419
612
|
},
|
|
420
613
|
table: {
|
|
421
614
|
createTable,
|
|
@@ -444,9 +637,9 @@ const operationsByTag = {
|
|
|
444
637
|
};
|
|
445
638
|
|
|
446
639
|
function getHostUrl(provider, type) {
|
|
447
|
-
if (
|
|
640
|
+
if (isHostProviderAlias(provider)) {
|
|
448
641
|
return providers[provider][type];
|
|
449
|
-
} else if (
|
|
642
|
+
} else if (isHostProviderBuilder(provider)) {
|
|
450
643
|
return provider[type];
|
|
451
644
|
}
|
|
452
645
|
throw new Error("Invalid API provider");
|
|
@@ -461,10 +654,10 @@ const providers = {
|
|
|
461
654
|
workspaces: "https://{workspaceId}.staging.xatabase.co"
|
|
462
655
|
}
|
|
463
656
|
};
|
|
464
|
-
function
|
|
657
|
+
function isHostProviderAlias(alias) {
|
|
465
658
|
return isString(alias) && Object.keys(providers).includes(alias);
|
|
466
659
|
}
|
|
467
|
-
function
|
|
660
|
+
function isHostProviderBuilder(builder) {
|
|
468
661
|
return isObject(builder) && isString(builder.main) && isString(builder.workspaces);
|
|
469
662
|
}
|
|
470
663
|
|
|
@@ -481,7 +674,7 @@ var __privateAdd$7 = (obj, member, value) => {
|
|
|
481
674
|
throw TypeError("Cannot add the same private member more than once");
|
|
482
675
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
483
676
|
};
|
|
484
|
-
var __privateSet$
|
|
677
|
+
var __privateSet$7 = (obj, member, value, setter) => {
|
|
485
678
|
__accessCheck$7(obj, member, "write to private field");
|
|
486
679
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
487
680
|
return value;
|
|
@@ -492,15 +685,17 @@ class XataApiClient {
|
|
|
492
685
|
__privateAdd$7(this, _extraProps, void 0);
|
|
493
686
|
__privateAdd$7(this, _namespaces, {});
|
|
494
687
|
const provider = options.host ?? "production";
|
|
495
|
-
const apiKey = options
|
|
688
|
+
const apiKey = options.apiKey ?? getAPIKey();
|
|
689
|
+
const trace = options.trace ?? defaultTrace;
|
|
496
690
|
if (!apiKey) {
|
|
497
691
|
throw new Error("Could not resolve a valid apiKey");
|
|
498
692
|
}
|
|
499
|
-
__privateSet$
|
|
693
|
+
__privateSet$7(this, _extraProps, {
|
|
500
694
|
apiUrl: getHostUrl(provider, "main"),
|
|
501
695
|
workspacesApiUrl: getHostUrl(provider, "workspaces"),
|
|
502
696
|
fetchImpl: getFetchImplementation(options.fetch),
|
|
503
|
-
apiKey
|
|
697
|
+
apiKey,
|
|
698
|
+
trace
|
|
504
699
|
});
|
|
505
700
|
}
|
|
506
701
|
get user() {
|
|
@@ -533,6 +728,16 @@ class XataApiClient {
|
|
|
533
728
|
__privateGet$7(this, _namespaces).records = new RecordsApi(__privateGet$7(this, _extraProps));
|
|
534
729
|
return __privateGet$7(this, _namespaces).records;
|
|
535
730
|
}
|
|
731
|
+
get migrationRequests() {
|
|
732
|
+
if (!__privateGet$7(this, _namespaces).migrationRequests)
|
|
733
|
+
__privateGet$7(this, _namespaces).migrationRequests = new MigrationRequestsApi(__privateGet$7(this, _extraProps));
|
|
734
|
+
return __privateGet$7(this, _namespaces).migrationRequests;
|
|
735
|
+
}
|
|
736
|
+
get branchSchema() {
|
|
737
|
+
if (!__privateGet$7(this, _namespaces).branchSchema)
|
|
738
|
+
__privateGet$7(this, _namespaces).branchSchema = new BranchSchemaApi(__privateGet$7(this, _extraProps));
|
|
739
|
+
return __privateGet$7(this, _namespaces).branchSchema;
|
|
740
|
+
}
|
|
536
741
|
}
|
|
537
742
|
_extraProps = new WeakMap();
|
|
538
743
|
_namespaces = new WeakMap();
|
|
@@ -623,6 +828,13 @@ class WorkspaceApi {
|
|
|
623
828
|
...this.extraProps
|
|
624
829
|
});
|
|
625
830
|
}
|
|
831
|
+
updateWorkspaceMemberInvite(workspaceId, inviteId, role) {
|
|
832
|
+
return operationsByTag.workspaces.updateWorkspaceMemberInvite({
|
|
833
|
+
pathParams: { workspaceId, inviteId },
|
|
834
|
+
body: { role },
|
|
835
|
+
...this.extraProps
|
|
836
|
+
});
|
|
837
|
+
}
|
|
626
838
|
cancelWorkspaceMemberInvite(workspaceId, inviteId) {
|
|
627
839
|
return operationsByTag.workspaces.cancelWorkspaceMemberInvite({
|
|
628
840
|
pathParams: { workspaceId, inviteId },
|
|
@@ -665,6 +877,19 @@ class DatabaseApi {
|
|
|
665
877
|
...this.extraProps
|
|
666
878
|
});
|
|
667
879
|
}
|
|
880
|
+
getDatabaseMetadata(workspace, dbName) {
|
|
881
|
+
return operationsByTag.database.getDatabaseMetadata({
|
|
882
|
+
pathParams: { workspace, dbName },
|
|
883
|
+
...this.extraProps
|
|
884
|
+
});
|
|
885
|
+
}
|
|
886
|
+
patchDatabaseMetadata(workspace, dbName, options = {}) {
|
|
887
|
+
return operationsByTag.database.patchDatabaseMetadata({
|
|
888
|
+
pathParams: { workspace, dbName },
|
|
889
|
+
body: options,
|
|
890
|
+
...this.extraProps
|
|
891
|
+
});
|
|
892
|
+
}
|
|
668
893
|
getGitBranchesMapping(workspace, dbName) {
|
|
669
894
|
return operationsByTag.database.getGitBranchesMapping({
|
|
670
895
|
pathParams: { workspace, dbName },
|
|
@@ -685,10 +910,10 @@ class DatabaseApi {
|
|
|
685
910
|
...this.extraProps
|
|
686
911
|
});
|
|
687
912
|
}
|
|
688
|
-
resolveBranch(workspace, dbName, gitBranch) {
|
|
913
|
+
resolveBranch(workspace, dbName, gitBranch, fallbackBranch) {
|
|
689
914
|
return operationsByTag.database.resolveBranch({
|
|
690
915
|
pathParams: { workspace, dbName },
|
|
691
|
-
queryParams: { gitBranch },
|
|
916
|
+
queryParams: { gitBranch, fallbackBranch },
|
|
692
917
|
...this.extraProps
|
|
693
918
|
});
|
|
694
919
|
}
|
|
@@ -736,27 +961,6 @@ class BranchApi {
|
|
|
736
961
|
...this.extraProps
|
|
737
962
|
});
|
|
738
963
|
}
|
|
739
|
-
getBranchMigrationHistory(workspace, database, branch, options = {}) {
|
|
740
|
-
return operationsByTag.branch.getBranchMigrationHistory({
|
|
741
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
|
742
|
-
body: options,
|
|
743
|
-
...this.extraProps
|
|
744
|
-
});
|
|
745
|
-
}
|
|
746
|
-
executeBranchMigrationPlan(workspace, database, branch, migrationPlan) {
|
|
747
|
-
return operationsByTag.branch.executeBranchMigrationPlan({
|
|
748
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
|
749
|
-
body: migrationPlan,
|
|
750
|
-
...this.extraProps
|
|
751
|
-
});
|
|
752
|
-
}
|
|
753
|
-
getBranchMigrationPlan(workspace, database, branch, schema) {
|
|
754
|
-
return operationsByTag.branch.getBranchMigrationPlan({
|
|
755
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
|
756
|
-
body: schema,
|
|
757
|
-
...this.extraProps
|
|
758
|
-
});
|
|
759
|
-
}
|
|
760
964
|
getBranchStats(workspace, database, branch) {
|
|
761
965
|
return operationsByTag.branch.getBranchStats({
|
|
762
966
|
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
|
@@ -837,9 +1041,10 @@ class RecordsApi {
|
|
|
837
1041
|
constructor(extraProps) {
|
|
838
1042
|
this.extraProps = extraProps;
|
|
839
1043
|
}
|
|
840
|
-
insertRecord(workspace, database, branch, tableName, record) {
|
|
1044
|
+
insertRecord(workspace, database, branch, tableName, record, options = {}) {
|
|
841
1045
|
return operationsByTag.records.insertRecord({
|
|
842
1046
|
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
|
1047
|
+
queryParams: options,
|
|
843
1048
|
body: record,
|
|
844
1049
|
...this.extraProps
|
|
845
1050
|
});
|
|
@@ -868,21 +1073,24 @@ class RecordsApi {
|
|
|
868
1073
|
...this.extraProps
|
|
869
1074
|
});
|
|
870
1075
|
}
|
|
871
|
-
deleteRecord(workspace, database, branch, tableName, recordId) {
|
|
1076
|
+
deleteRecord(workspace, database, branch, tableName, recordId, options = {}) {
|
|
872
1077
|
return operationsByTag.records.deleteRecord({
|
|
873
1078
|
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
|
|
1079
|
+
queryParams: options,
|
|
874
1080
|
...this.extraProps
|
|
875
1081
|
});
|
|
876
1082
|
}
|
|
877
1083
|
getRecord(workspace, database, branch, tableName, recordId, options = {}) {
|
|
878
1084
|
return operationsByTag.records.getRecord({
|
|
879
1085
|
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
|
|
1086
|
+
queryParams: options,
|
|
880
1087
|
...this.extraProps
|
|
881
1088
|
});
|
|
882
1089
|
}
|
|
883
|
-
bulkInsertTableRecords(workspace, database, branch, tableName, records) {
|
|
1090
|
+
bulkInsertTableRecords(workspace, database, branch, tableName, records, options = {}) {
|
|
884
1091
|
return operationsByTag.records.bulkInsertTableRecords({
|
|
885
1092
|
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
|
1093
|
+
queryParams: options,
|
|
886
1094
|
body: { records },
|
|
887
1095
|
...this.extraProps
|
|
888
1096
|
});
|
|
@@ -909,6 +1117,131 @@ class RecordsApi {
|
|
|
909
1117
|
});
|
|
910
1118
|
}
|
|
911
1119
|
}
|
|
1120
|
+
class MigrationRequestsApi {
|
|
1121
|
+
constructor(extraProps) {
|
|
1122
|
+
this.extraProps = extraProps;
|
|
1123
|
+
}
|
|
1124
|
+
listMigrationRequests(workspace, database, options = {}) {
|
|
1125
|
+
return operationsByTag.migrationRequests.listMigrationRequests({
|
|
1126
|
+
pathParams: { workspace, dbName: database },
|
|
1127
|
+
body: options,
|
|
1128
|
+
...this.extraProps
|
|
1129
|
+
});
|
|
1130
|
+
}
|
|
1131
|
+
createMigrationRequest(workspace, database, options) {
|
|
1132
|
+
return operationsByTag.migrationRequests.createMigrationRequest({
|
|
1133
|
+
pathParams: { workspace, dbName: database },
|
|
1134
|
+
body: options,
|
|
1135
|
+
...this.extraProps
|
|
1136
|
+
});
|
|
1137
|
+
}
|
|
1138
|
+
getMigrationRequest(workspace, database, migrationRequest) {
|
|
1139
|
+
return operationsByTag.migrationRequests.getMigrationRequest({
|
|
1140
|
+
pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
|
|
1141
|
+
...this.extraProps
|
|
1142
|
+
});
|
|
1143
|
+
}
|
|
1144
|
+
updateMigrationRequest(workspace, database, migrationRequest, options) {
|
|
1145
|
+
return operationsByTag.migrationRequests.updateMigrationRequest({
|
|
1146
|
+
pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
|
|
1147
|
+
body: options,
|
|
1148
|
+
...this.extraProps
|
|
1149
|
+
});
|
|
1150
|
+
}
|
|
1151
|
+
listMigrationRequestsCommits(workspace, database, migrationRequest, options = {}) {
|
|
1152
|
+
return operationsByTag.migrationRequests.listMigrationRequestsCommits({
|
|
1153
|
+
pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
|
|
1154
|
+
body: options,
|
|
1155
|
+
...this.extraProps
|
|
1156
|
+
});
|
|
1157
|
+
}
|
|
1158
|
+
compareMigrationRequest(workspace, database, migrationRequest) {
|
|
1159
|
+
return operationsByTag.migrationRequests.compareMigrationRequest({
|
|
1160
|
+
pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
|
|
1161
|
+
...this.extraProps
|
|
1162
|
+
});
|
|
1163
|
+
}
|
|
1164
|
+
getMigrationRequestIsMerged(workspace, database, migrationRequest) {
|
|
1165
|
+
return operationsByTag.migrationRequests.getMigrationRequestIsMerged({
|
|
1166
|
+
pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
|
|
1167
|
+
...this.extraProps
|
|
1168
|
+
});
|
|
1169
|
+
}
|
|
1170
|
+
mergeMigrationRequest(workspace, database, migrationRequest) {
|
|
1171
|
+
return operationsByTag.migrationRequests.mergeMigrationRequest({
|
|
1172
|
+
pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
|
|
1173
|
+
...this.extraProps
|
|
1174
|
+
});
|
|
1175
|
+
}
|
|
1176
|
+
}
|
|
1177
|
+
class BranchSchemaApi {
|
|
1178
|
+
constructor(extraProps) {
|
|
1179
|
+
this.extraProps = extraProps;
|
|
1180
|
+
}
|
|
1181
|
+
getBranchMigrationHistory(workspace, database, branch, options = {}) {
|
|
1182
|
+
return operationsByTag.branchSchema.getBranchMigrationHistory({
|
|
1183
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
|
1184
|
+
body: options,
|
|
1185
|
+
...this.extraProps
|
|
1186
|
+
});
|
|
1187
|
+
}
|
|
1188
|
+
executeBranchMigrationPlan(workspace, database, branch, migrationPlan) {
|
|
1189
|
+
return operationsByTag.branchSchema.executeBranchMigrationPlan({
|
|
1190
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
|
1191
|
+
body: migrationPlan,
|
|
1192
|
+
...this.extraProps
|
|
1193
|
+
});
|
|
1194
|
+
}
|
|
1195
|
+
getBranchMigrationPlan(workspace, database, branch, schema) {
|
|
1196
|
+
return operationsByTag.branchSchema.getBranchMigrationPlan({
|
|
1197
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
|
1198
|
+
body: schema,
|
|
1199
|
+
...this.extraProps
|
|
1200
|
+
});
|
|
1201
|
+
}
|
|
1202
|
+
compareBranchWithUserSchema(workspace, database, branch, schema) {
|
|
1203
|
+
return operationsByTag.branchSchema.compareBranchWithUserSchema({
|
|
1204
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
|
1205
|
+
body: { schema },
|
|
1206
|
+
...this.extraProps
|
|
1207
|
+
});
|
|
1208
|
+
}
|
|
1209
|
+
compareBranchSchemas(workspace, database, branch, branchName, schema) {
|
|
1210
|
+
return operationsByTag.branchSchema.compareBranchSchemas({
|
|
1211
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}`, branchName },
|
|
1212
|
+
body: { schema },
|
|
1213
|
+
...this.extraProps
|
|
1214
|
+
});
|
|
1215
|
+
}
|
|
1216
|
+
updateBranchSchema(workspace, database, branch, migration) {
|
|
1217
|
+
return operationsByTag.branchSchema.updateBranchSchema({
|
|
1218
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
|
1219
|
+
body: migration,
|
|
1220
|
+
...this.extraProps
|
|
1221
|
+
});
|
|
1222
|
+
}
|
|
1223
|
+
previewBranchSchemaEdit(workspace, database, branch, migration) {
|
|
1224
|
+
return operationsByTag.branchSchema.previewBranchSchemaEdit({
|
|
1225
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
|
1226
|
+
body: migration,
|
|
1227
|
+
...this.extraProps
|
|
1228
|
+
});
|
|
1229
|
+
}
|
|
1230
|
+
applyBranchSchemaEdit(workspace, database, branch, edits) {
|
|
1231
|
+
return operationsByTag.branchSchema.applyBranchSchemaEdit({
|
|
1232
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
|
1233
|
+
body: { edits },
|
|
1234
|
+
...this.extraProps
|
|
1235
|
+
});
|
|
1236
|
+
}
|
|
1237
|
+
getBranchSchemaHistory(workspace, database, branch, options = {}) {
|
|
1238
|
+
return operationsByTag.branchSchema.getBranchSchemaHistory({
|
|
1239
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
|
1240
|
+
body: options,
|
|
1241
|
+
...this.extraProps
|
|
1242
|
+
});
|
|
1243
|
+
}
|
|
1244
|
+
}
|
|
912
1245
|
|
|
913
1246
|
class XataApiPlugin {
|
|
914
1247
|
async build(options) {
|
|
@@ -933,18 +1266,18 @@ var __privateAdd$6 = (obj, member, value) => {
|
|
|
933
1266
|
throw TypeError("Cannot add the same private member more than once");
|
|
934
1267
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
935
1268
|
};
|
|
936
|
-
var __privateSet$
|
|
1269
|
+
var __privateSet$6 = (obj, member, value, setter) => {
|
|
937
1270
|
__accessCheck$6(obj, member, "write to private field");
|
|
938
1271
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
939
1272
|
return value;
|
|
940
1273
|
};
|
|
941
|
-
var _query;
|
|
1274
|
+
var _query, _page;
|
|
942
1275
|
class Page {
|
|
943
1276
|
constructor(query, meta, records = []) {
|
|
944
1277
|
__privateAdd$6(this, _query, void 0);
|
|
945
|
-
__privateSet$
|
|
1278
|
+
__privateSet$6(this, _query, query);
|
|
946
1279
|
this.meta = meta;
|
|
947
|
-
this.records = records;
|
|
1280
|
+
this.records = new RecordArray(this, records);
|
|
948
1281
|
}
|
|
949
1282
|
async nextPage(size, offset) {
|
|
950
1283
|
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, after: this.meta.page.cursor } });
|
|
@@ -964,9 +1297,56 @@ class Page {
|
|
|
964
1297
|
}
|
|
965
1298
|
_query = new WeakMap();
|
|
966
1299
|
const PAGINATION_MAX_SIZE = 200;
|
|
967
|
-
const PAGINATION_DEFAULT_SIZE =
|
|
1300
|
+
const PAGINATION_DEFAULT_SIZE = 20;
|
|
968
1301
|
const PAGINATION_MAX_OFFSET = 800;
|
|
969
1302
|
const PAGINATION_DEFAULT_OFFSET = 0;
|
|
1303
|
+
function isCursorPaginationOptions(options) {
|
|
1304
|
+
return isDefined(options) && (isDefined(options.first) || isDefined(options.last) || isDefined(options.after) || isDefined(options.before));
|
|
1305
|
+
}
|
|
1306
|
+
const _RecordArray = class extends Array {
|
|
1307
|
+
constructor(...args) {
|
|
1308
|
+
super(..._RecordArray.parseConstructorParams(...args));
|
|
1309
|
+
__privateAdd$6(this, _page, void 0);
|
|
1310
|
+
__privateSet$6(this, _page, isObject(args[0]?.meta) ? args[0] : { meta: { page: { cursor: "", more: false } }, records: [] });
|
|
1311
|
+
}
|
|
1312
|
+
static parseConstructorParams(...args) {
|
|
1313
|
+
if (args.length === 1 && typeof args[0] === "number") {
|
|
1314
|
+
return new Array(args[0]);
|
|
1315
|
+
}
|
|
1316
|
+
if (args.length <= 2 && isObject(args[0]?.meta) && Array.isArray(args[1] ?? [])) {
|
|
1317
|
+
const result = args[1] ?? args[0].records ?? [];
|
|
1318
|
+
return new Array(...result);
|
|
1319
|
+
}
|
|
1320
|
+
return new Array(...args);
|
|
1321
|
+
}
|
|
1322
|
+
toArray() {
|
|
1323
|
+
return new Array(...this);
|
|
1324
|
+
}
|
|
1325
|
+
map(callbackfn, thisArg) {
|
|
1326
|
+
return this.toArray().map(callbackfn, thisArg);
|
|
1327
|
+
}
|
|
1328
|
+
async nextPage(size, offset) {
|
|
1329
|
+
const newPage = await __privateGet$6(this, _page).nextPage(size, offset);
|
|
1330
|
+
return new _RecordArray(newPage);
|
|
1331
|
+
}
|
|
1332
|
+
async previousPage(size, offset) {
|
|
1333
|
+
const newPage = await __privateGet$6(this, _page).previousPage(size, offset);
|
|
1334
|
+
return new _RecordArray(newPage);
|
|
1335
|
+
}
|
|
1336
|
+
async firstPage(size, offset) {
|
|
1337
|
+
const newPage = await __privateGet$6(this, _page).firstPage(size, offset);
|
|
1338
|
+
return new _RecordArray(newPage);
|
|
1339
|
+
}
|
|
1340
|
+
async lastPage(size, offset) {
|
|
1341
|
+
const newPage = await __privateGet$6(this, _page).lastPage(size, offset);
|
|
1342
|
+
return new _RecordArray(newPage);
|
|
1343
|
+
}
|
|
1344
|
+
hasNextPage() {
|
|
1345
|
+
return __privateGet$6(this, _page).meta.page.more;
|
|
1346
|
+
}
|
|
1347
|
+
};
|
|
1348
|
+
let RecordArray = _RecordArray;
|
|
1349
|
+
_page = new WeakMap();
|
|
970
1350
|
|
|
971
1351
|
var __accessCheck$5 = (obj, member, msg) => {
|
|
972
1352
|
if (!member.has(obj))
|
|
@@ -981,25 +1361,26 @@ var __privateAdd$5 = (obj, member, value) => {
|
|
|
981
1361
|
throw TypeError("Cannot add the same private member more than once");
|
|
982
1362
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
983
1363
|
};
|
|
984
|
-
var __privateSet$
|
|
1364
|
+
var __privateSet$5 = (obj, member, value, setter) => {
|
|
985
1365
|
__accessCheck$5(obj, member, "write to private field");
|
|
986
1366
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
987
1367
|
return value;
|
|
988
1368
|
};
|
|
989
1369
|
var _table$1, _repository, _data;
|
|
990
1370
|
const _Query = class {
|
|
991
|
-
constructor(repository, table, data,
|
|
1371
|
+
constructor(repository, table, data, rawParent) {
|
|
992
1372
|
__privateAdd$5(this, _table$1, void 0);
|
|
993
1373
|
__privateAdd$5(this, _repository, void 0);
|
|
994
1374
|
__privateAdd$5(this, _data, { filter: {} });
|
|
995
1375
|
this.meta = { page: { cursor: "start", more: true } };
|
|
996
|
-
this.records = [];
|
|
997
|
-
__privateSet$
|
|
1376
|
+
this.records = new RecordArray(this, []);
|
|
1377
|
+
__privateSet$5(this, _table$1, table);
|
|
998
1378
|
if (repository) {
|
|
999
|
-
__privateSet$
|
|
1379
|
+
__privateSet$5(this, _repository, repository);
|
|
1000
1380
|
} else {
|
|
1001
|
-
__privateSet$
|
|
1381
|
+
__privateSet$5(this, _repository, this);
|
|
1002
1382
|
}
|
|
1383
|
+
const parent = cleanParent(data, rawParent);
|
|
1003
1384
|
__privateGet$5(this, _data).filter = data.filter ?? parent?.filter ?? {};
|
|
1004
1385
|
__privateGet$5(this, _data).filter.$any = data.filter?.$any ?? parent?.filter?.$any;
|
|
1005
1386
|
__privateGet$5(this, _data).filter.$all = data.filter?.$all ?? parent?.filter?.$all;
|
|
@@ -1044,21 +1425,34 @@ const _Query = class {
|
|
|
1044
1425
|
}
|
|
1045
1426
|
filter(a, b) {
|
|
1046
1427
|
if (arguments.length === 1) {
|
|
1047
|
-
const constraints = Object.entries(a).map(([column, constraint]) => ({ [column]: constraint }));
|
|
1428
|
+
const constraints = Object.entries(a ?? {}).map(([column, constraint]) => ({ [column]: constraint }));
|
|
1048
1429
|
const $all = compact([__privateGet$5(this, _data).filter?.$all].flat().concat(constraints));
|
|
1049
1430
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
|
1050
1431
|
} else {
|
|
1051
|
-
const
|
|
1432
|
+
const constraints = isDefined(a) && isDefined(b) ? [{ [a]: this.defaultFilter(a, b) }] : void 0;
|
|
1433
|
+
const $all = compact([__privateGet$5(this, _data).filter?.$all].flat().concat(constraints));
|
|
1052
1434
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
|
1053
1435
|
}
|
|
1054
1436
|
}
|
|
1055
|
-
|
|
1437
|
+
defaultFilter(column, value) {
|
|
1438
|
+
const columnType = __privateGet$5(this, _table$1).schema?.columns.find(({ name }) => name === column)?.type;
|
|
1439
|
+
if (columnType === "multiple" && (isString(value) || isStringArray(value))) {
|
|
1440
|
+
return { $includes: value };
|
|
1441
|
+
}
|
|
1442
|
+
return value;
|
|
1443
|
+
}
|
|
1444
|
+
sort(column, direction = "asc") {
|
|
1056
1445
|
const originalSort = [__privateGet$5(this, _data).sort ?? []].flat();
|
|
1057
1446
|
const sort = [...originalSort, { column, direction }];
|
|
1058
1447
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { sort }, __privateGet$5(this, _data));
|
|
1059
1448
|
}
|
|
1060
1449
|
select(columns) {
|
|
1061
|
-
return new _Query(
|
|
1450
|
+
return new _Query(
|
|
1451
|
+
__privateGet$5(this, _repository),
|
|
1452
|
+
__privateGet$5(this, _table$1),
|
|
1453
|
+
{ columns },
|
|
1454
|
+
__privateGet$5(this, _data)
|
|
1455
|
+
);
|
|
1062
1456
|
}
|
|
1063
1457
|
getPaginated(options = {}) {
|
|
1064
1458
|
const query = new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), options, __privateGet$5(this, _data));
|
|
@@ -1071,18 +1465,21 @@ const _Query = class {
|
|
|
1071
1465
|
}
|
|
1072
1466
|
async *getIterator(options = {}) {
|
|
1073
1467
|
const { batchSize = 1 } = options;
|
|
1074
|
-
let
|
|
1075
|
-
let
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1468
|
+
let page = await this.getPaginated({ ...options, pagination: { size: batchSize, offset: 0 } });
|
|
1469
|
+
let more = page.hasNextPage();
|
|
1470
|
+
yield page.records;
|
|
1471
|
+
while (more) {
|
|
1472
|
+
page = await page.nextPage();
|
|
1473
|
+
more = page.hasNextPage();
|
|
1474
|
+
yield page.records;
|
|
1081
1475
|
}
|
|
1082
1476
|
}
|
|
1083
1477
|
async getMany(options = {}) {
|
|
1084
|
-
const
|
|
1085
|
-
|
|
1478
|
+
const page = await this.getPaginated(options);
|
|
1479
|
+
if (page.hasNextPage() && options.pagination?.size === void 0) {
|
|
1480
|
+
console.trace("Calling getMany does not return all results. Paginate to get all results or call getAll.");
|
|
1481
|
+
}
|
|
1482
|
+
return page.records;
|
|
1086
1483
|
}
|
|
1087
1484
|
async getAll(options = {}) {
|
|
1088
1485
|
const { batchSize = PAGINATION_MAX_SIZE, ...rest } = options;
|
|
@@ -1119,12 +1516,20 @@ let Query = _Query;
|
|
|
1119
1516
|
_table$1 = new WeakMap();
|
|
1120
1517
|
_repository = new WeakMap();
|
|
1121
1518
|
_data = new WeakMap();
|
|
1519
|
+
function cleanParent(data, parent) {
|
|
1520
|
+
if (isCursorPaginationOptions(data.pagination)) {
|
|
1521
|
+
return { ...parent, sorting: void 0, filter: void 0 };
|
|
1522
|
+
}
|
|
1523
|
+
return parent;
|
|
1524
|
+
}
|
|
1122
1525
|
|
|
1123
1526
|
function isIdentifiable(x) {
|
|
1124
1527
|
return isObject(x) && isString(x?.id);
|
|
1125
1528
|
}
|
|
1126
1529
|
function isXataRecord(x) {
|
|
1127
|
-
|
|
1530
|
+
const record = x;
|
|
1531
|
+
const metadata = record?.getMetadata();
|
|
1532
|
+
return isIdentifiable(x) && isObject(metadata) && typeof metadata.version === "number";
|
|
1128
1533
|
}
|
|
1129
1534
|
|
|
1130
1535
|
function isSortFilterString(value) {
|
|
@@ -1163,7 +1568,7 @@ var __privateAdd$4 = (obj, member, value) => {
|
|
|
1163
1568
|
throw TypeError("Cannot add the same private member more than once");
|
|
1164
1569
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
1165
1570
|
};
|
|
1166
|
-
var __privateSet$
|
|
1571
|
+
var __privateSet$4 = (obj, member, value, setter) => {
|
|
1167
1572
|
__accessCheck$4(obj, member, "write to private field");
|
|
1168
1573
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
1169
1574
|
return value;
|
|
@@ -1172,184 +1577,228 @@ var __privateMethod$2 = (obj, member, method) => {
|
|
|
1172
1577
|
__accessCheck$4(obj, member, "access private method");
|
|
1173
1578
|
return method;
|
|
1174
1579
|
};
|
|
1175
|
-
var _table, _getFetchProps, _cache,
|
|
1580
|
+
var _table, _getFetchProps, _db, _cache, _schemaTables$2, _trace, _insertRecordWithoutId, insertRecordWithoutId_fn, _insertRecordWithId, insertRecordWithId_fn, _bulkInsertTableRecords, bulkInsertTableRecords_fn, _updateRecordWithID, updateRecordWithID_fn, _upsertRecordWithID, upsertRecordWithID_fn, _deleteRecord, deleteRecord_fn, _setCacheQuery, setCacheQuery_fn, _getCacheQuery, getCacheQuery_fn, _getSchemaTables$1, getSchemaTables_fn$1;
|
|
1176
1581
|
class Repository extends Query {
|
|
1177
1582
|
}
|
|
1178
1583
|
class RestRepository extends Query {
|
|
1179
1584
|
constructor(options) {
|
|
1180
|
-
super(
|
|
1585
|
+
super(
|
|
1586
|
+
null,
|
|
1587
|
+
{ name: options.table, schema: options.schemaTables?.find((table) => table.name === options.table) },
|
|
1588
|
+
{}
|
|
1589
|
+
);
|
|
1181
1590
|
__privateAdd$4(this, _insertRecordWithoutId);
|
|
1182
1591
|
__privateAdd$4(this, _insertRecordWithId);
|
|
1183
1592
|
__privateAdd$4(this, _bulkInsertTableRecords);
|
|
1184
1593
|
__privateAdd$4(this, _updateRecordWithID);
|
|
1185
1594
|
__privateAdd$4(this, _upsertRecordWithID);
|
|
1186
1595
|
__privateAdd$4(this, _deleteRecord);
|
|
1187
|
-
__privateAdd$4(this, _invalidateCache);
|
|
1188
|
-
__privateAdd$4(this, _setCacheRecord);
|
|
1189
|
-
__privateAdd$4(this, _getCacheRecord);
|
|
1190
1596
|
__privateAdd$4(this, _setCacheQuery);
|
|
1191
1597
|
__privateAdd$4(this, _getCacheQuery);
|
|
1192
|
-
__privateAdd$4(this,
|
|
1598
|
+
__privateAdd$4(this, _getSchemaTables$1);
|
|
1193
1599
|
__privateAdd$4(this, _table, void 0);
|
|
1194
1600
|
__privateAdd$4(this, _getFetchProps, void 0);
|
|
1601
|
+
__privateAdd$4(this, _db, void 0);
|
|
1195
1602
|
__privateAdd$4(this, _cache, void 0);
|
|
1196
|
-
__privateAdd$4(this,
|
|
1197
|
-
|
|
1198
|
-
__privateSet$
|
|
1199
|
-
this
|
|
1200
|
-
__privateSet$
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
throw new Error("The id can't be empty");
|
|
1211
|
-
const record = await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a, b);
|
|
1212
|
-
await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
|
|
1213
|
-
return record;
|
|
1214
|
-
}
|
|
1215
|
-
if (isObject(a) && isString(a.id)) {
|
|
1216
|
-
if (a.id === "")
|
|
1217
|
-
throw new Error("The id can't be empty");
|
|
1218
|
-
const record = await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a.id, { ...a, id: void 0 });
|
|
1219
|
-
await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
|
|
1220
|
-
return record;
|
|
1221
|
-
}
|
|
1222
|
-
if (isObject(a)) {
|
|
1223
|
-
const record = await __privateMethod$2(this, _insertRecordWithoutId, insertRecordWithoutId_fn).call(this, a);
|
|
1224
|
-
await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
|
|
1225
|
-
return record;
|
|
1226
|
-
}
|
|
1227
|
-
throw new Error("Invalid arguments for create method");
|
|
1228
|
-
}
|
|
1229
|
-
async read(recordId) {
|
|
1230
|
-
const cacheRecord = await __privateMethod$2(this, _getCacheRecord, getCacheRecord_fn).call(this, recordId);
|
|
1231
|
-
if (cacheRecord)
|
|
1232
|
-
return cacheRecord;
|
|
1233
|
-
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
|
1234
|
-
try {
|
|
1235
|
-
const response = await getRecord({
|
|
1236
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
|
|
1237
|
-
...fetchProps
|
|
1603
|
+
__privateAdd$4(this, _schemaTables$2, void 0);
|
|
1604
|
+
__privateAdd$4(this, _trace, void 0);
|
|
1605
|
+
__privateSet$4(this, _table, options.table);
|
|
1606
|
+
__privateSet$4(this, _getFetchProps, options.pluginOptions.getFetchProps);
|
|
1607
|
+
__privateSet$4(this, _db, options.db);
|
|
1608
|
+
__privateSet$4(this, _cache, options.pluginOptions.cache);
|
|
1609
|
+
__privateSet$4(this, _schemaTables$2, options.schemaTables);
|
|
1610
|
+
const trace = options.pluginOptions.trace ?? defaultTrace;
|
|
1611
|
+
__privateSet$4(this, _trace, async (name, fn, options2 = {}) => {
|
|
1612
|
+
return trace(name, fn, {
|
|
1613
|
+
...options2,
|
|
1614
|
+
[TraceAttributes.TABLE]: __privateGet$4(this, _table),
|
|
1615
|
+
[TraceAttributes.KIND]: "sdk-operation",
|
|
1616
|
+
[TraceAttributes.VERSION]: VERSION
|
|
1238
1617
|
});
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1618
|
+
});
|
|
1619
|
+
}
|
|
1620
|
+
async create(a, b, c) {
|
|
1621
|
+
return __privateGet$4(this, _trace).call(this, "create", async () => {
|
|
1622
|
+
if (Array.isArray(a)) {
|
|
1623
|
+
if (a.length === 0)
|
|
1624
|
+
return [];
|
|
1625
|
+
const columns = isStringArray(b) ? b : void 0;
|
|
1626
|
+
return __privateMethod$2(this, _bulkInsertTableRecords, bulkInsertTableRecords_fn).call(this, a, columns);
|
|
1244
1627
|
}
|
|
1245
|
-
|
|
1246
|
-
|
|
1628
|
+
if (isString(a) && isObject(b)) {
|
|
1629
|
+
if (a === "")
|
|
1630
|
+
throw new Error("The id can't be empty");
|
|
1631
|
+
const columns = isStringArray(c) ? c : void 0;
|
|
1632
|
+
return __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a, b, columns);
|
|
1633
|
+
}
|
|
1634
|
+
if (isObject(a) && isString(a.id)) {
|
|
1635
|
+
if (a.id === "")
|
|
1636
|
+
throw new Error("The id can't be empty");
|
|
1637
|
+
const columns = isStringArray(b) ? b : void 0;
|
|
1638
|
+
return __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a.id, { ...a, id: void 0 }, columns);
|
|
1639
|
+
}
|
|
1640
|
+
if (isObject(a)) {
|
|
1641
|
+
const columns = isStringArray(b) ? b : void 0;
|
|
1642
|
+
return __privateMethod$2(this, _insertRecordWithoutId, insertRecordWithoutId_fn).call(this, a, columns);
|
|
1643
|
+
}
|
|
1644
|
+
throw new Error("Invalid arguments for create method");
|
|
1645
|
+
});
|
|
1247
1646
|
}
|
|
1248
|
-
async
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1647
|
+
async read(a, b) {
|
|
1648
|
+
return __privateGet$4(this, _trace).call(this, "read", async () => {
|
|
1649
|
+
const columns = isStringArray(b) ? b : ["*"];
|
|
1650
|
+
if (Array.isArray(a)) {
|
|
1651
|
+
if (a.length === 0)
|
|
1652
|
+
return [];
|
|
1653
|
+
const ids = a.map((item) => extractId(item));
|
|
1654
|
+
const finalObjects = await this.getAll({ filter: { id: { $any: compact(ids) } }, columns });
|
|
1655
|
+
const dictionary = finalObjects.reduce((acc, object) => {
|
|
1656
|
+
acc[object.id] = object;
|
|
1657
|
+
return acc;
|
|
1658
|
+
}, {});
|
|
1659
|
+
return ids.map((id2) => dictionary[id2 ?? ""] ?? null);
|
|
1252
1660
|
}
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1661
|
+
const id = extractId(a);
|
|
1662
|
+
if (id) {
|
|
1663
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
|
1664
|
+
try {
|
|
1665
|
+
const response = await getRecord({
|
|
1666
|
+
pathParams: {
|
|
1667
|
+
workspace: "{workspaceId}",
|
|
1668
|
+
dbBranchName: "{dbBranch}",
|
|
1669
|
+
tableName: __privateGet$4(this, _table),
|
|
1670
|
+
recordId: id
|
|
1671
|
+
},
|
|
1672
|
+
queryParams: { columns },
|
|
1673
|
+
...fetchProps
|
|
1674
|
+
});
|
|
1675
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
|
1676
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response);
|
|
1677
|
+
} catch (e) {
|
|
1678
|
+
if (isObject(e) && e.status === 404) {
|
|
1679
|
+
return null;
|
|
1680
|
+
}
|
|
1681
|
+
throw e;
|
|
1682
|
+
}
|
|
1683
|
+
}
|
|
1684
|
+
return null;
|
|
1685
|
+
});
|
|
1268
1686
|
}
|
|
1269
|
-
async
|
|
1270
|
-
|
|
1271
|
-
if (a
|
|
1272
|
-
|
|
1687
|
+
async update(a, b, c) {
|
|
1688
|
+
return __privateGet$4(this, _trace).call(this, "update", async () => {
|
|
1689
|
+
if (Array.isArray(a)) {
|
|
1690
|
+
if (a.length === 0)
|
|
1691
|
+
return [];
|
|
1692
|
+
if (a.length > 100) {
|
|
1693
|
+
console.warn("Bulk update operation is not optimized in the Xata API yet, this request might be slow");
|
|
1694
|
+
}
|
|
1695
|
+
const columns = isStringArray(b) ? b : ["*"];
|
|
1696
|
+
return Promise.all(a.map((object) => this.update(object, columns)));
|
|
1273
1697
|
}
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
const record = await __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a.id, { ...a, id: void 0 });
|
|
1285
|
-
await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
|
|
1286
|
-
return record;
|
|
1287
|
-
}
|
|
1288
|
-
throw new Error("Invalid arguments for createOrUpdate method");
|
|
1698
|
+
if (isString(a) && isObject(b)) {
|
|
1699
|
+
const columns = isStringArray(c) ? c : void 0;
|
|
1700
|
+
return __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a, b, columns);
|
|
1701
|
+
}
|
|
1702
|
+
if (isObject(a) && isString(a.id)) {
|
|
1703
|
+
const columns = isStringArray(b) ? b : void 0;
|
|
1704
|
+
return __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns);
|
|
1705
|
+
}
|
|
1706
|
+
throw new Error("Invalid arguments for update method");
|
|
1707
|
+
});
|
|
1289
1708
|
}
|
|
1290
|
-
async
|
|
1291
|
-
|
|
1292
|
-
if (a
|
|
1293
|
-
|
|
1709
|
+
async createOrUpdate(a, b, c) {
|
|
1710
|
+
return __privateGet$4(this, _trace).call(this, "createOrUpdate", async () => {
|
|
1711
|
+
if (Array.isArray(a)) {
|
|
1712
|
+
if (a.length === 0)
|
|
1713
|
+
return [];
|
|
1714
|
+
if (a.length > 100) {
|
|
1715
|
+
console.warn("Bulk update operation is not optimized in the Xata API yet, this request might be slow");
|
|
1716
|
+
}
|
|
1717
|
+
const columns = isStringArray(b) ? b : ["*"];
|
|
1718
|
+
return Promise.all(a.map((object) => this.createOrUpdate(object, columns)));
|
|
1294
1719
|
}
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1720
|
+
if (isString(a) && isObject(b)) {
|
|
1721
|
+
const columns = isStringArray(c) ? c : void 0;
|
|
1722
|
+
return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a, b, columns);
|
|
1723
|
+
}
|
|
1724
|
+
if (isObject(a) && isString(a.id)) {
|
|
1725
|
+
const columns = isStringArray(c) ? c : void 0;
|
|
1726
|
+
return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns);
|
|
1727
|
+
}
|
|
1728
|
+
throw new Error("Invalid arguments for createOrUpdate method");
|
|
1729
|
+
});
|
|
1730
|
+
}
|
|
1731
|
+
async delete(a, b) {
|
|
1732
|
+
return __privateGet$4(this, _trace).call(this, "delete", async () => {
|
|
1733
|
+
if (Array.isArray(a)) {
|
|
1734
|
+
if (a.length === 0)
|
|
1735
|
+
return [];
|
|
1736
|
+
if (a.length > 100) {
|
|
1737
|
+
console.warn("Bulk delete operation is not optimized in the Xata API yet, this request might be slow");
|
|
1738
|
+
}
|
|
1739
|
+
return Promise.all(a.map((id) => this.delete(id, b)));
|
|
1740
|
+
}
|
|
1741
|
+
if (isString(a)) {
|
|
1742
|
+
return __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a, b);
|
|
1743
|
+
}
|
|
1744
|
+
if (isObject(a) && isString(a.id)) {
|
|
1745
|
+
return __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a.id, b);
|
|
1746
|
+
}
|
|
1747
|
+
throw new Error("Invalid arguments for delete method");
|
|
1748
|
+
});
|
|
1309
1749
|
}
|
|
1310
1750
|
async search(query, options = {}) {
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1751
|
+
return __privateGet$4(this, _trace).call(this, "search", async () => {
|
|
1752
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
|
1753
|
+
const { records } = await searchTable({
|
|
1754
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table) },
|
|
1755
|
+
body: {
|
|
1756
|
+
query,
|
|
1757
|
+
fuzziness: options.fuzziness,
|
|
1758
|
+
prefix: options.prefix,
|
|
1759
|
+
highlight: options.highlight,
|
|
1760
|
+
filter: options.filter,
|
|
1761
|
+
boosters: options.boosters
|
|
1762
|
+
},
|
|
1763
|
+
...fetchProps
|
|
1764
|
+
});
|
|
1765
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
|
1766
|
+
return records.map((item) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), item));
|
|
1320
1767
|
});
|
|
1321
|
-
const schema = await __privateMethod$2(this, _getSchema$1, getSchema_fn$1).call(this);
|
|
1322
|
-
return records.map((item) => initObject(this.db, schema, __privateGet$4(this, _table), item));
|
|
1323
1768
|
}
|
|
1324
1769
|
async query(query) {
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1770
|
+
return __privateGet$4(this, _trace).call(this, "query", async () => {
|
|
1771
|
+
const cacheQuery = await __privateMethod$2(this, _getCacheQuery, getCacheQuery_fn).call(this, query);
|
|
1772
|
+
if (cacheQuery)
|
|
1773
|
+
return new Page(query, cacheQuery.meta, cacheQuery.records);
|
|
1774
|
+
const data = query.getQueryOptions();
|
|
1775
|
+
const body = {
|
|
1776
|
+
filter: cleanFilter(data.filter),
|
|
1777
|
+
sort: data.sort !== void 0 ? buildSortFilter(data.sort) : void 0,
|
|
1778
|
+
page: data.pagination,
|
|
1779
|
+
columns: data.columns
|
|
1780
|
+
};
|
|
1781
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
|
1782
|
+
const { meta, records: objects } = await queryTable({
|
|
1783
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table) },
|
|
1784
|
+
body,
|
|
1785
|
+
...fetchProps
|
|
1786
|
+
});
|
|
1787
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
|
1788
|
+
const records = objects.map((record) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), record));
|
|
1789
|
+
await __privateMethod$2(this, _setCacheQuery, setCacheQuery_fn).call(this, query, meta, records);
|
|
1790
|
+
return new Page(query, meta, records);
|
|
1340
1791
|
});
|
|
1341
|
-
const schema = await __privateMethod$2(this, _getSchema$1, getSchema_fn$1).call(this);
|
|
1342
|
-
const records = objects.map((record) => initObject(this.db, schema, __privateGet$4(this, _table), record));
|
|
1343
|
-
await __privateMethod$2(this, _setCacheQuery, setCacheQuery_fn).call(this, query, meta, records);
|
|
1344
|
-
return new Page(query, meta, records);
|
|
1345
1792
|
}
|
|
1346
1793
|
}
|
|
1347
1794
|
_table = new WeakMap();
|
|
1348
1795
|
_getFetchProps = new WeakMap();
|
|
1796
|
+
_db = new WeakMap();
|
|
1349
1797
|
_cache = new WeakMap();
|
|
1350
|
-
|
|
1798
|
+
_schemaTables$2 = new WeakMap();
|
|
1799
|
+
_trace = new WeakMap();
|
|
1351
1800
|
_insertRecordWithoutId = new WeakSet();
|
|
1352
|
-
insertRecordWithoutId_fn = async function(object) {
|
|
1801
|
+
insertRecordWithoutId_fn = async function(object, columns = ["*"]) {
|
|
1353
1802
|
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
|
1354
1803
|
const record = transformObjectLinks(object);
|
|
1355
1804
|
const response = await insertRecord({
|
|
@@ -1358,17 +1807,15 @@ insertRecordWithoutId_fn = async function(object) {
|
|
|
1358
1807
|
dbBranchName: "{dbBranch}",
|
|
1359
1808
|
tableName: __privateGet$4(this, _table)
|
|
1360
1809
|
},
|
|
1810
|
+
queryParams: { columns },
|
|
1361
1811
|
body: record,
|
|
1362
1812
|
...fetchProps
|
|
1363
1813
|
});
|
|
1364
|
-
const
|
|
1365
|
-
|
|
1366
|
-
throw new Error("The server failed to save the record");
|
|
1367
|
-
}
|
|
1368
|
-
return finalObject;
|
|
1814
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
|
1815
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response);
|
|
1369
1816
|
};
|
|
1370
1817
|
_insertRecordWithId = new WeakSet();
|
|
1371
|
-
insertRecordWithId_fn = async function(recordId, object) {
|
|
1818
|
+
insertRecordWithId_fn = async function(recordId, object, columns = ["*"]) {
|
|
1372
1819
|
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
|
1373
1820
|
const record = transformObjectLinks(object);
|
|
1374
1821
|
const response = await insertRecordWithID({
|
|
@@ -1379,88 +1826,78 @@ insertRecordWithId_fn = async function(recordId, object) {
|
|
|
1379
1826
|
recordId
|
|
1380
1827
|
},
|
|
1381
1828
|
body: record,
|
|
1382
|
-
queryParams: { createOnly: true },
|
|
1829
|
+
queryParams: { createOnly: true, columns },
|
|
1383
1830
|
...fetchProps
|
|
1384
1831
|
});
|
|
1385
|
-
const
|
|
1386
|
-
|
|
1387
|
-
throw new Error("The server failed to save the record");
|
|
1388
|
-
}
|
|
1389
|
-
return finalObject;
|
|
1832
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
|
1833
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response);
|
|
1390
1834
|
};
|
|
1391
1835
|
_bulkInsertTableRecords = new WeakSet();
|
|
1392
|
-
bulkInsertTableRecords_fn = async function(objects) {
|
|
1836
|
+
bulkInsertTableRecords_fn = async function(objects, columns = ["*"]) {
|
|
1393
1837
|
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
|
1394
1838
|
const records = objects.map((object) => transformObjectLinks(object));
|
|
1395
1839
|
const response = await bulkInsertTableRecords({
|
|
1396
1840
|
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table) },
|
|
1841
|
+
queryParams: { columns },
|
|
1397
1842
|
body: { records },
|
|
1398
1843
|
...fetchProps
|
|
1399
1844
|
});
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
throw new Error("The server failed to save some records");
|
|
1845
|
+
if (!isResponseWithRecords(response)) {
|
|
1846
|
+
throw new Error("Request included columns but server didn't include them");
|
|
1403
1847
|
}
|
|
1404
|
-
|
|
1848
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
|
1849
|
+
return response.records?.map((item) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), item));
|
|
1405
1850
|
};
|
|
1406
1851
|
_updateRecordWithID = new WeakSet();
|
|
1407
|
-
updateRecordWithID_fn = async function(recordId, object) {
|
|
1852
|
+
updateRecordWithID_fn = async function(recordId, object, columns = ["*"]) {
|
|
1408
1853
|
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
|
1409
1854
|
const record = transformObjectLinks(object);
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1855
|
+
try {
|
|
1856
|
+
const response = await updateRecordWithID({
|
|
1857
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
|
|
1858
|
+
queryParams: { columns },
|
|
1859
|
+
body: record,
|
|
1860
|
+
...fetchProps
|
|
1861
|
+
});
|
|
1862
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
|
1863
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response);
|
|
1864
|
+
} catch (e) {
|
|
1865
|
+
if (isObject(e) && e.status === 404) {
|
|
1866
|
+
return null;
|
|
1867
|
+
}
|
|
1868
|
+
throw e;
|
|
1869
|
+
}
|
|
1419
1870
|
};
|
|
1420
1871
|
_upsertRecordWithID = new WeakSet();
|
|
1421
|
-
upsertRecordWithID_fn = async function(recordId, object) {
|
|
1872
|
+
upsertRecordWithID_fn = async function(recordId, object, columns = ["*"]) {
|
|
1422
1873
|
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
|
1423
1874
|
const response = await upsertRecordWithID({
|
|
1424
1875
|
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
|
|
1876
|
+
queryParams: { columns },
|
|
1425
1877
|
body: object,
|
|
1426
1878
|
...fetchProps
|
|
1427
1879
|
});
|
|
1428
|
-
const
|
|
1429
|
-
|
|
1430
|
-
throw new Error("The server failed to save the record");
|
|
1431
|
-
return item;
|
|
1880
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
|
1881
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response);
|
|
1432
1882
|
};
|
|
1433
1883
|
_deleteRecord = new WeakSet();
|
|
1434
|
-
deleteRecord_fn = async function(recordId) {
|
|
1884
|
+
deleteRecord_fn = async function(recordId, columns = ["*"]) {
|
|
1435
1885
|
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
await __privateGet$4(this, _cache).delete(key);
|
|
1886
|
+
try {
|
|
1887
|
+
const response = await deleteRecord({
|
|
1888
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
|
|
1889
|
+
queryParams: { columns },
|
|
1890
|
+
...fetchProps
|
|
1891
|
+
});
|
|
1892
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
|
1893
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response);
|
|
1894
|
+
} catch (e) {
|
|
1895
|
+
if (isObject(e) && e.status === 404) {
|
|
1896
|
+
return null;
|
|
1897
|
+
}
|
|
1898
|
+
throw e;
|
|
1450
1899
|
}
|
|
1451
1900
|
};
|
|
1452
|
-
_setCacheRecord = new WeakSet();
|
|
1453
|
-
setCacheRecord_fn = async function(record) {
|
|
1454
|
-
if (!__privateGet$4(this, _cache).cacheRecords)
|
|
1455
|
-
return;
|
|
1456
|
-
await __privateGet$4(this, _cache).set(`rec_${__privateGet$4(this, _table)}:${record.id}`, record);
|
|
1457
|
-
};
|
|
1458
|
-
_getCacheRecord = new WeakSet();
|
|
1459
|
-
getCacheRecord_fn = async function(recordId) {
|
|
1460
|
-
if (!__privateGet$4(this, _cache).cacheRecords)
|
|
1461
|
-
return null;
|
|
1462
|
-
return __privateGet$4(this, _cache).get(`rec_${__privateGet$4(this, _table)}:${recordId}`);
|
|
1463
|
-
};
|
|
1464
1901
|
_setCacheQuery = new WeakSet();
|
|
1465
1902
|
setCacheQuery_fn = async function(query, meta, records) {
|
|
1466
1903
|
await __privateGet$4(this, _cache).set(`query_${__privateGet$4(this, _table)}:${query.key()}`, { date: new Date(), meta, records });
|
|
@@ -1477,17 +1914,17 @@ getCacheQuery_fn = async function(query) {
|
|
|
1477
1914
|
const hasExpired = result.date.getTime() + ttl < Date.now();
|
|
1478
1915
|
return hasExpired ? null : result;
|
|
1479
1916
|
};
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
if (__privateGet$4(this,
|
|
1483
|
-
return __privateGet$4(this,
|
|
1917
|
+
_getSchemaTables$1 = new WeakSet();
|
|
1918
|
+
getSchemaTables_fn$1 = async function() {
|
|
1919
|
+
if (__privateGet$4(this, _schemaTables$2))
|
|
1920
|
+
return __privateGet$4(this, _schemaTables$2);
|
|
1484
1921
|
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
|
1485
1922
|
const { schema } = await getBranchDetails({
|
|
1486
1923
|
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
|
1487
1924
|
...fetchProps
|
|
1488
1925
|
});
|
|
1489
|
-
__privateSet$
|
|
1490
|
-
return schema;
|
|
1926
|
+
__privateSet$4(this, _schemaTables$2, schema.tables);
|
|
1927
|
+
return schema.tables;
|
|
1491
1928
|
};
|
|
1492
1929
|
const transformObjectLinks = (object) => {
|
|
1493
1930
|
return Object.entries(object).reduce((acc, [key, value]) => {
|
|
@@ -1496,20 +1933,21 @@ const transformObjectLinks = (object) => {
|
|
|
1496
1933
|
return { ...acc, [key]: isIdentifiable(value) ? value.id : value };
|
|
1497
1934
|
}, {});
|
|
1498
1935
|
};
|
|
1499
|
-
const initObject = (db,
|
|
1936
|
+
const initObject = (db, schemaTables, table, object) => {
|
|
1500
1937
|
const result = {};
|
|
1501
|
-
|
|
1502
|
-
|
|
1938
|
+
const { xata, ...rest } = object ?? {};
|
|
1939
|
+
Object.assign(result, rest);
|
|
1940
|
+
const { columns } = schemaTables.find(({ name }) => name === table) ?? {};
|
|
1503
1941
|
if (!columns)
|
|
1504
1942
|
console.error(`Table ${table} not found in schema`);
|
|
1505
1943
|
for (const column of columns ?? []) {
|
|
1506
1944
|
const value = result[column.name];
|
|
1507
1945
|
switch (column.type) {
|
|
1508
1946
|
case "datetime": {
|
|
1509
|
-
const date = new Date(value);
|
|
1510
|
-
if (isNaN(date.getTime())) {
|
|
1947
|
+
const date = value !== void 0 ? new Date(value) : void 0;
|
|
1948
|
+
if (date && isNaN(date.getTime())) {
|
|
1511
1949
|
console.error(`Failed to parse date ${value} for field ${column.name}`);
|
|
1512
|
-
} else {
|
|
1950
|
+
} else if (date) {
|
|
1513
1951
|
result[column.name] = date;
|
|
1514
1952
|
}
|
|
1515
1953
|
break;
|
|
@@ -1519,35 +1957,45 @@ const initObject = (db, schema, table, object) => {
|
|
|
1519
1957
|
if (!linkTable) {
|
|
1520
1958
|
console.error(`Failed to parse link for field ${column.name}`);
|
|
1521
1959
|
} else if (isObject(value)) {
|
|
1522
|
-
result[column.name] = initObject(db,
|
|
1960
|
+
result[column.name] = initObject(db, schemaTables, linkTable, value);
|
|
1523
1961
|
}
|
|
1524
1962
|
break;
|
|
1525
1963
|
}
|
|
1526
1964
|
}
|
|
1527
1965
|
}
|
|
1528
|
-
result.read = function() {
|
|
1529
|
-
return db[table].read(result["id"]);
|
|
1966
|
+
result.read = function(columns2) {
|
|
1967
|
+
return db[table].read(result["id"], columns2);
|
|
1530
1968
|
};
|
|
1531
|
-
result.update = function(data) {
|
|
1532
|
-
return db[table].update(result["id"], data);
|
|
1969
|
+
result.update = function(data, columns2) {
|
|
1970
|
+
return db[table].update(result["id"], data, columns2);
|
|
1533
1971
|
};
|
|
1534
1972
|
result.delete = function() {
|
|
1535
1973
|
return db[table].delete(result["id"]);
|
|
1536
1974
|
};
|
|
1537
|
-
|
|
1975
|
+
result.getMetadata = function() {
|
|
1976
|
+
return xata;
|
|
1977
|
+
};
|
|
1978
|
+
for (const prop of ["read", "update", "delete", "getMetadata"]) {
|
|
1538
1979
|
Object.defineProperty(result, prop, { enumerable: false });
|
|
1539
1980
|
}
|
|
1540
1981
|
Object.freeze(result);
|
|
1541
1982
|
return result;
|
|
1542
1983
|
};
|
|
1543
|
-
function
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
if (
|
|
1548
|
-
return
|
|
1549
|
-
|
|
1550
|
-
|
|
1984
|
+
function isResponseWithRecords(value) {
|
|
1985
|
+
return isObject(value) && Array.isArray(value.records);
|
|
1986
|
+
}
|
|
1987
|
+
function extractId(value) {
|
|
1988
|
+
if (isString(value))
|
|
1989
|
+
return value;
|
|
1990
|
+
if (isObject(value) && isString(value.id))
|
|
1991
|
+
return value.id;
|
|
1992
|
+
return void 0;
|
|
1993
|
+
}
|
|
1994
|
+
function cleanFilter(filter) {
|
|
1995
|
+
if (!filter)
|
|
1996
|
+
return void 0;
|
|
1997
|
+
const values = Object.values(filter).filter(Boolean).filter((value) => Array.isArray(value) ? value.length > 0 : true);
|
|
1998
|
+
return values.length > 0 ? filter : void 0;
|
|
1551
1999
|
}
|
|
1552
2000
|
|
|
1553
2001
|
var __accessCheck$3 = (obj, member, msg) => {
|
|
@@ -1563,7 +2011,7 @@ var __privateAdd$3 = (obj, member, value) => {
|
|
|
1563
2011
|
throw TypeError("Cannot add the same private member more than once");
|
|
1564
2012
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
1565
2013
|
};
|
|
1566
|
-
var __privateSet$
|
|
2014
|
+
var __privateSet$3 = (obj, member, value, setter) => {
|
|
1567
2015
|
__accessCheck$3(obj, member, "write to private field");
|
|
1568
2016
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
1569
2017
|
return value;
|
|
@@ -1572,9 +2020,8 @@ var _map;
|
|
|
1572
2020
|
class SimpleCache {
|
|
1573
2021
|
constructor(options = {}) {
|
|
1574
2022
|
__privateAdd$3(this, _map, void 0);
|
|
1575
|
-
__privateSet$
|
|
2023
|
+
__privateSet$3(this, _map, /* @__PURE__ */ new Map());
|
|
1576
2024
|
this.capacity = options.max ?? 500;
|
|
1577
|
-
this.cacheRecords = options.cacheRecords ?? true;
|
|
1578
2025
|
this.defaultQueryTTL = options.defaultQueryTTL ?? 60 * 1e3;
|
|
1579
2026
|
}
|
|
1580
2027
|
async getAll() {
|
|
@@ -1600,18 +2047,25 @@ class SimpleCache {
|
|
|
1600
2047
|
}
|
|
1601
2048
|
_map = new WeakMap();
|
|
1602
2049
|
|
|
1603
|
-
const
|
|
1604
|
-
const
|
|
1605
|
-
const
|
|
1606
|
-
const
|
|
1607
|
-
const
|
|
1608
|
-
const
|
|
2050
|
+
const greaterThan = (value) => ({ $gt: value });
|
|
2051
|
+
const gt = greaterThan;
|
|
2052
|
+
const greaterThanEquals = (value) => ({ $ge: value });
|
|
2053
|
+
const greaterEquals = greaterThanEquals;
|
|
2054
|
+
const gte = greaterThanEquals;
|
|
2055
|
+
const ge = greaterThanEquals;
|
|
2056
|
+
const lessThan = (value) => ({ $lt: value });
|
|
2057
|
+
const lt = lessThan;
|
|
2058
|
+
const lessThanEquals = (value) => ({ $le: value });
|
|
2059
|
+
const lessEquals = lessThanEquals;
|
|
2060
|
+
const lte = lessThanEquals;
|
|
2061
|
+
const le = lessThanEquals;
|
|
1609
2062
|
const exists = (column) => ({ $exists: column });
|
|
1610
2063
|
const notExists = (column) => ({ $notExists: column });
|
|
1611
2064
|
const startsWith = (value) => ({ $startsWith: value });
|
|
1612
2065
|
const endsWith = (value) => ({ $endsWith: value });
|
|
1613
2066
|
const pattern = (value) => ({ $pattern: value });
|
|
1614
2067
|
const is = (value) => ({ $is: value });
|
|
2068
|
+
const equals = is;
|
|
1615
2069
|
const isNot = (value) => ({ $isNot: value });
|
|
1616
2070
|
const contains = (value) => ({ $contains: value });
|
|
1617
2071
|
const includes = (value) => ({ $includes: value });
|
|
@@ -1632,31 +2086,42 @@ var __privateAdd$2 = (obj, member, value) => {
|
|
|
1632
2086
|
throw TypeError("Cannot add the same private member more than once");
|
|
1633
2087
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
1634
2088
|
};
|
|
1635
|
-
var
|
|
2089
|
+
var __privateSet$2 = (obj, member, value, setter) => {
|
|
2090
|
+
__accessCheck$2(obj, member, "write to private field");
|
|
2091
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
2092
|
+
return value;
|
|
2093
|
+
};
|
|
2094
|
+
var _tables, _schemaTables$1;
|
|
1636
2095
|
class SchemaPlugin extends XataPlugin {
|
|
1637
|
-
constructor(
|
|
2096
|
+
constructor(schemaTables) {
|
|
1638
2097
|
super();
|
|
1639
|
-
this.tableNames = tableNames;
|
|
1640
2098
|
__privateAdd$2(this, _tables, {});
|
|
2099
|
+
__privateAdd$2(this, _schemaTables$1, void 0);
|
|
2100
|
+
__privateSet$2(this, _schemaTables$1, schemaTables);
|
|
1641
2101
|
}
|
|
1642
2102
|
build(pluginOptions) {
|
|
1643
|
-
const db = new Proxy(
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
2103
|
+
const db = new Proxy(
|
|
2104
|
+
{},
|
|
2105
|
+
{
|
|
2106
|
+
get: (_target, table) => {
|
|
2107
|
+
if (!isString(table))
|
|
2108
|
+
throw new Error("Invalid table name");
|
|
2109
|
+
if (__privateGet$2(this, _tables)[table] === void 0) {
|
|
2110
|
+
__privateGet$2(this, _tables)[table] = new RestRepository({ db, pluginOptions, table, schemaTables: __privateGet$2(this, _schemaTables$1) });
|
|
2111
|
+
}
|
|
2112
|
+
return __privateGet$2(this, _tables)[table];
|
|
1649
2113
|
}
|
|
1650
|
-
return __privateGet$2(this, _tables)[table];
|
|
1651
2114
|
}
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
2115
|
+
);
|
|
2116
|
+
const tableNames = __privateGet$2(this, _schemaTables$1)?.map(({ name }) => name) ?? [];
|
|
2117
|
+
for (const table of tableNames) {
|
|
2118
|
+
db[table] = new RestRepository({ db, pluginOptions, table, schemaTables: __privateGet$2(this, _schemaTables$1) });
|
|
1655
2119
|
}
|
|
1656
2120
|
return db;
|
|
1657
2121
|
}
|
|
1658
2122
|
}
|
|
1659
2123
|
_tables = new WeakMap();
|
|
2124
|
+
_schemaTables$1 = new WeakMap();
|
|
1660
2125
|
|
|
1661
2126
|
var __accessCheck$1 = (obj, member, msg) => {
|
|
1662
2127
|
if (!member.has(obj))
|
|
@@ -1680,82 +2145,77 @@ var __privateMethod$1 = (obj, member, method) => {
|
|
|
1680
2145
|
__accessCheck$1(obj, member, "access private method");
|
|
1681
2146
|
return method;
|
|
1682
2147
|
};
|
|
1683
|
-
var
|
|
2148
|
+
var _schemaTables, _search, search_fn, _getSchemaTables, getSchemaTables_fn;
|
|
1684
2149
|
class SearchPlugin extends XataPlugin {
|
|
1685
|
-
constructor(db) {
|
|
2150
|
+
constructor(db, schemaTables) {
|
|
1686
2151
|
super();
|
|
1687
2152
|
this.db = db;
|
|
1688
2153
|
__privateAdd$1(this, _search);
|
|
1689
|
-
__privateAdd$1(this,
|
|
1690
|
-
__privateAdd$1(this,
|
|
2154
|
+
__privateAdd$1(this, _getSchemaTables);
|
|
2155
|
+
__privateAdd$1(this, _schemaTables, void 0);
|
|
2156
|
+
__privateSet$1(this, _schemaTables, schemaTables);
|
|
1691
2157
|
}
|
|
1692
2158
|
build({ getFetchProps }) {
|
|
1693
2159
|
return {
|
|
1694
2160
|
all: async (query, options = {}) => {
|
|
1695
2161
|
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options, getFetchProps);
|
|
1696
|
-
const
|
|
2162
|
+
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, getFetchProps);
|
|
1697
2163
|
return records.map((record) => {
|
|
1698
2164
|
const { table = "orphan" } = record.xata;
|
|
1699
|
-
return { table, record: initObject(this.db,
|
|
2165
|
+
return { table, record: initObject(this.db, schemaTables, table, record) };
|
|
1700
2166
|
});
|
|
1701
2167
|
},
|
|
1702
2168
|
byTable: async (query, options = {}) => {
|
|
1703
2169
|
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options, getFetchProps);
|
|
1704
|
-
const
|
|
2170
|
+
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, getFetchProps);
|
|
1705
2171
|
return records.reduce((acc, record) => {
|
|
1706
2172
|
const { table = "orphan" } = record.xata;
|
|
1707
2173
|
const items = acc[table] ?? [];
|
|
1708
|
-
const item = initObject(this.db,
|
|
2174
|
+
const item = initObject(this.db, schemaTables, table, record);
|
|
1709
2175
|
return { ...acc, [table]: [...items, item] };
|
|
1710
2176
|
}, {});
|
|
1711
2177
|
}
|
|
1712
2178
|
};
|
|
1713
2179
|
}
|
|
1714
2180
|
}
|
|
1715
|
-
|
|
2181
|
+
_schemaTables = new WeakMap();
|
|
1716
2182
|
_search = new WeakSet();
|
|
1717
2183
|
search_fn = async function(query, options, getFetchProps) {
|
|
1718
2184
|
const fetchProps = await getFetchProps();
|
|
1719
|
-
const { tables, fuzziness } = options ?? {};
|
|
2185
|
+
const { tables, fuzziness, highlight, prefix } = options ?? {};
|
|
1720
2186
|
const { records } = await searchBranch({
|
|
1721
2187
|
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
|
1722
|
-
body: { tables, query, fuzziness },
|
|
2188
|
+
body: { tables, query, fuzziness, prefix, highlight },
|
|
1723
2189
|
...fetchProps
|
|
1724
2190
|
});
|
|
1725
2191
|
return records;
|
|
1726
2192
|
};
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
if (__privateGet$1(this,
|
|
1730
|
-
return __privateGet$1(this,
|
|
2193
|
+
_getSchemaTables = new WeakSet();
|
|
2194
|
+
getSchemaTables_fn = async function(getFetchProps) {
|
|
2195
|
+
if (__privateGet$1(this, _schemaTables))
|
|
2196
|
+
return __privateGet$1(this, _schemaTables);
|
|
1731
2197
|
const fetchProps = await getFetchProps();
|
|
1732
2198
|
const { schema } = await getBranchDetails({
|
|
1733
2199
|
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
|
1734
2200
|
...fetchProps
|
|
1735
2201
|
});
|
|
1736
|
-
__privateSet$1(this,
|
|
1737
|
-
return schema;
|
|
2202
|
+
__privateSet$1(this, _schemaTables, schema.tables);
|
|
2203
|
+
return schema.tables;
|
|
1738
2204
|
};
|
|
1739
2205
|
|
|
1740
2206
|
const isBranchStrategyBuilder = (strategy) => {
|
|
1741
2207
|
return typeof strategy === "function";
|
|
1742
2208
|
};
|
|
1743
2209
|
|
|
1744
|
-
const envBranchNames = [
|
|
1745
|
-
"XATA_BRANCH",
|
|
1746
|
-
"VERCEL_GIT_COMMIT_REF",
|
|
1747
|
-
"CF_PAGES_BRANCH",
|
|
1748
|
-
"BRANCH"
|
|
1749
|
-
];
|
|
1750
2210
|
async function getCurrentBranchName(options) {
|
|
1751
|
-
const
|
|
1752
|
-
if (
|
|
1753
|
-
const details = await getDatabaseBranch(
|
|
2211
|
+
const { branch, envBranch } = getEnvironment();
|
|
2212
|
+
if (branch) {
|
|
2213
|
+
const details = await getDatabaseBranch(branch, options);
|
|
1754
2214
|
if (details)
|
|
1755
|
-
return
|
|
1756
|
-
console.warn(`Branch ${
|
|
2215
|
+
return branch;
|
|
2216
|
+
console.warn(`Branch ${branch} not found in Xata. Ignoring...`);
|
|
1757
2217
|
}
|
|
1758
|
-
const gitBranch = await getGitBranch();
|
|
2218
|
+
const gitBranch = envBranch || await getGitBranch();
|
|
1759
2219
|
return resolveXataBranch(gitBranch, options);
|
|
1760
2220
|
}
|
|
1761
2221
|
async function getCurrentBranchDetails(options) {
|
|
@@ -1766,18 +2226,24 @@ async function resolveXataBranch(gitBranch, options) {
|
|
|
1766
2226
|
const databaseURL = options?.databaseURL || getDatabaseURL();
|
|
1767
2227
|
const apiKey = options?.apiKey || getAPIKey();
|
|
1768
2228
|
if (!databaseURL)
|
|
1769
|
-
throw new Error(
|
|
2229
|
+
throw new Error(
|
|
2230
|
+
"A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely"
|
|
2231
|
+
);
|
|
1770
2232
|
if (!apiKey)
|
|
1771
|
-
throw new Error(
|
|
2233
|
+
throw new Error(
|
|
2234
|
+
"An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely"
|
|
2235
|
+
);
|
|
1772
2236
|
const [protocol, , host, , dbName] = databaseURL.split("/");
|
|
1773
2237
|
const [workspace] = host.split(".");
|
|
2238
|
+
const { fallbackBranch } = getEnvironment();
|
|
1774
2239
|
const { branch } = await resolveBranch({
|
|
1775
2240
|
apiKey,
|
|
1776
2241
|
apiUrl: databaseURL,
|
|
1777
2242
|
fetchImpl: getFetchImplementation(options?.fetchImpl),
|
|
1778
2243
|
workspacesApiUrl: `${protocol}//${host}`,
|
|
1779
2244
|
pathParams: { dbName, workspace },
|
|
1780
|
-
queryParams: { gitBranch, fallbackBranch
|
|
2245
|
+
queryParams: { gitBranch, fallbackBranch },
|
|
2246
|
+
trace: defaultTrace
|
|
1781
2247
|
});
|
|
1782
2248
|
return branch;
|
|
1783
2249
|
}
|
|
@@ -1785,9 +2251,13 @@ async function getDatabaseBranch(branch, options) {
|
|
|
1785
2251
|
const databaseURL = options?.databaseURL || getDatabaseURL();
|
|
1786
2252
|
const apiKey = options?.apiKey || getAPIKey();
|
|
1787
2253
|
if (!databaseURL)
|
|
1788
|
-
throw new Error(
|
|
2254
|
+
throw new Error(
|
|
2255
|
+
"A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely"
|
|
2256
|
+
);
|
|
1789
2257
|
if (!apiKey)
|
|
1790
|
-
throw new Error(
|
|
2258
|
+
throw new Error(
|
|
2259
|
+
"An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely"
|
|
2260
|
+
);
|
|
1791
2261
|
const [protocol, , host, , database] = databaseURL.split("/");
|
|
1792
2262
|
const [workspace] = host.split(".");
|
|
1793
2263
|
const dbBranchName = `${database}:${branch}`;
|
|
@@ -1797,10 +2267,8 @@ async function getDatabaseBranch(branch, options) {
|
|
|
1797
2267
|
apiUrl: databaseURL,
|
|
1798
2268
|
fetchImpl: getFetchImplementation(options?.fetchImpl),
|
|
1799
2269
|
workspacesApiUrl: `${protocol}//${host}`,
|
|
1800
|
-
pathParams: {
|
|
1801
|
-
|
|
1802
|
-
workspace
|
|
1803
|
-
}
|
|
2270
|
+
pathParams: { dbBranchName, workspace },
|
|
2271
|
+
trace: defaultTrace
|
|
1804
2272
|
});
|
|
1805
2273
|
} catch (err) {
|
|
1806
2274
|
if (isObject(err) && err.status === 404)
|
|
@@ -1808,21 +2276,10 @@ async function getDatabaseBranch(branch, options) {
|
|
|
1808
2276
|
throw err;
|
|
1809
2277
|
}
|
|
1810
2278
|
}
|
|
1811
|
-
function getBranchByEnvVariable() {
|
|
1812
|
-
for (const name of envBranchNames) {
|
|
1813
|
-
const value = getEnvVariable(name);
|
|
1814
|
-
if (value) {
|
|
1815
|
-
return value;
|
|
1816
|
-
}
|
|
1817
|
-
}
|
|
1818
|
-
try {
|
|
1819
|
-
return XATA_BRANCH;
|
|
1820
|
-
} catch (err) {
|
|
1821
|
-
}
|
|
1822
|
-
}
|
|
1823
2279
|
function getDatabaseURL() {
|
|
1824
2280
|
try {
|
|
1825
|
-
|
|
2281
|
+
const { databaseURL } = getEnvironment();
|
|
2282
|
+
return databaseURL;
|
|
1826
2283
|
} catch (err) {
|
|
1827
2284
|
return void 0;
|
|
1828
2285
|
}
|
|
@@ -1851,20 +2308,23 @@ var __privateMethod = (obj, member, method) => {
|
|
|
1851
2308
|
return method;
|
|
1852
2309
|
};
|
|
1853
2310
|
const buildClient = (plugins) => {
|
|
1854
|
-
var _branch, _parseOptions, parseOptions_fn, _getFetchProps, getFetchProps_fn, _evaluateBranch, evaluateBranch_fn, _a;
|
|
2311
|
+
var _branch, _options, _parseOptions, parseOptions_fn, _getFetchProps, getFetchProps_fn, _evaluateBranch, evaluateBranch_fn, _a;
|
|
1855
2312
|
return _a = class {
|
|
1856
|
-
constructor(options = {},
|
|
2313
|
+
constructor(options = {}, schemaTables) {
|
|
1857
2314
|
__privateAdd(this, _parseOptions);
|
|
1858
2315
|
__privateAdd(this, _getFetchProps);
|
|
1859
2316
|
__privateAdd(this, _evaluateBranch);
|
|
1860
2317
|
__privateAdd(this, _branch, void 0);
|
|
2318
|
+
__privateAdd(this, _options, void 0);
|
|
1861
2319
|
const safeOptions = __privateMethod(this, _parseOptions, parseOptions_fn).call(this, options);
|
|
2320
|
+
__privateSet(this, _options, safeOptions);
|
|
1862
2321
|
const pluginOptions = {
|
|
1863
2322
|
getFetchProps: () => __privateMethod(this, _getFetchProps, getFetchProps_fn).call(this, safeOptions),
|
|
1864
|
-
cache: safeOptions.cache
|
|
2323
|
+
cache: safeOptions.cache,
|
|
2324
|
+
trace: safeOptions.trace
|
|
1865
2325
|
};
|
|
1866
|
-
const db = new SchemaPlugin(
|
|
1867
|
-
const search = new SearchPlugin(db).build(pluginOptions);
|
|
2326
|
+
const db = new SchemaPlugin(schemaTables).build(pluginOptions);
|
|
2327
|
+
const search = new SearchPlugin(db, schemaTables).build(pluginOptions);
|
|
1868
2328
|
this.db = db;
|
|
1869
2329
|
this.search = search;
|
|
1870
2330
|
for (const [key, namespace] of Object.entries(plugins ?? {})) {
|
|
@@ -1880,22 +2340,26 @@ const buildClient = (plugins) => {
|
|
|
1880
2340
|
}
|
|
1881
2341
|
}
|
|
1882
2342
|
}
|
|
1883
|
-
|
|
2343
|
+
async getConfig() {
|
|
2344
|
+
const databaseURL = __privateGet(this, _options).databaseURL;
|
|
2345
|
+
const branch = await __privateGet(this, _options).branch();
|
|
2346
|
+
return { databaseURL, branch };
|
|
2347
|
+
}
|
|
2348
|
+
}, _branch = new WeakMap(), _options = new WeakMap(), _parseOptions = new WeakSet(), parseOptions_fn = function(options) {
|
|
1884
2349
|
const fetch = getFetchImplementation(options?.fetch);
|
|
1885
2350
|
const databaseURL = options?.databaseURL || getDatabaseURL();
|
|
1886
2351
|
const apiKey = options?.apiKey || getAPIKey();
|
|
1887
|
-
const cache = options?.cache ?? new SimpleCache({
|
|
2352
|
+
const cache = options?.cache ?? new SimpleCache({ defaultQueryTTL: 0 });
|
|
2353
|
+
const trace = options?.trace ?? defaultTrace;
|
|
1888
2354
|
const branch = async () => options?.branch !== void 0 ? await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, options.branch) : await getCurrentBranchName({ apiKey, databaseURL, fetchImpl: options?.fetch });
|
|
1889
|
-
if (!
|
|
1890
|
-
throw new Error("
|
|
2355
|
+
if (!apiKey) {
|
|
2356
|
+
throw new Error("Option apiKey is required");
|
|
1891
2357
|
}
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
apiKey,
|
|
1896
|
-
|
|
1897
|
-
branch
|
|
1898
|
-
}) {
|
|
2358
|
+
if (!databaseURL) {
|
|
2359
|
+
throw new Error("Option databaseURL is required");
|
|
2360
|
+
}
|
|
2361
|
+
return { fetch, databaseURL, apiKey, branch, cache, trace };
|
|
2362
|
+
}, _getFetchProps = new WeakSet(), getFetchProps_fn = async function({ fetch, apiKey, databaseURL, branch, trace }) {
|
|
1899
2363
|
const branchValue = await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, branch);
|
|
1900
2364
|
if (!branchValue)
|
|
1901
2365
|
throw new Error("Unable to resolve branch value");
|
|
@@ -1905,9 +2369,10 @@ const buildClient = (plugins) => {
|
|
|
1905
2369
|
apiUrl: "",
|
|
1906
2370
|
workspacesApiUrl: (path, params) => {
|
|
1907
2371
|
const hasBranch = params.dbBranchName ?? params.branch;
|
|
1908
|
-
const newPath = path.replace(/^\/db\/[^/]+/, hasBranch ? `:${branchValue}` : "");
|
|
2372
|
+
const newPath = path.replace(/^\/db\/[^/]+/, hasBranch !== void 0 ? `:${branchValue}` : "");
|
|
1909
2373
|
return databaseURL + newPath;
|
|
1910
|
-
}
|
|
2374
|
+
},
|
|
2375
|
+
trace
|
|
1911
2376
|
};
|
|
1912
2377
|
}, _evaluateBranch = new WeakSet(), evaluateBranch_fn = async function(param) {
|
|
1913
2378
|
if (__privateGet(this, _branch))
|
|
@@ -1930,6 +2395,88 @@ const buildClient = (plugins) => {
|
|
|
1930
2395
|
class BaseClient extends buildClient() {
|
|
1931
2396
|
}
|
|
1932
2397
|
|
|
2398
|
+
const META = "__";
|
|
2399
|
+
const VALUE = "___";
|
|
2400
|
+
class Serializer {
|
|
2401
|
+
constructor() {
|
|
2402
|
+
this.classes = {};
|
|
2403
|
+
}
|
|
2404
|
+
add(clazz) {
|
|
2405
|
+
this.classes[clazz.name] = clazz;
|
|
2406
|
+
}
|
|
2407
|
+
toJSON(data) {
|
|
2408
|
+
function visit(obj) {
|
|
2409
|
+
if (Array.isArray(obj))
|
|
2410
|
+
return obj.map(visit);
|
|
2411
|
+
const type = typeof obj;
|
|
2412
|
+
if (type === "undefined")
|
|
2413
|
+
return { [META]: "undefined" };
|
|
2414
|
+
if (type === "bigint")
|
|
2415
|
+
return { [META]: "bigint", [VALUE]: obj.toString() };
|
|
2416
|
+
if (obj === null || type !== "object")
|
|
2417
|
+
return obj;
|
|
2418
|
+
const constructor = obj.constructor;
|
|
2419
|
+
const o = { [META]: constructor.name };
|
|
2420
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
2421
|
+
o[key] = visit(value);
|
|
2422
|
+
}
|
|
2423
|
+
if (constructor === Date)
|
|
2424
|
+
o[VALUE] = obj.toISOString();
|
|
2425
|
+
if (constructor === Map)
|
|
2426
|
+
o[VALUE] = Object.fromEntries(obj);
|
|
2427
|
+
if (constructor === Set)
|
|
2428
|
+
o[VALUE] = [...obj];
|
|
2429
|
+
return o;
|
|
2430
|
+
}
|
|
2431
|
+
return JSON.stringify(visit(data));
|
|
2432
|
+
}
|
|
2433
|
+
fromJSON(json) {
|
|
2434
|
+
return JSON.parse(json, (key, value) => {
|
|
2435
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
2436
|
+
const { [META]: clazz, [VALUE]: val, ...rest } = value;
|
|
2437
|
+
const constructor = this.classes[clazz];
|
|
2438
|
+
if (constructor) {
|
|
2439
|
+
return Object.assign(Object.create(constructor.prototype), rest);
|
|
2440
|
+
}
|
|
2441
|
+
if (clazz === "Date")
|
|
2442
|
+
return new Date(val);
|
|
2443
|
+
if (clazz === "Set")
|
|
2444
|
+
return new Set(val);
|
|
2445
|
+
if (clazz === "Map")
|
|
2446
|
+
return new Map(Object.entries(val));
|
|
2447
|
+
if (clazz === "bigint")
|
|
2448
|
+
return BigInt(val);
|
|
2449
|
+
if (clazz === "undefined")
|
|
2450
|
+
return void 0;
|
|
2451
|
+
return rest;
|
|
2452
|
+
}
|
|
2453
|
+
return value;
|
|
2454
|
+
});
|
|
2455
|
+
}
|
|
2456
|
+
}
|
|
2457
|
+
const defaultSerializer = new Serializer();
|
|
2458
|
+
const serialize = (data) => {
|
|
2459
|
+
return defaultSerializer.toJSON(data);
|
|
2460
|
+
};
|
|
2461
|
+
const deserialize = (json) => {
|
|
2462
|
+
return defaultSerializer.fromJSON(json);
|
|
2463
|
+
};
|
|
2464
|
+
|
|
2465
|
+
function buildWorkerRunner(config) {
|
|
2466
|
+
return function xataWorker(name, _worker) {
|
|
2467
|
+
return async (...args) => {
|
|
2468
|
+
const url = process.env.NODE_ENV === "development" ? `http://localhost:64749/${name}` : `https://dispatcher.xata.workers.dev/${config.workspace}/${config.worker}/${name}`;
|
|
2469
|
+
const result = await fetch(url, {
|
|
2470
|
+
method: "POST",
|
|
2471
|
+
headers: { "Content-Type": "application/json" },
|
|
2472
|
+
body: serialize({ args })
|
|
2473
|
+
});
|
|
2474
|
+
const text = await result.text();
|
|
2475
|
+
return deserialize(text);
|
|
2476
|
+
};
|
|
2477
|
+
};
|
|
2478
|
+
}
|
|
2479
|
+
|
|
1933
2480
|
class XataError extends Error {
|
|
1934
2481
|
constructor(message, status) {
|
|
1935
2482
|
super(message);
|
|
@@ -1945,10 +2492,12 @@ exports.PAGINATION_MAX_OFFSET = PAGINATION_MAX_OFFSET;
|
|
|
1945
2492
|
exports.PAGINATION_MAX_SIZE = PAGINATION_MAX_SIZE;
|
|
1946
2493
|
exports.Page = Page;
|
|
1947
2494
|
exports.Query = Query;
|
|
2495
|
+
exports.RecordArray = RecordArray;
|
|
1948
2496
|
exports.Repository = Repository;
|
|
1949
2497
|
exports.RestRepository = RestRepository;
|
|
1950
2498
|
exports.SchemaPlugin = SchemaPlugin;
|
|
1951
2499
|
exports.SearchPlugin = SearchPlugin;
|
|
2500
|
+
exports.Serializer = Serializer;
|
|
1952
2501
|
exports.SimpleCache = SimpleCache;
|
|
1953
2502
|
exports.XataApiClient = XataApiClient;
|
|
1954
2503
|
exports.XataApiPlugin = XataApiPlugin;
|
|
@@ -1957,12 +2506,18 @@ exports.XataPlugin = XataPlugin;
|
|
|
1957
2506
|
exports.acceptWorkspaceMemberInvite = acceptWorkspaceMemberInvite;
|
|
1958
2507
|
exports.addGitBranchesEntry = addGitBranchesEntry;
|
|
1959
2508
|
exports.addTableColumn = addTableColumn;
|
|
2509
|
+
exports.applyBranchSchemaEdit = applyBranchSchemaEdit;
|
|
1960
2510
|
exports.buildClient = buildClient;
|
|
2511
|
+
exports.buildWorkerRunner = buildWorkerRunner;
|
|
1961
2512
|
exports.bulkInsertTableRecords = bulkInsertTableRecords;
|
|
1962
2513
|
exports.cancelWorkspaceMemberInvite = cancelWorkspaceMemberInvite;
|
|
2514
|
+
exports.compareBranchSchemas = compareBranchSchemas;
|
|
2515
|
+
exports.compareBranchWithUserSchema = compareBranchWithUserSchema;
|
|
2516
|
+
exports.compareMigrationRequest = compareMigrationRequest;
|
|
1963
2517
|
exports.contains = contains;
|
|
1964
2518
|
exports.createBranch = createBranch;
|
|
1965
2519
|
exports.createDatabase = createDatabase;
|
|
2520
|
+
exports.createMigrationRequest = createMigrationRequest;
|
|
1966
2521
|
exports.createTable = createTable;
|
|
1967
2522
|
exports.createUserAPIKey = createUserAPIKey;
|
|
1968
2523
|
exports.createWorkspace = createWorkspace;
|
|
@@ -1974,7 +2529,9 @@ exports.deleteTable = deleteTable;
|
|
|
1974
2529
|
exports.deleteUser = deleteUser;
|
|
1975
2530
|
exports.deleteUserAPIKey = deleteUserAPIKey;
|
|
1976
2531
|
exports.deleteWorkspace = deleteWorkspace;
|
|
2532
|
+
exports.deserialize = deserialize;
|
|
1977
2533
|
exports.endsWith = endsWith;
|
|
2534
|
+
exports.equals = equals;
|
|
1978
2535
|
exports.executeBranchMigrationPlan = executeBranchMigrationPlan;
|
|
1979
2536
|
exports.exists = exists;
|
|
1980
2537
|
exports.ge = ge;
|
|
@@ -1984,13 +2541,17 @@ exports.getBranchList = getBranchList;
|
|
|
1984
2541
|
exports.getBranchMetadata = getBranchMetadata;
|
|
1985
2542
|
exports.getBranchMigrationHistory = getBranchMigrationHistory;
|
|
1986
2543
|
exports.getBranchMigrationPlan = getBranchMigrationPlan;
|
|
2544
|
+
exports.getBranchSchemaHistory = getBranchSchemaHistory;
|
|
1987
2545
|
exports.getBranchStats = getBranchStats;
|
|
1988
2546
|
exports.getColumn = getColumn;
|
|
1989
2547
|
exports.getCurrentBranchDetails = getCurrentBranchDetails;
|
|
1990
2548
|
exports.getCurrentBranchName = getCurrentBranchName;
|
|
1991
2549
|
exports.getDatabaseList = getDatabaseList;
|
|
2550
|
+
exports.getDatabaseMetadata = getDatabaseMetadata;
|
|
1992
2551
|
exports.getDatabaseURL = getDatabaseURL;
|
|
1993
2552
|
exports.getGitBranchesMapping = getGitBranchesMapping;
|
|
2553
|
+
exports.getMigrationRequest = getMigrationRequest;
|
|
2554
|
+
exports.getMigrationRequestIsMerged = getMigrationRequestIsMerged;
|
|
1994
2555
|
exports.getRecord = getRecord;
|
|
1995
2556
|
exports.getTableColumns = getTableColumns;
|
|
1996
2557
|
exports.getTableSchema = getTableSchema;
|
|
@@ -1999,6 +2560,9 @@ exports.getUserAPIKeys = getUserAPIKeys;
|
|
|
1999
2560
|
exports.getWorkspace = getWorkspace;
|
|
2000
2561
|
exports.getWorkspaceMembersList = getWorkspaceMembersList;
|
|
2001
2562
|
exports.getWorkspacesList = getWorkspacesList;
|
|
2563
|
+
exports.greaterEquals = greaterEquals;
|
|
2564
|
+
exports.greaterThan = greaterThan;
|
|
2565
|
+
exports.greaterThanEquals = greaterThanEquals;
|
|
2002
2566
|
exports.gt = gt;
|
|
2003
2567
|
exports.gte = gte;
|
|
2004
2568
|
exports.includes = includes;
|
|
@@ -2009,15 +2573,24 @@ exports.insertRecord = insertRecord;
|
|
|
2009
2573
|
exports.insertRecordWithID = insertRecordWithID;
|
|
2010
2574
|
exports.inviteWorkspaceMember = inviteWorkspaceMember;
|
|
2011
2575
|
exports.is = is;
|
|
2576
|
+
exports.isCursorPaginationOptions = isCursorPaginationOptions;
|
|
2012
2577
|
exports.isIdentifiable = isIdentifiable;
|
|
2013
2578
|
exports.isNot = isNot;
|
|
2014
2579
|
exports.isXataRecord = isXataRecord;
|
|
2015
2580
|
exports.le = le;
|
|
2581
|
+
exports.lessEquals = lessEquals;
|
|
2582
|
+
exports.lessThan = lessThan;
|
|
2583
|
+
exports.lessThanEquals = lessThanEquals;
|
|
2584
|
+
exports.listMigrationRequests = listMigrationRequests;
|
|
2585
|
+
exports.listMigrationRequestsCommits = listMigrationRequestsCommits;
|
|
2016
2586
|
exports.lt = lt;
|
|
2017
2587
|
exports.lte = lte;
|
|
2588
|
+
exports.mergeMigrationRequest = mergeMigrationRequest;
|
|
2018
2589
|
exports.notExists = notExists;
|
|
2019
2590
|
exports.operationsByTag = operationsByTag;
|
|
2591
|
+
exports.patchDatabaseMetadata = patchDatabaseMetadata;
|
|
2020
2592
|
exports.pattern = pattern;
|
|
2593
|
+
exports.previewBranchSchemaEdit = previewBranchSchemaEdit;
|
|
2021
2594
|
exports.queryTable = queryTable;
|
|
2022
2595
|
exports.removeGitBranchesEntry = removeGitBranchesEntry;
|
|
2023
2596
|
exports.removeWorkspaceMember = removeWorkspaceMember;
|
|
@@ -2025,14 +2598,18 @@ exports.resendWorkspaceMemberInvite = resendWorkspaceMemberInvite;
|
|
|
2025
2598
|
exports.resolveBranch = resolveBranch;
|
|
2026
2599
|
exports.searchBranch = searchBranch;
|
|
2027
2600
|
exports.searchTable = searchTable;
|
|
2601
|
+
exports.serialize = serialize;
|
|
2028
2602
|
exports.setTableSchema = setTableSchema;
|
|
2029
2603
|
exports.startsWith = startsWith;
|
|
2030
2604
|
exports.updateBranchMetadata = updateBranchMetadata;
|
|
2605
|
+
exports.updateBranchSchema = updateBranchSchema;
|
|
2031
2606
|
exports.updateColumn = updateColumn;
|
|
2607
|
+
exports.updateMigrationRequest = updateMigrationRequest;
|
|
2032
2608
|
exports.updateRecordWithID = updateRecordWithID;
|
|
2033
2609
|
exports.updateTable = updateTable;
|
|
2034
2610
|
exports.updateUser = updateUser;
|
|
2035
2611
|
exports.updateWorkspace = updateWorkspace;
|
|
2612
|
+
exports.updateWorkspaceMemberInvite = updateWorkspaceMemberInvite;
|
|
2036
2613
|
exports.updateWorkspaceMemberRole = updateWorkspaceMemberRole;
|
|
2037
2614
|
exports.upsertRecordWithID = upsertRecordWithID;
|
|
2038
2615
|
//# sourceMappingURL=index.cjs.map
|