@spooky-sync/query-builder 0.0.1-canary.27 → 0.0.1-canary.270
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/AGENTS.md +63 -0
- package/dist/index.d.mts +161 -8
- package/dist/index.d.mts.map +1 -1
- package/dist/index.d.ts +161 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +208 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +207 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/skills/{spooky-query-builder → sp00ky-query-builder}/SKILL.md +9 -9
- package/src/index.ts +11 -0
- package/src/query-builder.test.ts +213 -4
- package/src/query-builder.ts +343 -20
- package/src/repro_relationship.test.ts +1 -1
- package/src/table-schema.ts +50 -3
- package/src/types.ts +110 -5
- /package/skills/{spooky-query-builder → sp00ky-query-builder}/references/type-helpers.md +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -4,15 +4,40 @@ import { RecordId } from "surrealdb";
|
|
|
4
4
|
/**
|
|
5
5
|
* Supported value types in the schema
|
|
6
6
|
*/
|
|
7
|
-
type ValueType = 'string' | 'number' | 'boolean' | 'null' | 'json';
|
|
7
|
+
type ValueType = 'string' | 'number' | 'boolean' | 'null' | 'json' | 'Uint8Array';
|
|
8
8
|
/**
|
|
9
9
|
* Column metadata defining the type and optionality of a field
|
|
10
10
|
*/
|
|
11
|
+
/**
|
|
12
|
+
* CRDT types supported by Sp00ky's Loro integration
|
|
13
|
+
*/
|
|
14
|
+
type CrdtType = 'text' | 'map' | 'list' | 'counter';
|
|
11
15
|
interface ColumnSchema {
|
|
12
16
|
readonly type: ValueType;
|
|
13
17
|
readonly optional: boolean;
|
|
14
18
|
readonly dateTime?: boolean;
|
|
15
19
|
readonly recordId?: boolean;
|
|
20
|
+
readonly crdt?: CrdtType;
|
|
21
|
+
readonly cursor?: boolean;
|
|
22
|
+
/** True for `TYPE bytes` columns. Runtime values are `Uint8Array`. */
|
|
23
|
+
readonly bytes?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* True for `TYPE array<...>` columns. `type` then names the ELEMENT type, so
|
|
26
|
+
* the runtime value is `ElementType[]` (e.g. `array<string>` → `string[]`).
|
|
27
|
+
*/
|
|
28
|
+
readonly array?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* True for `-- @opaque` columns: the value IS synced to the client and can be
|
|
31
|
+
* read from a query result, but the sync engine never stores it server-side.
|
|
32
|
+
*
|
|
33
|
+
* That makes it unusable for anything the server has to evaluate — `where`,
|
|
34
|
+
* `orderBy`, joins, aggregates, table permissions — because the SSP has no
|
|
35
|
+
* value to evaluate against. A predicate on such a column would appear to work
|
|
36
|
+
* locally (the local cache does hold the value) while matching nothing
|
|
37
|
+
* server-side, so the query builder rejects it outright instead of letting the
|
|
38
|
+
* two diverge silently.
|
|
39
|
+
*/
|
|
40
|
+
readonly opaque?: boolean;
|
|
16
41
|
}
|
|
17
42
|
/**
|
|
18
43
|
* Table metadata containing columns and primary key information
|
|
@@ -59,13 +84,21 @@ type TypeNameToTypeMap = {
|
|
|
59
84
|
boolean: boolean;
|
|
60
85
|
null: null;
|
|
61
86
|
json: unknown;
|
|
87
|
+
Uint8Array: Uint8Array;
|
|
62
88
|
};
|
|
89
|
+
/**
|
|
90
|
+
* The element/base TS type of a column, wrapping in an array for `array: true`
|
|
91
|
+
* columns (where `type` names the element type).
|
|
92
|
+
*/
|
|
93
|
+
type ColumnBaseTSType<T extends ColumnSchema> = T extends {
|
|
94
|
+
array: true;
|
|
95
|
+
} ? TypeNameToTypeMap[T['type']][] : TypeNameToTypeMap[T['type']];
|
|
63
96
|
/**
|
|
64
97
|
* Convert a column type to its TypeScript type
|
|
65
98
|
*/
|
|
66
99
|
type ColumnToTSType<T extends ColumnSchema> = T extends {
|
|
67
100
|
optional: true;
|
|
68
|
-
} ?
|
|
101
|
+
} ? ColumnBaseTSType<T> | null : ColumnBaseTSType<T>;
|
|
69
102
|
/**
|
|
70
103
|
* Helper to extract relationship field names for a table
|
|
71
104
|
*/
|
|
@@ -102,6 +135,18 @@ interface SchemaStructure {
|
|
|
102
135
|
readonly backends: Record<string, HTTPOutboxBackendDefinition>;
|
|
103
136
|
readonly access?: Record<string, AccessDefinition>;
|
|
104
137
|
readonly buckets?: readonly BucketDefinitionSchema[];
|
|
138
|
+
/**
|
|
139
|
+
* Server-side policy the CLI codegen copies from `sp00ky.yml` into the
|
|
140
|
+
* generated `schema` constant. `queryAllowlist` mirrors `sync.queryAllowlist`:
|
|
141
|
+
* `warn` / `enforce` mean the SSP only accepts query shapes collected at
|
|
142
|
+
* `spky generate` time, so the client refuses raw remote calls unless
|
|
143
|
+
* `allowRawRemote` is set. `impersonation` mirrors `impersonation.enabled`;
|
|
144
|
+
* the server enforces it, the client only uses it to offer the feature.
|
|
145
|
+
*/
|
|
146
|
+
readonly policy?: {
|
|
147
|
+
readonly queryAllowlist?: 'off' | 'warn' | 'enforce';
|
|
148
|
+
readonly impersonation?: boolean;
|
|
149
|
+
};
|
|
105
150
|
}
|
|
106
151
|
interface HTTPOutboxBackendDefinition {
|
|
107
152
|
readonly outboxTable: string;
|
|
@@ -197,6 +242,74 @@ interface QueryInfo {
|
|
|
197
242
|
query: string;
|
|
198
243
|
hash: number;
|
|
199
244
|
vars?: Record<string, unknown>;
|
|
245
|
+
/**
|
|
246
|
+
* Engine-neutral description of the same SELECT, used by non-SurrealQL local
|
|
247
|
+
* cache backends (e.g. SQLite) that cannot parse the `query` string. Only
|
|
248
|
+
* populated for `SELECT` (undefined for LIVE/UPDATE/DELETE). See `QueryPlan`.
|
|
249
|
+
*/
|
|
250
|
+
plan?: QueryPlan;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* A single WHERE comparison. `value` is the resolved value (string IDs already
|
|
254
|
+
* converted to `RecordId`); when `paramRef` is set the condition references an
|
|
255
|
+
* existing query param verbatim (`$name`) instead of an inline value. `swap`
|
|
256
|
+
* flips the operands (`value op field`), mirroring `ComparisonOp._swap`.
|
|
257
|
+
*/
|
|
258
|
+
interface WhereComparison {
|
|
259
|
+
field: string;
|
|
260
|
+
op: ComparisonOp['_op'];
|
|
261
|
+
value: unknown;
|
|
262
|
+
paramRef?: string;
|
|
263
|
+
swap?: boolean;
|
|
264
|
+
}
|
|
265
|
+
/** A parenthesised `(c1 OR c2 …)` group, from a `_or` fragment. */
|
|
266
|
+
interface WhereOr {
|
|
267
|
+
or: WhereComparison[];
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Engine-neutral WHERE: a top-level conjunction (AND) of comparisons and/or
|
|
271
|
+
* OR-groups. Mirrors `buildQueryFromOptions`'s condition assembly exactly.
|
|
272
|
+
*/
|
|
273
|
+
type WhereNode = WhereComparison | WhereOr;
|
|
274
|
+
/**
|
|
275
|
+
* Engine-neutral description of a SELECT query. Backends render it to their own
|
|
276
|
+
* dialect (SurrealQL, SQLite, …). Relations are resolved by the caller via
|
|
277
|
+
* level-ordered decomposition rather than nested projection, so `relations`
|
|
278
|
+
* carries the tree rather than a flattened subquery string.
|
|
279
|
+
*/
|
|
280
|
+
interface QueryPlan {
|
|
281
|
+
table: string;
|
|
282
|
+
/** Projection field names; undefined means all (`*`). */
|
|
283
|
+
select?: string[];
|
|
284
|
+
where?: WhereNode[];
|
|
285
|
+
orderBy?: [field: string, direction: 'asc' | 'desc'][];
|
|
286
|
+
limit?: number;
|
|
287
|
+
offset?: number;
|
|
288
|
+
relations?: RelationPlan[];
|
|
289
|
+
/**
|
|
290
|
+
* Window materialization: when set, the base rows are EXACTLY these record
|
|
291
|
+
* ids (the window the SSP already computed), ignoring `where`/`limit`/
|
|
292
|
+
* `offset`. `orderBy`, `select` and `relations` still apply. Set by
|
|
293
|
+
* {@link buildWindowMaterializationPlan}; see `window-query.ts`.
|
|
294
|
+
*/
|
|
295
|
+
ids?: unknown[];
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* One `.related()` edge in a {@link QueryPlan}. Correlation:
|
|
299
|
+
* - `one` → parent[`foreignKeyField`] = child.id (attach `bucket[0] ?? null`)
|
|
300
|
+
* - `many` → child[`foreignKeyField`] = parent.id (attach `bucket`)
|
|
301
|
+
* `limit`/`orderBy` are applied PER PARENT during decomposition.
|
|
302
|
+
*/
|
|
303
|
+
interface RelationPlan {
|
|
304
|
+
alias: string;
|
|
305
|
+
table: string;
|
|
306
|
+
cardinality: 'one' | 'many';
|
|
307
|
+
foreignKeyField: string;
|
|
308
|
+
select?: string[];
|
|
309
|
+
where?: WhereNode[];
|
|
310
|
+
orderBy?: [field: string, direction: 'asc' | 'desc'][];
|
|
311
|
+
limit?: number;
|
|
312
|
+
relations?: RelationPlan[];
|
|
200
313
|
}
|
|
201
314
|
interface RelatedQuery {
|
|
202
315
|
/** The name of the related table to query */
|
|
@@ -208,9 +321,34 @@ interface RelatedQuery {
|
|
|
208
321
|
/** The cardinality of the relationship */
|
|
209
322
|
cardinality: 'one' | 'many';
|
|
210
323
|
}
|
|
324
|
+
/**
|
|
325
|
+
* Comparison-operator descriptor for a single WHERE field, e.g.
|
|
326
|
+
* `{ _op: '<=', _val: 5 }` → `field <= $field`. A `$`-prefixed string `_val`
|
|
327
|
+
* references an existing query param verbatim; `_swap: true` flips the operands
|
|
328
|
+
* (`$val _op field`). Plain values still mean equality (`field = $field`).
|
|
329
|
+
*/
|
|
330
|
+
interface ComparisonOp {
|
|
331
|
+
_op: '=' | '!=' | '>' | '>=' | '<' | '<=' | (string & {});
|
|
332
|
+
_val: unknown;
|
|
333
|
+
_swap?: boolean;
|
|
334
|
+
}
|
|
335
|
+
/** A single WHERE field value: an equality value or a comparison descriptor. */
|
|
336
|
+
type WhereFieldValue<V> = V | ComparisonOp;
|
|
337
|
+
/** A flat conjunction of field conditions (equality or comparison). */
|
|
338
|
+
type WhereConditions<TModel extends GenericModel> = { [K in keyof TModel]?: WhereFieldValue<TModel[K]> };
|
|
339
|
+
/**
|
|
340
|
+
* WHERE input for `.where()`. Supports equality (`{ field: value }`), comparison
|
|
341
|
+
* operators (`{ field: { _op, _val } }`), and a single top-level `_or` group of
|
|
342
|
+
* condition fragments that compile to a parenthesised `(... OR ...)` conjunct —
|
|
343
|
+
* e.g. `{ _or: [{ white: x }, { black: x }] }` → `(white = $white__or0 OR black = $black__or1)`.
|
|
344
|
+
* Backward-compatible with plain `Partial<TModel>` equality objects.
|
|
345
|
+
*/
|
|
346
|
+
type WhereInput<TModel extends GenericModel> = WhereConditions<TModel> & {
|
|
347
|
+
_or?: WhereConditions<TModel>[];
|
|
348
|
+
};
|
|
211
349
|
interface QueryOptions<TModel extends GenericModel, IsOne extends boolean> {
|
|
212
350
|
select?: ((keyof TModel & string) | '*')[];
|
|
213
|
-
where?:
|
|
351
|
+
where?: WhereInput<TModel>;
|
|
214
352
|
limit?: number;
|
|
215
353
|
offset?: number;
|
|
216
354
|
orderBy?: Partial<Record<keyof TModel, 'asc' | 'desc'>>;
|
|
@@ -218,11 +356,11 @@ interface QueryOptions<TModel extends GenericModel, IsOne extends boolean> {
|
|
|
218
356
|
related?: RelatedQuery[];
|
|
219
357
|
isOne?: IsOne;
|
|
220
358
|
}
|
|
221
|
-
|
|
359
|
+
type LiveQueryOptions<TModel extends GenericModel> = Omit<QueryOptions<TModel, boolean>, 'orderBy'>;
|
|
222
360
|
type QueryModifier<TModel extends GenericModel> = (builder: QueryModifierBuilder<TModel>) => QueryModifierBuilder<TModel>;
|
|
223
361
|
type SchemaAwareQueryModifier<S extends SchemaStructure, TableName extends TableNames<S>, RelatedFields extends Record<string, any> = {}> = (builder: SchemaAwareQueryModifierBuilder<S, TableName, {}>) => SchemaAwareQueryModifierBuilder<S, TableName, RelatedFields>;
|
|
224
362
|
interface QueryModifierBuilder<TModel extends GenericModel> {
|
|
225
|
-
where(conditions:
|
|
363
|
+
where(conditions: WhereInput<TModel>): this;
|
|
226
364
|
select(...fields: ((keyof TModel & string) | '*')[]): this;
|
|
227
365
|
limit(count: number): this;
|
|
228
366
|
offset(count: number): this;
|
|
@@ -231,7 +369,7 @@ interface QueryModifierBuilder<TModel extends GenericModel> {
|
|
|
231
369
|
_getOptions(): QueryOptions<TModel, boolean>;
|
|
232
370
|
}
|
|
233
371
|
interface SchemaAwareQueryModifierBuilder<S extends SchemaStructure, TableName extends TableNames<S>, RelatedFields extends Record<string, any> = {}> {
|
|
234
|
-
where(conditions:
|
|
372
|
+
where(conditions: WhereInput<TableModel<GetTable<S, TableName>>>): this;
|
|
235
373
|
select(...fields: ((keyof TableModel<GetTable<S, TableName>> & string) | '*')[]): this;
|
|
236
374
|
limit(count: number): this;
|
|
237
375
|
offset(count: number): this;
|
|
@@ -371,7 +509,7 @@ declare class QueryBuilder<const S extends SchemaStructure, const TableName exte
|
|
|
371
509
|
/**
|
|
372
510
|
* Add additional where conditions
|
|
373
511
|
*/
|
|
374
|
-
where(conditions:
|
|
512
|
+
where(conditions: WhereInput<TableModel<GetTable<S, TableName>>>): QueryBuilder<S, TableName, R, RelatedFields, IsOne>;
|
|
375
513
|
/**
|
|
376
514
|
* Specify fields to select
|
|
377
515
|
*/
|
|
@@ -409,6 +547,21 @@ declare class QueryBuilder<const S extends SchemaStructure, const TableName exte
|
|
|
409
547
|
*/
|
|
410
548
|
build(): FinalQuery<S, TableName, GetTable<S, TableName>, RelatedFields, IsOne, R>;
|
|
411
549
|
}
|
|
550
|
+
/**
|
|
551
|
+
* The surql param name an `_or` branch condition binds under: the branch FIELD,
|
|
552
|
+
* a `__or` marker and the branch's position. The position alone makes it unique
|
|
553
|
+
* within the query; the field prefix is what lets a consumer type the value by
|
|
554
|
+
* looking the column up (see {@link baseFieldOfParam}). Non-identifier
|
|
555
|
+
* characters (a nested path like `database.owner`) are folded to `_` so the
|
|
556
|
+
* result is a legal param name.
|
|
557
|
+
*/
|
|
558
|
+
declare function orParamName(field: string, index: number): string;
|
|
559
|
+
/**
|
|
560
|
+
* Inverse of {@link orParamName}: the field a param name was built from, or the
|
|
561
|
+
* name itself when it is a plain top-level param (`field = $field`). Lets a
|
|
562
|
+
* consumer resolve `white__or0` back to the `white` column.
|
|
563
|
+
*/
|
|
564
|
+
declare function baseFieldOfParam(name: string): string;
|
|
412
565
|
declare function cyrb53(str: string, seed?: number): number;
|
|
413
566
|
/**
|
|
414
567
|
* Build a query string from query options
|
|
@@ -422,5 +575,5 @@ declare function buildQueryFromOptions<TModel extends GenericModel, IsOne extend
|
|
|
422
575
|
//# sourceMappingURL=query-builder.d.ts.map
|
|
423
576
|
|
|
424
577
|
//#endregion
|
|
425
|
-
export { type AccessDefinition, type BackendNames, type BackendRoutes, type BucketConfig, type BucketDefinitionSchema, type BucketNames, type BuildRelatedFields, type BuildResultModelMany, type BuildResultModelOne, type Cardinality, type ColumnSchema, type Executor, type ExtractFieldNames, FinalQuery, type GenericModel, type GenericSchema, type GetCardinality, type GetRelationship, type GetRelationshipFields, type GetTable, type InferRelatedModelFromMetadata, InnerQuery, type LiveQueryOptions, QueryBuilder, type QueryInfo, type QueryModifier, type QueryModifierBuilder, type QueryOptions, type QueryResult, RecordId, type RelatedField, type RelatedFieldMapEntry, type RelatedFieldsMap, type RelatedQuery, type RelationshipDefinition, type RelationshipFields, type RelationshipFields$1 as RelationshipFieldsFromSchema, type RelationshipMetadata, type RelationshipsMetadata, type RoutePayload, type SchemaAwareQueryModifier, type SchemaAwareQueryModifierBuilder, type SchemaMetadataStructure, type SchemaStructure, type SchemaToIndexed, type TableModel, type TableNames, type TableRelationships, type TableSchemaMetadata, type TypeNameToTypeMap, type ValueType, type WithRelated, buildQueryFromOptions, cyrb53 };
|
|
578
|
+
export { type AccessDefinition, type BackendNames, type BackendRoutes, type BucketConfig, type BucketDefinitionSchema, type BucketNames, type BuildRelatedFields, type BuildResultModelMany, type BuildResultModelOne, type Cardinality, type ColumnSchema, type ComparisonOp, type Executor, type ExtractFieldNames, FinalQuery, type GenericModel, type GenericSchema, type GetCardinality, type GetRelationship, type GetRelationshipFields, type GetTable, type InferRelatedModelFromMetadata, InnerQuery, type LiveQueryOptions, QueryBuilder, type QueryInfo, type QueryModifier, type QueryModifierBuilder, type QueryOptions, type QueryPlan, type QueryResult, RecordId, type RelatedField, type RelatedFieldMapEntry, type RelatedFieldsMap, type RelatedQuery, type RelationPlan, type RelationshipDefinition, type RelationshipFields, type RelationshipFields$1 as RelationshipFieldsFromSchema, type RelationshipMetadata, type RelationshipsMetadata, type RoutePayload, type SchemaAwareQueryModifier, type SchemaAwareQueryModifierBuilder, type SchemaMetadataStructure, type SchemaStructure, type SchemaToIndexed, type TableModel, type TableNames, type TableRelationships, type TableSchemaMetadata, type TypeNameToTypeMap, type ValueType, type WhereComparison, type WhereConditions, type WhereFieldValue, type WhereInput, type WhereNode, type WhereOr, type WithRelated, baseFieldOfParam, buildQueryFromOptions, cyrb53, orParamName };
|
|
426
579
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/table-schema.ts","../src/types.ts","../src/query-builder.ts"],"sourcesContent":[],"mappings":"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CAAA;AAGpD;;;AAEmB,KE0CP,kBF1CO,CAAA,UE2CP,eF3CO,EAAA,sBE4CK,gBF5CL,CAAA,GAAA,QAAM,ME8CX,aF9CW,GE8CK,WF9CL,CE+CrB,CF/CqB,EEgDrB,aFhDqB,CEgDP,CFhDO,CAAA,CAAA,IAAA,CAAA,EEiDrB,aFjDqB,CEiDP,CFjDO,CAAA,CAAA,eAAA,CAAA,EEkDrB,aFlDqB,CEkDP,CFlDO,CAAA,CAAA,aAAA,CAAA,SAAA,KAAA,GAAA,IAAA,GAAA,KAAA,CAAA,EAGzB;AAA2C,KEmD/B,mBFnD+B,CAAA,UEoD/B,eFpD+B,EAAA,kBEqDvB,UFrDuB,CEqDZ,CFrDY,CAAA,EAAA,sBEsDnB,gBFtDmB,CAAA,GEuDvC,IFvDuC,CEuDlC,UFvDkC,CEuDvB,QFvDuB,CEuDd,CFvDc,EEuDX,SFvDW,CAAA,CAAA,EEuDE,iBFvDF,CEuDoB,aFvDpB,CAAA,CAAA,GEwDzC,kBFxDyC,CEwDtB,CFxDsB,EEwDnB,aFxDmB,CAAA;AACX,KEyDpB,oBFzDoB,CAAA,UE0DpB,eF1DoB,EAAA,kBE2DZ,UF3DY,CE2DD,CF3DC,CAAA,EAAA,sBE4DR,gBF5DQ,CAAA,GAAA,CE6D3B,IF7D2B,CE6DtB,UF7DsB,CE6DX,QF7DW,CE6DF,CF7DE,EE6DC,SF7DD,CAAA,CAAA,EE6Dc,iBF7Dd,CE6DgC,aF7DhC,CAAA,CAAA,GE8D9B,kBF9D8B,CE8DX,CF9DW,EE8DR,aF9DQ,CAAA,CAAA,EAAA;;;AAGhC;AAUA;AAAuB,KEuDX,WFvDW,CAAA,UEwDX,eFxDW,EAAA,kBEyDH,UFzDG,CEyDQ,CFzDR,CAAA,EAAA,sBE0DC,gBF1DD,EAAA,cAAA,OAAA,CAAA,GE4DnB,KF5DmB,SAAA,IAAA,GE6DnB,mBF7DmB,CE6DC,CF7DD,EE6DI,SF7DJ,EE6De,aF7Df,CAAA,GE8DnB,oBF9DmB,CE8DE,CF9DF,EE8DK,SF9DL,EE8DgB,aF9DhB,CAAA;AAAW,cEgErB,UFhEqB,CAAA,UEiEtB,eFjEsB,EAAA,kBEkEd,UFlEc,CEkEH,CFlEG,CAAA,EAAA,UAAA;SAChC,EEkEqB,MFlErB,CAAA,MAAA,EEkEoC,YFlEpC,CAAA;yBEmEsB,gBFnEQ,EAAA,cAAA,OAAA,EAAA,IAAA,IAAA,CAAA,CAAA;mBAC1B,SAAA;EAAC,iBAAA,OAAA;EAIK,iBAAY,MAAA;EAAA,iBAAA,QAAA;UAAW,WAAA;aAAuC,CAAA,SAAA,EEqE1C,SFrE0C,EAAA,OAAA,EEsE5C,YFtE4C,CEsE/B,UFtE+B,CEsEpB,CFtEoB,CAAA,EEsEhB,KFtEgB,CAAA,EAAA,MAAA,EEuE7C,CFvE6C,EAAA,QAAA,EEwE3C,QFxE2C,CEwElC,CFxEkC,EEwE/B,CFxE+B,CAAA;KAAZ,CAAA,CAAA,EEkFrD,CFlFqD;kBAC5D,CAAA,OAAA,EAAA,GAAA,EAAA,CAAA,EEqFkC,SFrFlC;kBAA8B,CAAA,CAAA,EEyFV,SFzFU;YAClB,CAAA,CAAA,EE4FE,SF5FF;MAA8B,UAAA,CAAA,CAAA,EEgGxB,UFhGwB,CEgGb,CFhGa,EEgGV,KFhGU,EEgGH,CFhGG,CAAA;MAAtC,KAAA,CAAA,CAAA,EAAA,OAAA;EAAO,IAAA,IAAA,CAAA,CAAA,EAAA,MAAA;AAIb;;;;;AAGY,cEqNC,YFrNY,CAAA,gBEsNP,eFtNO,EAAA,wBEuNC,UFvND,CEuNY,CFvNZ,CAAA,EAAA,UAAA,IAAA,EAAA,4BEyNK,gBFzNL,GAAA,CAAA,CAAA,EAAA,oBAAA,OAAA,GAAA,KAAA,CAAA,CAAA;EAAA,iBAAA,MAAA;mBACb,SAAA;mBACa,QAAA;UAAb,OAAA;aACF,CAAA,MAAA,EE0NmB,CF1NnB,EAAA,SAAA,EE2NsB,SF3NtB,EAAA,QAAA,CAAA,EE4NqB,QF5NrB,CE4N8B,QF5N9B,CE4NuC,CF5NvC,EE4N0C,SF5N1C,CAAA,EE4NsD,CF5NtD,CAAA,EAAA,OAAA,CAAA,EE6NW,YF7NX,CE6NwB,UF7NxB,CE6NmC,QF7NnC,CE6N4C,CF7N5C,EE6N+C,SF7N/C,CAAA,CAAA,EE6N4D,KF7N5D,CAAA;;;AAGV;EAAwB,KAAA,CAAA,UAAA,EEiOR,OFjOQ,CEiOA,UFjOA,CEiOW,QFjOX,CEiOoB,CFjOpB,EEiOuB,SFjOvB,CAAA,CAAA,CAAA,CAAA,EEkOnB,YFlOmB,CEkON,CFlOM,EEkOH,SFlOG,EEkOQ,CFlOR,EEkOW,aFlOX,EEkO0B,KFlO1B,CAAA;;;;QAGE,CAAA,GAAA,MAAA,EAAA,CAAA,CAAA,MEwOH,UFxOG,CEwOQ,QFxOR,CEwOiB,CFxOjB,EEwOoB,SFxOpB,CAAA,CAAA,GAAA,MAAA,CAAA,GAAA,GAAA,CAAA,EAAA,CAAA,EEyOrB,YFzOqB,CEyOR,CFzOQ,EEyOL,SFzOK,EEyOM,CFzON,EEyOS,aFzOT,EEyOwB,KFzOxB,CAAA;;;;SACC,CAAA,KAAA,EEoPhB,eFpPgB,CEoPA,QFpPA,CEoPS,CFpPT,EEoPY,SFpPZ,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,KAAA,GAAA,MAAA,CAAA,EEsPtB,YFtPsB,CEsPT,CFtPS,EEsPN,SFtPM,EEsPK,CFtPL,EEsPQ,aFtPR,EEsPuB,KFtPvB,CAAA;;;;OAGQ,CAAA,KAAA,EAAA,MAAA,CAAA,EE8PX,YF9PW,CE8PE,CF9PF,EE8PK,SF9PL,EE8PgB,CF9PhB,EE8PmB,aF9PnB,EE8PkC,KF9PlC,CAAA;;;;QAAW,CAAA,KAAA,EAAA,MAAA,CAAA,EEsQrB,YFtQqB,CEsQR,CFtQQ,EEsQL,SFtQK,EEsQM,CFtQN,EEsQS,aFtQT,EEsQwB,KFtQxB,CAAA;KAA+B,CAAA,CAAA,EE2QpE,YF3QoE,CE2QvD,CF3QuD,EE2QpD,SF3QoD,EE2QzC,CF3QyC,EE2QtC,aF3QsC,EAAA,IAAA,CAAA;;;;;;SAEvC,CAAA,cEwRpB,kBFxRoB,CEwRD,CFxRC,EEwRE,SFxRF,CAAA,CAAA,OAAA,CAAA,EAAA,YEyRtB,eFzRsB,CEyRN,CFzRM,EEyRH,SFzRG,EEyRQ,KFzRR,CAAA,EAAA,uBE0RX,gBF1RW,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EE4R3B,KF5R2B,EAAA,qBAAA,CAAA,EE8R9B,wBF9R8B,CE8RL,CF9RK,EE8RF,GF9RE,CAAA,IAAA,CAAA,EE8RS,cF9RT,CAAA,GE+R9B,GF/R8B,CAAA,aAAA,CAAA,EAAA,QAAA,CAAA,EEgSvB,wBFhSuB,CEgSE,CFhSF,EEgSK,GFhSL,CAAA,IAAA,CAAA,EEgSgB,cFhShB,CAAA,CAAA,EEiSjC,YFjSiC,CEkSlC,CFlSkC,EEmSlC,SFnSkC,EEoSlC,CFpSkC,EEqSlC,aFrSkC,GAAA,QEsS1B,KFtS6B,GAAA;IAA3B,EAAA,EEuSF,GFvSE,CAAA,IAAA,CAAA;IAAiC,WAAA,EEwS1B,GFxS0B,CAAA,aAAA,CAAA;IAA+B,aAAA,EEySvD,cFzSuD;EAAG,CAAA,IE4S7E,KF5SgF,CAAA;;;;EAHxE,UAAA,CAAA,CAAA,EEqYI,YFrYJ,CEqYiB,UFrYjB,CEqY4B,QFrY5B,CEqYqC,CFrYrC,EEqYwC,SFrYxC,CAAA,CAAA,EEqYqD,KFrYrD,CAAA;EAMP;;;;OAEO,CAAA,CAAA,EEqYD,UFrYC,CEqYU,CFrYV,EEqYa,SFrYb,EEqYwB,QFrYxB,CEqYiC,CFrYjC,EEqYoC,SFrYpC,CAAA,EEqYgD,aFrYhD,EEqY+D,KFrY/D,EEqYsE,CFrYtE,CAAA;;AACiB,iBE8Yb,MAAA,CF9Ya,GAAA,EAAA,MAAA,EAAA,IAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AACG;;;;;;;;AAOL,iBE2eX,qBF3eW,CAAA,eE2e0B,YF3e1B,EAAA,cAAA,OAAA,CAAA,CAAA,MAAA,EAAA,QAAA,GAAA,aAAA,GAAA,kBAAA,GAAA,QAAA,GAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EE8ehB,YF9egB,CE8eH,MF9eG,EE8eK,KF9eL,CAAA,EAAA,MAAA,EE+ejB,eF/eiB,EAAA,OAAA,CAAA,EAAA,GAAA,EAAA,CAAA,EEifxB,SFjfwB"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/table-schema.ts","../src/types.ts","../src/query-builder.ts"],"sourcesContent":[],"mappings":"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GS,CFhGT,CAAA,EAAA,sBEiGE,gBFjGF,CAAA,GEkGlB,IFlGkB,CEkGb,UFlGa,CEkGF,QFlGE,CEkGO,CFlGP,EEkGU,SFlGV,CAAA,CAAA,EEkGuB,iBFlGvB,CEkGyC,aFlGzC,CAAA,CAAA,GEmGpB,kBFnGoB,CEmGD,CFnGC,EEmGE,aFnGF,CAAA;AAOI,KE8Fd,oBF9Fc,CAAA,UE+Fd,eF/Fc,EAAA,kBEgGN,UFhGM,CEgGK,CFhGL,CAAA,EAAA,sBEiGF,gBFjGE,CAAA,GAAA,CEkGrB,IFlGqB,CEkGhB,UFlGgB,CEkGL,QFlGK,CEkGI,CFlGJ,EEkGO,SFlGP,CAAA,CAAA,EEkGoB,iBFlGpB,CEkGsC,aFlGtC,CAAA,CAAA,GEmGxB,kBFnGwB,CEmGL,CFnGK,EEmGF,aFnGE,CAAA,CAAA,EAAA;;;;;AAII,KEqGlB,WFrGkB,CAAA,UEsGlB,eFtGkB,EAAA,kBEuGV,UFvGU,CEuGC,CFvGD,CAAA,EAAA,sBEwGN,gBFxGM,EAAA,cAAA,OAAA,CAAA,GE0G1B,KF1G0B,SAAA,IAAA,GE2G1B,mBF3G0B,CE2GN,CF3GM,EE2GH,SF3GG,EE2GQ,aF3GR,CAAA,GE4G1B,oBF5G0B,CE4GL,CF5GK,EE4GF,SF5GE,EE4GS,aF5GT,CAAA;AAAsB,cE8GvC,UF9GuC,CAAA,UE+GxC,eF/GwC,EAAA,kBEgHhC,UFhHgC,CEgHrB,CFhHqB,CAAA,EAAA,UAAA;EAenC,OAAA,EEkGM,MFlGN,CAAA,MAAA,EEkGqB,YFlGM,CAAA;CAAA,EAAA,sBEoGpB,gBFpGoB,EAAA,cAAA,OAAA,EAAA,IAAA,IAAA,CAAA,CAAA;mBAEV,SAAA;mBAAf,OAAA;EAAM,iBAAA,MAAA;EAGR,iBAAA,QAAA;EAA0B,QAAA,WAAA;aACX,CAAA,SAAA,EEqGA,SFrGA,EAAA,OAAA,EEsGF,YFtGE,CEsGW,UFtGX,CEsGsB,CFtGtB,CAAA,EEsG0B,KFtG1B,CAAA,EAAA,MAAA,EEuGH,CFvGG,EAAA,QAAA,EEwGD,QFxGC,CEwGQ,CFxGR,EEwGW,CFxGX,CAAA;KAAf,CAAA,CAAA,EEkHR,CFlHQ;EAAM,gBAAA,CAAA,OAAA,EAAA,GAAA,EAAA,CAAA,EEsHa,SFtHb;EAGN,gBAAA,CAAA,CAAA,EEuHK,SFvHL;EAUL,UAAA,CAAA,CAAA,EEiHI,SFjHO;EAAA,IAAA,UAAA,CAAA,CAAA,EEqHH,UFrHG,CEqHQ,CFrHR,EEqHW,KFrHX,EEqHkB,CFrHlB,CAAA;MAAW,KAAA,CAAA,CAAA,EAAA,OAAA;MAChC,IAAA,CAAA,CAAA,EAAA,MAAA;;;;AAKF;;AAAmC,cE2PtB,YF3PsB,CAAA,gBE4PjB,eF5PiB,EAAA,wBE6PT,UF7PS,CE6PE,CF7PF,CAAA,EAAA,UAAA,IAAA,EAAA,4BE+PL,gBF/PK,GAAA,CAAA,CAAA,EAAA,oBAAA,OAAA,GAAA,KAAA,CAAA,CAAA;mBAAuC,MAAA;mBAAZ,SAAA;mBAC5D,QAAA;UAA8B,OAAA;aAClB,CAAA,MAAA,EEiQe,CFjQf,EAAA,SAAA,EEkQkB,SFlQlB,EAAA,QAAA,CAAA,EEmQiB,QFnQjB,CEmQ0B,QFnQ1B,CEmQmC,CFnQnC,EEmQsC,SFnQtC,CAAA,EEmQkD,CFnQlD,CAAA,EAAA,OAAA,CAAA,EEoQO,YFpQP,CEoQoB,UFpQpB,CEoQ+B,QFpQ/B,CEoQwC,CFpQxC,EEoQ2C,SFpQ3C,CAAA,CAAA,EEoQwD,KFpQxD,CAAA;;;;EAIF,KAAA,CAAA,UAAY,EEuQR,UFvQQ,CEuQG,UFvQH,CEuQc,QFvQd,CEuQuB,CFvQvB,EEuQ0B,SFvQ1B,CAAA,CAAA,CAAA,CAAA,EEwQnB,YFxQmB,CEwQN,CFxQM,EEwQH,SFxQG,EEwQQ,CFxQR,EEwQW,aFxQX,EEwQ0B,KFxQ1B,CAAA;EAAA;;;EAAqC,MAAA,CAAA,GAAA,MAAA,EAAA,CAAA,CAAA,MEuRtC,UFvRsC,CEuR3B,QFvR2B,CEuRlB,CFvRkB,EEuRf,SFvRe,CAAA,CAAA,GAAA,MAAA,CAAA,GAAA,GAAA,CAAA,EAAA,CAAA,EEwRxD,YFxRwD,CEwR3C,CFxR2C,EEwRxC,SFxRwC,EEwR7B,CFxR6B,EEwR1B,aFxR0B,EEwRX,KFxRW,CAAA;EAGjD;;;SAEa,CAAA,KAAA,EE+Rd,eF/Rc,CE+RE,QF/RF,CE+RW,CF/RX,EE+Rc,SF/Rd,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,KAAA,GAAA,MAAA,CAAA,EEiSpB,YFjSoB,CEiSP,CFjSO,EEiSJ,SFjSI,EEiSO,CFjSP,EEiSU,aFjSV,EEiSyB,KFjSzB,CAAA;;;;EACA,KAAA,CAAA,KAAA,EAAA,MAAA,CAAA,EE4SD,YF5SC,CE4SY,CF5SZ,EE4Se,SF5Sf,EE4S0B,CF5S1B,EE4S6B,aF5S7B,EE4S4C,KF5S5C,CAAA;EAGb;;;QAEa,CAAA,KAAA,EAAA,MAAA,CAAA,EE+SA,YF/SA,CE+Sa,CF/Sb,EE+SgB,SF/ShB,EE+S2B,CF/S3B,EE+S8B,aF/S9B,EE+S6C,KF/S7C,CAAA;KAAb,CAAA,CAAA,EEoTH,YFpTG,CEoTU,CFpTV,EEoTa,SFpTb,EEoTwB,CFpTxB,EEoT2B,aFpT3B,EAAA,IAAA,CAAA;;;;;;SAEkB,CAAA,cEiUZ,kBFjUY,CEiUO,CFjUP,EEiUU,SFjUV,CAAA,CAAA,OAAA,CAAA,EAAA,YEkUd,eFlUc,CEkUE,CFlUF,EEkUK,SFlUL,EEkUgB,KFlUhB,CAAA,EAAA,uBEmUH,gBFnUG,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EEqUnB,KFrUmB,EAAA,qBAAA,CAAA,EEuUtB,wBFvUsB,CEuUG,CFvUH,EEuUM,GFvUN,CAAA,IAAA,CAAA,EEuUiB,cFvUjB,CAAA,GEwUtB,GFxUsB,CAAA,aAAA,CAAA,EAAA,QAAA,CAAA,EEyUf,wBFzUe,CEyUU,CFzUV,EEyUa,GFzUb,CAAA,IAAA,CAAA,EEyUwB,cFzUxB,CAAA,CAAA,EE0UzB,YF1UyB,CE2U1B,CF3U0B,EE4U1B,SF5U0B,EE6U1B,CF7U0B,EE8U1B,aF9U0B,GAAA,QE+UlB,KF/UD,GAAA;IACP,EAAA,EE+UQ,GF/UR,CAAA,IAAA,CAAA;IAE+B,WAAA,EE8Ud,GF9Uc,CAAA,aAAA,CAAA;IAAG,aAAA,EE+Uf,cF/Ue;EAAG,CAAA,IEkVrC,KFlVU,CAAA;;;;YAAqE,CAAA,CAAA,EEgbnE,YFhbmE,CEgbtD,UFhbsD,CEgb3C,QFhb2C,CEgblC,CFhbkC,EEgb/B,SFhb+B,CAAA,CAAA,EEgblB,KFhbkB,CAAA;;;;;OAE1C,CAAA,CAAA,EEsb9B,UFtb8B,CEsbnB,CFtbmB,EEsbhB,SFtbgB,EEsbL,QFtbK,CEsbI,CFtbJ,EEsbO,SFtbP,CAAA,EEsbmB,aFtbnB,EEsbkC,KFtblC,EEsbyC,CFtbzC,CAAA;;;;;;;;;;AAGpC,iBEqcW,WAAA,CFrcC,KAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;;;AAGY,iBE2cb,gBAAA,CF3ca,IAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AAAjB,iBEgdI,MAAA,CFhdJ,GAAA,EAAA,MAAA,EAAA,IAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;;;;;;AAQkB,iBE8iBd,qBF9iBc,CAAA,eE8iBuB,YF9iBvB,EAAA,cAAA,OAAA,CAAA,CAAA,MAAA,EAAA,QAAA,GAAA,aAAA,GAAA,kBAAA,GAAA,QAAA,GAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EEijBnB,YFjjBmB,CEijBN,MFjjBM,EEijBE,KFjjBF,CAAA,EAAA,MAAA,EEkjBpB,eFljBoB,EAAA,OAAA,CAAA,EAAA,GAAA,EAAA,CAAA,EEojB3B,SFpjB2B"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,36 @@ let surrealdb = require("surrealdb");
|
|
|
3
3
|
|
|
4
4
|
//#region src/query-builder.ts
|
|
5
5
|
/**
|
|
6
|
+
* Reject a query clause that references an `-- @opaque` column.
|
|
7
|
+
*
|
|
8
|
+
* An `@opaque` value is synced down to the client but never held server-side, so
|
|
9
|
+
* the SSP has nothing to evaluate a predicate against. Left unchecked, the
|
|
10
|
+
* failure is silent and asymmetric: the local cache DOES hold the value, so the
|
|
11
|
+
* clause filters correctly on screen while the server-side membership set it is
|
|
12
|
+
* compared against was computed without it. The result reads as rows randomly
|
|
13
|
+
* appearing and vanishing rather than as an error, so fail loudly at the call
|
|
14
|
+
* site instead.
|
|
15
|
+
*
|
|
16
|
+
* `clause` names the offending API ('where', 'orderBy', …) for the message.
|
|
17
|
+
*/
|
|
18
|
+
function assertNotOpaque(schema, tableName, clause, fields) {
|
|
19
|
+
const table = schema.tables.find((t) => t.name === tableName);
|
|
20
|
+
if (!table) return;
|
|
21
|
+
for (const field of fields) if ((table.columns[field] ?? table.columns[field.split(".")[0]])?.opaque) throw new Error(`Cannot use '${field}' in ${clause}(): it is marked '-- @opaque' on ${tableName}, so the sync engine never stores its value and cannot evaluate it. Read the field from query results instead, or remove '-- @opaque' from the schema if you need to query on it.`);
|
|
22
|
+
}
|
|
23
|
+
/** Every column name a `where` clause touches, including `_or` branches. */
|
|
24
|
+
function whereFieldNames(conditions) {
|
|
25
|
+
const out = [];
|
|
26
|
+
for (const [key, value] of Object.entries(conditions)) {
|
|
27
|
+
if (key === "_or") {
|
|
28
|
+
for (const branch of value ?? []) out.push(...whereFieldNames(branch ?? {}));
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
out.push(key);
|
|
32
|
+
}
|
|
33
|
+
return out;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
6
36
|
* Parse a string ID to RecordId
|
|
7
37
|
* - If it's in the format "table:id", use it as-is
|
|
8
38
|
* - If it's just an ID without ":", prepend the table name
|
|
@@ -125,6 +155,7 @@ var SchemaAwareQueryModifierBuilderImpl = class {
|
|
|
125
155
|
this.options = {};
|
|
126
156
|
}
|
|
127
157
|
where(conditions) {
|
|
158
|
+
assertNotOpaque(this.schema, this.tableName, "where", whereFieldNames(conditions));
|
|
128
159
|
this.options.where = {
|
|
129
160
|
...this.options.where,
|
|
130
161
|
...conditions
|
|
@@ -145,6 +176,7 @@ var SchemaAwareQueryModifierBuilderImpl = class {
|
|
|
145
176
|
return this;
|
|
146
177
|
}
|
|
147
178
|
orderBy(field, direction = "asc") {
|
|
179
|
+
assertNotOpaque(this.schema, this.tableName, "orderBy", [field]);
|
|
148
180
|
this.options.orderBy = {
|
|
149
181
|
...this.options.orderBy,
|
|
150
182
|
[field]: direction
|
|
@@ -155,7 +187,10 @@ var SchemaAwareQueryModifierBuilderImpl = class {
|
|
|
155
187
|
if (!this.options.related) this.options.related = [];
|
|
156
188
|
if (!this.options.related.some((r) => (r.alias || r.relatedTable) === relatedField)) {
|
|
157
189
|
const relationship = this.schema.relationships.find((r) => r.from === this.tableName && r.field === relatedField);
|
|
158
|
-
if (!relationship)
|
|
190
|
+
if (!relationship) {
|
|
191
|
+
if (typeof console !== "undefined") console.warn(`[sp00ky] .related('${String(relatedField)}') skipped — no such relationship on '${this.tableName}' in the client schema`);
|
|
192
|
+
return this;
|
|
193
|
+
}
|
|
159
194
|
const relatedTable = relationship.to;
|
|
160
195
|
const cardinality = relationship.cardinality;
|
|
161
196
|
const foreignKeyField = cardinality === "many" ? this.tableName : relatedField;
|
|
@@ -188,6 +223,7 @@ var QueryBuilder = class QueryBuilder {
|
|
|
188
223
|
* Add additional where conditions
|
|
189
224
|
*/
|
|
190
225
|
where(conditions) {
|
|
226
|
+
assertNotOpaque(this.schema, this.tableName, "where", whereFieldNames(conditions));
|
|
191
227
|
this.options.where = {
|
|
192
228
|
...this.options.where,
|
|
193
229
|
...conditions
|
|
@@ -206,6 +242,7 @@ var QueryBuilder = class QueryBuilder {
|
|
|
206
242
|
* Add ordering to the query (only for non-live queries)
|
|
207
243
|
*/
|
|
208
244
|
orderBy(field, direction = "asc") {
|
|
245
|
+
assertNotOpaque(this.schema, this.tableName, "orderBy", [field]);
|
|
209
246
|
this.options.orderBy = {
|
|
210
247
|
...this.options.orderBy,
|
|
211
248
|
[field]: direction
|
|
@@ -241,7 +278,10 @@ var QueryBuilder = class QueryBuilder {
|
|
|
241
278
|
if (!this.options.related) this.options.related = [];
|
|
242
279
|
if (this.options.related.some((r) => (r.alias || r.relatedTable) === field)) return this;
|
|
243
280
|
const relationship = this.schema.relationships.find((r) => r.from === this.tableName && r.field === field);
|
|
244
|
-
if (!relationship)
|
|
281
|
+
if (!relationship) {
|
|
282
|
+
if (typeof console !== "undefined") console.warn(`[sp00ky] .related('${String(field)}') skipped — no such relationship on '${this.tableName}' in the client schema`);
|
|
283
|
+
return this;
|
|
284
|
+
}
|
|
245
285
|
let actualCardinality;
|
|
246
286
|
let actualModifier;
|
|
247
287
|
if (typeof modifierOrCardinality === "function") {
|
|
@@ -287,6 +327,26 @@ var QueryBuilder = class QueryBuilder {
|
|
|
287
327
|
return new FinalQuery(this.tableName, this.options, this.schema, this.executer);
|
|
288
328
|
}
|
|
289
329
|
};
|
|
330
|
+
/**
|
|
331
|
+
* The surql param name an `_or` branch condition binds under: the branch FIELD,
|
|
332
|
+
* a `__or` marker and the branch's position. The position alone makes it unique
|
|
333
|
+
* within the query; the field prefix is what lets a consumer type the value by
|
|
334
|
+
* looking the column up (see {@link baseFieldOfParam}). Non-identifier
|
|
335
|
+
* characters (a nested path like `database.owner`) are folded to `_` so the
|
|
336
|
+
* result is a legal param name.
|
|
337
|
+
*/
|
|
338
|
+
function orParamName(field, index) {
|
|
339
|
+
return `${field.replace(/[^A-Za-z0-9_]/g, "_")}__or${index}`;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Inverse of {@link orParamName}: the field a param name was built from, or the
|
|
343
|
+
* name itself when it is a plain top-level param (`field = $field`). Lets a
|
|
344
|
+
* consumer resolve `white__or0` back to the `white` column.
|
|
345
|
+
*/
|
|
346
|
+
function baseFieldOfParam(name) {
|
|
347
|
+
const m = /^(.+)__or\d+$/.exec(name);
|
|
348
|
+
return m ? m[1] : name;
|
|
349
|
+
}
|
|
290
350
|
function cyrb53(str, seed = 0) {
|
|
291
351
|
let h1 = 3735928559 ^ seed, h2 = 1103547991 ^ seed;
|
|
292
352
|
for (let i = 0, ch; i < str.length; i++) {
|
|
@@ -355,24 +415,31 @@ function buildQueryFromOptions(method, tableName, options, schema, patches) {
|
|
|
355
415
|
const vars = {};
|
|
356
416
|
if (parsedWhere && Object.keys(parsedWhere).length > 0) {
|
|
357
417
|
const conditions = [];
|
|
358
|
-
|
|
359
|
-
const varName = key;
|
|
418
|
+
const buildCondition = (field, value, varName) => {
|
|
360
419
|
if (value && typeof value === "object" && "_op" in value && "_val" in value) {
|
|
361
420
|
const { _op, _val, _swap } = value;
|
|
362
|
-
let rightSide
|
|
421
|
+
let rightSide;
|
|
363
422
|
if (typeof _val === "string" && _val.startsWith("$")) rightSide = _val;
|
|
364
423
|
else {
|
|
365
424
|
vars[varName] = _val;
|
|
366
425
|
rightSide = `$${varName}`;
|
|
367
426
|
}
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
427
|
+
return _swap ? `${rightSide} ${_op} ${field}` : `${field} ${_op} ${rightSide}`;
|
|
428
|
+
}
|
|
429
|
+
vars[varName] = value;
|
|
430
|
+
return `${field} = $${varName}`;
|
|
431
|
+
};
|
|
432
|
+
for (const [key, value] of Object.entries(parsedWhere)) {
|
|
433
|
+
if (key === "_or" && Array.isArray(value)) {
|
|
434
|
+
const orParts = [];
|
|
435
|
+
let i = 0;
|
|
436
|
+
for (const branch of value) if (branch && typeof branch === "object") for (const [bField, bVal] of Object.entries(branch)) orParts.push(buildCondition(bField, bVal, orParamName(bField, i++)));
|
|
437
|
+
if (orParts.length > 0) conditions.push(`(${orParts.join(" OR ")})`);
|
|
438
|
+
continue;
|
|
373
439
|
}
|
|
440
|
+
conditions.push(buildCondition(key, value, key));
|
|
374
441
|
}
|
|
375
|
-
query += ` WHERE ${conditions.join(" AND ")}`;
|
|
442
|
+
if (conditions.length > 0) query += ` WHERE ${conditions.join(" AND ")}`;
|
|
376
443
|
}
|
|
377
444
|
if (method === "UPDATE" && patches) query += ` PATCH ${JSON.stringify(patches)}`;
|
|
378
445
|
if (!isLiveQuery) {
|
|
@@ -387,8 +454,135 @@ function buildQueryFromOptions(method, tableName, options, schema, patches) {
|
|
|
387
454
|
return {
|
|
388
455
|
query,
|
|
389
456
|
hash: cyrb53(`${query}::${Object.entries(vars).map(([key, value]) => `${key}=${value}`).join("&")}`, 0),
|
|
390
|
-
vars: Object.keys(vars).length > 0 ? vars : void 0
|
|
457
|
+
vars: Object.keys(vars).length > 0 ? vars : void 0,
|
|
458
|
+
plan: method === "SELECT" ? buildQueryPlan(tableName, options, schema) : void 0
|
|
459
|
+
};
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Build the engine-neutral {@link QueryPlan} for a SELECT. Mirrors the string
|
|
463
|
+
* assembly in {@link buildQueryFromOptions} / {@link buildSubquery} exactly so a
|
|
464
|
+
* non-SurrealQL backend produces results identical to the SurrealQL path.
|
|
465
|
+
*/
|
|
466
|
+
function buildQueryPlan(tableName, options, schema) {
|
|
467
|
+
const plan = { table: tableName };
|
|
468
|
+
if (options.select && options.select.length > 0 && !options.select.includes("*")) plan.select = options.select.filter((f) => f !== "*");
|
|
469
|
+
const parsedWhere = options.where ? parseObjectIdsToRecordId(options.where, tableName) : void 0;
|
|
470
|
+
if (parsedWhere && Object.keys(parsedWhere).length > 0) {
|
|
471
|
+
const nodes = buildWhereNodes(parsedWhere, true);
|
|
472
|
+
if (nodes.length > 0) plan.where = nodes;
|
|
473
|
+
}
|
|
474
|
+
if (options.orderBy && Object.keys(options.orderBy).length > 0) plan.orderBy = Object.entries(options.orderBy).map(([field, direction]) => [field, direction]);
|
|
475
|
+
if (options.limit !== void 0) plan.limit = options.limit;
|
|
476
|
+
if (options.offset !== void 0) plan.offset = options.offset;
|
|
477
|
+
if (options.related && options.related.length > 0) plan.relations = options.related.map((rel) => buildRelationPlan(rel, schema));
|
|
478
|
+
return plan;
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Engine-neutral counterpart of {@link buildSubquery}. Resolves the same
|
|
482
|
+
* cardinality / foreign-key / nested-relation metadata but returns a structured
|
|
483
|
+
* {@link RelationPlan} instead of a SurrealQL subquery string.
|
|
484
|
+
*/
|
|
485
|
+
function buildRelationPlan(rel, schema) {
|
|
486
|
+
const { relatedTable, alias, modifier, cardinality } = rel;
|
|
487
|
+
const foreignKeyField = rel.foreignKeyField || alias || relatedTable;
|
|
488
|
+
const plan = {
|
|
489
|
+
alias: alias || relatedTable,
|
|
490
|
+
table: relatedTable,
|
|
491
|
+
cardinality,
|
|
492
|
+
foreignKeyField
|
|
493
|
+
};
|
|
494
|
+
if (modifier) {
|
|
495
|
+
const modifierBuilder = new SchemaAwareQueryModifierBuilderImpl(relatedTable, schema);
|
|
496
|
+
modifier(modifierBuilder);
|
|
497
|
+
const subOptions = modifierBuilder._getOptions();
|
|
498
|
+
if (subOptions.select && subOptions.select.length > 0 && !subOptions.select.includes("*")) plan.select = subOptions.select.filter((f) => f !== "*");
|
|
499
|
+
if (subOptions.where && Object.keys(subOptions.where).length > 0) {
|
|
500
|
+
const nodes = buildWhereNodes(parseObjectIdsToRecordId(subOptions.where, relatedTable));
|
|
501
|
+
if (nodes.length > 0) plan.where = nodes;
|
|
502
|
+
}
|
|
503
|
+
if (subOptions.orderBy && Object.keys(subOptions.orderBy).length > 0) plan.orderBy = Object.entries(subOptions.orderBy).map(([field, direction]) => [field, direction]);
|
|
504
|
+
if (subOptions.limit !== void 0) plan.limit = subOptions.limit;
|
|
505
|
+
if (subOptions.related && subOptions.related.length > 0) plan.relations = subOptions.related.map((nestedRel) => {
|
|
506
|
+
const relationship = schema.relationships.find((r) => r.from === relatedTable && r.field === nestedRel.alias);
|
|
507
|
+
if (relationship) {
|
|
508
|
+
const nestedForeignKeyField = relationship.cardinality === "many" ? relatedTable : nestedRel.alias;
|
|
509
|
+
return {
|
|
510
|
+
...nestedRel,
|
|
511
|
+
relatedTable: relationship.to,
|
|
512
|
+
cardinality: relationship.cardinality,
|
|
513
|
+
foreignKeyField: nestedForeignKeyField
|
|
514
|
+
};
|
|
515
|
+
}
|
|
516
|
+
return nestedRel;
|
|
517
|
+
}).map((nestedRel) => buildRelationPlan(nestedRel, schema));
|
|
518
|
+
}
|
|
519
|
+
if (cardinality === "one" && plan.limit === void 0) plan.limit = 1;
|
|
520
|
+
return plan;
|
|
521
|
+
}
|
|
522
|
+
/**
|
|
523
|
+
* Convert a parsed WHERE object (string IDs already → RecordId) into the
|
|
524
|
+
* engine-neutral {@link WhereNode}[] conjunction. Mirrors the `_or` / comparison
|
|
525
|
+
* / equality handling in {@link buildQueryFromOptions}. A `$`-prefixed `_val`
|
|
526
|
+
* becomes a `paramRef` (with the leading `$` stripped).
|
|
527
|
+
*/
|
|
528
|
+
/**
|
|
529
|
+
* @param slaveToParams When true, top-level plain/operator-literal comparisons
|
|
530
|
+
* ALSO carry a `paramRef` equal to the field name — the same var name
|
|
531
|
+
* `buildQueryFromOptions` binds the value under (`field = $field`). The
|
|
532
|
+
* engines then materialize by reading `params[field]` (falling back to the
|
|
533
|
+
* baked `value` when the param is absent), so a query's rows are slaved to
|
|
534
|
+
* its `params` (its identity) and can never come from a different query's
|
|
535
|
+
* baked plan. Only safe at the TOP LEVEL, where the field is a schema column
|
|
536
|
+
* that survives `parseQueryParams` and the caller passes `params`. NOT used
|
|
537
|
+
* for relation sub-wheres (rendered with a params-less ctx) or `_or` branches
|
|
538
|
+
* (bound under synthetic `white__or0` names) - those stay baked.
|
|
539
|
+
*/
|
|
540
|
+
function buildWhereNodes(parsedWhere, slaveToParams = false) {
|
|
541
|
+
const toComparison = (field, value, slave) => {
|
|
542
|
+
if (value && typeof value === "object" && "_op" in value && "_val" in value) {
|
|
543
|
+
const { _op, _val, _swap } = value;
|
|
544
|
+
if (typeof _val === "string" && _val.startsWith("$")) return {
|
|
545
|
+
field,
|
|
546
|
+
op: _op,
|
|
547
|
+
value: void 0,
|
|
548
|
+
paramRef: _val.slice(1),
|
|
549
|
+
swap: _swap
|
|
550
|
+
};
|
|
551
|
+
return slave ? {
|
|
552
|
+
field,
|
|
553
|
+
op: _op,
|
|
554
|
+
value: _val,
|
|
555
|
+
paramRef: field,
|
|
556
|
+
swap: _swap
|
|
557
|
+
} : {
|
|
558
|
+
field,
|
|
559
|
+
op: _op,
|
|
560
|
+
value: _val,
|
|
561
|
+
swap: _swap
|
|
562
|
+
};
|
|
563
|
+
}
|
|
564
|
+
return slave ? {
|
|
565
|
+
field,
|
|
566
|
+
op: "=",
|
|
567
|
+
value,
|
|
568
|
+
paramRef: field
|
|
569
|
+
} : {
|
|
570
|
+
field,
|
|
571
|
+
op: "=",
|
|
572
|
+
value
|
|
573
|
+
};
|
|
391
574
|
};
|
|
575
|
+
const nodes = [];
|
|
576
|
+
for (const [key, value] of Object.entries(parsedWhere)) {
|
|
577
|
+
if (key === "_or" && Array.isArray(value)) {
|
|
578
|
+
const or = [];
|
|
579
|
+
for (const branch of value) if (branch && typeof branch === "object") for (const [bField, bVal] of Object.entries(branch)) or.push(toComparison(bField, bVal, false));
|
|
580
|
+
if (or.length > 0) nodes.push({ or });
|
|
581
|
+
continue;
|
|
582
|
+
}
|
|
583
|
+
nodes.push(toComparison(key, value, slaveToParams));
|
|
584
|
+
}
|
|
585
|
+
return nodes;
|
|
392
586
|
}
|
|
393
587
|
/**
|
|
394
588
|
* Build a subquery for a related field
|
|
@@ -454,6 +648,8 @@ Object.defineProperty(exports, 'RecordId', {
|
|
|
454
648
|
return surrealdb.RecordId;
|
|
455
649
|
}
|
|
456
650
|
});
|
|
651
|
+
exports.baseFieldOfParam = baseFieldOfParam;
|
|
457
652
|
exports.buildQueryFromOptions = buildQueryFromOptions;
|
|
458
653
|
exports.cyrb53 = cyrb53;
|
|
654
|
+
exports.orParamName = orParamName;
|
|
459
655
|
//# sourceMappingURL=index.js.map
|