@xata.io/client 0.0.0-alpha.vf6f2567 → 0.0.0-alpha.vf721f5c
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 +264 -0
- package/README.md +273 -1
- package/Usage.md +451 -0
- package/dist/index.cjs +1353 -514
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2789 -246
- package/dist/index.mjs +1300 -515
- package/dist/index.mjs.map +1 -1
- package/package.json +9 -5
- 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,43 +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") {
|
140
|
+
return require(nodeModule).execSync(fullCmd, execOptions).trim();
|
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();
|
42
144
|
} catch (err) {
|
43
145
|
}
|
44
146
|
try {
|
45
147
|
if (isObject(Deno)) {
|
46
|
-
const process2 = Deno.run({
|
47
|
-
cmd: ["git", "branch", "--show-current"],
|
48
|
-
stdout: "piped",
|
49
|
-
stderr: "piped"
|
50
|
-
});
|
148
|
+
const process2 = Deno.run({ cmd, stdout: "piped", stderr: "null" });
|
51
149
|
return new TextDecoder().decode(await process2.output()).trim();
|
52
150
|
}
|
53
151
|
} catch (err) {
|
@@ -56,7 +154,8 @@ async function getGitBranch() {
|
|
56
154
|
|
57
155
|
function getAPIKey() {
|
58
156
|
try {
|
59
|
-
|
157
|
+
const { apiKey } = getEnvironment();
|
158
|
+
return apiKey;
|
60
159
|
} catch (err) {
|
61
160
|
return void 0;
|
62
161
|
}
|
@@ -66,21 +165,35 @@ function getFetchImplementation(userFetch) {
|
|
66
165
|
const globalFetch = typeof fetch !== "undefined" ? fetch : void 0;
|
67
166
|
const fetchImpl = userFetch ?? globalFetch;
|
68
167
|
if (!fetchImpl) {
|
69
|
-
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
|
+
);
|
70
171
|
}
|
71
172
|
return fetchImpl;
|
72
173
|
}
|
73
174
|
|
74
|
-
|
75
|
-
|
175
|
+
const VERSION = "0.0.0-alpha.vf721f5c";
|
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) {
|
76
184
|
super(getMessage(data));
|
77
185
|
this.status = status;
|
78
186
|
this.errors = isBulkError(data) ? data.errors : void 0;
|
187
|
+
this.requestId = requestId;
|
79
188
|
if (data instanceof Error) {
|
80
189
|
this.stack = data.stack;
|
81
190
|
this.cause = data.cause;
|
82
191
|
}
|
83
192
|
}
|
193
|
+
toString() {
|
194
|
+
const error = super.toString();
|
195
|
+
return `[${this.status}] (${this.requestId ?? "Unknown"}): ${error}`;
|
196
|
+
}
|
84
197
|
}
|
85
198
|
function isBulkError(error) {
|
86
199
|
return isObject(error) && Array.isArray(error.errors);
|
@@ -103,9 +216,17 @@ function getMessage(data) {
|
|
103
216
|
}
|
104
217
|
|
105
218
|
const resolveUrl = (url, queryParams = {}, pathParams = {}) => {
|
106
|
-
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();
|
107
225
|
const queryString = query.length > 0 ? `?${query}` : "";
|
108
|
-
|
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;
|
109
230
|
};
|
110
231
|
function buildBaseUrl({
|
111
232
|
path,
|
@@ -113,10 +234,10 @@ function buildBaseUrl({
|
|
113
234
|
apiUrl,
|
114
235
|
pathParams
|
115
236
|
}) {
|
116
|
-
if (
|
237
|
+
if (pathParams?.workspace === void 0)
|
117
238
|
return `${apiUrl}${path}`;
|
118
239
|
const url = typeof workspacesApiUrl === "string" ? `${workspacesApiUrl}${path}` : workspacesApiUrl(path, pathParams);
|
119
|
-
return url.replace("{workspaceId}", pathParams.workspace);
|
240
|
+
return url.replace("{workspaceId}", String(pathParams.workspace));
|
120
241
|
}
|
121
242
|
function hostHeader(url) {
|
122
243
|
const pattern = /.*:\/\/(?<host>[^/]+).*/;
|
@@ -133,32 +254,61 @@ async function fetch$1({
|
|
133
254
|
fetchImpl,
|
134
255
|
apiKey,
|
135
256
|
apiUrl,
|
136
|
-
workspacesApiUrl
|
257
|
+
workspacesApiUrl,
|
258
|
+
trace
|
137
259
|
}) {
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
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) {
|
154
307
|
try {
|
155
|
-
const
|
156
|
-
|
157
|
-
return jsonResponse;
|
158
|
-
}
|
159
|
-
throw new FetcherError(response.status, jsonResponse);
|
308
|
+
const { host, protocol } = new URL(url);
|
309
|
+
return { host, protocol };
|
160
310
|
} catch (error) {
|
161
|
-
|
311
|
+
return {};
|
162
312
|
}
|
163
313
|
}
|
164
314
|
|
@@ -217,6 +367,7 @@ const removeWorkspaceMember = (variables) => fetch$1({
|
|
217
367
|
...variables
|
218
368
|
});
|
219
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 });
|
220
371
|
const cancelWorkspaceMemberInvite = (variables) => fetch$1({
|
221
372
|
url: "/workspaces/{workspaceId}/invites/{inviteId}",
|
222
373
|
method: "delete",
|
@@ -252,16 +403,42 @@ const deleteDatabase = (variables) => fetch$1({
|
|
252
403
|
method: "delete",
|
253
404
|
...variables
|
254
405
|
});
|
255
|
-
const
|
256
|
-
url: "/
|
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 });
|
412
|
+
const getGitBranchesMapping = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "get", ...variables });
|
413
|
+
const addGitBranchesEntry = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "post", ...variables });
|
414
|
+
const removeGitBranchesEntry = (variables) => fetch$1({ url: "/dbs/{dbName}/gitBranches", method: "delete", ...variables });
|
415
|
+
const resolveBranch = (variables) => fetch$1({
|
416
|
+
url: "/dbs/{dbName}/resolveBranch",
|
417
|
+
method: "get",
|
418
|
+
...variables
|
419
|
+
});
|
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}",
|
257
424
|
method: "get",
|
258
425
|
...variables
|
259
426
|
});
|
260
|
-
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({
|
261
437
|
url: "/db/{dbBranchName}",
|
262
|
-
method: "
|
438
|
+
method: "get",
|
263
439
|
...variables
|
264
440
|
});
|
441
|
+
const createBranch = (variables) => fetch$1({ url: "/db/{dbBranchName}", method: "put", ...variables });
|
265
442
|
const deleteBranch = (variables) => fetch$1({
|
266
443
|
url: "/db/{dbBranchName}",
|
267
444
|
method: "delete",
|
@@ -280,6 +457,16 @@ const getBranchMetadata = (variables) => fetch$1({
|
|
280
457
|
const getBranchMigrationHistory = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations", method: "get", ...variables });
|
281
458
|
const executeBranchMigrationPlan = (variables) => fetch$1({ url: "/db/{dbBranchName}/migrations/execute", method: "post", ...variables });
|
282
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 });
|
283
470
|
const getBranchStats = (variables) => fetch$1({
|
284
471
|
url: "/db/{dbBranchName}/stats",
|
285
472
|
method: "get",
|
@@ -335,11 +522,7 @@ const updateColumn = (variables) => fetch$1({
|
|
335
522
|
method: "patch",
|
336
523
|
...variables
|
337
524
|
});
|
338
|
-
const insertRecord = (variables) => fetch$1({
|
339
|
-
url: "/db/{dbBranchName}/tables/{tableName}/data",
|
340
|
-
method: "post",
|
341
|
-
...variables
|
342
|
-
});
|
525
|
+
const insertRecord = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data", method: "post", ...variables });
|
343
526
|
const insertRecordWithID = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "put", ...variables });
|
344
527
|
const updateRecordWithID = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "patch", ...variables });
|
345
528
|
const upsertRecordWithID = (variables) => fetch$1({ url: "/db/{dbBranchName}/tables/{tableName}/data/{recordId}", method: "post", ...variables });
|
@@ -359,11 +542,21 @@ const queryTable = (variables) => fetch$1({
|
|
359
542
|
method: "post",
|
360
543
|
...variables
|
361
544
|
});
|
545
|
+
const searchTable = (variables) => fetch$1({
|
546
|
+
url: "/db/{dbBranchName}/tables/{tableName}/search",
|
547
|
+
method: "post",
|
548
|
+
...variables
|
549
|
+
});
|
362
550
|
const searchBranch = (variables) => fetch$1({
|
363
551
|
url: "/db/{dbBranchName}/search",
|
364
552
|
method: "post",
|
365
553
|
...variables
|
366
554
|
});
|
555
|
+
const summarizeTable = (variables) => fetch$1({
|
556
|
+
url: "/db/{dbBranchName}/tables/{tableName}/summarize",
|
557
|
+
method: "post",
|
558
|
+
...variables
|
559
|
+
});
|
367
560
|
const operationsByTag = {
|
368
561
|
users: { getUser, updateUser, deleteUser, getUserAPIKeys, createUserAPIKey, deleteUserAPIKey },
|
369
562
|
workspaces: {
|
@@ -376,11 +569,22 @@ const operationsByTag = {
|
|
376
569
|
updateWorkspaceMemberRole,
|
377
570
|
removeWorkspaceMember,
|
378
571
|
inviteWorkspaceMember,
|
572
|
+
updateWorkspaceMemberInvite,
|
379
573
|
cancelWorkspaceMemberInvite,
|
380
574
|
resendWorkspaceMemberInvite,
|
381
575
|
acceptWorkspaceMemberInvite
|
382
576
|
},
|
383
|
-
database: {
|
577
|
+
database: {
|
578
|
+
getDatabaseList,
|
579
|
+
createDatabase,
|
580
|
+
deleteDatabase,
|
581
|
+
getDatabaseMetadata,
|
582
|
+
updateDatabaseMetadata,
|
583
|
+
getGitBranchesMapping,
|
584
|
+
addGitBranchesEntry,
|
585
|
+
removeGitBranchesEntry,
|
586
|
+
resolveBranch
|
587
|
+
},
|
384
588
|
branch: {
|
385
589
|
getBranchList,
|
386
590
|
getBranchDetails,
|
@@ -388,10 +592,28 @@ const operationsByTag = {
|
|
388
592
|
deleteBranch,
|
389
593
|
updateBranchMetadata,
|
390
594
|
getBranchMetadata,
|
595
|
+
getBranchStats
|
596
|
+
},
|
597
|
+
migrationRequests: {
|
598
|
+
listMigrationRequests,
|
599
|
+
createMigrationRequest,
|
600
|
+
getMigrationRequest,
|
601
|
+
updateMigrationRequest,
|
602
|
+
listMigrationRequestsCommits,
|
603
|
+
compareMigrationRequest,
|
604
|
+
getMigrationRequestIsMerged,
|
605
|
+
mergeMigrationRequest
|
606
|
+
},
|
607
|
+
branchSchema: {
|
391
608
|
getBranchMigrationHistory,
|
392
609
|
executeBranchMigrationPlan,
|
393
610
|
getBranchMigrationPlan,
|
394
|
-
|
611
|
+
compareBranchWithUserSchema,
|
612
|
+
compareBranchSchemas,
|
613
|
+
updateBranchSchema,
|
614
|
+
previewBranchSchemaEdit,
|
615
|
+
applyBranchSchemaEdit,
|
616
|
+
getBranchSchemaHistory
|
395
617
|
},
|
396
618
|
table: {
|
397
619
|
createTable,
|
@@ -414,14 +636,16 @@ const operationsByTag = {
|
|
414
636
|
getRecord,
|
415
637
|
bulkInsertTableRecords,
|
416
638
|
queryTable,
|
417
|
-
|
639
|
+
searchTable,
|
640
|
+
searchBranch,
|
641
|
+
summarizeTable
|
418
642
|
}
|
419
643
|
};
|
420
644
|
|
421
645
|
function getHostUrl(provider, type) {
|
422
|
-
if (
|
646
|
+
if (isHostProviderAlias(provider)) {
|
423
647
|
return providers[provider][type];
|
424
|
-
} else if (
|
648
|
+
} else if (isHostProviderBuilder(provider)) {
|
425
649
|
return provider[type];
|
426
650
|
}
|
427
651
|
throw new Error("Invalid API provider");
|
@@ -436,10 +660,10 @@ const providers = {
|
|
436
660
|
workspaces: "https://{workspaceId}.staging.xatabase.co"
|
437
661
|
}
|
438
662
|
};
|
439
|
-
function
|
663
|
+
function isHostProviderAlias(alias) {
|
440
664
|
return isString(alias) && Object.keys(providers).includes(alias);
|
441
665
|
}
|
442
|
-
function
|
666
|
+
function isHostProviderBuilder(builder) {
|
443
667
|
return isObject(builder) && isString(builder.main) && isString(builder.workspaces);
|
444
668
|
}
|
445
669
|
|
@@ -447,7 +671,7 @@ var __accessCheck$7 = (obj, member, msg) => {
|
|
447
671
|
if (!member.has(obj))
|
448
672
|
throw TypeError("Cannot " + msg);
|
449
673
|
};
|
450
|
-
var __privateGet$
|
674
|
+
var __privateGet$7 = (obj, member, getter) => {
|
451
675
|
__accessCheck$7(obj, member, "read from private field");
|
452
676
|
return getter ? getter.call(obj) : member.get(obj);
|
453
677
|
};
|
@@ -456,7 +680,7 @@ var __privateAdd$7 = (obj, member, value) => {
|
|
456
680
|
throw TypeError("Cannot add the same private member more than once");
|
457
681
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
458
682
|
};
|
459
|
-
var __privateSet$
|
683
|
+
var __privateSet$7 = (obj, member, value, setter) => {
|
460
684
|
__accessCheck$7(obj, member, "write to private field");
|
461
685
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
462
686
|
return value;
|
@@ -467,46 +691,58 @@ class XataApiClient {
|
|
467
691
|
__privateAdd$7(this, _extraProps, void 0);
|
468
692
|
__privateAdd$7(this, _namespaces, {});
|
469
693
|
const provider = options.host ?? "production";
|
470
|
-
const apiKey = options
|
694
|
+
const apiKey = options.apiKey ?? getAPIKey();
|
695
|
+
const trace = options.trace ?? defaultTrace;
|
471
696
|
if (!apiKey) {
|
472
697
|
throw new Error("Could not resolve a valid apiKey");
|
473
698
|
}
|
474
|
-
__privateSet$
|
699
|
+
__privateSet$7(this, _extraProps, {
|
475
700
|
apiUrl: getHostUrl(provider, "main"),
|
476
701
|
workspacesApiUrl: getHostUrl(provider, "workspaces"),
|
477
702
|
fetchImpl: getFetchImplementation(options.fetch),
|
478
|
-
apiKey
|
703
|
+
apiKey,
|
704
|
+
trace
|
479
705
|
});
|
480
706
|
}
|
481
707
|
get user() {
|
482
|
-
if (!__privateGet$
|
483
|
-
__privateGet$
|
484
|
-
return __privateGet$
|
708
|
+
if (!__privateGet$7(this, _namespaces).user)
|
709
|
+
__privateGet$7(this, _namespaces).user = new UserApi(__privateGet$7(this, _extraProps));
|
710
|
+
return __privateGet$7(this, _namespaces).user;
|
485
711
|
}
|
486
712
|
get workspaces() {
|
487
|
-
if (!__privateGet$
|
488
|
-
__privateGet$
|
489
|
-
return __privateGet$
|
713
|
+
if (!__privateGet$7(this, _namespaces).workspaces)
|
714
|
+
__privateGet$7(this, _namespaces).workspaces = new WorkspaceApi(__privateGet$7(this, _extraProps));
|
715
|
+
return __privateGet$7(this, _namespaces).workspaces;
|
490
716
|
}
|
491
717
|
get databases() {
|
492
|
-
if (!__privateGet$
|
493
|
-
__privateGet$
|
494
|
-
return __privateGet$
|
718
|
+
if (!__privateGet$7(this, _namespaces).databases)
|
719
|
+
__privateGet$7(this, _namespaces).databases = new DatabaseApi(__privateGet$7(this, _extraProps));
|
720
|
+
return __privateGet$7(this, _namespaces).databases;
|
495
721
|
}
|
496
722
|
get branches() {
|
497
|
-
if (!__privateGet$
|
498
|
-
__privateGet$
|
499
|
-
return __privateGet$
|
723
|
+
if (!__privateGet$7(this, _namespaces).branches)
|
724
|
+
__privateGet$7(this, _namespaces).branches = new BranchApi(__privateGet$7(this, _extraProps));
|
725
|
+
return __privateGet$7(this, _namespaces).branches;
|
500
726
|
}
|
501
727
|
get tables() {
|
502
|
-
if (!__privateGet$
|
503
|
-
__privateGet$
|
504
|
-
return __privateGet$
|
728
|
+
if (!__privateGet$7(this, _namespaces).tables)
|
729
|
+
__privateGet$7(this, _namespaces).tables = new TableApi(__privateGet$7(this, _extraProps));
|
730
|
+
return __privateGet$7(this, _namespaces).tables;
|
505
731
|
}
|
506
732
|
get records() {
|
507
|
-
if (!__privateGet$
|
508
|
-
__privateGet$
|
509
|
-
return __privateGet$
|
733
|
+
if (!__privateGet$7(this, _namespaces).records)
|
734
|
+
__privateGet$7(this, _namespaces).records = new RecordsApi(__privateGet$7(this, _extraProps));
|
735
|
+
return __privateGet$7(this, _namespaces).records;
|
736
|
+
}
|
737
|
+
get migrationRequests() {
|
738
|
+
if (!__privateGet$7(this, _namespaces).migrationRequests)
|
739
|
+
__privateGet$7(this, _namespaces).migrationRequests = new MigrationRequestsApi(__privateGet$7(this, _extraProps));
|
740
|
+
return __privateGet$7(this, _namespaces).migrationRequests;
|
741
|
+
}
|
742
|
+
get branchSchema() {
|
743
|
+
if (!__privateGet$7(this, _namespaces).branchSchema)
|
744
|
+
__privateGet$7(this, _namespaces).branchSchema = new BranchSchemaApi(__privateGet$7(this, _extraProps));
|
745
|
+
return __privateGet$7(this, _namespaces).branchSchema;
|
510
746
|
}
|
511
747
|
}
|
512
748
|
_extraProps = new WeakMap();
|
@@ -598,6 +834,13 @@ class WorkspaceApi {
|
|
598
834
|
...this.extraProps
|
599
835
|
});
|
600
836
|
}
|
837
|
+
updateWorkspaceMemberInvite(workspaceId, inviteId, role) {
|
838
|
+
return operationsByTag.workspaces.updateWorkspaceMemberInvite({
|
839
|
+
pathParams: { workspaceId, inviteId },
|
840
|
+
body: { role },
|
841
|
+
...this.extraProps
|
842
|
+
});
|
843
|
+
}
|
601
844
|
cancelWorkspaceMemberInvite(workspaceId, inviteId) {
|
602
845
|
return operationsByTag.workspaces.cancelWorkspaceMemberInvite({
|
603
846
|
pathParams: { workspaceId, inviteId },
|
@@ -640,6 +883,46 @@ class DatabaseApi {
|
|
640
883
|
...this.extraProps
|
641
884
|
});
|
642
885
|
}
|
886
|
+
getDatabaseMetadata(workspace, dbName) {
|
887
|
+
return operationsByTag.database.getDatabaseMetadata({
|
888
|
+
pathParams: { workspace, dbName },
|
889
|
+
...this.extraProps
|
890
|
+
});
|
891
|
+
}
|
892
|
+
updateDatabaseMetadata(workspace, dbName, options = {}) {
|
893
|
+
return operationsByTag.database.updateDatabaseMetadata({
|
894
|
+
pathParams: { workspace, dbName },
|
895
|
+
body: options,
|
896
|
+
...this.extraProps
|
897
|
+
});
|
898
|
+
}
|
899
|
+
getGitBranchesMapping(workspace, dbName) {
|
900
|
+
return operationsByTag.database.getGitBranchesMapping({
|
901
|
+
pathParams: { workspace, dbName },
|
902
|
+
...this.extraProps
|
903
|
+
});
|
904
|
+
}
|
905
|
+
addGitBranchesEntry(workspace, dbName, body) {
|
906
|
+
return operationsByTag.database.addGitBranchesEntry({
|
907
|
+
pathParams: { workspace, dbName },
|
908
|
+
body,
|
909
|
+
...this.extraProps
|
910
|
+
});
|
911
|
+
}
|
912
|
+
removeGitBranchesEntry(workspace, dbName, gitBranch) {
|
913
|
+
return operationsByTag.database.removeGitBranchesEntry({
|
914
|
+
pathParams: { workspace, dbName },
|
915
|
+
queryParams: { gitBranch },
|
916
|
+
...this.extraProps
|
917
|
+
});
|
918
|
+
}
|
919
|
+
resolveBranch(workspace, dbName, gitBranch, fallbackBranch) {
|
920
|
+
return operationsByTag.database.resolveBranch({
|
921
|
+
pathParams: { workspace, dbName },
|
922
|
+
queryParams: { gitBranch, fallbackBranch },
|
923
|
+
...this.extraProps
|
924
|
+
});
|
925
|
+
}
|
643
926
|
}
|
644
927
|
class BranchApi {
|
645
928
|
constructor(extraProps) {
|
@@ -657,10 +940,10 @@ class BranchApi {
|
|
657
940
|
...this.extraProps
|
658
941
|
});
|
659
942
|
}
|
660
|
-
createBranch(workspace, database, branch, from
|
943
|
+
createBranch(workspace, database, branch, from, options = {}) {
|
661
944
|
return operationsByTag.branch.createBranch({
|
662
945
|
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
663
|
-
queryParams: { from },
|
946
|
+
queryParams: isString(from) ? { from } : void 0,
|
664
947
|
body: options,
|
665
948
|
...this.extraProps
|
666
949
|
});
|
@@ -684,27 +967,6 @@ class BranchApi {
|
|
684
967
|
...this.extraProps
|
685
968
|
});
|
686
969
|
}
|
687
|
-
getBranchMigrationHistory(workspace, database, branch, options = {}) {
|
688
|
-
return operationsByTag.branch.getBranchMigrationHistory({
|
689
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
690
|
-
body: options,
|
691
|
-
...this.extraProps
|
692
|
-
});
|
693
|
-
}
|
694
|
-
executeBranchMigrationPlan(workspace, database, branch, migrationPlan) {
|
695
|
-
return operationsByTag.branch.executeBranchMigrationPlan({
|
696
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
697
|
-
body: migrationPlan,
|
698
|
-
...this.extraProps
|
699
|
-
});
|
700
|
-
}
|
701
|
-
getBranchMigrationPlan(workspace, database, branch, schema) {
|
702
|
-
return operationsByTag.branch.getBranchMigrationPlan({
|
703
|
-
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
704
|
-
body: schema,
|
705
|
-
...this.extraProps
|
706
|
-
});
|
707
|
-
}
|
708
970
|
getBranchStats(workspace, database, branch) {
|
709
971
|
return operationsByTag.branch.getBranchStats({
|
710
972
|
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
@@ -785,9 +1047,10 @@ class RecordsApi {
|
|
785
1047
|
constructor(extraProps) {
|
786
1048
|
this.extraProps = extraProps;
|
787
1049
|
}
|
788
|
-
insertRecord(workspace, database, branch, tableName, record) {
|
1050
|
+
insertRecord(workspace, database, branch, tableName, record, options = {}) {
|
789
1051
|
return operationsByTag.records.insertRecord({
|
790
1052
|
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1053
|
+
queryParams: options,
|
791
1054
|
body: record,
|
792
1055
|
...this.extraProps
|
793
1056
|
});
|
@@ -816,21 +1079,24 @@ class RecordsApi {
|
|
816
1079
|
...this.extraProps
|
817
1080
|
});
|
818
1081
|
}
|
819
|
-
deleteRecord(workspace, database, branch, tableName, recordId) {
|
1082
|
+
deleteRecord(workspace, database, branch, tableName, recordId, options = {}) {
|
820
1083
|
return operationsByTag.records.deleteRecord({
|
821
1084
|
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
|
1085
|
+
queryParams: options,
|
822
1086
|
...this.extraProps
|
823
1087
|
});
|
824
1088
|
}
|
825
1089
|
getRecord(workspace, database, branch, tableName, recordId, options = {}) {
|
826
1090
|
return operationsByTag.records.getRecord({
|
827
1091
|
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName, recordId },
|
1092
|
+
queryParams: options,
|
828
1093
|
...this.extraProps
|
829
1094
|
});
|
830
1095
|
}
|
831
|
-
bulkInsertTableRecords(workspace, database, branch, tableName, records) {
|
1096
|
+
bulkInsertTableRecords(workspace, database, branch, tableName, records, options = {}) {
|
832
1097
|
return operationsByTag.records.bulkInsertTableRecords({
|
833
1098
|
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1099
|
+
queryParams: options,
|
834
1100
|
body: { records },
|
835
1101
|
...this.extraProps
|
836
1102
|
});
|
@@ -842,6 +1108,13 @@ class RecordsApi {
|
|
842
1108
|
...this.extraProps
|
843
1109
|
});
|
844
1110
|
}
|
1111
|
+
searchTable(workspace, database, branch, tableName, query) {
|
1112
|
+
return operationsByTag.records.searchTable({
|
1113
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1114
|
+
body: query,
|
1115
|
+
...this.extraProps
|
1116
|
+
});
|
1117
|
+
}
|
845
1118
|
searchBranch(workspace, database, branch, query) {
|
846
1119
|
return operationsByTag.records.searchBranch({
|
847
1120
|
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
@@ -849,6 +1122,138 @@ class RecordsApi {
|
|
849
1122
|
...this.extraProps
|
850
1123
|
});
|
851
1124
|
}
|
1125
|
+
summarizeTable(workspace, database, branch, tableName, query) {
|
1126
|
+
return operationsByTag.records.summarizeTable({
|
1127
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}`, tableName },
|
1128
|
+
body: query,
|
1129
|
+
...this.extraProps
|
1130
|
+
});
|
1131
|
+
}
|
1132
|
+
}
|
1133
|
+
class MigrationRequestsApi {
|
1134
|
+
constructor(extraProps) {
|
1135
|
+
this.extraProps = extraProps;
|
1136
|
+
}
|
1137
|
+
listMigrationRequests(workspace, database, options = {}) {
|
1138
|
+
return operationsByTag.migrationRequests.listMigrationRequests({
|
1139
|
+
pathParams: { workspace, dbName: database },
|
1140
|
+
body: options,
|
1141
|
+
...this.extraProps
|
1142
|
+
});
|
1143
|
+
}
|
1144
|
+
createMigrationRequest(workspace, database, options) {
|
1145
|
+
return operationsByTag.migrationRequests.createMigrationRequest({
|
1146
|
+
pathParams: { workspace, dbName: database },
|
1147
|
+
body: options,
|
1148
|
+
...this.extraProps
|
1149
|
+
});
|
1150
|
+
}
|
1151
|
+
getMigrationRequest(workspace, database, migrationRequest) {
|
1152
|
+
return operationsByTag.migrationRequests.getMigrationRequest({
|
1153
|
+
pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
|
1154
|
+
...this.extraProps
|
1155
|
+
});
|
1156
|
+
}
|
1157
|
+
updateMigrationRequest(workspace, database, migrationRequest, options) {
|
1158
|
+
return operationsByTag.migrationRequests.updateMigrationRequest({
|
1159
|
+
pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
|
1160
|
+
body: options,
|
1161
|
+
...this.extraProps
|
1162
|
+
});
|
1163
|
+
}
|
1164
|
+
listMigrationRequestsCommits(workspace, database, migrationRequest, options = {}) {
|
1165
|
+
return operationsByTag.migrationRequests.listMigrationRequestsCommits({
|
1166
|
+
pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
|
1167
|
+
body: options,
|
1168
|
+
...this.extraProps
|
1169
|
+
});
|
1170
|
+
}
|
1171
|
+
compareMigrationRequest(workspace, database, migrationRequest) {
|
1172
|
+
return operationsByTag.migrationRequests.compareMigrationRequest({
|
1173
|
+
pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
|
1174
|
+
...this.extraProps
|
1175
|
+
});
|
1176
|
+
}
|
1177
|
+
getMigrationRequestIsMerged(workspace, database, migrationRequest) {
|
1178
|
+
return operationsByTag.migrationRequests.getMigrationRequestIsMerged({
|
1179
|
+
pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
|
1180
|
+
...this.extraProps
|
1181
|
+
});
|
1182
|
+
}
|
1183
|
+
mergeMigrationRequest(workspace, database, migrationRequest) {
|
1184
|
+
return operationsByTag.migrationRequests.mergeMigrationRequest({
|
1185
|
+
pathParams: { workspace, dbName: database, mrNumber: migrationRequest },
|
1186
|
+
...this.extraProps
|
1187
|
+
});
|
1188
|
+
}
|
1189
|
+
}
|
1190
|
+
class BranchSchemaApi {
|
1191
|
+
constructor(extraProps) {
|
1192
|
+
this.extraProps = extraProps;
|
1193
|
+
}
|
1194
|
+
getBranchMigrationHistory(workspace, database, branch, options = {}) {
|
1195
|
+
return operationsByTag.branchSchema.getBranchMigrationHistory({
|
1196
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
1197
|
+
body: options,
|
1198
|
+
...this.extraProps
|
1199
|
+
});
|
1200
|
+
}
|
1201
|
+
executeBranchMigrationPlan(workspace, database, branch, migrationPlan) {
|
1202
|
+
return operationsByTag.branchSchema.executeBranchMigrationPlan({
|
1203
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
1204
|
+
body: migrationPlan,
|
1205
|
+
...this.extraProps
|
1206
|
+
});
|
1207
|
+
}
|
1208
|
+
getBranchMigrationPlan(workspace, database, branch, schema) {
|
1209
|
+
return operationsByTag.branchSchema.getBranchMigrationPlan({
|
1210
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
1211
|
+
body: schema,
|
1212
|
+
...this.extraProps
|
1213
|
+
});
|
1214
|
+
}
|
1215
|
+
compareBranchWithUserSchema(workspace, database, branch, schema) {
|
1216
|
+
return operationsByTag.branchSchema.compareBranchWithUserSchema({
|
1217
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
1218
|
+
body: { schema },
|
1219
|
+
...this.extraProps
|
1220
|
+
});
|
1221
|
+
}
|
1222
|
+
compareBranchSchemas(workspace, database, branch, branchName, schema) {
|
1223
|
+
return operationsByTag.branchSchema.compareBranchSchemas({
|
1224
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}`, branchName },
|
1225
|
+
body: { schema },
|
1226
|
+
...this.extraProps
|
1227
|
+
});
|
1228
|
+
}
|
1229
|
+
updateBranchSchema(workspace, database, branch, migration) {
|
1230
|
+
return operationsByTag.branchSchema.updateBranchSchema({
|
1231
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
1232
|
+
body: migration,
|
1233
|
+
...this.extraProps
|
1234
|
+
});
|
1235
|
+
}
|
1236
|
+
previewBranchSchemaEdit(workspace, database, branch, migration) {
|
1237
|
+
return operationsByTag.branchSchema.previewBranchSchemaEdit({
|
1238
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
1239
|
+
body: migration,
|
1240
|
+
...this.extraProps
|
1241
|
+
});
|
1242
|
+
}
|
1243
|
+
applyBranchSchemaEdit(workspace, database, branch, edits) {
|
1244
|
+
return operationsByTag.branchSchema.applyBranchSchemaEdit({
|
1245
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
1246
|
+
body: { edits },
|
1247
|
+
...this.extraProps
|
1248
|
+
});
|
1249
|
+
}
|
1250
|
+
getBranchSchemaHistory(workspace, database, branch, options = {}) {
|
1251
|
+
return operationsByTag.branchSchema.getBranchSchemaHistory({
|
1252
|
+
pathParams: { workspace, dbBranchName: `${database}:${branch}` },
|
1253
|
+
body: options,
|
1254
|
+
...this.extraProps
|
1255
|
+
});
|
1256
|
+
}
|
852
1257
|
}
|
853
1258
|
|
854
1259
|
class XataApiPlugin {
|
@@ -865,7 +1270,7 @@ var __accessCheck$6 = (obj, member, msg) => {
|
|
865
1270
|
if (!member.has(obj))
|
866
1271
|
throw TypeError("Cannot " + msg);
|
867
1272
|
};
|
868
|
-
var __privateGet$
|
1273
|
+
var __privateGet$6 = (obj, member, getter) => {
|
869
1274
|
__accessCheck$6(obj, member, "read from private field");
|
870
1275
|
return getter ? getter.call(obj) : member.get(obj);
|
871
1276
|
};
|
@@ -874,30 +1279,30 @@ var __privateAdd$6 = (obj, member, value) => {
|
|
874
1279
|
throw TypeError("Cannot add the same private member more than once");
|
875
1280
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
876
1281
|
};
|
877
|
-
var __privateSet$
|
1282
|
+
var __privateSet$6 = (obj, member, value, setter) => {
|
878
1283
|
__accessCheck$6(obj, member, "write to private field");
|
879
1284
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
880
1285
|
return value;
|
881
1286
|
};
|
882
|
-
var _query;
|
1287
|
+
var _query, _page;
|
883
1288
|
class Page {
|
884
1289
|
constructor(query, meta, records = []) {
|
885
1290
|
__privateAdd$6(this, _query, void 0);
|
886
|
-
__privateSet$
|
1291
|
+
__privateSet$6(this, _query, query);
|
887
1292
|
this.meta = meta;
|
888
|
-
this.records = records;
|
1293
|
+
this.records = new RecordArray(this, records);
|
889
1294
|
}
|
890
1295
|
async nextPage(size, offset) {
|
891
|
-
return __privateGet$
|
1296
|
+
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, after: this.meta.page.cursor } });
|
892
1297
|
}
|
893
1298
|
async previousPage(size, offset) {
|
894
|
-
return __privateGet$
|
1299
|
+
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, before: this.meta.page.cursor } });
|
895
1300
|
}
|
896
1301
|
async firstPage(size, offset) {
|
897
|
-
return __privateGet$
|
1302
|
+
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, first: this.meta.page.cursor } });
|
898
1303
|
}
|
899
1304
|
async lastPage(size, offset) {
|
900
|
-
return __privateGet$
|
1305
|
+
return __privateGet$6(this, _query).getPaginated({ pagination: { size, offset, last: this.meta.page.cursor } });
|
901
1306
|
}
|
902
1307
|
hasNextPage() {
|
903
1308
|
return this.meta.page.more;
|
@@ -905,15 +1310,62 @@ class Page {
|
|
905
1310
|
}
|
906
1311
|
_query = new WeakMap();
|
907
1312
|
const PAGINATION_MAX_SIZE = 200;
|
908
|
-
const PAGINATION_DEFAULT_SIZE =
|
1313
|
+
const PAGINATION_DEFAULT_SIZE = 20;
|
909
1314
|
const PAGINATION_MAX_OFFSET = 800;
|
910
1315
|
const PAGINATION_DEFAULT_OFFSET = 0;
|
1316
|
+
function isCursorPaginationOptions(options) {
|
1317
|
+
return isDefined(options) && (isDefined(options.first) || isDefined(options.last) || isDefined(options.after) || isDefined(options.before));
|
1318
|
+
}
|
1319
|
+
const _RecordArray = class extends Array {
|
1320
|
+
constructor(...args) {
|
1321
|
+
super(..._RecordArray.parseConstructorParams(...args));
|
1322
|
+
__privateAdd$6(this, _page, void 0);
|
1323
|
+
__privateSet$6(this, _page, isObject(args[0]?.meta) ? args[0] : { meta: { page: { cursor: "", more: false } }, records: [] });
|
1324
|
+
}
|
1325
|
+
static parseConstructorParams(...args) {
|
1326
|
+
if (args.length === 1 && typeof args[0] === "number") {
|
1327
|
+
return new Array(args[0]);
|
1328
|
+
}
|
1329
|
+
if (args.length <= 2 && isObject(args[0]?.meta) && Array.isArray(args[1] ?? [])) {
|
1330
|
+
const result = args[1] ?? args[0].records ?? [];
|
1331
|
+
return new Array(...result);
|
1332
|
+
}
|
1333
|
+
return new Array(...args);
|
1334
|
+
}
|
1335
|
+
toArray() {
|
1336
|
+
return new Array(...this);
|
1337
|
+
}
|
1338
|
+
map(callbackfn, thisArg) {
|
1339
|
+
return this.toArray().map(callbackfn, thisArg);
|
1340
|
+
}
|
1341
|
+
async nextPage(size, offset) {
|
1342
|
+
const newPage = await __privateGet$6(this, _page).nextPage(size, offset);
|
1343
|
+
return new _RecordArray(newPage);
|
1344
|
+
}
|
1345
|
+
async previousPage(size, offset) {
|
1346
|
+
const newPage = await __privateGet$6(this, _page).previousPage(size, offset);
|
1347
|
+
return new _RecordArray(newPage);
|
1348
|
+
}
|
1349
|
+
async firstPage(size, offset) {
|
1350
|
+
const newPage = await __privateGet$6(this, _page).firstPage(size, offset);
|
1351
|
+
return new _RecordArray(newPage);
|
1352
|
+
}
|
1353
|
+
async lastPage(size, offset) {
|
1354
|
+
const newPage = await __privateGet$6(this, _page).lastPage(size, offset);
|
1355
|
+
return new _RecordArray(newPage);
|
1356
|
+
}
|
1357
|
+
hasNextPage() {
|
1358
|
+
return __privateGet$6(this, _page).meta.page.more;
|
1359
|
+
}
|
1360
|
+
};
|
1361
|
+
let RecordArray = _RecordArray;
|
1362
|
+
_page = new WeakMap();
|
911
1363
|
|
912
1364
|
var __accessCheck$5 = (obj, member, msg) => {
|
913
1365
|
if (!member.has(obj))
|
914
1366
|
throw TypeError("Cannot " + msg);
|
915
1367
|
};
|
916
|
-
var __privateGet$
|
1368
|
+
var __privateGet$5 = (obj, member, getter) => {
|
917
1369
|
__accessCheck$5(obj, member, "read from private field");
|
918
1370
|
return getter ? getter.call(obj) : member.get(obj);
|
919
1371
|
};
|
@@ -922,34 +1374,40 @@ var __privateAdd$5 = (obj, member, value) => {
|
|
922
1374
|
throw TypeError("Cannot add the same private member more than once");
|
923
1375
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
924
1376
|
};
|
925
|
-
var __privateSet$
|
1377
|
+
var __privateSet$5 = (obj, member, value, setter) => {
|
926
1378
|
__accessCheck$5(obj, member, "write to private field");
|
927
1379
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
928
1380
|
return value;
|
929
1381
|
};
|
930
|
-
var
|
1382
|
+
var __privateMethod$3 = (obj, member, method) => {
|
1383
|
+
__accessCheck$5(obj, member, "access private method");
|
1384
|
+
return method;
|
1385
|
+
};
|
1386
|
+
var _table$1, _repository, _data, _cleanFilterConstraint, cleanFilterConstraint_fn;
|
931
1387
|
const _Query = class {
|
932
|
-
constructor(repository, table, data,
|
1388
|
+
constructor(repository, table, data, rawParent) {
|
1389
|
+
__privateAdd$5(this, _cleanFilterConstraint);
|
933
1390
|
__privateAdd$5(this, _table$1, void 0);
|
934
1391
|
__privateAdd$5(this, _repository, void 0);
|
935
1392
|
__privateAdd$5(this, _data, { filter: {} });
|
936
1393
|
this.meta = { page: { cursor: "start", more: true } };
|
937
|
-
this.records = [];
|
938
|
-
__privateSet$
|
1394
|
+
this.records = new RecordArray(this, []);
|
1395
|
+
__privateSet$5(this, _table$1, table);
|
939
1396
|
if (repository) {
|
940
|
-
__privateSet$
|
1397
|
+
__privateSet$5(this, _repository, repository);
|
941
1398
|
} else {
|
942
|
-
__privateSet$
|
1399
|
+
__privateSet$5(this, _repository, this);
|
943
1400
|
}
|
944
|
-
|
945
|
-
__privateGet$
|
946
|
-
__privateGet$
|
947
|
-
__privateGet$
|
948
|
-
__privateGet$
|
949
|
-
__privateGet$
|
950
|
-
__privateGet$
|
951
|
-
__privateGet$
|
952
|
-
__privateGet$
|
1401
|
+
const parent = cleanParent(data, rawParent);
|
1402
|
+
__privateGet$5(this, _data).filter = data.filter ?? parent?.filter ?? {};
|
1403
|
+
__privateGet$5(this, _data).filter.$any = data.filter?.$any ?? parent?.filter?.$any;
|
1404
|
+
__privateGet$5(this, _data).filter.$all = data.filter?.$all ?? parent?.filter?.$all;
|
1405
|
+
__privateGet$5(this, _data).filter.$not = data.filter?.$not ?? parent?.filter?.$not;
|
1406
|
+
__privateGet$5(this, _data).filter.$none = data.filter?.$none ?? parent?.filter?.$none;
|
1407
|
+
__privateGet$5(this, _data).sort = data.sort ?? parent?.sort;
|
1408
|
+
__privateGet$5(this, _data).columns = data.columns ?? parent?.columns ?? ["*"];
|
1409
|
+
__privateGet$5(this, _data).pagination = data.pagination ?? parent?.pagination;
|
1410
|
+
__privateGet$5(this, _data).cache = data.cache ?? parent?.cache;
|
953
1411
|
this.any = this.any.bind(this);
|
954
1412
|
this.all = this.all.bind(this);
|
955
1413
|
this.not = this.not.bind(this);
|
@@ -960,83 +1418,111 @@ const _Query = class {
|
|
960
1418
|
Object.defineProperty(this, "repository", { enumerable: false });
|
961
1419
|
}
|
962
1420
|
getQueryOptions() {
|
963
|
-
return __privateGet$
|
1421
|
+
return __privateGet$5(this, _data);
|
964
1422
|
}
|
965
1423
|
key() {
|
966
|
-
const { columns = [], filter = {}, sort = [],
|
967
|
-
const key = JSON.stringify({ columns, filter, sort,
|
1424
|
+
const { columns = [], filter = {}, sort = [], pagination = {} } = __privateGet$5(this, _data);
|
1425
|
+
const key = JSON.stringify({ columns, filter, sort, pagination });
|
968
1426
|
return toBase64(key);
|
969
1427
|
}
|
970
1428
|
any(...queries) {
|
971
1429
|
const $any = queries.map((query) => query.getQueryOptions().filter ?? {});
|
972
|
-
return new _Query(__privateGet$
|
1430
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $any } }, __privateGet$5(this, _data));
|
973
1431
|
}
|
974
1432
|
all(...queries) {
|
975
1433
|
const $all = queries.map((query) => query.getQueryOptions().filter ?? {});
|
976
|
-
return new _Query(__privateGet$
|
1434
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
977
1435
|
}
|
978
1436
|
not(...queries) {
|
979
1437
|
const $not = queries.map((query) => query.getQueryOptions().filter ?? {});
|
980
|
-
return new _Query(__privateGet$
|
1438
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $not } }, __privateGet$5(this, _data));
|
981
1439
|
}
|
982
1440
|
none(...queries) {
|
983
1441
|
const $none = queries.map((query) => query.getQueryOptions().filter ?? {});
|
984
|
-
return new _Query(__privateGet$
|
1442
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $none } }, __privateGet$5(this, _data));
|
985
1443
|
}
|
986
1444
|
filter(a, b) {
|
987
1445
|
if (arguments.length === 1) {
|
988
|
-
const constraints = Object.entries(a).map(([column, constraint]) => ({
|
989
|
-
|
990
|
-
|
1446
|
+
const constraints = Object.entries(a ?? {}).map(([column, constraint]) => ({
|
1447
|
+
[column]: __privateMethod$3(this, _cleanFilterConstraint, cleanFilterConstraint_fn).call(this, column, constraint)
|
1448
|
+
}));
|
1449
|
+
const $all = compact([__privateGet$5(this, _data).filter?.$all].flat().concat(constraints));
|
1450
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
991
1451
|
} else {
|
992
|
-
const
|
993
|
-
|
1452
|
+
const constraints = isDefined(a) && isDefined(b) ? [{ [a]: __privateMethod$3(this, _cleanFilterConstraint, cleanFilterConstraint_fn).call(this, a, b) }] : void 0;
|
1453
|
+
const $all = compact([__privateGet$5(this, _data).filter?.$all].flat().concat(constraints));
|
1454
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { filter: { $all } }, __privateGet$5(this, _data));
|
994
1455
|
}
|
995
1456
|
}
|
996
|
-
sort(column, direction) {
|
997
|
-
const originalSort = [__privateGet$
|
1457
|
+
sort(column, direction = "asc") {
|
1458
|
+
const originalSort = [__privateGet$5(this, _data).sort ?? []].flat();
|
998
1459
|
const sort = [...originalSort, { column, direction }];
|
999
|
-
return new _Query(__privateGet$
|
1460
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { sort }, __privateGet$5(this, _data));
|
1000
1461
|
}
|
1001
1462
|
select(columns) {
|
1002
|
-
return new _Query(
|
1463
|
+
return new _Query(
|
1464
|
+
__privateGet$5(this, _repository),
|
1465
|
+
__privateGet$5(this, _table$1),
|
1466
|
+
{ columns },
|
1467
|
+
__privateGet$5(this, _data)
|
1468
|
+
);
|
1003
1469
|
}
|
1004
1470
|
getPaginated(options = {}) {
|
1005
|
-
const query = new _Query(__privateGet$
|
1006
|
-
return __privateGet$
|
1471
|
+
const query = new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), options, __privateGet$5(this, _data));
|
1472
|
+
return __privateGet$5(this, _repository).query(query);
|
1007
1473
|
}
|
1008
1474
|
async *[Symbol.asyncIterator]() {
|
1009
|
-
for await (const [record] of this.getIterator(1)) {
|
1475
|
+
for await (const [record] of this.getIterator({ batchSize: 1 })) {
|
1010
1476
|
yield record;
|
1011
1477
|
}
|
1012
1478
|
}
|
1013
|
-
async *getIterator(
|
1014
|
-
|
1015
|
-
let
|
1016
|
-
|
1017
|
-
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1479
|
+
async *getIterator(options = {}) {
|
1480
|
+
const { batchSize = 1 } = options;
|
1481
|
+
let page = await this.getPaginated({ ...options, pagination: { size: batchSize, offset: 0 } });
|
1482
|
+
let more = page.hasNextPage();
|
1483
|
+
yield page.records;
|
1484
|
+
while (more) {
|
1485
|
+
page = await page.nextPage();
|
1486
|
+
more = page.hasNextPage();
|
1487
|
+
yield page.records;
|
1021
1488
|
}
|
1022
1489
|
}
|
1023
1490
|
async getMany(options = {}) {
|
1024
|
-
const {
|
1025
|
-
|
1491
|
+
const { pagination = {}, ...rest } = options;
|
1492
|
+
const { size = PAGINATION_DEFAULT_SIZE, offset } = pagination;
|
1493
|
+
const batchSize = size <= PAGINATION_MAX_SIZE ? size : PAGINATION_MAX_SIZE;
|
1494
|
+
let page = await this.getPaginated({ ...rest, pagination: { size: batchSize, offset } });
|
1495
|
+
const results = [...page.records];
|
1496
|
+
while (page.hasNextPage() && results.length < size) {
|
1497
|
+
page = await page.nextPage();
|
1498
|
+
results.push(...page.records);
|
1499
|
+
}
|
1500
|
+
if (page.hasNextPage() && options.pagination?.size === void 0) {
|
1501
|
+
console.trace("Calling getMany does not return all results. Paginate to get all results or call getAll.");
|
1502
|
+
}
|
1503
|
+
const array = new RecordArray(page, results.slice(0, size));
|
1504
|
+
return array;
|
1026
1505
|
}
|
1027
|
-
async getAll(
|
1506
|
+
async getAll(options = {}) {
|
1507
|
+
const { batchSize = PAGINATION_MAX_SIZE, ...rest } = options;
|
1028
1508
|
const results = [];
|
1029
|
-
for await (const page of this.getIterator(
|
1509
|
+
for await (const page of this.getIterator({ ...rest, batchSize })) {
|
1030
1510
|
results.push(...page);
|
1031
1511
|
}
|
1032
1512
|
return results;
|
1033
1513
|
}
|
1034
1514
|
async getFirst(options = {}) {
|
1035
|
-
const records = await this.getMany({ ...options,
|
1036
|
-
return records[0]
|
1515
|
+
const records = await this.getMany({ ...options, pagination: { size: 1 } });
|
1516
|
+
return records[0] ?? null;
|
1517
|
+
}
|
1518
|
+
async getFirstOrThrow(options = {}) {
|
1519
|
+
const records = await this.getMany({ ...options, pagination: { size: 1 } });
|
1520
|
+
if (records[0] === void 0)
|
1521
|
+
throw new Error("No results found.");
|
1522
|
+
return records[0];
|
1037
1523
|
}
|
1038
1524
|
cache(ttl) {
|
1039
|
-
return new _Query(__privateGet$
|
1525
|
+
return new _Query(__privateGet$5(this, _repository), __privateGet$5(this, _table$1), { cache: ttl }, __privateGet$5(this, _data));
|
1040
1526
|
}
|
1041
1527
|
nextPage(size, offset) {
|
1042
1528
|
return this.firstPage(size, offset);
|
@@ -1045,10 +1531,10 @@ const _Query = class {
|
|
1045
1531
|
return this.firstPage(size, offset);
|
1046
1532
|
}
|
1047
1533
|
firstPage(size, offset) {
|
1048
|
-
return this.getPaginated({
|
1534
|
+
return this.getPaginated({ pagination: { size, offset } });
|
1049
1535
|
}
|
1050
1536
|
lastPage(size, offset) {
|
1051
|
-
return this.getPaginated({
|
1537
|
+
return this.getPaginated({ pagination: { size, offset, before: "end" } });
|
1052
1538
|
}
|
1053
1539
|
hasNextPage() {
|
1054
1540
|
return this.meta.page.more;
|
@@ -1058,12 +1544,31 @@ let Query = _Query;
|
|
1058
1544
|
_table$1 = new WeakMap();
|
1059
1545
|
_repository = new WeakMap();
|
1060
1546
|
_data = new WeakMap();
|
1547
|
+
_cleanFilterConstraint = new WeakSet();
|
1548
|
+
cleanFilterConstraint_fn = function(column, value) {
|
1549
|
+
const columnType = __privateGet$5(this, _table$1).schema?.columns.find(({ name }) => name === column)?.type;
|
1550
|
+
if (columnType === "multiple" && (isString(value) || isStringArray(value))) {
|
1551
|
+
return { $includes: value };
|
1552
|
+
}
|
1553
|
+
if (columnType === "link" && isObject(value) && isString(value.id)) {
|
1554
|
+
return value.id;
|
1555
|
+
}
|
1556
|
+
return value;
|
1557
|
+
};
|
1558
|
+
function cleanParent(data, parent) {
|
1559
|
+
if (isCursorPaginationOptions(data.pagination)) {
|
1560
|
+
return { ...parent, sorting: void 0, filter: void 0 };
|
1561
|
+
}
|
1562
|
+
return parent;
|
1563
|
+
}
|
1061
1564
|
|
1062
1565
|
function isIdentifiable(x) {
|
1063
1566
|
return isObject(x) && isString(x?.id);
|
1064
1567
|
}
|
1065
1568
|
function isXataRecord(x) {
|
1066
|
-
|
1569
|
+
const record = x;
|
1570
|
+
const metadata = record?.getMetadata();
|
1571
|
+
return isIdentifiable(x) && isObject(metadata) && typeof metadata.version === "number";
|
1067
1572
|
}
|
1068
1573
|
|
1069
1574
|
function isSortFilterString(value) {
|
@@ -1093,7 +1598,7 @@ var __accessCheck$4 = (obj, member, msg) => {
|
|
1093
1598
|
if (!member.has(obj))
|
1094
1599
|
throw TypeError("Cannot " + msg);
|
1095
1600
|
};
|
1096
|
-
var __privateGet$
|
1601
|
+
var __privateGet$4 = (obj, member, getter) => {
|
1097
1602
|
__accessCheck$4(obj, member, "read from private field");
|
1098
1603
|
return getter ? getter.call(obj) : member.get(obj);
|
1099
1604
|
};
|
@@ -1102,7 +1607,7 @@ var __privateAdd$4 = (obj, member, value) => {
|
|
1102
1607
|
throw TypeError("Cannot add the same private member more than once");
|
1103
1608
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
1104
1609
|
};
|
1105
|
-
var __privateSet$
|
1610
|
+
var __privateSet$4 = (obj, member, value, setter) => {
|
1106
1611
|
__accessCheck$4(obj, member, "write to private field");
|
1107
1612
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
1108
1613
|
return value;
|
@@ -1111,304 +1616,413 @@ var __privateMethod$2 = (obj, member, method) => {
|
|
1111
1616
|
__accessCheck$4(obj, member, "access private method");
|
1112
1617
|
return method;
|
1113
1618
|
};
|
1114
|
-
var _table,
|
1619
|
+
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;
|
1115
1620
|
class Repository extends Query {
|
1116
1621
|
}
|
1117
1622
|
class RestRepository extends Query {
|
1118
1623
|
constructor(options) {
|
1119
|
-
super(
|
1624
|
+
super(
|
1625
|
+
null,
|
1626
|
+
{ name: options.table, schema: options.schemaTables?.find((table) => table.name === options.table) },
|
1627
|
+
{}
|
1628
|
+
);
|
1120
1629
|
__privateAdd$4(this, _insertRecordWithoutId);
|
1121
1630
|
__privateAdd$4(this, _insertRecordWithId);
|
1122
1631
|
__privateAdd$4(this, _bulkInsertTableRecords);
|
1123
1632
|
__privateAdd$4(this, _updateRecordWithID);
|
1124
1633
|
__privateAdd$4(this, _upsertRecordWithID);
|
1125
1634
|
__privateAdd$4(this, _deleteRecord);
|
1126
|
-
__privateAdd$4(this, _invalidateCache);
|
1127
|
-
__privateAdd$4(this, _setCacheRecord);
|
1128
|
-
__privateAdd$4(this, _getCacheRecord);
|
1129
1635
|
__privateAdd$4(this, _setCacheQuery);
|
1130
1636
|
__privateAdd$4(this, _getCacheQuery);
|
1637
|
+
__privateAdd$4(this, _getSchemaTables$1);
|
1131
1638
|
__privateAdd$4(this, _table, void 0);
|
1132
|
-
__privateAdd$4(this, _links, void 0);
|
1133
1639
|
__privateAdd$4(this, _getFetchProps, void 0);
|
1640
|
+
__privateAdd$4(this, _db, void 0);
|
1134
1641
|
__privateAdd$4(this, _cache, void 0);
|
1135
|
-
|
1136
|
-
|
1137
|
-
__privateSet$
|
1138
|
-
this
|
1139
|
-
__privateSet$
|
1140
|
-
|
1141
|
-
|
1142
|
-
|
1143
|
-
|
1144
|
-
|
1145
|
-
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
1149
|
-
throw new Error("The id can't be empty");
|
1150
|
-
const record = await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a, b);
|
1151
|
-
await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
|
1152
|
-
return record;
|
1153
|
-
}
|
1154
|
-
if (isObject(a) && isString(a.id)) {
|
1155
|
-
if (a.id === "")
|
1156
|
-
throw new Error("The id can't be empty");
|
1157
|
-
const record = await __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a.id, { ...a, id: void 0 });
|
1158
|
-
await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
|
1159
|
-
return record;
|
1160
|
-
}
|
1161
|
-
if (isObject(a)) {
|
1162
|
-
const record = await __privateMethod$2(this, _insertRecordWithoutId, insertRecordWithoutId_fn).call(this, a);
|
1163
|
-
await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
|
1164
|
-
return record;
|
1165
|
-
}
|
1166
|
-
throw new Error("Invalid arguments for create method");
|
1167
|
-
}
|
1168
|
-
async read(recordId) {
|
1169
|
-
const cacheRecord = await __privateMethod$2(this, _getCacheRecord, getCacheRecord_fn).call(this, recordId);
|
1170
|
-
if (cacheRecord)
|
1171
|
-
return cacheRecord;
|
1172
|
-
const fetchProps = await __privateGet$3(this, _getFetchProps).call(this);
|
1173
|
-
try {
|
1174
|
-
const response = await getRecord({
|
1175
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$3(this, _table), recordId },
|
1176
|
-
...fetchProps
|
1642
|
+
__privateAdd$4(this, _schemaTables$2, void 0);
|
1643
|
+
__privateAdd$4(this, _trace, void 0);
|
1644
|
+
__privateSet$4(this, _table, options.table);
|
1645
|
+
__privateSet$4(this, _getFetchProps, options.pluginOptions.getFetchProps);
|
1646
|
+
__privateSet$4(this, _db, options.db);
|
1647
|
+
__privateSet$4(this, _cache, options.pluginOptions.cache);
|
1648
|
+
__privateSet$4(this, _schemaTables$2, options.schemaTables);
|
1649
|
+
const trace = options.pluginOptions.trace ?? defaultTrace;
|
1650
|
+
__privateSet$4(this, _trace, async (name, fn, options2 = {}) => {
|
1651
|
+
return trace(name, fn, {
|
1652
|
+
...options2,
|
1653
|
+
[TraceAttributes.TABLE]: __privateGet$4(this, _table),
|
1654
|
+
[TraceAttributes.KIND]: "sdk-operation",
|
1655
|
+
[TraceAttributes.VERSION]: VERSION
|
1177
1656
|
});
|
1178
|
-
|
1179
|
-
|
1180
|
-
|
1181
|
-
|
1657
|
+
});
|
1658
|
+
}
|
1659
|
+
async create(a, b, c) {
|
1660
|
+
return __privateGet$4(this, _trace).call(this, "create", async () => {
|
1661
|
+
if (Array.isArray(a)) {
|
1662
|
+
if (a.length === 0)
|
1663
|
+
return [];
|
1664
|
+
const columns = isStringArray(b) ? b : void 0;
|
1665
|
+
return __privateMethod$2(this, _bulkInsertTableRecords, bulkInsertTableRecords_fn).call(this, a, columns);
|
1182
1666
|
}
|
1183
|
-
|
1184
|
-
|
1667
|
+
if (isString(a) && isObject(b)) {
|
1668
|
+
if (a === "")
|
1669
|
+
throw new Error("The id can't be empty");
|
1670
|
+
const columns = isStringArray(c) ? c : void 0;
|
1671
|
+
return __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a, b, columns);
|
1672
|
+
}
|
1673
|
+
if (isObject(a) && isString(a.id)) {
|
1674
|
+
if (a.id === "")
|
1675
|
+
throw new Error("The id can't be empty");
|
1676
|
+
const columns = isStringArray(b) ? b : void 0;
|
1677
|
+
return __privateMethod$2(this, _insertRecordWithId, insertRecordWithId_fn).call(this, a.id, { ...a, id: void 0 }, columns);
|
1678
|
+
}
|
1679
|
+
if (isObject(a)) {
|
1680
|
+
const columns = isStringArray(b) ? b : void 0;
|
1681
|
+
return __privateMethod$2(this, _insertRecordWithoutId, insertRecordWithoutId_fn).call(this, a, columns);
|
1682
|
+
}
|
1683
|
+
throw new Error("Invalid arguments for create method");
|
1684
|
+
});
|
1185
1685
|
}
|
1186
|
-
async
|
1187
|
-
|
1188
|
-
|
1189
|
-
|
1686
|
+
async read(a, b) {
|
1687
|
+
return __privateGet$4(this, _trace).call(this, "read", async () => {
|
1688
|
+
const columns = isStringArray(b) ? b : ["*"];
|
1689
|
+
if (Array.isArray(a)) {
|
1690
|
+
if (a.length === 0)
|
1691
|
+
return [];
|
1692
|
+
const ids = a.map((item) => extractId(item));
|
1693
|
+
const finalObjects = await this.getAll({ filter: { id: { $any: compact(ids) } }, columns });
|
1694
|
+
const dictionary = finalObjects.reduce((acc, object) => {
|
1695
|
+
acc[object.id] = object;
|
1696
|
+
return acc;
|
1697
|
+
}, {});
|
1698
|
+
return ids.map((id2) => dictionary[id2 ?? ""] ?? null);
|
1190
1699
|
}
|
1191
|
-
|
1192
|
-
|
1193
|
-
|
1194
|
-
|
1195
|
-
|
1196
|
-
|
1197
|
-
|
1198
|
-
|
1199
|
-
|
1200
|
-
|
1201
|
-
|
1202
|
-
|
1203
|
-
|
1204
|
-
|
1205
|
-
|
1700
|
+
const id = extractId(a);
|
1701
|
+
if (id) {
|
1702
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1703
|
+
try {
|
1704
|
+
const response = await getRecord({
|
1705
|
+
pathParams: {
|
1706
|
+
workspace: "{workspaceId}",
|
1707
|
+
dbBranchName: "{dbBranch}",
|
1708
|
+
tableName: __privateGet$4(this, _table),
|
1709
|
+
recordId: id
|
1710
|
+
},
|
1711
|
+
queryParams: { columns },
|
1712
|
+
...fetchProps
|
1713
|
+
});
|
1714
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1715
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
1716
|
+
} catch (e) {
|
1717
|
+
if (isObject(e) && e.status === 404) {
|
1718
|
+
return null;
|
1719
|
+
}
|
1720
|
+
throw e;
|
1721
|
+
}
|
1722
|
+
}
|
1723
|
+
return null;
|
1724
|
+
});
|
1206
1725
|
}
|
1207
|
-
async
|
1208
|
-
|
1209
|
-
|
1210
|
-
|
1726
|
+
async readOrThrow(a, b) {
|
1727
|
+
return __privateGet$4(this, _trace).call(this, "readOrThrow", async () => {
|
1728
|
+
const result = await this.read(a, b);
|
1729
|
+
if (Array.isArray(result)) {
|
1730
|
+
const missingIds = compact(
|
1731
|
+
a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
|
1732
|
+
);
|
1733
|
+
if (missingIds.length > 0) {
|
1734
|
+
throw new Error(`Could not find records with ids: ${missingIds.join(", ")}`);
|
1735
|
+
}
|
1736
|
+
return result;
|
1211
1737
|
}
|
1212
|
-
|
1213
|
-
|
1214
|
-
|
1215
|
-
|
1216
|
-
|
1217
|
-
|
1218
|
-
return record;
|
1219
|
-
}
|
1220
|
-
if (isObject(a) && isString(a.id)) {
|
1221
|
-
await __privateMethod$2(this, _invalidateCache, invalidateCache_fn).call(this, a.id);
|
1222
|
-
const record = await __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a.id, { ...a, id: void 0 });
|
1223
|
-
await __privateMethod$2(this, _setCacheRecord, setCacheRecord_fn).call(this, record);
|
1224
|
-
return record;
|
1225
|
-
}
|
1226
|
-
throw new Error("Invalid arguments for createOrUpdate method");
|
1738
|
+
if (result === null) {
|
1739
|
+
const id = extractId(a) ?? "unknown";
|
1740
|
+
throw new Error(`Record with id ${id} not found`);
|
1741
|
+
}
|
1742
|
+
return result;
|
1743
|
+
});
|
1227
1744
|
}
|
1228
|
-
async
|
1229
|
-
|
1230
|
-
if (a
|
1231
|
-
|
1745
|
+
async update(a, b, c) {
|
1746
|
+
return __privateGet$4(this, _trace).call(this, "update", async () => {
|
1747
|
+
if (Array.isArray(a)) {
|
1748
|
+
if (a.length === 0)
|
1749
|
+
return [];
|
1750
|
+
if (a.length > 100) {
|
1751
|
+
console.warn("Bulk update operation is not optimized in the Xata API yet, this request might be slow");
|
1752
|
+
}
|
1753
|
+
const columns = isStringArray(b) ? b : ["*"];
|
1754
|
+
return Promise.all(a.map((object) => this.update(object, columns)));
|
1232
1755
|
}
|
1233
|
-
|
1234
|
-
|
1235
|
-
|
1236
|
-
|
1237
|
-
|
1238
|
-
|
1239
|
-
|
1240
|
-
|
1241
|
-
|
1242
|
-
|
1243
|
-
|
1244
|
-
|
1245
|
-
|
1246
|
-
|
1756
|
+
if (isString(a) && isObject(b)) {
|
1757
|
+
const columns = isStringArray(c) ? c : void 0;
|
1758
|
+
return __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a, b, columns);
|
1759
|
+
}
|
1760
|
+
if (isObject(a) && isString(a.id)) {
|
1761
|
+
const columns = isStringArray(b) ? b : void 0;
|
1762
|
+
return __privateMethod$2(this, _updateRecordWithID, updateRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns);
|
1763
|
+
}
|
1764
|
+
throw new Error("Invalid arguments for update method");
|
1765
|
+
});
|
1766
|
+
}
|
1767
|
+
async updateOrThrow(a, b, c) {
|
1768
|
+
return __privateGet$4(this, _trace).call(this, "updateOrThrow", async () => {
|
1769
|
+
const result = await this.update(a, b, c);
|
1770
|
+
if (Array.isArray(result)) {
|
1771
|
+
const missingIds = compact(
|
1772
|
+
a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
|
1773
|
+
);
|
1774
|
+
if (missingIds.length > 0) {
|
1775
|
+
throw new Error(`Could not find records with ids: ${missingIds.join(", ")}`);
|
1776
|
+
}
|
1777
|
+
return result;
|
1778
|
+
}
|
1779
|
+
if (result === null) {
|
1780
|
+
const id = extractId(a) ?? "unknown";
|
1781
|
+
throw new Error(`Record with id ${id} not found`);
|
1782
|
+
}
|
1783
|
+
return result;
|
1784
|
+
});
|
1785
|
+
}
|
1786
|
+
async createOrUpdate(a, b, c) {
|
1787
|
+
return __privateGet$4(this, _trace).call(this, "createOrUpdate", async () => {
|
1788
|
+
if (Array.isArray(a)) {
|
1789
|
+
if (a.length === 0)
|
1790
|
+
return [];
|
1791
|
+
if (a.length > 100) {
|
1792
|
+
console.warn("Bulk update operation is not optimized in the Xata API yet, this request might be slow");
|
1793
|
+
}
|
1794
|
+
const columns = isStringArray(b) ? b : ["*"];
|
1795
|
+
return Promise.all(a.map((object) => this.createOrUpdate(object, columns)));
|
1796
|
+
}
|
1797
|
+
if (isString(a) && isObject(b)) {
|
1798
|
+
const columns = isStringArray(c) ? c : void 0;
|
1799
|
+
return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a, b, columns);
|
1800
|
+
}
|
1801
|
+
if (isObject(a) && isString(a.id)) {
|
1802
|
+
const columns = isStringArray(c) ? c : void 0;
|
1803
|
+
return __privateMethod$2(this, _upsertRecordWithID, upsertRecordWithID_fn).call(this, a.id, { ...a, id: void 0 }, columns);
|
1804
|
+
}
|
1805
|
+
throw new Error("Invalid arguments for createOrUpdate method");
|
1806
|
+
});
|
1807
|
+
}
|
1808
|
+
async delete(a, b) {
|
1809
|
+
return __privateGet$4(this, _trace).call(this, "delete", async () => {
|
1810
|
+
if (Array.isArray(a)) {
|
1811
|
+
if (a.length === 0)
|
1812
|
+
return [];
|
1813
|
+
if (a.length > 100) {
|
1814
|
+
console.warn("Bulk delete operation is not optimized in the Xata API yet, this request might be slow");
|
1815
|
+
}
|
1816
|
+
return Promise.all(a.map((id) => this.delete(id, b)));
|
1817
|
+
}
|
1818
|
+
if (isString(a)) {
|
1819
|
+
return __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a, b);
|
1820
|
+
}
|
1821
|
+
if (isObject(a) && isString(a.id)) {
|
1822
|
+
return __privateMethod$2(this, _deleteRecord, deleteRecord_fn).call(this, a.id, b);
|
1823
|
+
}
|
1824
|
+
throw new Error("Invalid arguments for delete method");
|
1825
|
+
});
|
1826
|
+
}
|
1827
|
+
async deleteOrThrow(a, b) {
|
1828
|
+
return __privateGet$4(this, _trace).call(this, "deleteOrThrow", async () => {
|
1829
|
+
const result = await this.delete(a, b);
|
1830
|
+
if (Array.isArray(result)) {
|
1831
|
+
const missingIds = compact(
|
1832
|
+
a.filter((_item, index) => result[index] === null).map((item) => extractId(item))
|
1833
|
+
);
|
1834
|
+
if (missingIds.length > 0) {
|
1835
|
+
throw new Error(`Could not find records with ids: ${missingIds.join(", ")}`);
|
1836
|
+
}
|
1837
|
+
return result;
|
1838
|
+
} else if (result === null) {
|
1839
|
+
const id = extractId(a) ?? "unknown";
|
1840
|
+
throw new Error(`Record with id ${id} not found`);
|
1841
|
+
}
|
1842
|
+
return result;
|
1843
|
+
});
|
1247
1844
|
}
|
1248
1845
|
async search(query, options = {}) {
|
1249
|
-
|
1250
|
-
|
1251
|
-
|
1252
|
-
|
1253
|
-
|
1846
|
+
return __privateGet$4(this, _trace).call(this, "search", async () => {
|
1847
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1848
|
+
const { records } = await searchTable({
|
1849
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table) },
|
1850
|
+
body: {
|
1851
|
+
query,
|
1852
|
+
fuzziness: options.fuzziness,
|
1853
|
+
prefix: options.prefix,
|
1854
|
+
highlight: options.highlight,
|
1855
|
+
filter: options.filter,
|
1856
|
+
boosters: options.boosters
|
1857
|
+
},
|
1858
|
+
...fetchProps
|
1859
|
+
});
|
1860
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1861
|
+
return records.map((item) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), item, ["*"]));
|
1254
1862
|
});
|
1255
|
-
return records.map((item) => initObject(this.db, __privateGet$3(this, _links), __privateGet$3(this, _table), item));
|
1256
1863
|
}
|
1257
1864
|
async query(query) {
|
1258
|
-
|
1259
|
-
|
1260
|
-
|
1261
|
-
|
1262
|
-
|
1263
|
-
|
1264
|
-
|
1265
|
-
|
1266
|
-
|
1267
|
-
|
1268
|
-
|
1269
|
-
|
1270
|
-
|
1271
|
-
|
1272
|
-
|
1865
|
+
return __privateGet$4(this, _trace).call(this, "query", async () => {
|
1866
|
+
const cacheQuery = await __privateMethod$2(this, _getCacheQuery, getCacheQuery_fn).call(this, query);
|
1867
|
+
if (cacheQuery)
|
1868
|
+
return new Page(query, cacheQuery.meta, cacheQuery.records);
|
1869
|
+
const data = query.getQueryOptions();
|
1870
|
+
const body = {
|
1871
|
+
filter: cleanFilter(data.filter),
|
1872
|
+
sort: data.sort !== void 0 ? buildSortFilter(data.sort) : void 0,
|
1873
|
+
page: data.pagination,
|
1874
|
+
columns: data.columns
|
1875
|
+
};
|
1876
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1877
|
+
const { meta, records: objects } = await queryTable({
|
1878
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table) },
|
1879
|
+
body,
|
1880
|
+
...fetchProps
|
1881
|
+
});
|
1882
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1883
|
+
const records = objects.map(
|
1884
|
+
(record) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), record, data.columns ?? ["*"])
|
1885
|
+
);
|
1886
|
+
await __privateMethod$2(this, _setCacheQuery, setCacheQuery_fn).call(this, query, meta, records);
|
1887
|
+
return new Page(query, meta, records);
|
1273
1888
|
});
|
1274
|
-
const records = objects.map((record) => initObject(this.db, __privateGet$3(this, _links), __privateGet$3(this, _table), record));
|
1275
|
-
await __privateMethod$2(this, _setCacheQuery, setCacheQuery_fn).call(this, query, meta, records);
|
1276
|
-
return new Page(query, meta, records);
|
1277
1889
|
}
|
1278
1890
|
}
|
1279
1891
|
_table = new WeakMap();
|
1280
|
-
_links = new WeakMap();
|
1281
1892
|
_getFetchProps = new WeakMap();
|
1893
|
+
_db = new WeakMap();
|
1282
1894
|
_cache = new WeakMap();
|
1895
|
+
_schemaTables$2 = new WeakMap();
|
1896
|
+
_trace = new WeakMap();
|
1283
1897
|
_insertRecordWithoutId = new WeakSet();
|
1284
|
-
insertRecordWithoutId_fn = async function(object) {
|
1285
|
-
const fetchProps = await __privateGet$
|
1898
|
+
insertRecordWithoutId_fn = async function(object, columns = ["*"]) {
|
1899
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1286
1900
|
const record = transformObjectLinks(object);
|
1287
1901
|
const response = await insertRecord({
|
1288
1902
|
pathParams: {
|
1289
1903
|
workspace: "{workspaceId}",
|
1290
1904
|
dbBranchName: "{dbBranch}",
|
1291
|
-
tableName: __privateGet$
|
1905
|
+
tableName: __privateGet$4(this, _table)
|
1292
1906
|
},
|
1907
|
+
queryParams: { columns },
|
1293
1908
|
body: record,
|
1294
1909
|
...fetchProps
|
1295
1910
|
});
|
1296
|
-
const
|
1297
|
-
|
1298
|
-
throw new Error("The server failed to save the record");
|
1299
|
-
}
|
1300
|
-
return finalObject;
|
1911
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1912
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
1301
1913
|
};
|
1302
1914
|
_insertRecordWithId = new WeakSet();
|
1303
|
-
insertRecordWithId_fn = async function(recordId, object) {
|
1304
|
-
const fetchProps = await __privateGet$
|
1915
|
+
insertRecordWithId_fn = async function(recordId, object, columns = ["*"]) {
|
1916
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1305
1917
|
const record = transformObjectLinks(object);
|
1306
1918
|
const response = await insertRecordWithID({
|
1307
1919
|
pathParams: {
|
1308
1920
|
workspace: "{workspaceId}",
|
1309
1921
|
dbBranchName: "{dbBranch}",
|
1310
|
-
tableName: __privateGet$
|
1922
|
+
tableName: __privateGet$4(this, _table),
|
1311
1923
|
recordId
|
1312
1924
|
},
|
1313
1925
|
body: record,
|
1314
|
-
queryParams: { createOnly: true },
|
1926
|
+
queryParams: { createOnly: true, columns },
|
1315
1927
|
...fetchProps
|
1316
1928
|
});
|
1317
|
-
const
|
1318
|
-
|
1319
|
-
throw new Error("The server failed to save the record");
|
1320
|
-
}
|
1321
|
-
return finalObject;
|
1929
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1930
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
1322
1931
|
};
|
1323
1932
|
_bulkInsertTableRecords = new WeakSet();
|
1324
|
-
bulkInsertTableRecords_fn = async function(objects) {
|
1325
|
-
const fetchProps = await __privateGet$
|
1933
|
+
bulkInsertTableRecords_fn = async function(objects, columns = ["*"]) {
|
1934
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1326
1935
|
const records = objects.map((object) => transformObjectLinks(object));
|
1327
1936
|
const response = await bulkInsertTableRecords({
|
1328
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$
|
1937
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table) },
|
1938
|
+
queryParams: { columns },
|
1329
1939
|
body: { records },
|
1330
1940
|
...fetchProps
|
1331
1941
|
});
|
1332
|
-
|
1333
|
-
|
1334
|
-
throw new Error("The server failed to save some records");
|
1942
|
+
if (!isResponseWithRecords(response)) {
|
1943
|
+
throw new Error("Request included columns but server didn't include them");
|
1335
1944
|
}
|
1336
|
-
|
1945
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1946
|
+
return response.records?.map((item) => initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), item, columns));
|
1337
1947
|
};
|
1338
1948
|
_updateRecordWithID = new WeakSet();
|
1339
|
-
updateRecordWithID_fn = async function(recordId, object) {
|
1340
|
-
const fetchProps = await __privateGet$
|
1949
|
+
updateRecordWithID_fn = async function(recordId, object, columns = ["*"]) {
|
1950
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1341
1951
|
const record = transformObjectLinks(object);
|
1342
|
-
|
1343
|
-
|
1344
|
-
|
1345
|
-
|
1346
|
-
|
1347
|
-
|
1348
|
-
|
1349
|
-
|
1350
|
-
|
1952
|
+
try {
|
1953
|
+
const response = await updateRecordWithID({
|
1954
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
|
1955
|
+
queryParams: { columns },
|
1956
|
+
body: record,
|
1957
|
+
...fetchProps
|
1958
|
+
});
|
1959
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1960
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
1961
|
+
} catch (e) {
|
1962
|
+
if (isObject(e) && e.status === 404) {
|
1963
|
+
return null;
|
1964
|
+
}
|
1965
|
+
throw e;
|
1966
|
+
}
|
1351
1967
|
};
|
1352
1968
|
_upsertRecordWithID = new WeakSet();
|
1353
|
-
upsertRecordWithID_fn = async function(recordId, object) {
|
1354
|
-
const fetchProps = await __privateGet$
|
1969
|
+
upsertRecordWithID_fn = async function(recordId, object, columns = ["*"]) {
|
1970
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1355
1971
|
const response = await upsertRecordWithID({
|
1356
|
-
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$
|
1972
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
|
1973
|
+
queryParams: { columns },
|
1357
1974
|
body: object,
|
1358
1975
|
...fetchProps
|
1359
1976
|
});
|
1360
|
-
const
|
1361
|
-
|
1362
|
-
throw new Error("The server failed to save the record");
|
1363
|
-
return item;
|
1977
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1978
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
1364
1979
|
};
|
1365
1980
|
_deleteRecord = new WeakSet();
|
1366
|
-
deleteRecord_fn = async function(recordId) {
|
1367
|
-
const fetchProps = await __privateGet$
|
1368
|
-
|
1369
|
-
|
1370
|
-
|
1371
|
-
|
1372
|
-
|
1373
|
-
|
1374
|
-
|
1375
|
-
|
1376
|
-
|
1377
|
-
|
1378
|
-
|
1379
|
-
|
1380
|
-
|
1381
|
-
await __privateGet$3(this, _cache).delete(key);
|
1981
|
+
deleteRecord_fn = async function(recordId, columns = ["*"]) {
|
1982
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
1983
|
+
try {
|
1984
|
+
const response = await deleteRecord({
|
1985
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}", tableName: __privateGet$4(this, _table), recordId },
|
1986
|
+
queryParams: { columns },
|
1987
|
+
...fetchProps
|
1988
|
+
});
|
1989
|
+
const schemaTables = await __privateMethod$2(this, _getSchemaTables$1, getSchemaTables_fn$1).call(this);
|
1990
|
+
return initObject(__privateGet$4(this, _db), schemaTables, __privateGet$4(this, _table), response, columns);
|
1991
|
+
} catch (e) {
|
1992
|
+
if (isObject(e) && e.status === 404) {
|
1993
|
+
return null;
|
1994
|
+
}
|
1995
|
+
throw e;
|
1382
1996
|
}
|
1383
1997
|
};
|
1384
|
-
_setCacheRecord = new WeakSet();
|
1385
|
-
setCacheRecord_fn = async function(record) {
|
1386
|
-
if (!__privateGet$3(this, _cache).cacheRecords)
|
1387
|
-
return;
|
1388
|
-
await __privateGet$3(this, _cache).set(`rec_${__privateGet$3(this, _table)}:${record.id}`, record);
|
1389
|
-
};
|
1390
|
-
_getCacheRecord = new WeakSet();
|
1391
|
-
getCacheRecord_fn = async function(recordId) {
|
1392
|
-
if (!__privateGet$3(this, _cache).cacheRecords)
|
1393
|
-
return null;
|
1394
|
-
return __privateGet$3(this, _cache).get(`rec_${__privateGet$3(this, _table)}:${recordId}`);
|
1395
|
-
};
|
1396
1998
|
_setCacheQuery = new WeakSet();
|
1397
1999
|
setCacheQuery_fn = async function(query, meta, records) {
|
1398
|
-
await __privateGet$
|
2000
|
+
await __privateGet$4(this, _cache).set(`query_${__privateGet$4(this, _table)}:${query.key()}`, { date: new Date(), meta, records });
|
1399
2001
|
};
|
1400
2002
|
_getCacheQuery = new WeakSet();
|
1401
2003
|
getCacheQuery_fn = async function(query) {
|
1402
|
-
const key = `query_${__privateGet$
|
1403
|
-
const result = await __privateGet$
|
2004
|
+
const key = `query_${__privateGet$4(this, _table)}:${query.key()}`;
|
2005
|
+
const result = await __privateGet$4(this, _cache).get(key);
|
1404
2006
|
if (!result)
|
1405
2007
|
return null;
|
1406
|
-
const { cache: ttl = __privateGet$
|
1407
|
-
if (
|
1408
|
-
return
|
2008
|
+
const { cache: ttl = __privateGet$4(this, _cache).defaultQueryTTL } = query.getQueryOptions();
|
2009
|
+
if (ttl < 0)
|
2010
|
+
return null;
|
1409
2011
|
const hasExpired = result.date.getTime() + ttl < Date.now();
|
1410
2012
|
return hasExpired ? null : result;
|
1411
2013
|
};
|
2014
|
+
_getSchemaTables$1 = new WeakSet();
|
2015
|
+
getSchemaTables_fn$1 = async function() {
|
2016
|
+
if (__privateGet$4(this, _schemaTables$2))
|
2017
|
+
return __privateGet$4(this, _schemaTables$2);
|
2018
|
+
const fetchProps = await __privateGet$4(this, _getFetchProps).call(this);
|
2019
|
+
const { schema } = await getBranchDetails({
|
2020
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
2021
|
+
...fetchProps
|
2022
|
+
});
|
2023
|
+
__privateSet$4(this, _schemaTables$2, schema.tables);
|
2024
|
+
return schema.tables;
|
2025
|
+
};
|
1412
2026
|
const transformObjectLinks = (object) => {
|
1413
2027
|
return Object.entries(object).reduce((acc, [key, value]) => {
|
1414
2028
|
if (key === "xata")
|
@@ -1416,47 +2030,105 @@ const transformObjectLinks = (object) => {
|
|
1416
2030
|
return { ...acc, [key]: isIdentifiable(value) ? value.id : value };
|
1417
2031
|
}, {});
|
1418
2032
|
};
|
1419
|
-
const initObject = (db,
|
2033
|
+
const initObject = (db, schemaTables, table, object, selectedColumns) => {
|
1420
2034
|
const result = {};
|
1421
|
-
|
1422
|
-
|
1423
|
-
|
1424
|
-
|
1425
|
-
|
1426
|
-
|
1427
|
-
|
2035
|
+
const { xata, ...rest } = object ?? {};
|
2036
|
+
Object.assign(result, rest);
|
2037
|
+
const { columns } = schemaTables.find(({ name }) => name === table) ?? {};
|
2038
|
+
if (!columns)
|
2039
|
+
console.error(`Table ${table} not found in schema`);
|
2040
|
+
for (const column of columns ?? []) {
|
2041
|
+
if (!isValidColumn(selectedColumns, column))
|
2042
|
+
continue;
|
2043
|
+
const value = result[column.name];
|
2044
|
+
switch (column.type) {
|
2045
|
+
case "datetime": {
|
2046
|
+
const date = value !== void 0 ? new Date(value) : void 0;
|
2047
|
+
if (date && isNaN(date.getTime())) {
|
2048
|
+
console.error(`Failed to parse date ${value} for field ${column.name}`);
|
2049
|
+
} else if (date) {
|
2050
|
+
result[column.name] = date;
|
2051
|
+
}
|
2052
|
+
break;
|
2053
|
+
}
|
2054
|
+
case "link": {
|
2055
|
+
const linkTable = column.link?.table;
|
2056
|
+
if (!linkTable) {
|
2057
|
+
console.error(`Failed to parse link for field ${column.name}`);
|
2058
|
+
} else if (isObject(value)) {
|
2059
|
+
const selectedLinkColumns = selectedColumns.reduce((acc, item) => {
|
2060
|
+
if (item === column.name) {
|
2061
|
+
return [...acc, "*"];
|
2062
|
+
}
|
2063
|
+
if (item.startsWith(`${column.name}.`)) {
|
2064
|
+
const [, ...path] = item.split(".");
|
2065
|
+
return [...acc, path.join(".")];
|
2066
|
+
}
|
2067
|
+
return acc;
|
2068
|
+
}, []);
|
2069
|
+
result[column.name] = initObject(db, schemaTables, linkTable, value, selectedLinkColumns);
|
2070
|
+
} else {
|
2071
|
+
result[column.name] = null;
|
2072
|
+
}
|
2073
|
+
break;
|
2074
|
+
}
|
2075
|
+
default:
|
2076
|
+
result[column.name] = value ?? null;
|
2077
|
+
if (column.notNull === true && value === null) {
|
2078
|
+
console.error(`Parse error, column ${column.name} is non nullable and value resolves null`);
|
2079
|
+
}
|
2080
|
+
break;
|
1428
2081
|
}
|
1429
2082
|
}
|
1430
|
-
result.read = function() {
|
1431
|
-
return db[table].read(result["id"]);
|
2083
|
+
result.read = function(columns2) {
|
2084
|
+
return db[table].read(result["id"], columns2);
|
1432
2085
|
};
|
1433
|
-
result.update = function(data) {
|
1434
|
-
return db[table].update(result["id"], data);
|
2086
|
+
result.update = function(data, columns2) {
|
2087
|
+
return db[table].update(result["id"], data, columns2);
|
1435
2088
|
};
|
1436
2089
|
result.delete = function() {
|
1437
2090
|
return db[table].delete(result["id"]);
|
1438
2091
|
};
|
1439
|
-
|
2092
|
+
result.getMetadata = function() {
|
2093
|
+
return xata;
|
2094
|
+
};
|
2095
|
+
for (const prop of ["read", "update", "delete", "getMetadata"]) {
|
1440
2096
|
Object.defineProperty(result, prop, { enumerable: false });
|
1441
2097
|
}
|
1442
2098
|
Object.freeze(result);
|
1443
2099
|
return result;
|
1444
2100
|
};
|
1445
|
-
function
|
1446
|
-
|
1447
|
-
|
1448
|
-
|
1449
|
-
if (
|
1450
|
-
return
|
1451
|
-
|
1452
|
-
|
2101
|
+
function isResponseWithRecords(value) {
|
2102
|
+
return isObject(value) && Array.isArray(value.records);
|
2103
|
+
}
|
2104
|
+
function extractId(value) {
|
2105
|
+
if (isString(value))
|
2106
|
+
return value;
|
2107
|
+
if (isObject(value) && isString(value.id))
|
2108
|
+
return value.id;
|
2109
|
+
return void 0;
|
2110
|
+
}
|
2111
|
+
function cleanFilter(filter) {
|
2112
|
+
if (!filter)
|
2113
|
+
return void 0;
|
2114
|
+
const values = Object.values(filter).filter(Boolean).filter((value) => Array.isArray(value) ? value.length > 0 : true);
|
2115
|
+
return values.length > 0 ? filter : void 0;
|
2116
|
+
}
|
2117
|
+
function isValidColumn(columns, column) {
|
2118
|
+
if (columns.includes("*"))
|
2119
|
+
return true;
|
2120
|
+
if (column.type === "link") {
|
2121
|
+
const linkColumns = columns.filter((item) => item.startsWith(column.name));
|
2122
|
+
return linkColumns.length > 0;
|
2123
|
+
}
|
2124
|
+
return columns.includes(column.name);
|
1453
2125
|
}
|
1454
2126
|
|
1455
2127
|
var __accessCheck$3 = (obj, member, msg) => {
|
1456
2128
|
if (!member.has(obj))
|
1457
2129
|
throw TypeError("Cannot " + msg);
|
1458
2130
|
};
|
1459
|
-
var __privateGet$
|
2131
|
+
var __privateGet$3 = (obj, member, getter) => {
|
1460
2132
|
__accessCheck$3(obj, member, "read from private field");
|
1461
2133
|
return getter ? getter.call(obj) : member.get(obj);
|
1462
2134
|
};
|
@@ -1465,7 +2137,7 @@ var __privateAdd$3 = (obj, member, value) => {
|
|
1465
2137
|
throw TypeError("Cannot add the same private member more than once");
|
1466
2138
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
1467
2139
|
};
|
1468
|
-
var __privateSet$
|
2140
|
+
var __privateSet$3 = (obj, member, value, setter) => {
|
1469
2141
|
__accessCheck$3(obj, member, "write to private field");
|
1470
2142
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
1471
2143
|
return value;
|
@@ -1474,46 +2146,52 @@ var _map;
|
|
1474
2146
|
class SimpleCache {
|
1475
2147
|
constructor(options = {}) {
|
1476
2148
|
__privateAdd$3(this, _map, void 0);
|
1477
|
-
__privateSet$
|
2149
|
+
__privateSet$3(this, _map, /* @__PURE__ */ new Map());
|
1478
2150
|
this.capacity = options.max ?? 500;
|
1479
|
-
this.cacheRecords = options.cacheRecords ?? true;
|
1480
2151
|
this.defaultQueryTTL = options.defaultQueryTTL ?? 60 * 1e3;
|
1481
2152
|
}
|
1482
2153
|
async getAll() {
|
1483
|
-
return Object.fromEntries(__privateGet$
|
2154
|
+
return Object.fromEntries(__privateGet$3(this, _map));
|
1484
2155
|
}
|
1485
2156
|
async get(key) {
|
1486
|
-
return __privateGet$
|
2157
|
+
return __privateGet$3(this, _map).get(key) ?? null;
|
1487
2158
|
}
|
1488
2159
|
async set(key, value) {
|
1489
2160
|
await this.delete(key);
|
1490
|
-
__privateGet$
|
1491
|
-
if (__privateGet$
|
1492
|
-
const leastRecentlyUsed = __privateGet$
|
2161
|
+
__privateGet$3(this, _map).set(key, value);
|
2162
|
+
if (__privateGet$3(this, _map).size > this.capacity) {
|
2163
|
+
const leastRecentlyUsed = __privateGet$3(this, _map).keys().next().value;
|
1493
2164
|
await this.delete(leastRecentlyUsed);
|
1494
2165
|
}
|
1495
2166
|
}
|
1496
2167
|
async delete(key) {
|
1497
|
-
__privateGet$
|
2168
|
+
__privateGet$3(this, _map).delete(key);
|
1498
2169
|
}
|
1499
2170
|
async clear() {
|
1500
|
-
return __privateGet$
|
2171
|
+
return __privateGet$3(this, _map).clear();
|
1501
2172
|
}
|
1502
2173
|
}
|
1503
2174
|
_map = new WeakMap();
|
1504
2175
|
|
1505
|
-
const
|
1506
|
-
const
|
1507
|
-
const
|
1508
|
-
const
|
1509
|
-
const
|
1510
|
-
const
|
2176
|
+
const greaterThan = (value) => ({ $gt: value });
|
2177
|
+
const gt = greaterThan;
|
2178
|
+
const greaterThanEquals = (value) => ({ $ge: value });
|
2179
|
+
const greaterEquals = greaterThanEquals;
|
2180
|
+
const gte = greaterThanEquals;
|
2181
|
+
const ge = greaterThanEquals;
|
2182
|
+
const lessThan = (value) => ({ $lt: value });
|
2183
|
+
const lt = lessThan;
|
2184
|
+
const lessThanEquals = (value) => ({ $le: value });
|
2185
|
+
const lessEquals = lessThanEquals;
|
2186
|
+
const lte = lessThanEquals;
|
2187
|
+
const le = lessThanEquals;
|
1511
2188
|
const exists = (column) => ({ $exists: column });
|
1512
2189
|
const notExists = (column) => ({ $notExists: column });
|
1513
2190
|
const startsWith = (value) => ({ $startsWith: value });
|
1514
2191
|
const endsWith = (value) => ({ $endsWith: value });
|
1515
2192
|
const pattern = (value) => ({ $pattern: value });
|
1516
2193
|
const is = (value) => ({ $is: value });
|
2194
|
+
const equals = is;
|
1517
2195
|
const isNot = (value) => ({ $isNot: value });
|
1518
2196
|
const contains = (value) => ({ $contains: value });
|
1519
2197
|
const includes = (value) => ({ $includes: value });
|
@@ -1525,7 +2203,7 @@ var __accessCheck$2 = (obj, member, msg) => {
|
|
1525
2203
|
if (!member.has(obj))
|
1526
2204
|
throw TypeError("Cannot " + msg);
|
1527
2205
|
};
|
1528
|
-
var __privateGet$
|
2206
|
+
var __privateGet$2 = (obj, member, getter) => {
|
1529
2207
|
__accessCheck$2(obj, member, "read from private field");
|
1530
2208
|
return getter ? getter.call(obj) : member.get(obj);
|
1531
2209
|
};
|
@@ -1534,130 +2212,178 @@ var __privateAdd$2 = (obj, member, value) => {
|
|
1534
2212
|
throw TypeError("Cannot add the same private member more than once");
|
1535
2213
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
1536
2214
|
};
|
1537
|
-
var
|
2215
|
+
var __privateSet$2 = (obj, member, value, setter) => {
|
2216
|
+
__accessCheck$2(obj, member, "write to private field");
|
2217
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
2218
|
+
return value;
|
2219
|
+
};
|
2220
|
+
var _tables, _schemaTables$1;
|
1538
2221
|
class SchemaPlugin extends XataPlugin {
|
1539
|
-
constructor(
|
2222
|
+
constructor(schemaTables) {
|
1540
2223
|
super();
|
1541
|
-
this.links = links;
|
1542
|
-
this.tableNames = tableNames;
|
1543
2224
|
__privateAdd$2(this, _tables, {});
|
2225
|
+
__privateAdd$2(this, _schemaTables$1, void 0);
|
2226
|
+
__privateSet$2(this, _schemaTables$1, schemaTables);
|
1544
2227
|
}
|
1545
2228
|
build(pluginOptions) {
|
1546
|
-
const
|
1547
|
-
|
1548
|
-
|
1549
|
-
|
1550
|
-
|
1551
|
-
|
1552
|
-
__privateGet$
|
2229
|
+
const db = new Proxy(
|
2230
|
+
{},
|
2231
|
+
{
|
2232
|
+
get: (_target, table) => {
|
2233
|
+
if (!isString(table))
|
2234
|
+
throw new Error("Invalid table name");
|
2235
|
+
if (__privateGet$2(this, _tables)[table] === void 0) {
|
2236
|
+
__privateGet$2(this, _tables)[table] = new RestRepository({ db, pluginOptions, table, schemaTables: __privateGet$2(this, _schemaTables$1) });
|
2237
|
+
}
|
2238
|
+
return __privateGet$2(this, _tables)[table];
|
1553
2239
|
}
|
1554
|
-
return __privateGet$1(this, _tables)[table];
|
1555
2240
|
}
|
1556
|
-
|
1557
|
-
|
1558
|
-
|
2241
|
+
);
|
2242
|
+
const tableNames = __privateGet$2(this, _schemaTables$1)?.map(({ name }) => name) ?? [];
|
2243
|
+
for (const table of tableNames) {
|
2244
|
+
db[table] = new RestRepository({ db, pluginOptions, table, schemaTables: __privateGet$2(this, _schemaTables$1) });
|
1559
2245
|
}
|
1560
2246
|
return db;
|
1561
2247
|
}
|
1562
2248
|
}
|
1563
2249
|
_tables = new WeakMap();
|
2250
|
+
_schemaTables$1 = new WeakMap();
|
1564
2251
|
|
1565
2252
|
var __accessCheck$1 = (obj, member, msg) => {
|
1566
2253
|
if (!member.has(obj))
|
1567
2254
|
throw TypeError("Cannot " + msg);
|
1568
2255
|
};
|
2256
|
+
var __privateGet$1 = (obj, member, getter) => {
|
2257
|
+
__accessCheck$1(obj, member, "read from private field");
|
2258
|
+
return getter ? getter.call(obj) : member.get(obj);
|
2259
|
+
};
|
1569
2260
|
var __privateAdd$1 = (obj, member, value) => {
|
1570
2261
|
if (member.has(obj))
|
1571
2262
|
throw TypeError("Cannot add the same private member more than once");
|
1572
2263
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
1573
2264
|
};
|
2265
|
+
var __privateSet$1 = (obj, member, value, setter) => {
|
2266
|
+
__accessCheck$1(obj, member, "write to private field");
|
2267
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
2268
|
+
return value;
|
2269
|
+
};
|
1574
2270
|
var __privateMethod$1 = (obj, member, method) => {
|
1575
2271
|
__accessCheck$1(obj, member, "access private method");
|
1576
2272
|
return method;
|
1577
2273
|
};
|
1578
|
-
var _search, search_fn;
|
2274
|
+
var _schemaTables, _search, search_fn, _getSchemaTables, getSchemaTables_fn;
|
1579
2275
|
class SearchPlugin extends XataPlugin {
|
1580
|
-
constructor(db,
|
2276
|
+
constructor(db, schemaTables) {
|
1581
2277
|
super();
|
1582
2278
|
this.db = db;
|
1583
|
-
this.links = links;
|
1584
2279
|
__privateAdd$1(this, _search);
|
2280
|
+
__privateAdd$1(this, _getSchemaTables);
|
2281
|
+
__privateAdd$1(this, _schemaTables, void 0);
|
2282
|
+
__privateSet$1(this, _schemaTables, schemaTables);
|
1585
2283
|
}
|
1586
2284
|
build({ getFetchProps }) {
|
1587
2285
|
return {
|
1588
2286
|
all: async (query, options = {}) => {
|
1589
2287
|
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options, getFetchProps);
|
2288
|
+
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, getFetchProps);
|
1590
2289
|
return records.map((record) => {
|
1591
2290
|
const { table = "orphan" } = record.xata;
|
1592
|
-
return { table, record: initObject(this.db,
|
2291
|
+
return { table, record: initObject(this.db, schemaTables, table, record, ["*"]) };
|
1593
2292
|
});
|
1594
2293
|
},
|
1595
2294
|
byTable: async (query, options = {}) => {
|
1596
2295
|
const records = await __privateMethod$1(this, _search, search_fn).call(this, query, options, getFetchProps);
|
2296
|
+
const schemaTables = await __privateMethod$1(this, _getSchemaTables, getSchemaTables_fn).call(this, getFetchProps);
|
1597
2297
|
return records.reduce((acc, record) => {
|
1598
2298
|
const { table = "orphan" } = record.xata;
|
1599
2299
|
const items = acc[table] ?? [];
|
1600
|
-
const item = initObject(this.db,
|
2300
|
+
const item = initObject(this.db, schemaTables, table, record, ["*"]);
|
1601
2301
|
return { ...acc, [table]: [...items, item] };
|
1602
2302
|
}, {});
|
1603
2303
|
}
|
1604
2304
|
};
|
1605
2305
|
}
|
1606
2306
|
}
|
2307
|
+
_schemaTables = new WeakMap();
|
1607
2308
|
_search = new WeakSet();
|
1608
2309
|
search_fn = async function(query, options, getFetchProps) {
|
1609
2310
|
const fetchProps = await getFetchProps();
|
1610
|
-
const { tables, fuzziness } = options ?? {};
|
2311
|
+
const { tables, fuzziness, highlight, prefix } = options ?? {};
|
1611
2312
|
const { records } = await searchBranch({
|
1612
2313
|
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
1613
|
-
body: { tables, query, fuzziness },
|
2314
|
+
body: { tables, query, fuzziness, prefix, highlight },
|
1614
2315
|
...fetchProps
|
1615
2316
|
});
|
1616
2317
|
return records;
|
1617
2318
|
};
|
2319
|
+
_getSchemaTables = new WeakSet();
|
2320
|
+
getSchemaTables_fn = async function(getFetchProps) {
|
2321
|
+
if (__privateGet$1(this, _schemaTables))
|
2322
|
+
return __privateGet$1(this, _schemaTables);
|
2323
|
+
const fetchProps = await getFetchProps();
|
2324
|
+
const { schema } = await getBranchDetails({
|
2325
|
+
pathParams: { workspace: "{workspaceId}", dbBranchName: "{dbBranch}" },
|
2326
|
+
...fetchProps
|
2327
|
+
});
|
2328
|
+
__privateSet$1(this, _schemaTables, schema.tables);
|
2329
|
+
return schema.tables;
|
2330
|
+
};
|
1618
2331
|
|
1619
2332
|
const isBranchStrategyBuilder = (strategy) => {
|
1620
2333
|
return typeof strategy === "function";
|
1621
2334
|
};
|
1622
2335
|
|
1623
|
-
const envBranchNames = [
|
1624
|
-
"XATA_BRANCH",
|
1625
|
-
"VERCEL_GIT_COMMIT_REF",
|
1626
|
-
"CF_PAGES_BRANCH",
|
1627
|
-
"BRANCH"
|
1628
|
-
];
|
1629
|
-
const defaultBranch = "main";
|
1630
2336
|
async function getCurrentBranchName(options) {
|
1631
|
-
const
|
1632
|
-
if (
|
1633
|
-
|
1634
|
-
|
1635
|
-
|
1636
|
-
|
1637
|
-
|
1638
|
-
|
1639
|
-
|
1640
|
-
return defaultBranch;
|
2337
|
+
const { branch, envBranch } = getEnvironment();
|
2338
|
+
if (branch) {
|
2339
|
+
const details = await getDatabaseBranch(branch, options);
|
2340
|
+
if (details)
|
2341
|
+
return branch;
|
2342
|
+
console.warn(`Branch ${branch} not found in Xata. Ignoring...`);
|
2343
|
+
}
|
2344
|
+
const gitBranch = envBranch || await getGitBranch();
|
2345
|
+
return resolveXataBranch(gitBranch, options);
|
1641
2346
|
}
|
1642
2347
|
async function getCurrentBranchDetails(options) {
|
1643
|
-
const
|
1644
|
-
|
1645
|
-
|
1646
|
-
|
1647
|
-
|
1648
|
-
|
1649
|
-
|
1650
|
-
|
1651
|
-
|
1652
|
-
|
2348
|
+
const branch = await getCurrentBranchName(options);
|
2349
|
+
return getDatabaseBranch(branch, options);
|
2350
|
+
}
|
2351
|
+
async function resolveXataBranch(gitBranch, options) {
|
2352
|
+
const databaseURL = options?.databaseURL || getDatabaseURL();
|
2353
|
+
const apiKey = options?.apiKey || getAPIKey();
|
2354
|
+
if (!databaseURL)
|
2355
|
+
throw new Error(
|
2356
|
+
"A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely"
|
2357
|
+
);
|
2358
|
+
if (!apiKey)
|
2359
|
+
throw new Error(
|
2360
|
+
"An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely"
|
2361
|
+
);
|
2362
|
+
const [protocol, , host, , dbName] = databaseURL.split("/");
|
2363
|
+
const [workspace] = host.split(".");
|
2364
|
+
const { fallbackBranch } = getEnvironment();
|
2365
|
+
const { branch } = await resolveBranch({
|
2366
|
+
apiKey,
|
2367
|
+
apiUrl: databaseURL,
|
2368
|
+
fetchImpl: getFetchImplementation(options?.fetchImpl),
|
2369
|
+
workspacesApiUrl: `${protocol}//${host}`,
|
2370
|
+
pathParams: { dbName, workspace },
|
2371
|
+
queryParams: { gitBranch, fallbackBranch },
|
2372
|
+
trace: defaultTrace
|
2373
|
+
});
|
2374
|
+
return branch;
|
1653
2375
|
}
|
1654
2376
|
async function getDatabaseBranch(branch, options) {
|
1655
2377
|
const databaseURL = options?.databaseURL || getDatabaseURL();
|
1656
2378
|
const apiKey = options?.apiKey || getAPIKey();
|
1657
2379
|
if (!databaseURL)
|
1658
|
-
throw new Error(
|
2380
|
+
throw new Error(
|
2381
|
+
"A databaseURL was not defined. Either set the XATA_DATABASE_URL env variable or pass the argument explicitely"
|
2382
|
+
);
|
1659
2383
|
if (!apiKey)
|
1660
|
-
throw new Error(
|
2384
|
+
throw new Error(
|
2385
|
+
"An API key was not defined. Either set the XATA_API_KEY env variable or pass the argument explicitely"
|
2386
|
+
);
|
1661
2387
|
const [protocol, , host, , database] = databaseURL.split("/");
|
1662
2388
|
const [workspace] = host.split(".");
|
1663
2389
|
const dbBranchName = `${database}:${branch}`;
|
@@ -1667,10 +2393,8 @@ async function getDatabaseBranch(branch, options) {
|
|
1667
2393
|
apiUrl: databaseURL,
|
1668
2394
|
fetchImpl: getFetchImplementation(options?.fetchImpl),
|
1669
2395
|
workspacesApiUrl: `${protocol}//${host}`,
|
1670
|
-
pathParams: {
|
1671
|
-
|
1672
|
-
workspace
|
1673
|
-
}
|
2396
|
+
pathParams: { dbBranchName, workspace },
|
2397
|
+
trace: defaultTrace
|
1674
2398
|
});
|
1675
2399
|
} catch (err) {
|
1676
2400
|
if (isObject(err) && err.status === 404)
|
@@ -1678,21 +2402,10 @@ async function getDatabaseBranch(branch, options) {
|
|
1678
2402
|
throw err;
|
1679
2403
|
}
|
1680
2404
|
}
|
1681
|
-
function getBranchByEnvVariable() {
|
1682
|
-
for (const name of envBranchNames) {
|
1683
|
-
const value = getEnvVariable(name);
|
1684
|
-
if (value) {
|
1685
|
-
return value;
|
1686
|
-
}
|
1687
|
-
}
|
1688
|
-
try {
|
1689
|
-
return XATA_BRANCH;
|
1690
|
-
} catch (err) {
|
1691
|
-
}
|
1692
|
-
}
|
1693
2405
|
function getDatabaseURL() {
|
1694
2406
|
try {
|
1695
|
-
|
2407
|
+
const { databaseURL } = getEnvironment();
|
2408
|
+
return databaseURL;
|
1696
2409
|
} catch (err) {
|
1697
2410
|
return void 0;
|
1698
2411
|
}
|
@@ -1721,24 +2434,27 @@ var __privateMethod = (obj, member, method) => {
|
|
1721
2434
|
return method;
|
1722
2435
|
};
|
1723
2436
|
const buildClient = (plugins) => {
|
1724
|
-
var _branch, _parseOptions, parseOptions_fn, _getFetchProps, getFetchProps_fn, _evaluateBranch, evaluateBranch_fn, _a;
|
2437
|
+
var _branch, _options, _parseOptions, parseOptions_fn, _getFetchProps, getFetchProps_fn, _evaluateBranch, evaluateBranch_fn, _a;
|
1725
2438
|
return _a = class {
|
1726
|
-
constructor(options = {},
|
2439
|
+
constructor(options = {}, schemaTables) {
|
1727
2440
|
__privateAdd(this, _parseOptions);
|
1728
2441
|
__privateAdd(this, _getFetchProps);
|
1729
2442
|
__privateAdd(this, _evaluateBranch);
|
1730
2443
|
__privateAdd(this, _branch, void 0);
|
2444
|
+
__privateAdd(this, _options, void 0);
|
1731
2445
|
const safeOptions = __privateMethod(this, _parseOptions, parseOptions_fn).call(this, options);
|
2446
|
+
__privateSet(this, _options, safeOptions);
|
1732
2447
|
const pluginOptions = {
|
1733
2448
|
getFetchProps: () => __privateMethod(this, _getFetchProps, getFetchProps_fn).call(this, safeOptions),
|
1734
|
-
cache: safeOptions.cache
|
2449
|
+
cache: safeOptions.cache,
|
2450
|
+
trace: safeOptions.trace
|
1735
2451
|
};
|
1736
|
-
const db = new SchemaPlugin(
|
1737
|
-
const search = new SearchPlugin(db,
|
2452
|
+
const db = new SchemaPlugin(schemaTables).build(pluginOptions);
|
2453
|
+
const search = new SearchPlugin(db, schemaTables).build(pluginOptions);
|
1738
2454
|
this.db = db;
|
1739
2455
|
this.search = search;
|
1740
2456
|
for (const [key, namespace] of Object.entries(plugins ?? {})) {
|
1741
|
-
if (
|
2457
|
+
if (namespace === void 0)
|
1742
2458
|
continue;
|
1743
2459
|
const result = namespace.build(pluginOptions);
|
1744
2460
|
if (result instanceof Promise) {
|
@@ -1750,22 +2466,26 @@ const buildClient = (plugins) => {
|
|
1750
2466
|
}
|
1751
2467
|
}
|
1752
2468
|
}
|
1753
|
-
|
2469
|
+
async getConfig() {
|
2470
|
+
const databaseURL = __privateGet(this, _options).databaseURL;
|
2471
|
+
const branch = await __privateGet(this, _options).branch();
|
2472
|
+
return { databaseURL, branch };
|
2473
|
+
}
|
2474
|
+
}, _branch = new WeakMap(), _options = new WeakMap(), _parseOptions = new WeakSet(), parseOptions_fn = function(options) {
|
1754
2475
|
const fetch = getFetchImplementation(options?.fetch);
|
1755
2476
|
const databaseURL = options?.databaseURL || getDatabaseURL();
|
1756
2477
|
const apiKey = options?.apiKey || getAPIKey();
|
1757
|
-
const cache = options?.cache ?? new SimpleCache({
|
1758
|
-
const
|
1759
|
-
|
1760
|
-
|
2478
|
+
const cache = options?.cache ?? new SimpleCache({ defaultQueryTTL: 0 });
|
2479
|
+
const trace = options?.trace ?? defaultTrace;
|
2480
|
+
const branch = async () => options?.branch !== void 0 ? await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, options.branch) : await getCurrentBranchName({ apiKey, databaseURL, fetchImpl: options?.fetch });
|
2481
|
+
if (!apiKey) {
|
2482
|
+
throw new Error("Option apiKey is required");
|
1761
2483
|
}
|
1762
|
-
|
1763
|
-
|
1764
|
-
|
1765
|
-
apiKey,
|
1766
|
-
|
1767
|
-
branch
|
1768
|
-
}) {
|
2484
|
+
if (!databaseURL) {
|
2485
|
+
throw new Error("Option databaseURL is required");
|
2486
|
+
}
|
2487
|
+
return { fetch, databaseURL, apiKey, branch, cache, trace };
|
2488
|
+
}, _getFetchProps = new WeakSet(), getFetchProps_fn = async function({ fetch, apiKey, databaseURL, branch, trace }) {
|
1769
2489
|
const branchValue = await __privateMethod(this, _evaluateBranch, evaluateBranch_fn).call(this, branch);
|
1770
2490
|
if (!branchValue)
|
1771
2491
|
throw new Error("Unable to resolve branch value");
|
@@ -1775,14 +2495,15 @@ const buildClient = (plugins) => {
|
|
1775
2495
|
apiUrl: "",
|
1776
2496
|
workspacesApiUrl: (path, params) => {
|
1777
2497
|
const hasBranch = params.dbBranchName ?? params.branch;
|
1778
|
-
const newPath = path.replace(/^\/db\/[^/]+/, hasBranch ? `:${branchValue}` : "");
|
2498
|
+
const newPath = path.replace(/^\/db\/[^/]+/, hasBranch !== void 0 ? `:${branchValue}` : "");
|
1779
2499
|
return databaseURL + newPath;
|
1780
|
-
}
|
2500
|
+
},
|
2501
|
+
trace
|
1781
2502
|
};
|
1782
2503
|
}, _evaluateBranch = new WeakSet(), evaluateBranch_fn = async function(param) {
|
1783
2504
|
if (__privateGet(this, _branch))
|
1784
2505
|
return __privateGet(this, _branch);
|
1785
|
-
if (
|
2506
|
+
if (param === void 0)
|
1786
2507
|
return void 0;
|
1787
2508
|
const strategies = Array.isArray(param) ? [...param] : [param];
|
1788
2509
|
const evaluateBranch = async (strategy) => {
|
@@ -1800,6 +2521,88 @@ const buildClient = (plugins) => {
|
|
1800
2521
|
class BaseClient extends buildClient() {
|
1801
2522
|
}
|
1802
2523
|
|
2524
|
+
const META = "__";
|
2525
|
+
const VALUE = "___";
|
2526
|
+
class Serializer {
|
2527
|
+
constructor() {
|
2528
|
+
this.classes = {};
|
2529
|
+
}
|
2530
|
+
add(clazz) {
|
2531
|
+
this.classes[clazz.name] = clazz;
|
2532
|
+
}
|
2533
|
+
toJSON(data) {
|
2534
|
+
function visit(obj) {
|
2535
|
+
if (Array.isArray(obj))
|
2536
|
+
return obj.map(visit);
|
2537
|
+
const type = typeof obj;
|
2538
|
+
if (type === "undefined")
|
2539
|
+
return { [META]: "undefined" };
|
2540
|
+
if (type === "bigint")
|
2541
|
+
return { [META]: "bigint", [VALUE]: obj.toString() };
|
2542
|
+
if (obj === null || type !== "object")
|
2543
|
+
return obj;
|
2544
|
+
const constructor = obj.constructor;
|
2545
|
+
const o = { [META]: constructor.name };
|
2546
|
+
for (const [key, value] of Object.entries(obj)) {
|
2547
|
+
o[key] = visit(value);
|
2548
|
+
}
|
2549
|
+
if (constructor === Date)
|
2550
|
+
o[VALUE] = obj.toISOString();
|
2551
|
+
if (constructor === Map)
|
2552
|
+
o[VALUE] = Object.fromEntries(obj);
|
2553
|
+
if (constructor === Set)
|
2554
|
+
o[VALUE] = [...obj];
|
2555
|
+
return o;
|
2556
|
+
}
|
2557
|
+
return JSON.stringify(visit(data));
|
2558
|
+
}
|
2559
|
+
fromJSON(json) {
|
2560
|
+
return JSON.parse(json, (key, value) => {
|
2561
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
2562
|
+
const { [META]: clazz, [VALUE]: val, ...rest } = value;
|
2563
|
+
const constructor = this.classes[clazz];
|
2564
|
+
if (constructor) {
|
2565
|
+
return Object.assign(Object.create(constructor.prototype), rest);
|
2566
|
+
}
|
2567
|
+
if (clazz === "Date")
|
2568
|
+
return new Date(val);
|
2569
|
+
if (clazz === "Set")
|
2570
|
+
return new Set(val);
|
2571
|
+
if (clazz === "Map")
|
2572
|
+
return new Map(Object.entries(val));
|
2573
|
+
if (clazz === "bigint")
|
2574
|
+
return BigInt(val);
|
2575
|
+
if (clazz === "undefined")
|
2576
|
+
return void 0;
|
2577
|
+
return rest;
|
2578
|
+
}
|
2579
|
+
return value;
|
2580
|
+
});
|
2581
|
+
}
|
2582
|
+
}
|
2583
|
+
const defaultSerializer = new Serializer();
|
2584
|
+
const serialize = (data) => {
|
2585
|
+
return defaultSerializer.toJSON(data);
|
2586
|
+
};
|
2587
|
+
const deserialize = (json) => {
|
2588
|
+
return defaultSerializer.fromJSON(json);
|
2589
|
+
};
|
2590
|
+
|
2591
|
+
function buildWorkerRunner(config) {
|
2592
|
+
return function xataWorker(name, _worker) {
|
2593
|
+
return async (...args) => {
|
2594
|
+
const url = process.env.NODE_ENV === "development" ? `http://localhost:64749/${name}` : `https://dispatcher.xata.workers.dev/${config.workspace}/${config.worker}/${name}`;
|
2595
|
+
const result = await fetch(url, {
|
2596
|
+
method: "POST",
|
2597
|
+
headers: { "Content-Type": "application/json" },
|
2598
|
+
body: serialize({ args })
|
2599
|
+
});
|
2600
|
+
const text = await result.text();
|
2601
|
+
return deserialize(text);
|
2602
|
+
};
|
2603
|
+
};
|
2604
|
+
}
|
2605
|
+
|
1803
2606
|
class XataError extends Error {
|
1804
2607
|
constructor(message, status) {
|
1805
2608
|
super(message);
|
@@ -1815,23 +2618,32 @@ exports.PAGINATION_MAX_OFFSET = PAGINATION_MAX_OFFSET;
|
|
1815
2618
|
exports.PAGINATION_MAX_SIZE = PAGINATION_MAX_SIZE;
|
1816
2619
|
exports.Page = Page;
|
1817
2620
|
exports.Query = Query;
|
2621
|
+
exports.RecordArray = RecordArray;
|
1818
2622
|
exports.Repository = Repository;
|
1819
2623
|
exports.RestRepository = RestRepository;
|
1820
2624
|
exports.SchemaPlugin = SchemaPlugin;
|
1821
2625
|
exports.SearchPlugin = SearchPlugin;
|
2626
|
+
exports.Serializer = Serializer;
|
1822
2627
|
exports.SimpleCache = SimpleCache;
|
1823
2628
|
exports.XataApiClient = XataApiClient;
|
1824
2629
|
exports.XataApiPlugin = XataApiPlugin;
|
1825
2630
|
exports.XataError = XataError;
|
1826
2631
|
exports.XataPlugin = XataPlugin;
|
1827
2632
|
exports.acceptWorkspaceMemberInvite = acceptWorkspaceMemberInvite;
|
2633
|
+
exports.addGitBranchesEntry = addGitBranchesEntry;
|
1828
2634
|
exports.addTableColumn = addTableColumn;
|
2635
|
+
exports.applyBranchSchemaEdit = applyBranchSchemaEdit;
|
1829
2636
|
exports.buildClient = buildClient;
|
2637
|
+
exports.buildWorkerRunner = buildWorkerRunner;
|
1830
2638
|
exports.bulkInsertTableRecords = bulkInsertTableRecords;
|
1831
2639
|
exports.cancelWorkspaceMemberInvite = cancelWorkspaceMemberInvite;
|
2640
|
+
exports.compareBranchSchemas = compareBranchSchemas;
|
2641
|
+
exports.compareBranchWithUserSchema = compareBranchWithUserSchema;
|
2642
|
+
exports.compareMigrationRequest = compareMigrationRequest;
|
1832
2643
|
exports.contains = contains;
|
1833
2644
|
exports.createBranch = createBranch;
|
1834
2645
|
exports.createDatabase = createDatabase;
|
2646
|
+
exports.createMigrationRequest = createMigrationRequest;
|
1835
2647
|
exports.createTable = createTable;
|
1836
2648
|
exports.createUserAPIKey = createUserAPIKey;
|
1837
2649
|
exports.createWorkspace = createWorkspace;
|
@@ -1843,7 +2655,9 @@ exports.deleteTable = deleteTable;
|
|
1843
2655
|
exports.deleteUser = deleteUser;
|
1844
2656
|
exports.deleteUserAPIKey = deleteUserAPIKey;
|
1845
2657
|
exports.deleteWorkspace = deleteWorkspace;
|
2658
|
+
exports.deserialize = deserialize;
|
1846
2659
|
exports.endsWith = endsWith;
|
2660
|
+
exports.equals = equals;
|
1847
2661
|
exports.executeBranchMigrationPlan = executeBranchMigrationPlan;
|
1848
2662
|
exports.exists = exists;
|
1849
2663
|
exports.ge = ge;
|
@@ -1853,12 +2667,17 @@ exports.getBranchList = getBranchList;
|
|
1853
2667
|
exports.getBranchMetadata = getBranchMetadata;
|
1854
2668
|
exports.getBranchMigrationHistory = getBranchMigrationHistory;
|
1855
2669
|
exports.getBranchMigrationPlan = getBranchMigrationPlan;
|
2670
|
+
exports.getBranchSchemaHistory = getBranchSchemaHistory;
|
1856
2671
|
exports.getBranchStats = getBranchStats;
|
1857
2672
|
exports.getColumn = getColumn;
|
1858
2673
|
exports.getCurrentBranchDetails = getCurrentBranchDetails;
|
1859
2674
|
exports.getCurrentBranchName = getCurrentBranchName;
|
1860
2675
|
exports.getDatabaseList = getDatabaseList;
|
2676
|
+
exports.getDatabaseMetadata = getDatabaseMetadata;
|
1861
2677
|
exports.getDatabaseURL = getDatabaseURL;
|
2678
|
+
exports.getGitBranchesMapping = getGitBranchesMapping;
|
2679
|
+
exports.getMigrationRequest = getMigrationRequest;
|
2680
|
+
exports.getMigrationRequestIsMerged = getMigrationRequestIsMerged;
|
1862
2681
|
exports.getRecord = getRecord;
|
1863
2682
|
exports.getTableColumns = getTableColumns;
|
1864
2683
|
exports.getTableSchema = getTableSchema;
|
@@ -1867,6 +2686,9 @@ exports.getUserAPIKeys = getUserAPIKeys;
|
|
1867
2686
|
exports.getWorkspace = getWorkspace;
|
1868
2687
|
exports.getWorkspaceMembersList = getWorkspaceMembersList;
|
1869
2688
|
exports.getWorkspacesList = getWorkspacesList;
|
2689
|
+
exports.greaterEquals = greaterEquals;
|
2690
|
+
exports.greaterThan = greaterThan;
|
2691
|
+
exports.greaterThanEquals = greaterThanEquals;
|
1870
2692
|
exports.gt = gt;
|
1871
2693
|
exports.gte = gte;
|
1872
2694
|
exports.includes = includes;
|
@@ -1877,27 +2699,44 @@ exports.insertRecord = insertRecord;
|
|
1877
2699
|
exports.insertRecordWithID = insertRecordWithID;
|
1878
2700
|
exports.inviteWorkspaceMember = inviteWorkspaceMember;
|
1879
2701
|
exports.is = is;
|
2702
|
+
exports.isCursorPaginationOptions = isCursorPaginationOptions;
|
1880
2703
|
exports.isIdentifiable = isIdentifiable;
|
1881
2704
|
exports.isNot = isNot;
|
1882
2705
|
exports.isXataRecord = isXataRecord;
|
1883
2706
|
exports.le = le;
|
2707
|
+
exports.lessEquals = lessEquals;
|
2708
|
+
exports.lessThan = lessThan;
|
2709
|
+
exports.lessThanEquals = lessThanEquals;
|
2710
|
+
exports.listMigrationRequests = listMigrationRequests;
|
2711
|
+
exports.listMigrationRequestsCommits = listMigrationRequestsCommits;
|
1884
2712
|
exports.lt = lt;
|
1885
2713
|
exports.lte = lte;
|
2714
|
+
exports.mergeMigrationRequest = mergeMigrationRequest;
|
1886
2715
|
exports.notExists = notExists;
|
1887
2716
|
exports.operationsByTag = operationsByTag;
|
1888
2717
|
exports.pattern = pattern;
|
2718
|
+
exports.previewBranchSchemaEdit = previewBranchSchemaEdit;
|
1889
2719
|
exports.queryTable = queryTable;
|
2720
|
+
exports.removeGitBranchesEntry = removeGitBranchesEntry;
|
1890
2721
|
exports.removeWorkspaceMember = removeWorkspaceMember;
|
1891
2722
|
exports.resendWorkspaceMemberInvite = resendWorkspaceMemberInvite;
|
2723
|
+
exports.resolveBranch = resolveBranch;
|
1892
2724
|
exports.searchBranch = searchBranch;
|
2725
|
+
exports.searchTable = searchTable;
|
2726
|
+
exports.serialize = serialize;
|
1893
2727
|
exports.setTableSchema = setTableSchema;
|
1894
2728
|
exports.startsWith = startsWith;
|
2729
|
+
exports.summarizeTable = summarizeTable;
|
1895
2730
|
exports.updateBranchMetadata = updateBranchMetadata;
|
2731
|
+
exports.updateBranchSchema = updateBranchSchema;
|
1896
2732
|
exports.updateColumn = updateColumn;
|
2733
|
+
exports.updateDatabaseMetadata = updateDatabaseMetadata;
|
2734
|
+
exports.updateMigrationRequest = updateMigrationRequest;
|
1897
2735
|
exports.updateRecordWithID = updateRecordWithID;
|
1898
2736
|
exports.updateTable = updateTable;
|
1899
2737
|
exports.updateUser = updateUser;
|
1900
2738
|
exports.updateWorkspace = updateWorkspace;
|
2739
|
+
exports.updateWorkspaceMemberInvite = updateWorkspaceMemberInvite;
|
1901
2740
|
exports.updateWorkspaceMemberRole = updateWorkspaceMemberRole;
|
1902
2741
|
exports.upsertRecordWithID = upsertRecordWithID;
|
1903
2742
|
//# sourceMappingURL=index.cjs.map
|