@xata.io/client 0.0.0-alpha.vf7b5320 → 0.0.0-alpha.vf8b33c9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +1 -2
- package/CHANGELOG.md +200 -0
- package/README.md +273 -1
- package/Usage.md +451 -0
- package/dist/index.cjs +1140 -455
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1931 -349
- package/dist/index.mjs +1092 -456
- package/dist/index.mjs.map +1 -1
- package/package.json +8 -4
- package/tsconfig.json +1 -0
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.vf8b33c9";
|
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 updateDatabaseMetadata = (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 });
|
@@ -370,6 +542,11 @@ const queryTable = (variables) => fetch$1({
|
|
370
542
|
method: "post",
|
371
543
|
...variables
|
372
544
|
});
|
545
|
+
const searchTable = (variables) => fetch$1({
|
546
|
+
url: "/db/{dbBranchName}/tables/{tableName}/search",
|
547
|
+
method: "post",
|
548
|
+
...variables
|
549
|
+
});
|
373
550
|
const searchBranch = (variables) => fetch$1({
|
374
551
|
url: "/db/{dbBranchName}/search",
|
375
552
|
method: "post",
|
@@ -387,6 +564,7 @@ const operationsByTag = {
|
|
387
564
|
updateWorkspaceMemberRole,
|
388
565
|
removeWorkspaceMember,
|
389
566
|
inviteWorkspaceMember,
|
567
|
+
updateWorkspaceMemberInvite,
|
390
568
|
cancelWorkspaceMemberInvite,
|
391
569
|
resendWorkspaceMemberInvite,
|
392
570
|
acceptWorkspaceMemberInvite
|
@@ -395,6 +573,8 @@ const operationsByTag = {
|
|
395
573
|
getDatabaseList,
|
396
574
|
createDatabase,
|
397
575
|
deleteDatabase,
|
576
|
+
getDatabaseMetadata,
|
577
|
+
updateDatabaseMetadata,
|
398
578
|
getGitBranchesMapping,
|
399
579
|
addGitBranchesEntry,
|
400
580
|
removeGitBranchesEntry,
|
@@ -407,10 +587,28 @@ const operationsByTag = {
|
|
407
587
|
deleteBranch,
|
408
588
|
updateBranchMetadata,
|
409
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: {
|
410
603
|
getBranchMigrationHistory,
|
411
604
|
executeBranchMigrationPlan,
|
412
605
|
getBranchMigrationPlan,
|
413
|
-
|
606
|
+
compareBranchWithUserSchema,
|
607
|
+
compareBranchSchemas,
|
608
|
+
updateBranchSchema,
|
609
|
+
previewBranchSchemaEdit,
|
610
|
+
applyBranchSchemaEdit,
|
611
|
+
getBranchSchemaHistory
|
414
612
|
},
|
415
613
|
table: {
|
416
614
|
createTable,
|
@@ -433,14 +631,15 @@ const operationsByTag = {
|
|
433
631
|
getRecord,
|
434
632
|
bulkInsertTableRecords,
|
435
633
|
queryTable,
|
634
|
+
searchTable,
|
436
635
|
searchBranch
|
437
636
|
}
|
438
637
|
};
|
439
638
|
|
440
639
|
function getHostUrl(provider, type) {
|
441
|
-
if (
|
640
|
+
if (isHostProviderAlias(provider)) {
|
442
641
|
return providers[provider][type];
|
443
|
-
} else if (
|
642
|
+
} else if (isHostProviderBuilder(provider)) {
|
444
643
|
return provider[type];
|
445
644
|
}
|
446
645
|
throw new Error("Invalid API provider");
|
@@ -455,10 +654,10 @@ const providers = {
|
|
455
654
|
workspaces: "https://{workspaceId}.staging.xatabase.co"
|
456
655
|
}
|
457
656
|
};
|
458
|
-
function
|
657
|
+
function isHostProviderAlias(alias) {
|
459
658
|
return isString(alias) && Object.keys(providers).includes(alias);
|
460
659
|
}
|
461
|
-
function
|
660
|
+
function isHostProviderBuilder(builder) {
|
462
661
|
return isObject(builder) && isString(builder.main) && isString(builder.workspaces);
|
463
662
|
}
|
464
663
|
|
@@ -475,7 +674,7 @@ var __privateAdd$7 = (obj, member, value) => {
|
|
475
674
|
throw TypeError("Cannot add the same private member more than once");
|
476
675
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
477
676
|
};
|
478
|
-
var __privateSet$
|
677
|
+
var __privateSet$7 = (obj, member, value, setter) => {
|
479
678
|
__accessCheck$7(obj, member, "write to private field");
|
480
679
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
481
680
|
return value;
|
@@ -486,15 +685,17 @@ class XataApiClient {
|
|
486
685
|
__privateAdd$7(this, _extraProps, void 0);
|
487
686
|
__privateAdd$7(this, _namespaces, {});
|
488
687
|
const provider = options.host ?? "production";
|
489
|
-
const apiKey = options
|
688
|
+
const apiKey = options.apiKey ?? getAPIKey();
|
689
|
+
const trace = options.trace ?? defaultTrace;
|
490
690
|
if (!apiKey) {
|
491
691
|
throw new Error("Could not resolve a valid apiKey");
|
492
692
|
}
|
493
|
-
__privateSet$
|
693
|
+
__privateSet$7(this, _extraProps, {
|
494
694
|
apiUrl: getHostUrl(provider, "main"),
|
495
695
|
workspacesApiUrl: getHostUrl(provider, "workspaces"),
|
496
696
|
fetchImpl: getFetchImplementation(options.fetch),
|
497
|
-
apiKey
|
697
|
+
apiKey,
|
698
|
+
trace
|
498
699
|
});
|
499
700
|
}
|
500
701
|
get user() {
|
@@ -527,6 +728,16 @@ class XataApiClient {
|
|
527
728
|
__privateGet$7(this, _namespaces).records = new RecordsApi(__privateGet$7(this, _extraProps));
|
528
729
|
return __privateGet$7(this, _namespaces).records;
|
529
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
|
+
}
|
530
741
|
}
|
531
742
|
_extraProps = new WeakMap();
|
532
743
|
_namespaces = new WeakMap();
|
@@ -617,6 +828,13 @@ class WorkspaceApi {
|
|
617
828
|
...this.extraProps
|
618
829
|
});
|
619
830
|
}
|
831
|
+
updateWorkspaceMemberInvite(workspaceId, inviteId, role) {
|
832
|
+
return operationsByTag.workspaces.updateWorkspaceMemberInvite({
|
833
|
+
pathParams: { workspaceId, inviteId },
|
834
|
+
body: { role },
|
835
|
+
...this.extraProps
|
836
|
+
});
|
837
|
+
}
|
620
838
|
cancelWorkspaceMemberInvite(workspaceId, inviteId) {
|
621
839
|
return operationsByTag.workspaces.cancelWorkspaceMemberInvite({
|
622
840
|
pathParams: { workspaceId, inviteId },
|
@@ -659,6 +877,19 @@ class DatabaseApi {
|
|
659
877
|
...this.extraProps
|
660
878
|
});
|
661
879
|
}
|
880
|
+
getDatabaseMetadata(workspace, dbName) {
|
881
|
+
return operationsByTag.database.getDatabaseMetadata({
|
882
|
+
pathParams: { workspace, dbName },
|
883
|
+
...this.extraProps
|
884
|
+
});
|
885
|
+
}
|
886
|
+
updateDatabaseMetadata(workspace, dbName, options = {}) {
|
887
|
+
return operationsByTag.database.updateDatabaseMetadata({
|
888
|
+
pathParams: { workspace, dbName },
|
889
|
+
body: options,
|
890
|
+
...this.extraProps
|
891
|
+
});
|
892
|
+
}
|
662
893
|
getGitBranchesMapping(workspace, dbName) {
|
663
894
|
return operationsByTag.database.getGitBranchesMapping({
|
664
895
|
pathParams: { workspace, dbName },
|
@@ -679,10 +910,10 @@ class DatabaseApi {
|
|
679
910
|
...this.extraProps
|
680
911
|
});
|
681
912
|
}
|
682
|
-
resolveBranch(workspace, dbName, gitBranch) {
|
913
|
+
resolveBranch(workspace, dbName, gitBranch, fallbackBranch) {
|
683
914
|
return operationsByTag.database.resolveBranch({
|
684
915
|
pathParams: { workspace, dbName },
|
685
|
-
queryParams: { gitBranch },
|
916
|
+
queryParams: { gitBranch, fallbackBranch },
|
686
917
|
...this.extraProps
|
687
918
|
});
|
688
919
|
}
|
@@ -703,10 +934,10 @@ class BranchApi {
|
|
703
934
|
...this.extraProps
|
704
935
|
});
|
705
936
|
}
|
706
|
-
createBranch(workspace, database, branch, from
|
937
|
+
createBranch(workspace, database, branch, from, options = {}) {
|
707
938
|
return operationsByTag.branch.createBranch({
|
708
939
|
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
709
|
-
queryParams: { from },
|
940
|
+
queryParams: isString(from) ? { from } : void 0,
|
710
941
|
body: options,
|
711
942
|
...this.extraProps
|
712
943
|
});
|
@@ -730,27 +961,6 @@ class BranchApi {
|
|
730
961
|
...this.extraProps
|
731
962
|
});
|
732
963
|
}
|
733
|
-
getBranchMigrationHistory(workspace, database, branch, options = {}) {
|
734
|
-
return operationsByTag.branch.getBranchMigrationHistory({
|
735
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
736
|
-
body: options,
|
737
|
-
...this.extraProps
|
738
|
-
});
|
739
|
-
}
|
740
|
-
executeBranchMigrationPlan(workspace, database, branch, migrationPlan) {
|
741
|
-
return operationsByTag.branch.executeBranchMigrationPlan({
|
742
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
743
|
-
body: migrationPlan,
|
744
|
-
...this.extraProps
|
745
|
-
});
|
746
|
-
}
|
747
|
-
getBranchMigrationPlan(workspace, database, branch, schema) {
|
748
|
-
return operationsByTag.branch.getBranchMigrationPlan({
|
749
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
750
|
-
body: schema,
|
751
|
-
...this.extraProps
|
752
|
-
});
|
753
|
-
}
|
754
964
|
getBranchStats(workspace, database, branch) {
|
755
965
|
return operationsByTag.branch.getBranchStats({
|
756
966
|
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
@@ -831,9 +1041,10 @@ class RecordsApi {
|
|
831
1041
|
constructor(extraProps) {
|
832
1042
|
this.extraProps = extraProps;
|
833
1043
|
}
|
834
|
-
insertRecord(workspace, database, branch, tableName, record) {
|
1044
|
+
insertRecord(workspace, database, branch, tableName, record, options = {}) {
|
835
1045
|
return operationsByTag.records.insertRecord({
|
836
1046
|
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1047
|
+
queryParams: options,
|
837
1048
|
body: record,
|
838
1049
|
...this.extraProps
|
839
1050
|
});
|
@@ -862,21 +1073,24 @@ class RecordsApi {
|
|
862
1073
|
...this.extraProps
|
863
1074
|
});
|
864
1075
|
}
|
865
|
-
deleteRecord(workspace, database, branch, tableName, recordId) {
|
1076
|
+
deleteRecord(workspace, database, branch, tableName, recordId, options = {}) {
|
866
1077
|
return operationsByTag.records.deleteRecord({
|
867
1078
|
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
|
1079
|
+
queryParams: options,
|
868
1080
|
...this.extraProps
|
869
1081
|
});
|
870
1082
|
}
|
871
1083
|
getRecord(workspace, database, branch, tableName, recordId, options = {}) {
|
872
1084
|
return operationsByTag.records.getRecord({
|
873
1085
|
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
|
1086
|
+
queryParams: options,
|
874
1087
|
...this.extraProps
|
875
1088
|
});
|
876
1089
|
}
|
877
|
-
bulkInsertTableRecords(workspace, database, branch, tableName, records) {
|
1090
|
+
bulkInsertTableRecords(workspace, database, branch, tableName, records, options = {}) {
|
878
1091
|
return operationsByTag.records.bulkInsertTableRecords({
|
879
1092
|
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1093
|
+
queryParams: options,
|
880
1094
|
body: { records },
|
881
1095
|
...this.extraProps
|
882
1096
|
});
|
@@ -888,6 +1102,13 @@ class RecordsApi {
|
|
888
1102
|
...this.extraProps
|
889
1103
|
});
|
890
1104
|
}
|
1105
|
+
searchTable(workspace, database, branch, tableName, query) {
|
1106
|
+
return operationsByTag.records.searchTable({
|
1107
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1108
|
+
body: query,
|
1109
|
+
...this.extraProps
|
1110
|
+
});
|
1111
|
+
}
|
891
1112
|
searchBranch(workspace, database, branch, query) {
|
892
1113
|
return operationsByTag.records.searchBranch({
|
893
1114
|
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
@@ -896,6 +1117,131 @@ class RecordsApi {
|
|
896
1117
|
});
|
897
1118
|
}
|
898
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
|
+
}
|
899
1245
|
|
900
1246
|
class XataApiPlugin {
|
901
1247
|
async build(options) {
|
@@ -920,18 +1266,18 @@ var __privateAdd$6 = (obj, member, value) => {
|
|
920
1266
|
throw TypeError("Cannot add the same private member more than once");
|
921
1267
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
922
1268
|
};
|
923
|
-
var __privateSet$
|
1269
|
+
var __privateSet$6 = (obj, member, value, setter) => {
|
924
1270
|
__accessCheck$6(obj, member, "write to private field");
|
925
1271
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
926
1272
|
return value;
|
927
1273
|
};
|
928
|
-
var _query;
|
1274
|
+
var _query, _page;
|
929
1275
|
class Page {
|
930
1276
|
constructor(query, meta, records = []) {
|
931
1277
|
__privateAdd$6(this, _query, void 0);
|
932
|
-
__privateSet$
|
1278
|
+
__privateSet$6(this, _query, query);
|
933
1279
|
this.meta = meta;
|
934
|
-
this.records = records;
|
1280
|
+
this.records = new RecordArray(this, records);
|
935
1281
|
}
|
936
1282
|
async nextPage(size, offset) {
|
937
1283
|
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, after: this.meta.page.cursor } });
|
@@ -951,9 +1297,56 @@ class Page {
|
|
951
1297
|
}
|
952
1298
|
_query = new WeakMap();
|
953
1299
|
const PAGINATION_MAX_SIZE = 200;
|
954
|
-
const PAGINATION_DEFAULT_SIZE =
|
1300
|
+
const PAGINATION_DEFAULT_SIZE = 20;
|
955
1301
|
const PAGINATION_MAX_OFFSET = 800;
|
956
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();
|
957
1350
|
|
958
1351
|
var __accessCheck$5 = (obj, member, msg) => {
|
959
1352
|
if (!member.has(obj))
|
@@ -968,25 +1361,26 @@ var __privateAdd$5 = (obj, member, value) => {
|
|
968
1361
|
throw TypeError("Cannot add the same private member more than once");
|
969
1362
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
970
1363
|
};
|
971
|
-
var __privateSet$
|
1364
|
+
var __privateSet$5 = (obj, member, value, setter) => {
|
972
1365
|
__accessCheck$5(obj, member, "write to private field");
|
973
1366
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
974
1367
|
return value;
|
975
1368
|
};
|
976
1369
|
var _table$1, _repository, _data;
|
977
1370
|
const _Query = class {
|
978
|
-
constructor(repository, table, data,
|
1371
|
+
constructor(repository, table, data, rawParent) {
|
979
1372
|
__privateAdd$5(this, _table$1, void 0);
|
980
1373
|
__privateAdd$5(this, _repository, void 0);
|
981
1374
|
__privateAdd$5(this, _data, { filter: {} });
|
982
1375
|
this.meta = { page: { cursor: "start", more: true } };
|
983
|
-
this.records = [];
|
984
|
-
__privateSet$
|
1376
|
+
this.records = new RecordArray(this, []);
|
1377
|
+
__privateSet$5(this, _table$1, table);
|
985
1378
|
if (repository) {
|
986
|
-
__privateSet$
|
1379
|
+
__privateSet$5(this, _repository, repository);
|
987
1380
|
} else {
|
988
|
-
__privateSet$
|
1381
|
+
__privateSet$5(this, _repository, this);
|
989
1382
|
}
|
1383
|
+
const parent = cleanParent(data, rawParent);
|
990
1384
|
__privateGet$5(this, _data).filter = data.filter ?? parent?.filter ?? {};
|
991
1385
|
__privateGet$5(this, _data).filter.$any = data.filter?.$any ?? parent?.filter?.$any;
|
992
1386
|
__privateGet$5(this, _data).filter.$all = data.filter?.$all ?? parent?.filter?.$all;
|
@@ -1031,55 +1425,88 @@ const _Query = class {
|
|
1031
1425
|
}
|
1032
1426
|
filter(a, b) {
|
1033
1427
|
if (arguments.length === 1) {
|
1034
|
-
const constraints = Object.entries(a).map(([column, constraint]) => ({ [column]: constraint }));
|
1428
|
+
const constraints = Object.entries(a ?? {}).map(([column, constraint]) => ({ [column]: constraint }));
|
1035
1429
|
const $all = compact([__privateGet$5(this, _data).filter?.$all].flat().concat(constraints));
|
1036
1430
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
1037
1431
|
} else {
|
1038
|
-
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));
|
1039
1434
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
1040
1435
|
}
|
1041
1436
|
}
|
1042
|
-
|
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") {
|
1043
1445
|
const originalSort = [__privateGet$5(this, _data).sort ?? []].flat();
|
1044
1446
|
const sort = [...originalSort, { column, direction }];
|
1045
1447
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { sort }, __privateGet$5(this, _data));
|
1046
1448
|
}
|
1047
1449
|
select(columns) {
|
1048
|
-
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
|
+
);
|
1049
1456
|
}
|
1050
1457
|
getPaginated(options = {}) {
|
1051
1458
|
const query = new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), options, __privateGet$5(this, _data));
|
1052
1459
|
return __privateGet$5(this, _repository).query(query);
|
1053
1460
|
}
|
1054
1461
|
async *[Symbol.asyncIterator]() {
|
1055
|
-
for await (const [record] of this.getIterator(1)) {
|
1462
|
+
for await (const [record] of this.getIterator({ batchSize: 1 })) {
|
1056
1463
|
yield record;
|
1057
1464
|
}
|
1058
1465
|
}
|
1059
|
-
async *getIterator(
|
1060
|
-
|
1061
|
-
let
|
1062
|
-
|
1063
|
-
|
1064
|
-
|
1065
|
-
|
1066
|
-
|
1466
|
+
async *getIterator(options = {}) {
|
1467
|
+
const { batchSize = 1 } = options;
|
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;
|
1067
1475
|
}
|
1068
1476
|
}
|
1069
1477
|
async getMany(options = {}) {
|
1070
|
-
const {
|
1071
|
-
|
1478
|
+
const { pagination = {}, ...rest } = options;
|
1479
|
+
const { size = PAGINATION_DEFAULT_SIZE, offset } = pagination;
|
1480
|
+
const batchSize = size <= PAGINATION_MAX_SIZE ? size : PAGINATION_MAX_SIZE;
|
1481
|
+
let page = await this.getPaginated({ ...rest, pagination: { size: batchSize, offset } });
|
1482
|
+
const results = [...page.records];
|
1483
|
+
while (page.hasNextPage() && results.length < size) {
|
1484
|
+
page = await page.nextPage();
|
1485
|
+
results.push(...page.records);
|
1486
|
+
}
|
1487
|
+
if (page.hasNextPage() && options.pagination?.size === void 0) {
|
1488
|
+
console.trace("Calling getMany does not return all results. Paginate to get all results or call getAll.");
|
1489
|
+
}
|
1490
|
+
const array = new RecordArray(page, results.slice(0, size));
|
1491
|
+
return array;
|
1072
1492
|
}
|
1073
|
-
async getAll(
|
1493
|
+
async getAll(options = {}) {
|
1494
|
+
const { batchSize = PAGINATION_MAX_SIZE, ...rest } = options;
|
1074
1495
|
const results = [];
|
1075
|
-
for await (const page of this.getIterator(
|
1496
|
+
for await (const page of this.getIterator({ ...rest, batchSize })) {
|
1076
1497
|
results.push(...page);
|
1077
1498
|
}
|
1078
1499
|
return results;
|
1079
1500
|
}
|
1080
1501
|
async getFirst(options = {}) {
|
1081
1502
|
const records = await this.getMany({ ...options, pagination: { size: 1 } });
|
1082
|
-
return records[0]
|
1503
|
+
return records[0] ?? null;
|
1504
|
+
}
|
1505
|
+
async getFirstOrThrow(options = {}) {
|
1506
|
+
const records = await this.getMany({ ...options, pagination: { size: 1 } });
|
1507
|
+
if (records[0] === void 0)
|
1508
|
+
throw new Error("No results found.");
|
1509
|
+
return records[0];
|
1083
1510
|
}
|
1084
1511
|
cache(ttl) {
|
1085
1512
|
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { cache: ttl }, __privateGet$5(this, _data));
|
@@ -1104,12 +1531,20 @@ let Query = _Query;
|
|
1104
1531
|
_table$1 = new WeakMap();
|
1105
1532
|
_repository = new WeakMap();
|
1106
1533
|
_data = new WeakMap();
|
1534
|
+
function cleanParent(data, parent) {
|
1535
|
+
if (isCursorPaginationOptions(data.pagination)) {
|
1536
|
+
return { ...parent, sorting: void 0, filter: void 0 };
|
1537
|
+
}
|
1538
|
+
return parent;
|
1539
|
+
}
|
1107
1540
|
|
1108
1541
|
function isIdentifiable(x) {
|
1109
1542
|
return isObject(x) && isString(x?.id);
|
1110
1543
|
}
|
1111
1544
|
function isXataRecord(x) {
|
1112
|
-
|
1545
|
+
const record = x;
|
1546
|
+
const metadata = record?.getMetadata();
|
1547
|
+
return isIdentifiable(x) && isObject(metadata) && typeof metadata.version === "number";
|
1113
1548
|
}
|
1114
1549
|
|
1115
1550
|
function isSortFilterString(value) {
|
@@ -1148,7 +1583,7 @@ var __privateAdd$4 = (obj, member, value) => {
|
|
1148
1583
|
throw TypeError("Cannot add the same private member more than once");
|
1149
1584
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
1150
1585
|
};
|
1151
|
-
var __privateSet$
|
1586
|
+
var __privateSet$4 = (obj, member, value, setter) => {
|
1152
1587
|
__accessCheck$4(obj, member, "write to private field");
|
1153
1588
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
1154
1589
|
return value;
|
@@ -1157,180 +1592,284 @@ var __privateMethod$2 = (obj, member, method) => {
|
|
1157
1592
|
__accessCheck$4(obj, member, "access private method");
|
1158
1593
|
return method;
|
1159
1594
|
};
|
1160
|
-
var _table, _getFetchProps, _cache,
|
1595
|
+
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;
|
1161
1596
|
class Repository extends Query {
|
1162
1597
|
}
|
1163
1598
|
class RestRepository extends Query {
|
1164
1599
|
constructor(options) {
|
1165
|
-
super(
|
1600
|
+
super(
|
1601
|
+
null,
|
1602
|
+
{ name: options.table, schema: options.schemaTables?.find((table) => table.name === options.table) },
|
1603
|
+
{}
|
1604
|
+
);
|
1166
1605
|
__privateAdd$4(this, _insertRecordWithoutId);
|
1167
1606
|
__privateAdd$4(this, _insertRecordWithId);
|
1168
1607
|
__privateAdd$4(this, _bulkInsertTableRecords);
|
1169
1608
|
__privateAdd$4(this, _updateRecordWithID);
|
1170
1609
|
__privateAdd$4(this, _upsertRecordWithID);
|
1171
1610
|
__privateAdd$4(this, _deleteRecord);
|
1172
|
-
__privateAdd$4(this, _invalidateCache);
|
1173
|
-
__privateAdd$4(this, _setCacheRecord);
|
1174
|
-
__privateAdd$4(this, _getCacheRecord);
|
1175
1611
|
__privateAdd$4(this, _setCacheQuery);
|
1176
1612
|
__privateAdd$4(this, _getCacheQuery);
|
1177
|
-
__privateAdd$4(this,
|
1613
|
+
__privateAdd$4(this, _getSchemaTables$1);
|
1178
1614
|
__privateAdd$4(this, _table, void 0);
|
1179
1615
|
__privateAdd$4(this, _getFetchProps, void 0);
|
1616
|
+
__privateAdd$4(this, _db, void 0);
|
1180
1617
|
__privateAdd$4(this, _cache, void 0);
|
1181
|
-
__privateAdd$4(this,
|
1182
|
-
|
1183
|
-
__privateSet$
|
1184
|
-
this
|
1185
|
-
__privateSet$
|
1186
|
-
|
1187
|
-
|
1188
|
-
|
1189
|
-
|
1190
|
-
|
1191
|
-
|
1192
|
-
|
1193
|
-
|
1194
|
-
|
1195
|
-
throw new Error("The id can't be empty");
|
1196
|
-
const record = await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a, b);
|
1197
|
-
await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
|
1198
|
-
return record;
|
1199
|
-
}
|
1200
|
-
if (isObject(a) && isString(a.id)) {
|
1201
|
-
if (a.id === "")
|
1202
|
-
throw new Error("The id can't be empty");
|
1203
|
-
const record = await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a.id, { ...a, id: void 0 });
|
1204
|
-
await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
|
1205
|
-
return record;
|
1206
|
-
}
|
1207
|
-
if (isObject(a)) {
|
1208
|
-
const record = await __privateMethod$2(this, _insertRecordWithoutId, insertRecordWithoutId_fn).call(this, a);
|
1209
|
-
await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
|
1210
|
-
return record;
|
1211
|
-
}
|
1212
|
-
throw new Error("Invalid arguments for create method");
|
1213
|
-
}
|
1214
|
-
async read(recordId) {
|
1215
|
-
const cacheRecord = await __privateMethod$2(this, _getCacheRecord, getCacheRecord_fn).call(this, recordId);
|
1216
|
-
if (cacheRecord)
|
1217
|
-
return cacheRecord;
|
1218
|
-
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1219
|
-
try {
|
1220
|
-
const response = await getRecord({
|
1221
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
|
1222
|
-
...fetchProps
|
1618
|
+
__privateAdd$4(this, _schemaTables$2, void 0);
|
1619
|
+
__privateAdd$4(this, _trace, void 0);
|
1620
|
+
__privateSet$4(this, _table, options.table);
|
1621
|
+
__privateSet$4(this, _getFetchProps, options.pluginOptions.getFetchProps);
|
1622
|
+
__privateSet$4(this, _db, options.db);
|
1623
|
+
__privateSet$4(this, _cache, options.pluginOptions.cache);
|
1624
|
+
__privateSet$4(this, _schemaTables$2, options.schemaTables);
|
1625
|
+
const trace = options.pluginOptions.trace ?? defaultTrace;
|
1626
|
+
__privateSet$4(this, _trace, async (name, fn, options2 = {}) => {
|
1627
|
+
return trace(name, fn, {
|
1628
|
+
...options2,
|
1629
|
+
[TraceAttributes.TABLE]: __privateGet$4(this, _table),
|
1630
|
+
[TraceAttributes.KIND]: "sdk-operation",
|
1631
|
+
[TraceAttributes.VERSION]: VERSION
|
1223
1632
|
});
|
1224
|
-
|
1225
|
-
|
1226
|
-
|
1227
|
-
|
1228
|
-
|
1633
|
+
});
|
1634
|
+
}
|
1635
|
+
async create(a, b, c) {
|
1636
|
+
return __privateGet$4(this, _trace).call(this, "create", async () => {
|
1637
|
+
if (Array.isArray(a)) {
|
1638
|
+
if (a.length === 0)
|
1639
|
+
return [];
|
1640
|
+
const columns = isStringArray(b) ? b : void 0;
|
1641
|
+
return __privateMethod$2(this, _bulkInsertTableRecords, bulkInsertTableRecords_fn).call(this, a, columns);
|
1229
1642
|
}
|
1230
|
-
|
1231
|
-
|
1643
|
+
if (isString(a) && isObject(b)) {
|
1644
|
+
if (a === "")
|
1645
|
+
throw new Error("The id can't be empty");
|
1646
|
+
const columns = isStringArray(c) ? c : void 0;
|
1647
|
+
return __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a, b, columns);
|
1648
|
+
}
|
1649
|
+
if (isObject(a) && isString(a.id)) {
|
1650
|
+
if (a.id === "")
|
1651
|
+
throw new Error("The id can't be empty");
|
1652
|
+
const columns = isStringArray(b) ? b : void 0;
|
1653
|
+
return __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a.id, { ...a, id: void 0 }, columns);
|
1654
|
+
}
|
1655
|
+
if (isObject(a)) {
|
1656
|
+
const columns = isStringArray(b) ? b : void 0;
|
1657
|
+
return __privateMethod$2(this, _insertRecordWithoutId, insertRecordWithoutId_fn).call(this, a, columns);
|
1658
|
+
}
|
1659
|
+
throw new Error("Invalid arguments for create method");
|
1660
|
+
});
|
1232
1661
|
}
|
1233
|
-
async
|
1234
|
-
|
1235
|
-
|
1236
|
-
|
1662
|
+
async read(a, b) {
|
1663
|
+
return __privateGet$4(this, _trace).call(this, "read", async () => {
|
1664
|
+
const columns = isStringArray(b) ? b : ["*"];
|
1665
|
+
if (Array.isArray(a)) {
|
1666
|
+
if (a.length === 0)
|
1667
|
+
return [];
|
1668
|
+
const ids = a.map((item) => extractId(item));
|
1669
|
+
const finalObjects = await this.getAll({ filter: { id: { $any: compact(ids) } }, columns });
|
1670
|
+
const dictionary = finalObjects.reduce((acc, object) => {
|
1671
|
+
acc[object.id] = object;
|
1672
|
+
return acc;
|
1673
|
+
}, {});
|
1674
|
+
return ids.map((id2) => dictionary[id2 ?? ""] ?? null);
|
1237
1675
|
}
|
1238
|
-
|
1239
|
-
|
1240
|
-
|
1241
|
-
|
1242
|
-
|
1243
|
-
|
1244
|
-
|
1245
|
-
|
1246
|
-
|
1247
|
-
|
1248
|
-
|
1249
|
-
|
1250
|
-
|
1251
|
-
|
1252
|
-
|
1676
|
+
const id = extractId(a);
|
1677
|
+
if (id) {
|
1678
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1679
|
+
try {
|
1680
|
+
const response = await getRecord({
|
1681
|
+
pathParams: {
|
1682
|
+
workspace: "{workspaceId}",
|
1683
|
+
dbBranchName: "{dbBranch}",
|
1684
|
+
tableName: __privateGet$4(this, _table),
|
1685
|
+
recordId: id
|
1686
|
+
},
|
1687
|
+
queryParams: { columns },
|
1688
|
+
...fetchProps
|
1689
|
+
});
|
1690
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1691
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response);
|
1692
|
+
} catch (e) {
|
1693
|
+
if (isObject(e) && e.status === 404) {
|
1694
|
+
return null;
|
1695
|
+
}
|
1696
|
+
throw e;
|
1697
|
+
}
|
1698
|
+
}
|
1699
|
+
return null;
|
1700
|
+
});
|
1253
1701
|
}
|
1254
|
-
async
|
1255
|
-
|
1256
|
-
|
1257
|
-
|
1702
|
+
async readOrThrow(a, b) {
|
1703
|
+
return __privateGet$4(this, _trace).call(this, "readOrThrow", async () => {
|
1704
|
+
const result = await this.read(a, b);
|
1705
|
+
if (Array.isArray(result)) {
|
1706
|
+
const missingIds = compact(
|
1707
|
+
a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
|
1708
|
+
);
|
1709
|
+
if (missingIds.length > 0) {
|
1710
|
+
throw new Error(`Could not find records with ids: ${missingIds.join(", ")}`);
|
1711
|
+
}
|
1712
|
+
return result;
|
1258
1713
|
}
|
1259
|
-
|
1260
|
-
|
1261
|
-
|
1262
|
-
|
1263
|
-
|
1264
|
-
|
1265
|
-
return record;
|
1266
|
-
}
|
1267
|
-
if (isObject(a) && isString(a.id)) {
|
1268
|
-
await __privateMethod$2(this, _invalidateCache, invalidateCache_fn).call(this, a.id);
|
1269
|
-
const record = await __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a.id, { ...a, id: void 0 });
|
1270
|
-
await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
|
1271
|
-
return record;
|
1272
|
-
}
|
1273
|
-
throw new Error("Invalid arguments for createOrUpdate method");
|
1714
|
+
if (result === null) {
|
1715
|
+
const id = extractId(a) ?? "unknown";
|
1716
|
+
throw new Error(`Record with id ${id} not found`);
|
1717
|
+
}
|
1718
|
+
return result;
|
1719
|
+
});
|
1274
1720
|
}
|
1275
|
-
async
|
1276
|
-
|
1277
|
-
if (a
|
1278
|
-
|
1721
|
+
async update(a, b, c) {
|
1722
|
+
return __privateGet$4(this, _trace).call(this, "update", async () => {
|
1723
|
+
if (Array.isArray(a)) {
|
1724
|
+
if (a.length === 0)
|
1725
|
+
return [];
|
1726
|
+
if (a.length > 100) {
|
1727
|
+
console.warn("Bulk update operation is not optimized in the Xata API yet, this request might be slow");
|
1728
|
+
}
|
1729
|
+
const columns = isStringArray(b) ? b : ["*"];
|
1730
|
+
return Promise.all(a.map((object) => this.update(object, columns)));
|
1279
1731
|
}
|
1280
|
-
|
1281
|
-
|
1282
|
-
|
1283
|
-
|
1284
|
-
|
1285
|
-
|
1286
|
-
|
1287
|
-
|
1288
|
-
|
1289
|
-
|
1290
|
-
|
1291
|
-
|
1292
|
-
|
1293
|
-
|
1732
|
+
if (isString(a) && isObject(b)) {
|
1733
|
+
const columns = isStringArray(c) ? c : void 0;
|
1734
|
+
return __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a, b, columns);
|
1735
|
+
}
|
1736
|
+
if (isObject(a) && isString(a.id)) {
|
1737
|
+
const columns = isStringArray(b) ? b : void 0;
|
1738
|
+
return __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns);
|
1739
|
+
}
|
1740
|
+
throw new Error("Invalid arguments for update method");
|
1741
|
+
});
|
1742
|
+
}
|
1743
|
+
async updateOrThrow(a, b, c) {
|
1744
|
+
return __privateGet$4(this, _trace).call(this, "updateOrThrow", async () => {
|
1745
|
+
const result = await this.update(a, b, c);
|
1746
|
+
if (Array.isArray(result)) {
|
1747
|
+
const missingIds = compact(
|
1748
|
+
a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
|
1749
|
+
);
|
1750
|
+
if (missingIds.length > 0) {
|
1751
|
+
throw new Error(`Could not find records with ids: ${missingIds.join(", ")}`);
|
1752
|
+
}
|
1753
|
+
return result;
|
1754
|
+
}
|
1755
|
+
if (result === null) {
|
1756
|
+
const id = extractId(a) ?? "unknown";
|
1757
|
+
throw new Error(`Record with id ${id} not found`);
|
1758
|
+
}
|
1759
|
+
return result;
|
1760
|
+
});
|
1761
|
+
}
|
1762
|
+
async createOrUpdate(a, b, c) {
|
1763
|
+
return __privateGet$4(this, _trace).call(this, "createOrUpdate", async () => {
|
1764
|
+
if (Array.isArray(a)) {
|
1765
|
+
if (a.length === 0)
|
1766
|
+
return [];
|
1767
|
+
if (a.length > 100) {
|
1768
|
+
console.warn("Bulk update operation is not optimized in the Xata API yet, this request might be slow");
|
1769
|
+
}
|
1770
|
+
const columns = isStringArray(b) ? b : ["*"];
|
1771
|
+
return Promise.all(a.map((object) => this.createOrUpdate(object, columns)));
|
1772
|
+
}
|
1773
|
+
if (isString(a) && isObject(b)) {
|
1774
|
+
const columns = isStringArray(c) ? c : void 0;
|
1775
|
+
return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a, b, columns);
|
1776
|
+
}
|
1777
|
+
if (isObject(a) && isString(a.id)) {
|
1778
|
+
const columns = isStringArray(c) ? c : void 0;
|
1779
|
+
return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns);
|
1780
|
+
}
|
1781
|
+
throw new Error("Invalid arguments for createOrUpdate method");
|
1782
|
+
});
|
1783
|
+
}
|
1784
|
+
async delete(a, b) {
|
1785
|
+
return __privateGet$4(this, _trace).call(this, "delete", async () => {
|
1786
|
+
if (Array.isArray(a)) {
|
1787
|
+
if (a.length === 0)
|
1788
|
+
return [];
|
1789
|
+
if (a.length > 100) {
|
1790
|
+
console.warn("Bulk delete operation is not optimized in the Xata API yet, this request might be slow");
|
1791
|
+
}
|
1792
|
+
return Promise.all(a.map((id) => this.delete(id, b)));
|
1793
|
+
}
|
1794
|
+
if (isString(a)) {
|
1795
|
+
return __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a, b);
|
1796
|
+
}
|
1797
|
+
if (isObject(a) && isString(a.id)) {
|
1798
|
+
return __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a.id, b);
|
1799
|
+
}
|
1800
|
+
throw new Error("Invalid arguments for delete method");
|
1801
|
+
});
|
1802
|
+
}
|
1803
|
+
async deleteOrThrow(a, b) {
|
1804
|
+
return __privateGet$4(this, _trace).call(this, "deleteOrThrow", async () => {
|
1805
|
+
const result = await this.delete(a, b);
|
1806
|
+
if (Array.isArray(result)) {
|
1807
|
+
const missingIds = compact(
|
1808
|
+
a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
|
1809
|
+
);
|
1810
|
+
if (missingIds.length > 0) {
|
1811
|
+
throw new Error(`Could not find records with ids: ${missingIds.join(", ")}`);
|
1812
|
+
}
|
1813
|
+
return result;
|
1814
|
+
} else if (result === null) {
|
1815
|
+
const id = extractId(a) ?? "unknown";
|
1816
|
+
throw new Error(`Record with id ${id} not found`);
|
1817
|
+
}
|
1818
|
+
return result;
|
1819
|
+
});
|
1294
1820
|
}
|
1295
1821
|
async search(query, options = {}) {
|
1296
|
-
|
1297
|
-
|
1298
|
-
|
1299
|
-
|
1300
|
-
|
1822
|
+
return __privateGet$4(this, _trace).call(this, "search", async () => {
|
1823
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1824
|
+
const { records } = await searchTable({
|
1825
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table) },
|
1826
|
+
body: {
|
1827
|
+
query,
|
1828
|
+
fuzziness: options.fuzziness,
|
1829
|
+
prefix: options.prefix,
|
1830
|
+
highlight: options.highlight,
|
1831
|
+
filter: options.filter,
|
1832
|
+
boosters: options.boosters
|
1833
|
+
},
|
1834
|
+
...fetchProps
|
1835
|
+
});
|
1836
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1837
|
+
return records.map((item) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), item));
|
1301
1838
|
});
|
1302
|
-
const schema = await __privateMethod$2(this, _getSchema$1, getSchema_fn$1).call(this);
|
1303
|
-
return records.map((item) => initObject(this.db, schema, __privateGet$4(this, _table), item));
|
1304
1839
|
}
|
1305
1840
|
async query(query) {
|
1306
|
-
|
1307
|
-
|
1308
|
-
|
1309
|
-
|
1310
|
-
|
1311
|
-
|
1312
|
-
|
1313
|
-
|
1314
|
-
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1841
|
+
return __privateGet$4(this, _trace).call(this, "query", async () => {
|
1842
|
+
const cacheQuery = await __privateMethod$2(this, _getCacheQuery, getCacheQuery_fn).call(this, query);
|
1843
|
+
if (cacheQuery)
|
1844
|
+
return new Page(query, cacheQuery.meta, cacheQuery.records);
|
1845
|
+
const data = query.getQueryOptions();
|
1846
|
+
const body = {
|
1847
|
+
filter: cleanFilter(data.filter),
|
1848
|
+
sort: data.sort !== void 0 ? buildSortFilter(data.sort) : void 0,
|
1849
|
+
page: data.pagination,
|
1850
|
+
columns: data.columns
|
1851
|
+
};
|
1852
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1853
|
+
const { meta, records: objects } = await queryTable({
|
1854
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table) },
|
1855
|
+
body,
|
1856
|
+
...fetchProps
|
1857
|
+
});
|
1858
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1859
|
+
const records = objects.map((record) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), record));
|
1860
|
+
await __privateMethod$2(this, _setCacheQuery, setCacheQuery_fn).call(this, query, meta, records);
|
1861
|
+
return new Page(query, meta, records);
|
1321
1862
|
});
|
1322
|
-
const schema = await __privateMethod$2(this, _getSchema$1, getSchema_fn$1).call(this);
|
1323
|
-
const records = objects.map((record) => initObject(this.db, schema, __privateGet$4(this, _table), record));
|
1324
|
-
await __privateMethod$2(this, _setCacheQuery, setCacheQuery_fn).call(this, query, meta, records);
|
1325
|
-
return new Page(query, meta, records);
|
1326
1863
|
}
|
1327
1864
|
}
|
1328
1865
|
_table = new WeakMap();
|
1329
1866
|
_getFetchProps = new WeakMap();
|
1867
|
+
_db = new WeakMap();
|
1330
1868
|
_cache = new WeakMap();
|
1331
|
-
|
1869
|
+
_schemaTables$2 = new WeakMap();
|
1870
|
+
_trace = new WeakMap();
|
1332
1871
|
_insertRecordWithoutId = new WeakSet();
|
1333
|
-
insertRecordWithoutId_fn = async function(object) {
|
1872
|
+
insertRecordWithoutId_fn = async function(object, columns = ["*"]) {
|
1334
1873
|
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1335
1874
|
const record = transformObjectLinks(object);
|
1336
1875
|
const response = await insertRecord({
|
@@ -1339,17 +1878,15 @@ insertRecordWithoutId_fn = async function(object) {
|
|
1339
1878
|
dbBranchName: "{dbBranch}",
|
1340
1879
|
tableName: __privateGet$4(this, _table)
|
1341
1880
|
},
|
1881
|
+
queryParams: { columns },
|
1342
1882
|
body: record,
|
1343
1883
|
...fetchProps
|
1344
1884
|
});
|
1345
|
-
const
|
1346
|
-
|
1347
|
-
throw new Error("The server failed to save the record");
|
1348
|
-
}
|
1349
|
-
return finalObject;
|
1885
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1886
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response);
|
1350
1887
|
};
|
1351
1888
|
_insertRecordWithId = new WeakSet();
|
1352
|
-
insertRecordWithId_fn = async function(recordId, object) {
|
1889
|
+
insertRecordWithId_fn = async function(recordId, object, columns = ["*"]) {
|
1353
1890
|
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1354
1891
|
const record = transformObjectLinks(object);
|
1355
1892
|
const response = await insertRecordWithID({
|
@@ -1360,88 +1897,78 @@ insertRecordWithId_fn = async function(recordId, object) {
|
|
1360
1897
|
recordId
|
1361
1898
|
},
|
1362
1899
|
body: record,
|
1363
|
-
queryParams: { createOnly: true },
|
1900
|
+
queryParams: { createOnly: true, columns },
|
1364
1901
|
...fetchProps
|
1365
1902
|
});
|
1366
|
-
const
|
1367
|
-
|
1368
|
-
throw new Error("The server failed to save the record");
|
1369
|
-
}
|
1370
|
-
return finalObject;
|
1903
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1904
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response);
|
1371
1905
|
};
|
1372
1906
|
_bulkInsertTableRecords = new WeakSet();
|
1373
|
-
bulkInsertTableRecords_fn = async function(objects) {
|
1907
|
+
bulkInsertTableRecords_fn = async function(objects, columns = ["*"]) {
|
1374
1908
|
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1375
1909
|
const records = objects.map((object) => transformObjectLinks(object));
|
1376
1910
|
const response = await bulkInsertTableRecords({
|
1377
1911
|
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table) },
|
1912
|
+
queryParams: { columns },
|
1378
1913
|
body: { records },
|
1379
1914
|
...fetchProps
|
1380
1915
|
});
|
1381
|
-
|
1382
|
-
|
1383
|
-
throw new Error("The server failed to save some records");
|
1916
|
+
if (!isResponseWithRecords(response)) {
|
1917
|
+
throw new Error("Request included columns but server didn't include them");
|
1384
1918
|
}
|
1385
|
-
|
1919
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1920
|
+
return response.records?.map((item) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), item));
|
1386
1921
|
};
|
1387
1922
|
_updateRecordWithID = new WeakSet();
|
1388
|
-
updateRecordWithID_fn = async function(recordId, object) {
|
1923
|
+
updateRecordWithID_fn = async function(recordId, object, columns = ["*"]) {
|
1389
1924
|
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1390
1925
|
const record = transformObjectLinks(object);
|
1391
|
-
|
1392
|
-
|
1393
|
-
|
1394
|
-
|
1395
|
-
|
1396
|
-
|
1397
|
-
|
1398
|
-
|
1399
|
-
|
1926
|
+
try {
|
1927
|
+
const response = await updateRecordWithID({
|
1928
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
|
1929
|
+
queryParams: { columns },
|
1930
|
+
body: record,
|
1931
|
+
...fetchProps
|
1932
|
+
});
|
1933
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1934
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response);
|
1935
|
+
} catch (e) {
|
1936
|
+
if (isObject(e) && e.status === 404) {
|
1937
|
+
return null;
|
1938
|
+
}
|
1939
|
+
throw e;
|
1940
|
+
}
|
1400
1941
|
};
|
1401
1942
|
_upsertRecordWithID = new WeakSet();
|
1402
|
-
upsertRecordWithID_fn = async function(recordId, object) {
|
1943
|
+
upsertRecordWithID_fn = async function(recordId, object, columns = ["*"]) {
|
1403
1944
|
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1404
1945
|
const response = await upsertRecordWithID({
|
1405
1946
|
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
|
1947
|
+
queryParams: { columns },
|
1406
1948
|
body: object,
|
1407
1949
|
...fetchProps
|
1408
1950
|
});
|
1409
|
-
const
|
1410
|
-
|
1411
|
-
throw new Error("The server failed to save the record");
|
1412
|
-
return item;
|
1951
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1952
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response);
|
1413
1953
|
};
|
1414
1954
|
_deleteRecord = new WeakSet();
|
1415
|
-
deleteRecord_fn = async function(recordId) {
|
1955
|
+
deleteRecord_fn = async function(recordId, columns = ["*"]) {
|
1416
1956
|
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1417
|
-
|
1418
|
-
|
1419
|
-
|
1420
|
-
|
1421
|
-
|
1422
|
-
|
1423
|
-
|
1424
|
-
|
1425
|
-
|
1426
|
-
|
1427
|
-
|
1428
|
-
|
1429
|
-
|
1430
|
-
await __privateGet$4(this, _cache).delete(key);
|
1957
|
+
try {
|
1958
|
+
const response = await deleteRecord({
|
1959
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
|
1960
|
+
queryParams: { columns },
|
1961
|
+
...fetchProps
|
1962
|
+
});
|
1963
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1964
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response);
|
1965
|
+
} catch (e) {
|
1966
|
+
if (isObject(e) && e.status === 404) {
|
1967
|
+
return null;
|
1968
|
+
}
|
1969
|
+
throw e;
|
1431
1970
|
}
|
1432
1971
|
};
|
1433
|
-
_setCacheRecord = new WeakSet();
|
1434
|
-
setCacheRecord_fn = async function(record) {
|
1435
|
-
if (!__privateGet$4(this, _cache).cacheRecords)
|
1436
|
-
return;
|
1437
|
-
await __privateGet$4(this, _cache).set(`rec_${__privateGet$4(this, _table)}:${record.id}`, record);
|
1438
|
-
};
|
1439
|
-
_getCacheRecord = new WeakSet();
|
1440
|
-
getCacheRecord_fn = async function(recordId) {
|
1441
|
-
if (!__privateGet$4(this, _cache).cacheRecords)
|
1442
|
-
return null;
|
1443
|
-
return __privateGet$4(this, _cache).get(`rec_${__privateGet$4(this, _table)}:${recordId}`);
|
1444
|
-
};
|
1445
1972
|
_setCacheQuery = new WeakSet();
|
1446
1973
|
setCacheQuery_fn = async function(query, meta, records) {
|
1447
1974
|
await __privateGet$4(this, _cache).set(`query_${__privateGet$4(this, _table)}:${query.key()}`, { date: new Date(), meta, records });
|
@@ -1453,22 +1980,22 @@ getCacheQuery_fn = async function(query) {
|
|
1453
1980
|
if (!result)
|
1454
1981
|
return null;
|
1455
1982
|
const { cache: ttl = __privateGet$4(this, _cache).defaultQueryTTL } = query.getQueryOptions();
|
1456
|
-
if (
|
1457
|
-
return
|
1983
|
+
if (ttl < 0)
|
1984
|
+
return null;
|
1458
1985
|
const hasExpired = result.date.getTime() + ttl < Date.now();
|
1459
1986
|
return hasExpired ? null : result;
|
1460
1987
|
};
|
1461
|
-
|
1462
|
-
|
1463
|
-
if (__privateGet$4(this,
|
1464
|
-
return __privateGet$4(this,
|
1988
|
+
_getSchemaTables$1 = new WeakSet();
|
1989
|
+
getSchemaTables_fn$1 = async function() {
|
1990
|
+
if (__privateGet$4(this, _schemaTables$2))
|
1991
|
+
return __privateGet$4(this, _schemaTables$2);
|
1465
1992
|
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1466
1993
|
const { schema } = await getBranchDetails({
|
1467
1994
|
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
1468
1995
|
...fetchProps
|
1469
1996
|
});
|
1470
|
-
__privateSet$
|
1471
|
-
return schema;
|
1997
|
+
__privateSet$4(this, _schemaTables$2, schema.tables);
|
1998
|
+
return schema.tables;
|
1472
1999
|
};
|
1473
2000
|
const transformObjectLinks = (object) => {
|
1474
2001
|
return Object.entries(object).reduce((acc, [key, value]) => {
|
@@ -1477,20 +2004,21 @@ const transformObjectLinks = (object) => {
|
|
1477
2004
|
return { ...acc, [key]: isIdentifiable(value) ? value.id : value };
|
1478
2005
|
}, {});
|
1479
2006
|
};
|
1480
|
-
const initObject = (db,
|
2007
|
+
const initObject = (db, schemaTables, table, object) => {
|
1481
2008
|
const result = {};
|
1482
|
-
|
1483
|
-
|
2009
|
+
const { xata, ...rest } = object ?? {};
|
2010
|
+
Object.assign(result, rest);
|
2011
|
+
const { columns } = schemaTables.find(({ name }) => name === table) ?? {};
|
1484
2012
|
if (!columns)
|
1485
2013
|
console.error(`Table ${table} not found in schema`);
|
1486
2014
|
for (const column of columns ?? []) {
|
1487
2015
|
const value = result[column.name];
|
1488
2016
|
switch (column.type) {
|
1489
2017
|
case "datetime": {
|
1490
|
-
const date = new Date(value);
|
1491
|
-
if (isNaN(date.getTime())) {
|
2018
|
+
const date = value !== void 0 ? new Date(value) : void 0;
|
2019
|
+
if (date && isNaN(date.getTime())) {
|
1492
2020
|
console.error(`Failed to parse date ${value} for field ${column.name}`);
|
1493
|
-
} else {
|
2021
|
+
} else if (date) {
|
1494
2022
|
result[column.name] = date;
|
1495
2023
|
}
|
1496
2024
|
break;
|
@@ -1499,36 +2027,54 @@ const initObject = (db, schema, table, object) => {
|
|
1499
2027
|
const linkTable = column.link?.table;
|
1500
2028
|
if (!linkTable) {
|
1501
2029
|
console.error(`Failed to parse link for field ${column.name}`);
|
1502
|
-
} else if (
|
1503
|
-
result[column.name] = initObject(db,
|
2030
|
+
} else if (isObject(value)) {
|
2031
|
+
result[column.name] = initObject(db, schemaTables, linkTable, value);
|
2032
|
+
} else {
|
2033
|
+
result[column.name] = null;
|
1504
2034
|
}
|
1505
2035
|
break;
|
1506
2036
|
}
|
2037
|
+
default:
|
2038
|
+
result[column.name] = value ?? null;
|
2039
|
+
if (column.notNull === true && value === null) {
|
2040
|
+
console.error(`Parse error, column ${column.name} is non nullable and value resolves null`);
|
2041
|
+
}
|
2042
|
+
break;
|
1507
2043
|
}
|
1508
2044
|
}
|
1509
|
-
result.read = function() {
|
1510
|
-
return db[table].read(result["id"]);
|
2045
|
+
result.read = function(columns2) {
|
2046
|
+
return db[table].read(result["id"], columns2);
|
1511
2047
|
};
|
1512
|
-
result.update = function(data) {
|
1513
|
-
return db[table].update(result["id"], data);
|
2048
|
+
result.update = function(data, columns2) {
|
2049
|
+
return db[table].update(result["id"], data, columns2);
|
1514
2050
|
};
|
1515
2051
|
result.delete = function() {
|
1516
2052
|
return db[table].delete(result["id"]);
|
1517
2053
|
};
|
1518
|
-
|
2054
|
+
result.getMetadata = function() {
|
2055
|
+
return xata;
|
2056
|
+
};
|
2057
|
+
for (const prop of ["read", "update", "delete", "getMetadata"]) {
|
1519
2058
|
Object.defineProperty(result, prop, { enumerable: false });
|
1520
2059
|
}
|
1521
2060
|
Object.freeze(result);
|
1522
2061
|
return result;
|
1523
2062
|
};
|
1524
|
-
function
|
1525
|
-
|
1526
|
-
|
1527
|
-
|
1528
|
-
if (
|
1529
|
-
return
|
1530
|
-
|
1531
|
-
|
2063
|
+
function isResponseWithRecords(value) {
|
2064
|
+
return isObject(value) && Array.isArray(value.records);
|
2065
|
+
}
|
2066
|
+
function extractId(value) {
|
2067
|
+
if (isString(value))
|
2068
|
+
return value;
|
2069
|
+
if (isObject(value) && isString(value.id))
|
2070
|
+
return value.id;
|
2071
|
+
return void 0;
|
2072
|
+
}
|
2073
|
+
function cleanFilter(filter) {
|
2074
|
+
if (!filter)
|
2075
|
+
return void 0;
|
2076
|
+
const values = Object.values(filter).filter(Boolean).filter((value) => Array.isArray(value) ? value.length > 0 : true);
|
2077
|
+
return values.length > 0 ? filter : void 0;
|
1532
2078
|
}
|
1533
2079
|
|
1534
2080
|
var __accessCheck$3 = (obj, member, msg) => {
|
@@ -1544,7 +2090,7 @@ var __privateAdd$3 = (obj, member, value) => {
|
|
1544
2090
|
throw TypeError("Cannot add the same private member more than once");
|
1545
2091
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
1546
2092
|
};
|
1547
|
-
var __privateSet$
|
2093
|
+
var __privateSet$3 = (obj, member, value, setter) => {
|
1548
2094
|
__accessCheck$3(obj, member, "write to private field");
|
1549
2095
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
1550
2096
|
return value;
|
@@ -1553,9 +2099,8 @@ var _map;
|
|
1553
2099
|
class SimpleCache {
|
1554
2100
|
constructor(options = {}) {
|
1555
2101
|
__privateAdd$3(this, _map, void 0);
|
1556
|
-
__privateSet$
|
2102
|
+
__privateSet$3(this, _map, /* @__PURE__ */ new Map());
|
1557
2103
|
this.capacity = options.max ?? 500;
|
1558
|
-
this.cacheRecords = options.cacheRecords ?? true;
|
1559
2104
|
this.defaultQueryTTL = options.defaultQueryTTL ?? 60 * 1e3;
|
1560
2105
|
}
|
1561
2106
|
async getAll() {
|
@@ -1581,18 +2126,25 @@ class SimpleCache {
|
|
1581
2126
|
}
|
1582
2127
|
_map = new WeakMap();
|
1583
2128
|
|
1584
|
-
const
|
1585
|
-
const
|
1586
|
-
const
|
1587
|
-
const
|
1588
|
-
const
|
1589
|
-
const
|
2129
|
+
const greaterThan = (value) => ({ $gt: value });
|
2130
|
+
const gt = greaterThan;
|
2131
|
+
const greaterThanEquals = (value) => ({ $ge: value });
|
2132
|
+
const greaterEquals = greaterThanEquals;
|
2133
|
+
const gte = greaterThanEquals;
|
2134
|
+
const ge = greaterThanEquals;
|
2135
|
+
const lessThan = (value) => ({ $lt: value });
|
2136
|
+
const lt = lessThan;
|
2137
|
+
const lessThanEquals = (value) => ({ $le: value });
|
2138
|
+
const lessEquals = lessThanEquals;
|
2139
|
+
const lte = lessThanEquals;
|
2140
|
+
const le = lessThanEquals;
|
1590
2141
|
const exists = (column) => ({ $exists: column });
|
1591
2142
|
const notExists = (column) => ({ $notExists: column });
|
1592
2143
|
const startsWith = (value) => ({ $startsWith: value });
|
1593
2144
|
const endsWith = (value) => ({ $endsWith: value });
|
1594
2145
|
const pattern = (value) => ({ $pattern: value });
|
1595
2146
|
const is = (value) => ({ $is: value });
|
2147
|
+
const equals = is;
|
1596
2148
|
const isNot = (value) => ({ $isNot: value });
|
1597
2149
|
const contains = (value) => ({ $contains: value });
|
1598
2150
|
const includes = (value) => ({ $includes: value });
|
@@ -1613,31 +2165,42 @@ var __privateAdd$2 = (obj, member, value) => {
|
|
1613
2165
|
throw TypeError("Cannot add the same private member more than once");
|
1614
2166
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
1615
2167
|
};
|
1616
|
-
var
|
2168
|
+
var __privateSet$2 = (obj, member, value, setter) => {
|
2169
|
+
__accessCheck$2(obj, member, "write to private field");
|
2170
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
2171
|
+
return value;
|
2172
|
+
};
|
2173
|
+
var _tables, _schemaTables$1;
|
1617
2174
|
class SchemaPlugin extends XataPlugin {
|
1618
|
-
constructor(
|
2175
|
+
constructor(schemaTables) {
|
1619
2176
|
super();
|
1620
|
-
this.tableNames = tableNames;
|
1621
2177
|
__privateAdd$2(this, _tables, {});
|
2178
|
+
__privateAdd$2(this, _schemaTables$1, void 0);
|
2179
|
+
__privateSet$2(this, _schemaTables$1, schemaTables);
|
1622
2180
|
}
|
1623
2181
|
build(pluginOptions) {
|
1624
|
-
const db = new Proxy(
|
1625
|
-
|
1626
|
-
|
1627
|
-
|
1628
|
-
|
1629
|
-
|
2182
|
+
const db = new Proxy(
|
2183
|
+
{},
|
2184
|
+
{
|
2185
|
+
get: (_target, table) => {
|
2186
|
+
if (!isString(table))
|
2187
|
+
throw new Error("Invalid table name");
|
2188
|
+
if (__privateGet$2(this, _tables)[table] === void 0) {
|
2189
|
+
__privateGet$2(this, _tables)[table] = new RestRepository({ db, pluginOptions, table, schemaTables: __privateGet$2(this, _schemaTables$1) });
|
2190
|
+
}
|
2191
|
+
return __privateGet$2(this, _tables)[table];
|
1630
2192
|
}
|
1631
|
-
return __privateGet$2(this, _tables)[table];
|
1632
2193
|
}
|
1633
|
-
|
1634
|
-
|
1635
|
-
|
2194
|
+
);
|
2195
|
+
const tableNames = __privateGet$2(this, _schemaTables$1)?.map(({ name }) => name) ?? [];
|
2196
|
+
for (const table of tableNames) {
|
2197
|
+
db[table] = new RestRepository({ db, pluginOptions, table, schemaTables: __privateGet$2(this, _schemaTables$1) });
|
1636
2198
|
}
|
1637
2199
|
return db;
|
1638
2200
|
}
|
1639
2201
|
}
|
1640
2202
|
_tables = new WeakMap();
|
2203
|
+
_schemaTables$1 = new WeakMap();
|
1641
2204
|
|
1642
2205
|
var __accessCheck$1 = (obj, member, msg) => {
|
1643
2206
|
if (!member.has(obj))
|
@@ -1661,105 +2224,119 @@ var __privateMethod$1 = (obj, member, method) => {
|
|
1661
2224
|
__accessCheck$1(obj, member, "access private method");
|
1662
2225
|
return method;
|
1663
2226
|
};
|
1664
|
-
var
|
2227
|
+
var _schemaTables, _search, search_fn, _getSchemaTables, getSchemaTables_fn;
|
1665
2228
|
class SearchPlugin extends XataPlugin {
|
1666
|
-
constructor(db) {
|
2229
|
+
constructor(db, schemaTables) {
|
1667
2230
|
super();
|
1668
2231
|
this.db = db;
|
1669
2232
|
__privateAdd$1(this, _search);
|
1670
|
-
__privateAdd$1(this,
|
1671
|
-
__privateAdd$1(this,
|
2233
|
+
__privateAdd$1(this, _getSchemaTables);
|
2234
|
+
__privateAdd$1(this, _schemaTables, void 0);
|
2235
|
+
__privateSet$1(this, _schemaTables, schemaTables);
|
1672
2236
|
}
|
1673
2237
|
build({ getFetchProps }) {
|
1674
2238
|
return {
|
1675
2239
|
all: async (query, options = {}) => {
|
1676
2240
|
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options, getFetchProps);
|
1677
|
-
const
|
2241
|
+
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, getFetchProps);
|
1678
2242
|
return records.map((record) => {
|
1679
2243
|
const { table = "orphan" } = record.xata;
|
1680
|
-
return { table, record: initObject(this.db,
|
2244
|
+
return { table, record: initObject(this.db, schemaTables, table, record) };
|
1681
2245
|
});
|
1682
2246
|
},
|
1683
2247
|
byTable: async (query, options = {}) => {
|
1684
2248
|
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options, getFetchProps);
|
1685
|
-
const
|
2249
|
+
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, getFetchProps);
|
1686
2250
|
return records.reduce((acc, record) => {
|
1687
2251
|
const { table = "orphan" } = record.xata;
|
1688
2252
|
const items = acc[table] ?? [];
|
1689
|
-
const item = initObject(this.db,
|
2253
|
+
const item = initObject(this.db, schemaTables, table, record);
|
1690
2254
|
return { ...acc, [table]: [...items, item] };
|
1691
2255
|
}, {});
|
1692
2256
|
}
|
1693
2257
|
};
|
1694
2258
|
}
|
1695
2259
|
}
|
1696
|
-
|
2260
|
+
_schemaTables = new WeakMap();
|
1697
2261
|
_search = new WeakSet();
|
1698
2262
|
search_fn = async function(query, options, getFetchProps) {
|
1699
2263
|
const fetchProps = await getFetchProps();
|
1700
|
-
const { tables, fuzziness } = options ?? {};
|
2264
|
+
const { tables, fuzziness, highlight, prefix } = options ?? {};
|
1701
2265
|
const { records } = await searchBranch({
|
1702
2266
|
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
1703
|
-
body: { tables, query, fuzziness },
|
2267
|
+
body: { tables, query, fuzziness, prefix, highlight },
|
1704
2268
|
...fetchProps
|
1705
2269
|
});
|
1706
2270
|
return records;
|
1707
2271
|
};
|
1708
|
-
|
1709
|
-
|
1710
|
-
if (__privateGet$1(this,
|
1711
|
-
return __privateGet$1(this,
|
2272
|
+
_getSchemaTables = new WeakSet();
|
2273
|
+
getSchemaTables_fn = async function(getFetchProps) {
|
2274
|
+
if (__privateGet$1(this, _schemaTables))
|
2275
|
+
return __privateGet$1(this, _schemaTables);
|
1712
2276
|
const fetchProps = await getFetchProps();
|
1713
2277
|
const { schema } = await getBranchDetails({
|
1714
2278
|
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
1715
2279
|
...fetchProps
|
1716
2280
|
});
|
1717
|
-
__privateSet$1(this,
|
1718
|
-
return schema;
|
2281
|
+
__privateSet$1(this, _schemaTables, schema.tables);
|
2282
|
+
return schema.tables;
|
1719
2283
|
};
|
1720
2284
|
|
1721
2285
|
const isBranchStrategyBuilder = (strategy) => {
|
1722
2286
|
return typeof strategy === "function";
|
1723
2287
|
};
|
1724
2288
|
|
1725
|
-
const envBranchNames = [
|
1726
|
-
"XATA_BRANCH",
|
1727
|
-
"VERCEL_GIT_COMMIT_REF",
|
1728
|
-
"CF_PAGES_BRANCH",
|
1729
|
-
"BRANCH"
|
1730
|
-
];
|
1731
|
-
const defaultBranch = "main";
|
1732
2289
|
async function getCurrentBranchName(options) {
|
1733
|
-
const
|
1734
|
-
if (
|
1735
|
-
|
1736
|
-
|
1737
|
-
|
1738
|
-
|
1739
|
-
|
1740
|
-
|
1741
|
-
|
1742
|
-
return defaultBranch;
|
2290
|
+
const { branch, envBranch } = getEnvironment();
|
2291
|
+
if (branch) {
|
2292
|
+
const details = await getDatabaseBranch(branch, options);
|
2293
|
+
if (details)
|
2294
|
+
return branch;
|
2295
|
+
console.warn(`Branch ${branch} not found in Xata. Ignoring...`);
|
2296
|
+
}
|
2297
|
+
const gitBranch = envBranch || await getGitBranch();
|
2298
|
+
return resolveXataBranch(gitBranch, options);
|
1743
2299
|
}
|
1744
2300
|
async function getCurrentBranchDetails(options) {
|
1745
|
-
const
|
1746
|
-
|
1747
|
-
|
1748
|
-
|
1749
|
-
|
1750
|
-
|
1751
|
-
|
1752
|
-
|
1753
|
-
|
1754
|
-
|
2301
|
+
const branch = await getCurrentBranchName(options);
|
2302
|
+
return getDatabaseBranch(branch, options);
|
2303
|
+
}
|
2304
|
+
async function resolveXataBranch(gitBranch, options) {
|
2305
|
+
const databaseURL = options?.databaseURL || getDatabaseURL();
|
2306
|
+
const apiKey = options?.apiKey || getAPIKey();
|
2307
|
+
if (!databaseURL)
|
2308
|
+
throw new Error(
|
2309
|
+
"A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely"
|
2310
|
+
);
|
2311
|
+
if (!apiKey)
|
2312
|
+
throw new Error(
|
2313
|
+
"An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely"
|
2314
|
+
);
|
2315
|
+
const [protocol, , host, , dbName] = databaseURL.split("/");
|
2316
|
+
const [workspace] = host.split(".");
|
2317
|
+
const { fallbackBranch } = getEnvironment();
|
2318
|
+
const { branch } = await resolveBranch({
|
2319
|
+
apiKey,
|
2320
|
+
apiUrl: databaseURL,
|
2321
|
+
fetchImpl: getFetchImplementation(options?.fetchImpl),
|
2322
|
+
workspacesApiUrl: `${protocol}//${host}`,
|
2323
|
+
pathParams: { dbName, workspace },
|
2324
|
+
queryParams: { gitBranch, fallbackBranch },
|
2325
|
+
trace: defaultTrace
|
2326
|
+
});
|
2327
|
+
return branch;
|
1755
2328
|
}
|
1756
2329
|
async function getDatabaseBranch(branch, options) {
|
1757
2330
|
const databaseURL = options?.databaseURL || getDatabaseURL();
|
1758
2331
|
const apiKey = options?.apiKey || getAPIKey();
|
1759
2332
|
if (!databaseURL)
|
1760
|
-
throw new Error(
|
2333
|
+
throw new Error(
|
2334
|
+
"A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely"
|
2335
|
+
);
|
1761
2336
|
if (!apiKey)
|
1762
|
-
throw new Error(
|
2337
|
+
throw new Error(
|
2338
|
+
"An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely"
|
2339
|
+
);
|
1763
2340
|
const [protocol, , host, , database] = databaseURL.split("/");
|
1764
2341
|
const [workspace] = host.split(".");
|
1765
2342
|
const dbBranchName = `${database}:${branch}`;
|
@@ -1769,10 +2346,8 @@ async function getDatabaseBranch(branch, options) {
|
|
1769
2346
|
apiUrl: databaseURL,
|
1770
2347
|
fetchImpl: getFetchImplementation(options?.fetchImpl),
|
1771
2348
|
workspacesApiUrl: `${protocol}//${host}`,
|
1772
|
-
pathParams: {
|
1773
|
-
|
1774
|
-
workspace
|
1775
|
-
}
|
2349
|
+
pathParams: { dbBranchName, workspace },
|
2350
|
+
trace: defaultTrace
|
1776
2351
|
});
|
1777
2352
|
} catch (err) {
|
1778
2353
|
if (isObject(err) && err.status === 404)
|
@@ -1780,21 +2355,10 @@ async function getDatabaseBranch(branch, options) {
|
|
1780
2355
|
throw err;
|
1781
2356
|
}
|
1782
2357
|
}
|
1783
|
-
function getBranchByEnvVariable() {
|
1784
|
-
for (const name of envBranchNames) {
|
1785
|
-
const value = getEnvVariable(name);
|
1786
|
-
if (value) {
|
1787
|
-
return value;
|
1788
|
-
}
|
1789
|
-
}
|
1790
|
-
try {
|
1791
|
-
return XATA_BRANCH;
|
1792
|
-
} catch (err) {
|
1793
|
-
}
|
1794
|
-
}
|
1795
2358
|
function getDatabaseURL() {
|
1796
2359
|
try {
|
1797
|
-
|
2360
|
+
const { databaseURL } = getEnvironment();
|
2361
|
+
return databaseURL;
|
1798
2362
|
} catch (err) {
|
1799
2363
|
return void 0;
|
1800
2364
|
}
|
@@ -1823,24 +2387,27 @@ var __privateMethod = (obj, member, method) => {
|
|
1823
2387
|
return method;
|
1824
2388
|
};
|
1825
2389
|
const buildClient = (plugins) => {
|
1826
|
-
var _branch, _parseOptions, parseOptions_fn, _getFetchProps, getFetchProps_fn, _evaluateBranch, evaluateBranch_fn, _a;
|
2390
|
+
var _branch, _options, _parseOptions, parseOptions_fn, _getFetchProps, getFetchProps_fn, _evaluateBranch, evaluateBranch_fn, _a;
|
1827
2391
|
return _a = class {
|
1828
|
-
constructor(options = {},
|
2392
|
+
constructor(options = {}, schemaTables) {
|
1829
2393
|
__privateAdd(this, _parseOptions);
|
1830
2394
|
__privateAdd(this, _getFetchProps);
|
1831
2395
|
__privateAdd(this, _evaluateBranch);
|
1832
2396
|
__privateAdd(this, _branch, void 0);
|
2397
|
+
__privateAdd(this, _options, void 0);
|
1833
2398
|
const safeOptions = __privateMethod(this, _parseOptions, parseOptions_fn).call(this, options);
|
2399
|
+
__privateSet(this, _options, safeOptions);
|
1834
2400
|
const pluginOptions = {
|
1835
2401
|
getFetchProps: () => __privateMethod(this, _getFetchProps, getFetchProps_fn).call(this, safeOptions),
|
1836
|
-
cache: safeOptions.cache
|
2402
|
+
cache: safeOptions.cache,
|
2403
|
+
trace: safeOptions.trace
|
1837
2404
|
};
|
1838
|
-
const db = new SchemaPlugin(
|
1839
|
-
const search = new SearchPlugin(db).build(pluginOptions);
|
2405
|
+
const db = new SchemaPlugin(schemaTables).build(pluginOptions);
|
2406
|
+
const search = new SearchPlugin(db, schemaTables).build(pluginOptions);
|
1840
2407
|
this.db = db;
|
1841
2408
|
this.search = search;
|
1842
2409
|
for (const [key, namespace] of Object.entries(plugins ?? {})) {
|
1843
|
-
if (
|
2410
|
+
if (namespace === void 0)
|
1844
2411
|
continue;
|
1845
2412
|
const result = namespace.build(pluginOptions);
|
1846
2413
|
if (result instanceof Promise) {
|
@@ -1852,22 +2419,26 @@ const buildClient = (plugins) => {
|
|
1852
2419
|
}
|
1853
2420
|
}
|
1854
2421
|
}
|
1855
|
-
|
2422
|
+
async getConfig() {
|
2423
|
+
const databaseURL = __privateGet(this, _options).databaseURL;
|
2424
|
+
const branch = await __privateGet(this, _options).branch();
|
2425
|
+
return { databaseURL, branch };
|
2426
|
+
}
|
2427
|
+
}, _branch = new WeakMap(), _options = new WeakMap(), _parseOptions = new WeakSet(), parseOptions_fn = function(options) {
|
1856
2428
|
const fetch = getFetchImplementation(options?.fetch);
|
1857
2429
|
const databaseURL = options?.databaseURL || getDatabaseURL();
|
1858
2430
|
const apiKey = options?.apiKey || getAPIKey();
|
1859
|
-
const cache = options?.cache ?? new SimpleCache({
|
1860
|
-
const
|
1861
|
-
|
1862
|
-
|
2431
|
+
const cache = options?.cache ?? new SimpleCache({ defaultQueryTTL: 0 });
|
2432
|
+
const trace = options?.trace ?? defaultTrace;
|
2433
|
+
const branch = async () => options?.branch !== void 0 ? await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, options.branch) : await getCurrentBranchName({ apiKey, databaseURL, fetchImpl: options?.fetch });
|
2434
|
+
if (!apiKey) {
|
2435
|
+
throw new Error("Option apiKey is required");
|
1863
2436
|
}
|
1864
|
-
|
1865
|
-
|
1866
|
-
|
1867
|
-
apiKey,
|
1868
|
-
|
1869
|
-
branch
|
1870
|
-
}) {
|
2437
|
+
if (!databaseURL) {
|
2438
|
+
throw new Error("Option databaseURL is required");
|
2439
|
+
}
|
2440
|
+
return { fetch, databaseURL, apiKey, branch, cache, trace };
|
2441
|
+
}, _getFetchProps = new WeakSet(), getFetchProps_fn = async function({ fetch, apiKey, databaseURL, branch, trace }) {
|
1871
2442
|
const branchValue = await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, branch);
|
1872
2443
|
if (!branchValue)
|
1873
2444
|
throw new Error("Unable to resolve branch value");
|
@@ -1877,14 +2448,15 @@ const buildClient = (plugins) => {
|
|
1877
2448
|
apiUrl: "",
|
1878
2449
|
workspacesApiUrl: (path, params) => {
|
1879
2450
|
const hasBranch = params.dbBranchName ?? params.branch;
|
1880
|
-
const newPath = path.replace(/^\/db\/[^/]+/, hasBranch ? `:${branchValue}` : "");
|
2451
|
+
const newPath = path.replace(/^\/db\/[^/]+/, hasBranch !== void 0 ? `:${branchValue}` : "");
|
1881
2452
|
return databaseURL + newPath;
|
1882
|
-
}
|
2453
|
+
},
|
2454
|
+
trace
|
1883
2455
|
};
|
1884
2456
|
}, _evaluateBranch = new WeakSet(), evaluateBranch_fn = async function(param) {
|
1885
2457
|
if (__privateGet(this, _branch))
|
1886
2458
|
return __privateGet(this, _branch);
|
1887
|
-
if (
|
2459
|
+
if (param === void 0)
|
1888
2460
|
return void 0;
|
1889
2461
|
const strategies = Array.isArray(param) ? [...param] : [param];
|
1890
2462
|
const evaluateBranch = async (strategy) => {
|
@@ -1902,6 +2474,88 @@ const buildClient = (plugins) => {
|
|
1902
2474
|
class BaseClient extends buildClient() {
|
1903
2475
|
}
|
1904
2476
|
|
2477
|
+
const META = "__";
|
2478
|
+
const VALUE = "___";
|
2479
|
+
class Serializer {
|
2480
|
+
constructor() {
|
2481
|
+
this.classes = {};
|
2482
|
+
}
|
2483
|
+
add(clazz) {
|
2484
|
+
this.classes[clazz.name] = clazz;
|
2485
|
+
}
|
2486
|
+
toJSON(data) {
|
2487
|
+
function visit(obj) {
|
2488
|
+
if (Array.isArray(obj))
|
2489
|
+
return obj.map(visit);
|
2490
|
+
const type = typeof obj;
|
2491
|
+
if (type === "undefined")
|
2492
|
+
return { [META]: "undefined" };
|
2493
|
+
if (type === "bigint")
|
2494
|
+
return { [META]: "bigint", [VALUE]: obj.toString() };
|
2495
|
+
if (obj === null || type !== "object")
|
2496
|
+
return obj;
|
2497
|
+
const constructor = obj.constructor;
|
2498
|
+
const o = { [META]: constructor.name };
|
2499
|
+
for (const [key, value] of Object.entries(obj)) {
|
2500
|
+
o[key] = visit(value);
|
2501
|
+
}
|
2502
|
+
if (constructor === Date)
|
2503
|
+
o[VALUE] = obj.toISOString();
|
2504
|
+
if (constructor === Map)
|
2505
|
+
o[VALUE] = Object.fromEntries(obj);
|
2506
|
+
if (constructor === Set)
|
2507
|
+
o[VALUE] = [...obj];
|
2508
|
+
return o;
|
2509
|
+
}
|
2510
|
+
return JSON.stringify(visit(data));
|
2511
|
+
}
|
2512
|
+
fromJSON(json) {
|
2513
|
+
return JSON.parse(json, (key, value) => {
|
2514
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
2515
|
+
const { [META]: clazz, [VALUE]: val, ...rest } = value;
|
2516
|
+
const constructor = this.classes[clazz];
|
2517
|
+
if (constructor) {
|
2518
|
+
return Object.assign(Object.create(constructor.prototype), rest);
|
2519
|
+
}
|
2520
|
+
if (clazz === "Date")
|
2521
|
+
return new Date(val);
|
2522
|
+
if (clazz === "Set")
|
2523
|
+
return new Set(val);
|
2524
|
+
if (clazz === "Map")
|
2525
|
+
return new Map(Object.entries(val));
|
2526
|
+
if (clazz === "bigint")
|
2527
|
+
return BigInt(val);
|
2528
|
+
if (clazz === "undefined")
|
2529
|
+
return void 0;
|
2530
|
+
return rest;
|
2531
|
+
}
|
2532
|
+
return value;
|
2533
|
+
});
|
2534
|
+
}
|
2535
|
+
}
|
2536
|
+
const defaultSerializer = new Serializer();
|
2537
|
+
const serialize = (data) => {
|
2538
|
+
return defaultSerializer.toJSON(data);
|
2539
|
+
};
|
2540
|
+
const deserialize = (json) => {
|
2541
|
+
return defaultSerializer.fromJSON(json);
|
2542
|
+
};
|
2543
|
+
|
2544
|
+
function buildWorkerRunner(config) {
|
2545
|
+
return function xataWorker(name, _worker) {
|
2546
|
+
return async (...args) => {
|
2547
|
+
const url = process.env.NODE_ENV === "development" ? `http://localhost:64749/${name}` : `https://dispatcher.xata.workers.dev/${config.workspace}/${config.worker}/${name}`;
|
2548
|
+
const result = await fetch(url, {
|
2549
|
+
method: "POST",
|
2550
|
+
headers: { "Content-Type": "application/json" },
|
2551
|
+
body: serialize({ args })
|
2552
|
+
});
|
2553
|
+
const text = await result.text();
|
2554
|
+
return deserialize(text);
|
2555
|
+
};
|
2556
|
+
};
|
2557
|
+
}
|
2558
|
+
|
1905
2559
|
class XataError extends Error {
|
1906
2560
|
constructor(message, status) {
|
1907
2561
|
super(message);
|
@@ -1917,10 +2571,12 @@ exports.PAGINATION_MAX_OFFSET = PAGINATION_MAX_OFFSET;
|
|
1917
2571
|
exports.PAGINATION_MAX_SIZE = PAGINATION_MAX_SIZE;
|
1918
2572
|
exports.Page = Page;
|
1919
2573
|
exports.Query = Query;
|
2574
|
+
exports.RecordArray = RecordArray;
|
1920
2575
|
exports.Repository = Repository;
|
1921
2576
|
exports.RestRepository = RestRepository;
|
1922
2577
|
exports.SchemaPlugin = SchemaPlugin;
|
1923
2578
|
exports.SearchPlugin = SearchPlugin;
|
2579
|
+
exports.Serializer = Serializer;
|
1924
2580
|
exports.SimpleCache = SimpleCache;
|
1925
2581
|
exports.XataApiClient = XataApiClient;
|
1926
2582
|
exports.XataApiPlugin = XataApiPlugin;
|
@@ -1929,12 +2585,18 @@ exports.XataPlugin = XataPlugin;
|
|
1929
2585
|
exports.acceptWorkspaceMemberInvite = acceptWorkspaceMemberInvite;
|
1930
2586
|
exports.addGitBranchesEntry = addGitBranchesEntry;
|
1931
2587
|
exports.addTableColumn = addTableColumn;
|
2588
|
+
exports.applyBranchSchemaEdit = applyBranchSchemaEdit;
|
1932
2589
|
exports.buildClient = buildClient;
|
2590
|
+
exports.buildWorkerRunner = buildWorkerRunner;
|
1933
2591
|
exports.bulkInsertTableRecords = bulkInsertTableRecords;
|
1934
2592
|
exports.cancelWorkspaceMemberInvite = cancelWorkspaceMemberInvite;
|
2593
|
+
exports.compareBranchSchemas = compareBranchSchemas;
|
2594
|
+
exports.compareBranchWithUserSchema = compareBranchWithUserSchema;
|
2595
|
+
exports.compareMigrationRequest = compareMigrationRequest;
|
1935
2596
|
exports.contains = contains;
|
1936
2597
|
exports.createBranch = createBranch;
|
1937
2598
|
exports.createDatabase = createDatabase;
|
2599
|
+
exports.createMigrationRequest = createMigrationRequest;
|
1938
2600
|
exports.createTable = createTable;
|
1939
2601
|
exports.createUserAPIKey = createUserAPIKey;
|
1940
2602
|
exports.createWorkspace = createWorkspace;
|
@@ -1946,7 +2608,9 @@ exports.deleteTable = deleteTable;
|
|
1946
2608
|
exports.deleteUser = deleteUser;
|
1947
2609
|
exports.deleteUserAPIKey = deleteUserAPIKey;
|
1948
2610
|
exports.deleteWorkspace = deleteWorkspace;
|
2611
|
+
exports.deserialize = deserialize;
|
1949
2612
|
exports.endsWith = endsWith;
|
2613
|
+
exports.equals = equals;
|
1950
2614
|
exports.executeBranchMigrationPlan = executeBranchMigrationPlan;
|
1951
2615
|
exports.exists = exists;
|
1952
2616
|
exports.ge = ge;
|
@@ -1956,13 +2620,17 @@ exports.getBranchList = getBranchList;
|
|
1956
2620
|
exports.getBranchMetadata = getBranchMetadata;
|
1957
2621
|
exports.getBranchMigrationHistory = getBranchMigrationHistory;
|
1958
2622
|
exports.getBranchMigrationPlan = getBranchMigrationPlan;
|
2623
|
+
exports.getBranchSchemaHistory = getBranchSchemaHistory;
|
1959
2624
|
exports.getBranchStats = getBranchStats;
|
1960
2625
|
exports.getColumn = getColumn;
|
1961
2626
|
exports.getCurrentBranchDetails = getCurrentBranchDetails;
|
1962
2627
|
exports.getCurrentBranchName = getCurrentBranchName;
|
1963
2628
|
exports.getDatabaseList = getDatabaseList;
|
2629
|
+
exports.getDatabaseMetadata = getDatabaseMetadata;
|
1964
2630
|
exports.getDatabaseURL = getDatabaseURL;
|
1965
2631
|
exports.getGitBranchesMapping = getGitBranchesMapping;
|
2632
|
+
exports.getMigrationRequest = getMigrationRequest;
|
2633
|
+
exports.getMigrationRequestIsMerged = getMigrationRequestIsMerged;
|
1966
2634
|
exports.getRecord = getRecord;
|
1967
2635
|
exports.getTableColumns = getTableColumns;
|
1968
2636
|
exports.getTableSchema = getTableSchema;
|
@@ -1971,6 +2639,9 @@ exports.getUserAPIKeys = getUserAPIKeys;
|
|
1971
2639
|
exports.getWorkspace = getWorkspace;
|
1972
2640
|
exports.getWorkspaceMembersList = getWorkspaceMembersList;
|
1973
2641
|
exports.getWorkspacesList = getWorkspacesList;
|
2642
|
+
exports.greaterEquals = greaterEquals;
|
2643
|
+
exports.greaterThan = greaterThan;
|
2644
|
+
exports.greaterThanEquals = greaterThanEquals;
|
1974
2645
|
exports.gt = gt;
|
1975
2646
|
exports.gte = gte;
|
1976
2647
|
exports.includes = includes;
|
@@ -1981,29 +2652,43 @@ exports.insertRecord = insertRecord;
|
|
1981
2652
|
exports.insertRecordWithID = insertRecordWithID;
|
1982
2653
|
exports.inviteWorkspaceMember = inviteWorkspaceMember;
|
1983
2654
|
exports.is = is;
|
2655
|
+
exports.isCursorPaginationOptions = isCursorPaginationOptions;
|
1984
2656
|
exports.isIdentifiable = isIdentifiable;
|
1985
2657
|
exports.isNot = isNot;
|
1986
2658
|
exports.isXataRecord = isXataRecord;
|
1987
2659
|
exports.le = le;
|
2660
|
+
exports.lessEquals = lessEquals;
|
2661
|
+
exports.lessThan = lessThan;
|
2662
|
+
exports.lessThanEquals = lessThanEquals;
|
2663
|
+
exports.listMigrationRequests = listMigrationRequests;
|
2664
|
+
exports.listMigrationRequestsCommits = listMigrationRequestsCommits;
|
1988
2665
|
exports.lt = lt;
|
1989
2666
|
exports.lte = lte;
|
2667
|
+
exports.mergeMigrationRequest = mergeMigrationRequest;
|
1990
2668
|
exports.notExists = notExists;
|
1991
2669
|
exports.operationsByTag = operationsByTag;
|
1992
2670
|
exports.pattern = pattern;
|
2671
|
+
exports.previewBranchSchemaEdit = previewBranchSchemaEdit;
|
1993
2672
|
exports.queryTable = queryTable;
|
1994
2673
|
exports.removeGitBranchesEntry = removeGitBranchesEntry;
|
1995
2674
|
exports.removeWorkspaceMember = removeWorkspaceMember;
|
1996
2675
|
exports.resendWorkspaceMemberInvite = resendWorkspaceMemberInvite;
|
1997
2676
|
exports.resolveBranch = resolveBranch;
|
1998
2677
|
exports.searchBranch = searchBranch;
|
2678
|
+
exports.searchTable = searchTable;
|
2679
|
+
exports.serialize = serialize;
|
1999
2680
|
exports.setTableSchema = setTableSchema;
|
2000
2681
|
exports.startsWith = startsWith;
|
2001
2682
|
exports.updateBranchMetadata = updateBranchMetadata;
|
2683
|
+
exports.updateBranchSchema = updateBranchSchema;
|
2002
2684
|
exports.updateColumn = updateColumn;
|
2685
|
+
exports.updateDatabaseMetadata = updateDatabaseMetadata;
|
2686
|
+
exports.updateMigrationRequest = updateMigrationRequest;
|
2003
2687
|
exports.updateRecordWithID = updateRecordWithID;
|
2004
2688
|
exports.updateTable = updateTable;
|
2005
2689
|
exports.updateUser = updateUser;
|
2006
2690
|
exports.updateWorkspace = updateWorkspace;
|
2691
|
+
exports.updateWorkspaceMemberInvite = updateWorkspaceMemberInvite;
|
2007
2692
|
exports.updateWorkspaceMemberRole = updateWorkspaceMemberRole;
|
2008
2693
|
exports.upsertRecordWithID = upsertRecordWithID;
|
2009
2694
|
//# sourceMappingURL=index.cjs.map
|