@rebasepro/server 0.22.0 → 0.23.0
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/dist/{GCSStorageController-CLIJXwGS.js → GCSStorageController-CjrA4PMo.js} +37 -23
- package/dist/GCSStorageController-CjrA4PMo.js.map +1 -0
- package/dist/{S3StorageController-Dcuf8lMA.js → S3StorageController-B6pKDNVj.js} +2 -2
- package/dist/{S3StorageController-Dcuf8lMA.js.map → S3StorageController-B6pKDNVj.js.map} +1 -1
- package/dist/api/ast-schema-editor.d.ts +35 -0
- package/dist/api/live-schema-routes.d.ts +14 -0
- package/dist/api/rest/api-generator.d.ts +117 -35
- package/dist/api/rest/auth-collection-writes.d.ts +85 -0
- package/dist/api/rest/field-access-query.d.ts +6 -2
- package/dist/api/rest/idempotency.d.ts +7 -1
- package/dist/api/rest/nested-write-access.d.ts +46 -0
- package/dist/api/rest/write-validation.d.ts +32 -0
- package/dist/{ast-schema-editor-CslO8Oje.js → ast-schema-editor-Mvr50v_S.js} +104 -4
- package/dist/ast-schema-editor-Mvr50v_S.js.map +1 -0
- package/dist/auth/address-ownership.d.ts +53 -0
- package/dist/auth/admin-user-ops.d.ts +35 -2
- package/dist/auth/auth-hooks.d.ts +4 -0
- package/dist/auth/captcha.d.ts +5 -0
- package/dist/auth/interfaces.d.ts +36 -6
- package/dist/auth/jwt.d.ts +17 -0
- package/dist/auth/oauth-signin-policy.d.ts +25 -8
- package/dist/auth/rate-limiter.d.ts +31 -1
- package/dist/auth/session-routes.d.ts +7 -0
- package/dist/auth/token-revocation.d.ts +4 -1
- package/dist/{auth-CCDpk2rn.js → auth-B-GIMpDG.js} +639 -228
- package/dist/auth-B-GIMpDG.js.map +1 -0
- package/dist/backend-DTAOsLQc.js +30 -0
- package/dist/backend-DTAOsLQc.js.map +1 -0
- package/dist/backup/backup-common.d.ts +19 -0
- package/dist/{backup-DzI9jLwc.js → backup-D7YR94N3.js} +69 -8
- package/dist/backup-D7YR94N3.js.map +1 -0
- package/dist/boot/driver.d.ts +10 -0
- package/dist/boot/env.d.ts +2 -2
- package/dist/boot/fetch-bundle.d.ts +18 -1
- package/dist/boot/rls-audit-option.d.ts +26 -0
- package/dist/boot/sources.d.ts +1 -0
- package/dist/{contract-routes-eLxV0le1.js → contract-routes-CbFjuBwa.js} +2 -2
- package/dist/{contract-routes-eLxV0le1.js.map → contract-routes-CbFjuBwa.js.map} +1 -1
- package/dist/cron/cron-routes.d.ts +7 -2
- package/dist/cron/cron-scheduler.d.ts +128 -8
- package/dist/cron/cron-store.d.ts +72 -8
- package/dist/cron/index.d.ts +1 -1
- package/dist/{cron-loader-CQjvjpEw.js → cron-loader-DfTj2Hbi.js} +2 -2
- package/dist/{cron-loader-CQjvjpEw.js.map → cron-loader-DfTj2Hbi.js.map} +1 -1
- package/dist/{cron-routes-B7CRGfiq.js → cron-routes-eE8nif_b.js} +33 -12
- package/dist/cron-routes-eE8nif_b.js.map +1 -0
- package/dist/{cron-scheduler-COPQxlEq.js → cron-scheduler-B0pLfAix.js} +394 -68
- package/dist/cron-scheduler-B0pLfAix.js.map +1 -0
- package/dist/{cron-store-BYGZFNWk.js → cron-store-TcoGz-xS.js} +133 -12
- package/dist/cron-store-TcoGz-xS.js.map +1 -0
- package/dist/{ddl-bootstrap-CfNvxMuK.js → ddl-bootstrap-C6mo0Kmz.js} +2 -25
- package/dist/ddl-bootstrap-C6mo0Kmz.js.map +1 -0
- package/dist/email/link-base.d.ts +5 -4
- package/dist/email/smtp-email-service.d.ts +13 -1
- package/dist/email/templates.d.ts +9 -0
- package/dist/email/types.d.ts +3 -2
- package/dist/env.d.ts +24 -5
- package/dist/{history-recorder-BQmB0P_j.js → history-recorder-B4MpJfJK.js} +8 -6
- package/dist/history-recorder-B4MpJfJK.js.map +1 -0
- package/dist/{history-store-CetkrBBD.js → history-store-BhxWOuz9.js} +2 -2
- package/dist/{history-store-CetkrBBD.js.map → history-store-BhxWOuz9.js.map} +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.es.js +2717 -866
- package/dist/index.es.js.map +1 -1
- package/dist/init/docs.d.ts +5 -2
- package/dist/init/shutdown.d.ts +8 -3
- package/dist/jobs/index.d.ts +2 -2
- package/dist/jobs/job-queue.d.ts +23 -2
- package/dist/jobs/job-store.d.ts +37 -5
- package/dist/jobs/types.d.ts +8 -6
- package/dist/{jobs-Bjr8DZAi.js → jobs-CazMYhyy.js} +305 -166
- package/dist/jobs-CazMYhyy.js.map +1 -0
- package/dist/{jwt-C4OW-DNq.js → jwt-DnQHNFCl.js} +77 -25
- package/dist/{jwt-C4OW-DNq.js.map → jwt-DnQHNFCl.js.map} +1 -1
- package/dist/{keys-Qfc4XieN.js → keys-CogCQpxG.js} +18 -3
- package/dist/{keys-Qfc4XieN.js.map → keys-CogCQpxG.js.map} +1 -1
- package/dist/{logs-routes-3EEzPjhl.js → logs-routes-Bj4TYYUl.js} +7 -4
- package/dist/{logs-routes-3EEzPjhl.js.map → logs-routes-Bj4TYYUl.js.map} +1 -1
- package/dist/mcp/mcp-routes.d.ts +38 -2
- package/dist/mcp/mcp-tools.d.ts +7 -1
- package/dist/mcp/oauth-routes.d.ts +27 -0
- package/dist/mcp/oauth-store.d.ts +29 -13
- package/dist/metrics/history-recorder.d.ts +1 -1
- package/dist/{openapi-generator-D8uFz-LW.js → openapi-generator-O_O24MAT.js} +34 -12
- package/dist/openapi-generator-O_O24MAT.js.map +1 -0
- package/dist/{query-parser-BleZmY18.js → query-parser-DGRVFNM3.js} +39 -30
- package/dist/query-parser-DGRVFNM3.js.map +1 -0
- package/dist/rls-audit/index.d.ts +4 -0
- package/dist/{schema-editor-routes-DdLihzp0.js → schema-editor-routes-C5-lh_jO.js} +2 -2
- package/dist/{schema-editor-routes-DdLihzp0.js.map → schema-editor-routes-C5-lh_jO.js.map} +1 -1
- package/dist/{src-1vL-I1Po.js → src-pmvW7BFx.js} +122 -14
- package/dist/src-pmvW7BFx.js.map +1 -0
- package/dist/{src-Br6ARbs6.js → src-vkcwKXbT.js} +2 -27
- package/dist/{src-Br6ARbs6.js.map → src-vkcwKXbT.js.map} +1 -1
- package/dist/storage/GCSStorageController.d.ts +11 -1
- package/dist/storage/keys.d.ts +12 -0
- package/dist/storage/rendition-cache.d.ts +11 -1
- package/dist/storage/request-keys.d.ts +67 -0
- package/dist/storage/types.d.ts +17 -1
- package/dist/types-BfKcm9do.js.map +1 -1
- package/package.json +9 -9
- package/dist/GCSStorageController-CLIJXwGS.js.map +0 -1
- package/dist/ast-schema-editor-CslO8Oje.js.map +0 -1
- package/dist/auth-CCDpk2rn.js.map +0 -1
- package/dist/backup-DzI9jLwc.js.map +0 -1
- package/dist/cron-routes-B7CRGfiq.js.map +0 -1
- package/dist/cron-scheduler-COPQxlEq.js.map +0 -1
- package/dist/cron-store-BYGZFNWk.js.map +0 -1
- package/dist/ddl-bootstrap-CfNvxMuK.js.map +0 -1
- package/dist/history-recorder-BQmB0P_j.js.map +0 -1
- package/dist/jobs-Bjr8DZAi.js.map +0 -1
- package/dist/openapi-generator-D8uFz-LW.js.map +0 -1
- package/dist/query-parser-BleZmY18.js.map +0 -1
- package/dist/src-1vL-I1Po.js.map +0 -1
|
@@ -3,7 +3,7 @@ import __rebaseProcess from "process";
|
|
|
3
3
|
globalThis.process ??= __rebaseProcess;
|
|
4
4
|
__rebaseCreateRequire(import.meta.url);
|
|
5
5
|
import { r as __require, t as __commonJSMin } from "./rolldown-runtime-dW7B1o5h.js";
|
|
6
|
-
import { A as
|
|
6
|
+
import { A as NULL_OPS, C as isPostgresCollectionConfig, D as ALL_WHERE_FILTER_OPS, E as getDataSourceCapabilities, F as toCanonicalOp, M as isRelationAggregateSort, O as CANONICAL_TO_REST, P as sortKeyToString, S as getDeclaredSubcollections, b as rewriteLegacyRlsFunctions, f as resolveResourceRefs, j as REST_TO_CANONICAL, k as LIST_OPS, w as isRelationalCollectionConfig } from "./src-vkcwKXbT.js";
|
|
7
7
|
//#region ../types/src/errors.ts
|
|
8
8
|
/**
|
|
9
9
|
* The single error type thrown across the entire Rebase client surface —
|
|
@@ -261,6 +261,10 @@ var Vector = class {
|
|
|
261
261
|
*/
|
|
262
262
|
var JUNCTION_PIVOT_KEY = "_pivot";
|
|
263
263
|
/** @group Models */
|
|
264
|
+
function hasForeignKeyOnTarget(relation) {
|
|
265
|
+
return relation.kind === "hasOne" || relation.kind === "hasMany";
|
|
266
|
+
}
|
|
267
|
+
/** @group Models */
|
|
264
268
|
function isManyToMany(relation) {
|
|
265
269
|
return relation.kind === "manyToMany";
|
|
266
270
|
}
|
|
@@ -3266,6 +3270,7 @@ var REBASE_INTERNAL_TABLES = [
|
|
|
3266
3270
|
"api_keys",
|
|
3267
3271
|
"cron_logs",
|
|
3268
3272
|
"cron_claims",
|
|
3273
|
+
"cron_job_state",
|
|
3269
3274
|
"jobs",
|
|
3270
3275
|
"rate_limit_hits",
|
|
3271
3276
|
"idempotency_keys",
|
|
@@ -4317,18 +4322,36 @@ function canWriteField(property, viewer) {
|
|
|
4317
4322
|
* who knows the table can send `password_hash` as readily as `passwordHash`, and
|
|
4318
4323
|
* a rule that only knew the wire name would be one rename away from useless.
|
|
4319
4324
|
*
|
|
4325
|
+
* A restricted to-one relation takes its foreign key with it. `bandId: 7` names
|
|
4326
|
+
* the band exactly as `band: { id: 7 }` does, and the row carries the column
|
|
4327
|
+
* beside the relation — so a rule on the relation that left the key alone
|
|
4328
|
+
* withheld the value from the row and still let `?bandId=7` ask for it.
|
|
4329
|
+
*
|
|
4320
4330
|
* `kind` picks which half of the rule is read; nothing else differs.
|
|
4321
4331
|
*/
|
|
4322
4332
|
function restrictedFieldNames(collection, viewer, kind) {
|
|
4323
4333
|
const declared = [];
|
|
4324
4334
|
const refused = /* @__PURE__ */ new Set();
|
|
4325
4335
|
const allowed = kind === "read" ? canReadField : canWriteField;
|
|
4326
|
-
|
|
4327
|
-
|
|
4328
|
-
|
|
4336
|
+
const properties = collection.properties ?? {};
|
|
4337
|
+
let relations;
|
|
4338
|
+
const restrict = (name) => {
|
|
4339
|
+
if (name in properties && !declared.includes(name)) declared.push(name);
|
|
4329
4340
|
refused.add(name);
|
|
4341
|
+
};
|
|
4342
|
+
for (const [name, property] of Object.entries(properties)) {
|
|
4343
|
+
if (allowed(property, viewer)) continue;
|
|
4344
|
+
restrict(name);
|
|
4330
4345
|
const columnName = property.columnName;
|
|
4331
4346
|
if (columnName) refused.add(columnName);
|
|
4347
|
+
if (property.type === "relation") {
|
|
4348
|
+
relations ??= resolveCollectionRelations(collection);
|
|
4349
|
+
const relation = findRelation(relations, name);
|
|
4350
|
+
if (relation?.kind === "belongsTo") {
|
|
4351
|
+
restrict(fieldKeyForColumn(collection, relation.localKey));
|
|
4352
|
+
refused.add(relation.localKey);
|
|
4353
|
+
}
|
|
4354
|
+
}
|
|
4332
4355
|
}
|
|
4333
4356
|
return {
|
|
4334
4357
|
declared,
|
|
@@ -5094,19 +5117,23 @@ function normalizeMaxRows(raw) {
|
|
|
5094
5117
|
* @param label the collection name, so an error says which walk failed
|
|
5095
5118
|
*/
|
|
5096
5119
|
async function* paginateFind(find, params, label = "collection") {
|
|
5097
|
-
const { pageSize, cursor, maxPages, ...rest } = params ?? {};
|
|
5120
|
+
const { pageSize, cursor, maxPages, after: startAfter, offset: startOffset, page: startPage, ...rest } = params ?? {};
|
|
5098
5121
|
const findParams = { ...rest };
|
|
5099
5122
|
const size = normalizePageSize(pageSize);
|
|
5100
5123
|
const pageCap = normalizeMaxPages(maxPages);
|
|
5101
|
-
const seekRequested = cursor !== void 0 && cursor !== null;
|
|
5102
|
-
if (
|
|
5124
|
+
const seekRequested = cursor !== void 0 && cursor !== null || !!startAfter;
|
|
5125
|
+
if (cursor !== void 0 && cursor !== null) {
|
|
5103
5126
|
const field = typeof cursor === "string" ? cursor : cursor.field;
|
|
5104
5127
|
const requested = typeof cursor === "object" && cursor !== null ? cursor.direction : void 0;
|
|
5105
5128
|
if (!normalizeOrderBy(findParams.orderBy)) findParams.orderBy = [field, requested ?? "asc"];
|
|
5106
5129
|
}
|
|
5107
|
-
let offset =
|
|
5130
|
+
let offset = resolveFindWindow({
|
|
5131
|
+
limit: size,
|
|
5132
|
+
offset: startOffset,
|
|
5133
|
+
page: startPage
|
|
5134
|
+
}).offset;
|
|
5108
5135
|
let pages = 0;
|
|
5109
|
-
let after;
|
|
5136
|
+
let after = startAfter || void 0;
|
|
5110
5137
|
for (;;) {
|
|
5111
5138
|
if (pages >= pageCap) throw new RebasePaginationError("max-pages", `Iterating "${label}" made ${pages} requests without the server reporting the end of the collection. Stopping rather than looping forever — raise \`maxPages\` if the walk is genuinely this long, or check that the backend sets \`meta.hasMore\`.`);
|
|
5112
5139
|
const pageParams = {
|
|
@@ -5171,9 +5198,16 @@ async function collectAllPages(find, params, label = "collection") {
|
|
|
5171
5198
|
* Relation values (`EntityRelation` instances or `{ __type: "relation", id, path }`
|
|
5172
5199
|
* objects) are serialized as their raw id — the wire format only carries the
|
|
5173
5200
|
* value to compare against the FK column.
|
|
5201
|
+
*
|
|
5202
|
+
* A `Date` is its ISO 8601 instant — what JSON makes of it on the socket and
|
|
5203
|
+
* in-process, so one filter names one instant through every door. `String()`
|
|
5204
|
+
* gave the viewer's local zone, no milliseconds and a parenthesised zone name
|
|
5205
|
+
* Postgres cannot parse. An invalid date keeps its "Invalid Date" spelling for
|
|
5206
|
+
* the server to refuse, rather than throwing a `RangeError` from here.
|
|
5174
5207
|
*/
|
|
5175
5208
|
function stringifyValue(value) {
|
|
5176
5209
|
if (value === null) return "null";
|
|
5210
|
+
if (value instanceof Date && !Number.isNaN(value.getTime())) return value.toISOString();
|
|
5177
5211
|
const relation = normalizeToEntityRelation(value);
|
|
5178
5212
|
if (relation) return String(relation.id);
|
|
5179
5213
|
return String(value);
|
|
@@ -5231,6 +5265,41 @@ function unescapeWireValue(value) {
|
|
|
5231
5265
|
return result;
|
|
5232
5266
|
}
|
|
5233
5267
|
/**
|
|
5268
|
+
* Whether a scalar, sent raw as a query parameter's operand, would be read
|
|
5269
|
+
* back as something other than itself.
|
|
5270
|
+
*
|
|
5271
|
+
* A query parameter owns its whole value, so its scalar goes out unescaped —
|
|
5272
|
+
* `eq.a,b`, `eq.C:\x` — and the decoder returns it verbatim. Two shapes break
|
|
5273
|
+
* that. A parenthesised operand is a list for every operator (so that
|
|
5274
|
+
* `["==", ["a","b"]]` on an array column stays a list), so raw, the scalar
|
|
5275
|
+
* `"(deleted)"` would arrive as `["deleted"]`: an `==` matching nothing, a
|
|
5276
|
+
* `!=` returning the very rows it excludes. Such a scalar is sent escaped,
|
|
5277
|
+
* `eq.\(deleted\)`. And that spelling has to be told apart from a raw value
|
|
5278
|
+
* that looks the same, so a scalar of *that* shape is escaped in turn.
|
|
5279
|
+
*
|
|
5280
|
+
* Everything else stays raw, so a value an older client sends decodes as it
|
|
5281
|
+
* always has — unless it is exactly the escaped spelling of such a scalar,
|
|
5282
|
+
* which decodes to the scalar it spells.
|
|
5283
|
+
*/
|
|
5284
|
+
function scalarNeedsEscape(value) {
|
|
5285
|
+
if (value.startsWith("(") && value.endsWith(")")) return true;
|
|
5286
|
+
return decodeEscapedScalar(value) !== void 0;
|
|
5287
|
+
}
|
|
5288
|
+
/**
|
|
5289
|
+
* The scalar an operand is the escaped spelling of, when it is one.
|
|
5290
|
+
*
|
|
5291
|
+
* Exact on purpose: only an operand that {@link escapeWireValue} produces from
|
|
5292
|
+
* a scalar that {@link scalarNeedsEscape} is decoded. Any other operand —
|
|
5293
|
+
* including a raw backslash an older client sent, like `\\server\share` — is
|
|
5294
|
+
* left verbatim. Terminates because an operand that matches contains an
|
|
5295
|
+
* escape pair, so the value is strictly shorter than it.
|
|
5296
|
+
*/
|
|
5297
|
+
function decodeEscapedScalar(operand) {
|
|
5298
|
+
if (!operand.startsWith("\\")) return void 0;
|
|
5299
|
+
const value = unescapeWireValue(operand);
|
|
5300
|
+
return escapeWireValue(value) === operand && scalarNeedsEscape(value) ? value : void 0;
|
|
5301
|
+
}
|
|
5302
|
+
/**
|
|
5234
5303
|
* Split a parenthesized list string on unescaped commas.
|
|
5235
5304
|
* Input is the content between `(` and `)`.
|
|
5236
5305
|
*
|
|
@@ -5475,6 +5544,42 @@ function readTuple(field, raw) {
|
|
|
5475
5544
|
if (isOperatorShaped(op)) throw new UnknownFilterOperatorError(field, op);
|
|
5476
5545
|
}
|
|
5477
5546
|
/**
|
|
5547
|
+
* The query-parameter names a REST listing reads as something other than a
|
|
5548
|
+
* field filter: pagination, sorting, includes, projection, search, the logical
|
|
5549
|
+
* groups, the JSON `where` dialect, an aggregate's `select`/`groupBy`, and the
|
|
5550
|
+
* soft-delete switches.
|
|
5551
|
+
*
|
|
5552
|
+
* One list for both ends. The server skips these names when it collects
|
|
5553
|
+
* `?<field>=<op>.<value>` filters, and the SDK sends a filter on a column with
|
|
5554
|
+
* one of these names inside `?where=` instead — a collection is free to have a
|
|
5555
|
+
* `page`, `select` or `hard` column, and a filter on it sent as its own
|
|
5556
|
+
* parameter was read as the parameter and never applied.
|
|
5557
|
+
*/
|
|
5558
|
+
var RESERVED_QUERY_KEYS = /* @__PURE__ */ new Set([
|
|
5559
|
+
"limit",
|
|
5560
|
+
"offset",
|
|
5561
|
+
"page",
|
|
5562
|
+
"after",
|
|
5563
|
+
"orderBy",
|
|
5564
|
+
"include",
|
|
5565
|
+
"fields",
|
|
5566
|
+
"distinct",
|
|
5567
|
+
"searchString",
|
|
5568
|
+
"searchExplain",
|
|
5569
|
+
"vector_search",
|
|
5570
|
+
"vector",
|
|
5571
|
+
"vector_distance",
|
|
5572
|
+
"vector_threshold",
|
|
5573
|
+
"or",
|
|
5574
|
+
"and",
|
|
5575
|
+
"not",
|
|
5576
|
+
"where",
|
|
5577
|
+
"select",
|
|
5578
|
+
"groupBy",
|
|
5579
|
+
"deleted",
|
|
5580
|
+
"hard"
|
|
5581
|
+
]);
|
|
5582
|
+
/**
|
|
5478
5583
|
* Encode the `<op>.<value>` half of a wire condition.
|
|
5479
5584
|
*
|
|
5480
5585
|
* This is the single leaf encoder. Both wire positions that carry a condition
|
|
@@ -5502,7 +5607,7 @@ function serializeOperatorAndValue(op, value, { escapeScalar, where }) {
|
|
|
5502
5607
|
return `${restOp}.(${value.map((v) => escapeWireValue(stringifyValue(v))).join(",")})`;
|
|
5503
5608
|
}
|
|
5504
5609
|
const scalar = stringifyValue(value);
|
|
5505
|
-
return `${restOp}.${escapeScalar ? escapeWireValue(scalar) : scalar}`;
|
|
5610
|
+
return `${restOp}.${escapeScalar || !LIST_OPS.has(op) && scalarNeedsEscape(scalar) ? escapeWireValue(scalar) : scalar}`;
|
|
5506
5611
|
}
|
|
5507
5612
|
/**
|
|
5508
5613
|
* Serialize a single canonical condition tuple to a PostgREST dot-string.
|
|
@@ -5598,7 +5703,10 @@ var NULL_OPERANDS = /* @__PURE__ */ new Set([
|
|
|
5598
5703
|
* operand: only {@link NULL_OPERANDS}. `notnull.reason` is the value
|
|
5599
5704
|
* `"notnull.reason"`, not "reason is not null".
|
|
5600
5705
|
* - **Everything else** takes one scalar, and any remainder is one — including
|
|
5601
|
-
* the empty string, so `eq.` really is "equals the empty string".
|
|
5706
|
+
* the empty string, so `eq.` really is "equals the empty string". A
|
|
5707
|
+
* parenthesised remainder is a list for these too (`eq.(a,b)` is array
|
|
5708
|
+
* equality); a scalar that is itself parenthesised arrives escaped,
|
|
5709
|
+
* `eq.\(none\)`, and is decoded here — see {@link scalarNeedsEscape}.
|
|
5602
5710
|
*
|
|
5603
5711
|
* ### The one ambiguity that remains, and how to write past it
|
|
5604
5712
|
*
|
|
@@ -5633,7 +5741,7 @@ function deserializeSingle(raw) {
|
|
|
5633
5741
|
return [canonicalOp, inner === EMPTY_LIST_TOKEN ? [] : splitListItems(inner)];
|
|
5634
5742
|
}
|
|
5635
5743
|
if (LIST_OPS.has(canonicalOp)) return ["==", raw];
|
|
5636
|
-
return [canonicalOp, rest];
|
|
5744
|
+
return [canonicalOp, decodeEscapedScalar(rest) ?? rest];
|
|
5637
5745
|
}
|
|
5638
5746
|
/**
|
|
5639
5747
|
* Convert a PostgREST-style querystring record to `FilterValues`.
|
|
@@ -6575,6 +6683,6 @@ function buildRoutedRebaseData({ defaultData, sources, resolveKey }) {
|
|
|
6575
6683
|
}
|
|
6576
6684
|
new Set(REBASE_INTERNAL_TABLES);
|
|
6577
6685
|
//#endregion
|
|
6578
|
-
export {
|
|
6686
|
+
export { toSnakeCase as $, createDataSourceRegistry as A, fieldKeyForColumn as B, cursorToStartAfter as C, restrictedFieldNames as D, effectiveAccess as E, revokeInternalTableSql as F, resolveCollectionRelations as G, getTableName as H, getJunctionConfigForRelation as I, resolvePrimaryKeys as J, enumToObjectEntries as K, getEffectiveSecurityRules as L, resolveDataSource as M, authSecretsMissingExclusion as N, assertBeforeQueryIsPostgresOnly as O, REBASE_USER_ROLE as P, suggestNearMiss as Q, getTenantConfig as R, CursorMismatchError as S, reconcileCursorOrder as T, isRelationRequired as U, findRelation as V, relationDeclaringProperty as W, isObject as X, hydrateRegExp as Y, splitSearchTerms as Z, topLevelIncludeNames as _, Vector as _t, deserializeFilter as a, FIELD_OPERATORS as at, serializeOrderBy as b, isUnsupported as bt, serializeLogicalCondition as c, ANONYMOUS_USER_ID as ct, resolveFindWindow as d, hasForeignKeyOnTarget as dt, unref as et, IncludeSpecError as f, isManyToMany as ft, serializeInclude as g, GeoPoint as gt, normalizeInclude as h, EntityRelation as ht, UnknownFilterOperatorError as i, BATCH_REF_KEY as it, isRelationalCollection as j, CollectionRegistry as k, collectAllPages as l, isAnonymousUid as lt, mergeIncludeSpecs as m, EntityReference as mt, buildSdkData as n, MAX_LIST_LIMIT as nt, deserializeLogicalCondition as o, hasFieldOperation as ot, deserializeInclude as p, isToMany as pt, buildCompositeId as q, RESERVED_QUERY_KEYS as r, resolveClientListLimit as rt, serializeFilter as s, isFieldOperation as st, buildRoutedRebaseData as t, ListLimitError as tt, paginateFind as u, JUNCTION_PIVOT_KEY as ut, OrderBySpecError as v, RebaseApiError as vt, decodeCursor as w, CursorError as x, unsupportedMethod as xt, normalizeOrderBy as y, RebaseClientError as yt, securityRuleToConditions as z };
|
|
6579
6687
|
|
|
6580
|
-
//# sourceMappingURL=src-
|
|
6688
|
+
//# sourceMappingURL=src-pmvW7BFx.js.map
|