@spooky-sync/query-builder 0.0.0-canary.1 → 0.0.1-alpha.1

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/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
- } ? TypeNameToTypeMap[T['type']] | null : TypeNameToTypeMap[T['type']];
101
+ } ? ColumnBaseTSType<T> | null : ColumnBaseTSType<T>;
69
102
  /**
70
103
  * Helper to extract relationship field names for a table
71
104
  */
@@ -78,6 +111,12 @@ interface AccessDefinition {
78
111
  readonly params: Record<string, ColumnSchema>;
79
112
  };
80
113
  }
114
+ interface BucketDefinitionSchema {
115
+ readonly name: string;
116
+ readonly maxSize?: number;
117
+ readonly allowedExtensions?: readonly string[];
118
+ readonly pathPrefixAuth?: boolean;
119
+ }
81
120
  /**
82
121
  * Base schema structure for array-based schemas
83
122
  */
@@ -95,6 +134,7 @@ interface SchemaStructure {
95
134
  }[];
96
135
  readonly backends: Record<string, HTTPOutboxBackendDefinition>;
97
136
  readonly access?: Record<string, AccessDefinition>;
137
+ readonly buckets?: readonly BucketDefinitionSchema[];
98
138
  }
99
139
  interface HTTPOutboxBackendDefinition {
100
140
  readonly outboxTable: string;
@@ -107,6 +147,12 @@ interface HTTPBackendRouteArgsDefinition {
107
147
  readonly type: ValueType;
108
148
  readonly optional: boolean;
109
149
  }
150
+ /** Extract all bucket names from the schema */
151
+ type BucketNames<S extends SchemaStructure> = S['buckets'] extends readonly BucketDefinitionSchema[] ? S['buckets'][number]['name'] : never;
152
+ /** Look up a bucket's config by name */
153
+ type BucketConfig<S extends SchemaStructure, B extends BucketNames<S>> = S['buckets'] extends readonly BucketDefinitionSchema[] ? Extract<S['buckets'][number], {
154
+ name: B;
155
+ }> : never;
110
156
  /** Extract all backend names from the schema */
111
157
  type BackendNames<S extends SchemaStructure> = keyof S['backends'] & string;
112
158
  /** Extract all route paths for a specific backend */
@@ -184,6 +230,74 @@ interface QueryInfo {
184
230
  query: string;
185
231
  hash: number;
186
232
  vars?: Record<string, unknown>;
233
+ /**
234
+ * Engine-neutral description of the same SELECT, used by non-SurrealQL local
235
+ * cache backends (e.g. SQLite) that cannot parse the `query` string. Only
236
+ * populated for `SELECT` (undefined for LIVE/UPDATE/DELETE). See `QueryPlan`.
237
+ */
238
+ plan?: QueryPlan;
239
+ }
240
+ /**
241
+ * A single WHERE comparison. `value` is the resolved value (string IDs already
242
+ * converted to `RecordId`); when `paramRef` is set the condition references an
243
+ * existing query param verbatim (`$name`) instead of an inline value. `swap`
244
+ * flips the operands (`value op field`), mirroring `ComparisonOp._swap`.
245
+ */
246
+ interface WhereComparison {
247
+ field: string;
248
+ op: ComparisonOp['_op'];
249
+ value: unknown;
250
+ paramRef?: string;
251
+ swap?: boolean;
252
+ }
253
+ /** A parenthesised `(c1 OR c2 …)` group, from a `_or` fragment. */
254
+ interface WhereOr {
255
+ or: WhereComparison[];
256
+ }
257
+ /**
258
+ * Engine-neutral WHERE: a top-level conjunction (AND) of comparisons and/or
259
+ * OR-groups. Mirrors `buildQueryFromOptions`'s condition assembly exactly.
260
+ */
261
+ type WhereNode = WhereComparison | WhereOr;
262
+ /**
263
+ * Engine-neutral description of a SELECT query. Backends render it to their own
264
+ * dialect (SurrealQL, SQLite, …). Relations are resolved by the caller via
265
+ * level-ordered decomposition rather than nested projection, so `relations`
266
+ * carries the tree rather than a flattened subquery string.
267
+ */
268
+ interface QueryPlan {
269
+ table: string;
270
+ /** Projection field names; undefined means all (`*`). */
271
+ select?: string[];
272
+ where?: WhereNode[];
273
+ orderBy?: [field: string, direction: 'asc' | 'desc'][];
274
+ limit?: number;
275
+ offset?: number;
276
+ relations?: RelationPlan[];
277
+ /**
278
+ * Window materialization: when set, the base rows are EXACTLY these record
279
+ * ids (the window the SSP already computed), ignoring `where`/`limit`/
280
+ * `offset`. `orderBy`, `select` and `relations` still apply. Set by
281
+ * {@link buildWindowMaterializationPlan}; see `window-query.ts`.
282
+ */
283
+ ids?: unknown[];
284
+ }
285
+ /**
286
+ * One `.related()` edge in a {@link QueryPlan}. Correlation:
287
+ * - `one` → parent[`foreignKeyField`] = child.id (attach `bucket[0] ?? null`)
288
+ * - `many` → child[`foreignKeyField`] = parent.id (attach `bucket`)
289
+ * `limit`/`orderBy` are applied PER PARENT during decomposition.
290
+ */
291
+ interface RelationPlan {
292
+ alias: string;
293
+ table: string;
294
+ cardinality: 'one' | 'many';
295
+ foreignKeyField: string;
296
+ select?: string[];
297
+ where?: WhereNode[];
298
+ orderBy?: [field: string, direction: 'asc' | 'desc'][];
299
+ limit?: number;
300
+ relations?: RelationPlan[];
187
301
  }
188
302
  interface RelatedQuery {
189
303
  /** The name of the related table to query */
@@ -195,9 +309,34 @@ interface RelatedQuery {
195
309
  /** The cardinality of the relationship */
196
310
  cardinality: 'one' | 'many';
197
311
  }
312
+ /**
313
+ * Comparison-operator descriptor for a single WHERE field, e.g.
314
+ * `{ _op: '<=', _val: 5 }` → `field <= $field`. A `$`-prefixed string `_val`
315
+ * references an existing query param verbatim; `_swap: true` flips the operands
316
+ * (`$val _op field`). Plain values still mean equality (`field = $field`).
317
+ */
318
+ interface ComparisonOp {
319
+ _op: '=' | '!=' | '>' | '>=' | '<' | '<=' | (string & {});
320
+ _val: unknown;
321
+ _swap?: boolean;
322
+ }
323
+ /** A single WHERE field value: an equality value or a comparison descriptor. */
324
+ type WhereFieldValue<V> = V | ComparisonOp;
325
+ /** A flat conjunction of field conditions (equality or comparison). */
326
+ type WhereConditions<TModel extends GenericModel> = { [K in keyof TModel]?: WhereFieldValue<TModel[K]> };
327
+ /**
328
+ * WHERE input for `.where()`. Supports equality (`{ field: value }`), comparison
329
+ * operators (`{ field: { _op, _val } }`), and a single top-level `_or` group of
330
+ * condition fragments that compile to a parenthesised `(... OR ...)` conjunct —
331
+ * e.g. `{ _or: [{ white: x }, { black: x }] }` → `(white = $white__or0 OR black = $black__or1)`.
332
+ * Backward-compatible with plain `Partial<TModel>` equality objects.
333
+ */
334
+ type WhereInput<TModel extends GenericModel> = WhereConditions<TModel> & {
335
+ _or?: WhereConditions<TModel>[];
336
+ };
198
337
  interface QueryOptions<TModel extends GenericModel, IsOne extends boolean> {
199
338
  select?: ((keyof TModel & string) | '*')[];
200
- where?: Partial<TModel>;
339
+ where?: WhereInput<TModel>;
201
340
  limit?: number;
202
341
  offset?: number;
203
342
  orderBy?: Partial<Record<keyof TModel, 'asc' | 'desc'>>;
@@ -205,11 +344,11 @@ interface QueryOptions<TModel extends GenericModel, IsOne extends boolean> {
205
344
  related?: RelatedQuery[];
206
345
  isOne?: IsOne;
207
346
  }
208
- interface LiveQueryOptions<TModel extends GenericModel> extends Omit<QueryOptions<TModel, boolean>, 'orderBy'> {}
347
+ type LiveQueryOptions<TModel extends GenericModel> = Omit<QueryOptions<TModel, boolean>, 'orderBy'>;
209
348
  type QueryModifier<TModel extends GenericModel> = (builder: QueryModifierBuilder<TModel>) => QueryModifierBuilder<TModel>;
210
349
  type SchemaAwareQueryModifier<S extends SchemaStructure, TableName extends TableNames<S>, RelatedFields extends Record<string, any> = {}> = (builder: SchemaAwareQueryModifierBuilder<S, TableName, {}>) => SchemaAwareQueryModifierBuilder<S, TableName, RelatedFields>;
211
350
  interface QueryModifierBuilder<TModel extends GenericModel> {
212
- where(conditions: Partial<TModel>): this;
351
+ where(conditions: WhereInput<TModel>): this;
213
352
  select(...fields: ((keyof TModel & string) | '*')[]): this;
214
353
  limit(count: number): this;
215
354
  offset(count: number): this;
@@ -218,7 +357,7 @@ interface QueryModifierBuilder<TModel extends GenericModel> {
218
357
  _getOptions(): QueryOptions<TModel, boolean>;
219
358
  }
220
359
  interface SchemaAwareQueryModifierBuilder<S extends SchemaStructure, TableName extends TableNames<S>, RelatedFields extends Record<string, any> = {}> {
221
- where(conditions: Partial<TableModel<GetTable<S, TableName>>>): this;
360
+ where(conditions: WhereInput<TableModel<GetTable<S, TableName>>>): this;
222
361
  select(...fields: ((keyof TableModel<GetTable<S, TableName>> & string) | '*')[]): this;
223
362
  limit(count: number): this;
224
363
  offset(count: number): this;
@@ -358,7 +497,7 @@ declare class QueryBuilder<const S extends SchemaStructure, const TableName exte
358
497
  /**
359
498
  * Add additional where conditions
360
499
  */
361
- where(conditions: Partial<TableModel<GetTable<S, TableName>>>): QueryBuilder<S, TableName, R, RelatedFields, IsOne>;
500
+ where(conditions: WhereInput<TableModel<GetTable<S, TableName>>>): QueryBuilder<S, TableName, R, RelatedFields, IsOne>;
362
501
  /**
363
502
  * Specify fields to select
364
503
  */
@@ -396,6 +535,21 @@ declare class QueryBuilder<const S extends SchemaStructure, const TableName exte
396
535
  */
397
536
  build(): FinalQuery<S, TableName, GetTable<S, TableName>, RelatedFields, IsOne, R>;
398
537
  }
538
+ /**
539
+ * The surql param name an `_or` branch condition binds under: the branch FIELD,
540
+ * a `__or` marker and the branch's position. The position alone makes it unique
541
+ * within the query; the field prefix is what lets a consumer type the value by
542
+ * looking the column up (see {@link baseFieldOfParam}). Non-identifier
543
+ * characters (a nested path like `database.owner`) are folded to `_` so the
544
+ * result is a legal param name.
545
+ */
546
+ declare function orParamName(field: string, index: number): string;
547
+ /**
548
+ * Inverse of {@link orParamName}: the field a param name was built from, or the
549
+ * name itself when it is a plain top-level param (`field = $field`). Lets a
550
+ * consumer resolve `white__or0` back to the `white` column.
551
+ */
552
+ declare function baseFieldOfParam(name: string): string;
399
553
  declare function cyrb53(str: string, seed?: number): number;
400
554
  /**
401
555
  * Build a query string from query options
@@ -409,5 +563,5 @@ declare function buildQueryFromOptions<TModel extends GenericModel, IsOne extend
409
563
  //# sourceMappingURL=query-builder.d.ts.map
410
564
 
411
565
  //#endregion
412
- export { type AccessDefinition, type BackendNames, type BackendRoutes, 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 };
566
+ 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 };
413
567
  //# sourceMappingURL=index.d.ts.map
@@ -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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CEkER,UFlEQ,CEkEG,QFlEH,CEkEY,CFlEZ,EEkEe,SFlEf,CAAA,CAAA,EEkE4B,iBFlE5B,CEkE8C,aFlE9C,CAAA,CAAA,GEmEf,kBFnEe,CEmEI,CFnEJ,EEmEO,aFnEP,CAAA;AAAM,KEqEX,oBFrEW,CAAA,UEsEX,eFtEW,EAAA,kBEuEH,UFvEG,CEuEQ,CFvER,CAAA,EAAA,sBEwEC,gBFxED,CAAA,GAAA,CEyElB,IFzEkB,CEyEb,UFzEa,CEyEF,QFzEE,CEyEO,CFzEP,EEyEU,SFzEV,CAAA,CAAA,EEyEuB,iBFzEvB,CEyEyC,aFzEzC,CAAA,CAAA,GE0ErB,kBF1EqB,CE0EF,CF1EE,EE0EC,aF1ED,CAAA,CAAA,EAAA;AAGvB;AAUA;;;AAA4D,KEmEhD,WFnEgD,CAAA,UEoEhD,eFpEgD,EAAA,kBEqExC,UFrEwC,CEqE7B,CFrE6B,CAAA,EAAA,sBEsEpC,gBFtEoC,EAAA,cAAA,OAAA,CAAA,GEwExD,KFxEwD,SAAA,IAAA,GEyExD,mBFzEwD,CEyEpC,CFzEoC,EEyEjC,SFzEiC,EEyEtB,aFzEsB,CAAA,GE0ExD,oBF1EwD,CE0EnC,CF1EmC,EE0EhC,SF1EgC,EE0ErB,aF1EqB,CAAA;AAAC,cE4EhD,UF5EgD,CAAA,UE6EjD,eF7EiD,EAAA,kBE8EzC,UF9EyC,CE8E9B,CF9E8B,CAAA,EAAA,UAAA;EAGjD,OAAA,EE4EW,MF5EX,CAAa,MAAA,EE4Ea,YF5Eb,CAAA;CAAA,EAAA,sBE6ED,gBF7EC,EAAA,cAAA,OAAA,EAAA,IAAA,IAAA,CAAA,CAAA;mBACb,SAAA;mBACa,OAAA;mBAAb,MAAA;mBACF,QAAA;UAAc,WAAA;EAAC,WAAA,CAAA,SAAA,EEiFO,SFjFP,EAAA,OAAA,EEkFK,YFlFL,CEkFkB,UFlFlB,CEkF6B,CFlF7B,CAAA,EEkFiC,KFlFjC,CAAA,EAAA,MAAA,EEmFI,CFnFJ,EAAA,QAAA,EEoFM,QFpFN,CEoFe,CFpFf,EEoFkB,CFpFlB,CAAA;EAGb,GAAA,CAAA,CAAA,EE2FH,CF3FG;EAAY,gBAAA,CAAA,OAAA,EAAA,GAAA,EAAA,CAAA,EE+FY,SF/FZ;kBACZ,CAAA,CAAA,EEkGU,SFlGV;YACa,CAAA,CAAA,EEqGT,SFrGS;MAAb,UAAA,CAAA,CAAA,EEyGQ,UFzGR,CEyGmB,CFzGnB,EEyGsB,KFzGtB,EEyG6B,CFzG7B,CAAA;MACc,KAAA,CAAA,CAAA,EAAA,OAAA;MAAG,IAAA,CAAA,CAAA,EAAA,MAAA;;;;;;AAEzB,cEkOS,YFlOT,CAAA,gBEmOc,eFnOd,EAAA,wBEoOsB,UFpOtB,CEoOiC,CFpOjC,CAAA,EAAA,UAAA,IAAA,EAAA,4BEsO0B,gBFtO1B,GAAA,CAAA,CAAA,EAAA,oBAAA,OAAA,GAAA,KAAA,CAAA,CAAA;mBAE+B,MAAA;mBAAG,SAAA;mBAAG,QAAA;UAA3B,OAAA;aAAgC,CAAA,MAAA,EEwOjB,CFxOiB,EAAA,SAAA,EEyOd,SFzOc,EAAA,QAAA,CAAA,EE0Of,QF1Oe,CE0ON,QF1OM,CE0OG,CF1OH,EE0OM,SF1ON,CAAA,EE0OkB,CF1OlB,CAAA,EAAA,OAAA,CAAA,EE2OzB,YF3OyB,CE2OZ,UF3OY,CE2OD,QF3OC,CE2OQ,CF3OR,EE2OW,SF3OX,CAAA,CAAA,EE2OwB,KF3OxB,CAAA;;;;OAAkB,CAAA,UAAA,EEkPhD,OFlPgD,CEkPxC,UFlPwC,CEkP7B,QFlP6B,CEkPpB,CFlPoB,EEkPjB,SFlPiB,CAAA,CAAA,CAAA,CAAA,EEmP3D,YFnP2D,CEmP9C,CFnP8C,EEmP3C,SFnP2C,EEmPhC,CFnPgC,EEmP7B,aFnP6B,EEmPd,KFnPc,CAAA;;;;QAEvB,CAAA,GAAA,MAAA,EAAA,CAAA,CAAA,ME0PlB,UF1PkB,CE0PP,QF1PO,CE0PE,CF1PF,EE0PK,SF1PL,CAAA,CAAA,GAAA,MAAA,CAAA,GAAA,GAAA,CAAA,EAAA,CAAA,EE2PpC,YF3PoC,CE2PvB,CF3PuB,EE2PpB,SF3PoB,EE2PT,CF3PS,EE2PN,aF3PM,EE2PS,KF3PT,CAAA;;;;SAAwC,CAAA,KAAA,EEuQtE,eFvQsE,CEuQtD,QFvQsD,CEuQ7C,CFvQ6C,EEuQ1C,SFvQ0C,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,KAAA,GAAA,MAAA,CAAA,EEyQ5E,YFzQ4E,CEyQ/D,CFzQ+D,EEyQ5D,SFzQ4D,EEyQjD,CFzQiD,EEyQ9C,aFzQ8C,EEyQ/B,KFzQ+B,CAAA;;;;OAH7E,CAAA,KAAA,EAAA,MAAA,CAAA,EEuRoB,YFvRpB,CEuRiC,CFvRjC,EEuRoC,SFvRpC,EEuR+C,CFvR/C,EEuRkD,aFvRlD,EEuRiE,KFvRjE,CAAA;EAAQ;AAIN;;QAGM,CAAA,KAAA,EAAA,MAAA,CAAA,EEwRa,YFxRb,CEwR0B,CFxR1B,EEwR6B,SFxR7B,EEwRwC,CFxRxC,EEwR2C,aFxR3C,EEwR0D,KFxR1D,CAAA;KACa,CAAA,CAAA,EE4RhB,YF5RgB,CE4RH,CF5RG,EE4RA,SF5RA,EE4RW,CF5RX,EE4Rc,aF5Rd,EAAA,IAAA,CAAA;;;;;;SAEP,CAAA,cEySA,kBFzSA,CEySmB,CFzSnB,EEySsB,SFzStB,CAAA,CAAA,OAAA,CAAA,EAAA,YE0SF,eF1SE,CE0Sc,CF1Sd,EE0SiB,SF1SjB,EE0S4B,KF1S5B,CAAA,EAAA,uBE2SS,gBF3ST,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EE6SP,KF7SO,EAAA,qBAAA,CAAA,EE+SV,wBF/SU,CE+Se,CF/Sf,EE+SkB,GF/SlB,CAAA,IAAA,CAAA,EE+S6B,cF/S7B,CAAA,GEgTV,GFhTU,CAAA,aAAA,CAAA,EAAA,QAAA,CAAA,EEiTH,wBFjTG,CEiTsB,CFjTtB,EEiTyB,GFjTzB,CAAA,IAAA,CAAA,EEiToC,cFjTpC,CAAA,CAAA,EEkTb,YFlTa,CEmTd,CFnTc,EEoTd,SFpTc,EEqTd,CFrTc,EEsTd,aFtTc,GAAA,QEuTN,KFvTmB,GAAA;IAAC,EAAA,EEwTpB,GFxToB,CAAA,IAAA,CAAA;IAE3B,WAAA,EEuTgB,GFvTI,CAAA,aAAA,CAAA;IAAA,aAAA,EEwTF,cFxTE;EACb,CAAA,IE0TR,KFzTqB,CAAA;;;;YACb,CAAA,CAAA,EE8YI,YF9YJ,CE8YiB,UF9YjB,CE8Y4B,QF9Y5B,CE8YqC,CF9YrC,EE8YwC,SF9YxC,CAAA,CAAA,EE8YqD,KF9YrD,CAAA;;;;;OAEuC,CAAA,CAAA,EEoZxC,UFpZwC,CEoZ7B,CFpZ6B,EEoZ1B,SFpZ0B,EEoZf,QFpZe,CEoZN,CFpZM,EEoZH,SFpZG,CAAA,EEoZS,aFpZT,EEoZwB,KFpZxB,EEoZ+B,CFpZ/B,CAAA;;AAAM,iBE8ZzC,MAAA,CF9ZyC,GAAA,EAAA,MAAA,EAAA,IAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;AACrC;;;;;AAKM,iBE6fV,qBF7fU,CAAA,eE6f2B,YF7f3B,EAAA,cAAA,OAAA,CAAA,CAAA,MAAA,EAAA,QAAA,GAAA,aAAA,GAAA,kBAAA,GAAA,QAAA,GAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EEggBf,YFhgBe,CEggBF,MFhgBE,EEggBM,KFhgBN,CAAA,EAAA,MAAA,EEigBhB,eFjgBgB,EAAA,OAAA,CAAA,EAAA,GAAA,EAAA,CAAA,EEmgBvB,SFngBuB"}
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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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;EAGnC,OAAA,EE8GM,MF9GN,CAAA,MAAA,EE8GqB,YF9GM,CAAA;CAAA,EAAA,sBEgHpB,gBFhHoB,EAAA,cAAA,OAAA,EAAA,IAAA,IAAA,CAAA,CAAA;mBAEV,SAAA;mBAAf,OAAA;EAAM,iBAAA,MAAA;EAGR,iBAAA,QAAA;EAA0B,QAAA,WAAA;aACX,CAAA,SAAA,EEiHA,SFjHA,EAAA,OAAA,EEkHF,YFlHE,CEkHW,UFlHX,CEkHsB,CFlHtB,CAAA,EEkH0B,KFlH1B,CAAA,EAAA,MAAA,EEmHH,CFnHG,EAAA,QAAA,EEoHD,QFpHC,CEoHQ,CFpHR,EEoHW,CFpHX,CAAA;KAAf,CAAA,CAAA,EE8HR,CF9HQ;EAAM,gBAAA,CAAA,OAAA,EAAA,GAAA,EAAA,CAAA,EEkIa,SFlIb;EAGN,gBAAA,CAAA,CAAA,EEmIK,SFnIL;EAUL,UAAA,CAAA,CAAA,EE6HI,SF7HO;EAAA,IAAA,UAAA,CAAA,CAAA,EEiIH,UFjIG,CEiIQ,CFjIR,EEiIW,KFjIX,EEiIkB,CFjIlB,CAAA;MAAW,KAAA,CAAA,CAAA,EAAA,OAAA;MAChC,IAAA,CAAA,CAAA,EAAA,MAAA;;;;AAKF;;AAAmC,cEuQtB,YFvQsB,CAAA,gBEwQjB,eFxQiB,EAAA,wBEyQT,UFzQS,CEyQE,CFzQF,CAAA,EAAA,UAAA,IAAA,EAAA,4BE2QL,gBF3QK,GAAA,CAAA,CAAA,EAAA,oBAAA,OAAA,GAAA,KAAA,CAAA,CAAA;mBAAuC,MAAA;mBAAZ,SAAA;mBAC5D,QAAA;UAA8B,OAAA;aAClB,CAAA,MAAA,EE6Qe,CF7Qf,EAAA,SAAA,EE8QkB,SF9QlB,EAAA,QAAA,CAAA,EE+QiB,QF/QjB,CE+Q0B,QF/Q1B,CE+QmC,CF/QnC,EE+QsC,SF/QtC,CAAA,EE+QkD,CF/QlD,CAAA,EAAA,OAAA,CAAA,EEgRO,YFhRP,CEgRoB,UFhRpB,CEgR+B,QFhR/B,CEgRwC,CFhRxC,EEgR2C,SFhR3C,CAAA,CAAA,EEgRwD,KFhRxD,CAAA;;;;EAIF,KAAA,CAAA,UAAY,EEmRR,UFnRQ,CEmRG,UFnRH,CEmRc,QFnRd,CEmRuB,CFnRvB,EEmR0B,SFnR1B,CAAA,CAAA,CAAA,CAAA,EEoRnB,YFpRmB,CEoRN,CFpRM,EEoRH,SFpRG,EEoRQ,CFpRR,EEoRW,aFpRX,EEoR0B,KFpR1B,CAAA;EAAA;;;EAAqC,MAAA,CAAA,GAAA,MAAA,EAAA,CAAA,CAAA,MEmStC,UFnSsC,CEmS3B,QFnS2B,CEmSlB,CFnSkB,EEmSf,SFnSe,CAAA,CAAA,GAAA,MAAA,CAAA,GAAA,GAAA,CAAA,EAAA,CAAA,EEoSxD,YFpSwD,CEoS3C,CFpS2C,EEoSxC,SFpSwC,EEoS7B,CFpS6B,EEoS1B,aFpS0B,EEoSX,KFpSW,CAAA;EAGjD;;;SAEa,CAAA,KAAA,EE2Sd,eF3Sc,CE2SE,QF3SF,CE2SW,CF3SX,EE2Sc,SF3Sd,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,KAAA,GAAA,MAAA,CAAA,EE6SpB,YF7SoB,CE6SP,CF7SO,EE6SJ,SF7SI,EE6SO,CF7SP,EE6SU,aF7SV,EE6SyB,KF7SzB,CAAA;;;;EACA,KAAA,CAAA,KAAA,EAAA,MAAA,CAAA,EEwTD,YFxTC,CEwTY,CFxTZ,EEwTe,SFxTf,EEwT0B,CFxT1B,EEwT6B,aFxT7B,EEwT4C,KFxT5C,CAAA;EAGb;;;QAEa,CAAA,KAAA,EAAA,MAAA,CAAA,EE2TA,YF3TA,CE2Ta,CF3Tb,EE2TgB,SF3ThB,EE2T2B,CF3T3B,EE2T8B,aF3T9B,EE2T6C,KF3T7C,CAAA;KAAb,CAAA,CAAA,EEgUH,YFhUG,CEgUU,CFhUV,EEgUa,SFhUb,EEgUwB,CFhUxB,EEgU2B,aFhU3B,EAAA,IAAA,CAAA;;;;;;SAEkB,CAAA,cE6UZ,kBF7UY,CE6UO,CF7UP,EE6UU,SF7UV,CAAA,CAAA,OAAA,CAAA,EAAA,YE8Ud,eF9Uc,CE8UE,CF9UF,EE8UK,SF9UL,EE8UgB,KF9UhB,CAAA,EAAA,uBE+UH,gBF/UG,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EEiVnB,KFjVmB,EAAA,qBAAA,CAAA,EEmVtB,wBFnVsB,CEmVG,CFnVH,EEmVM,GFnVN,CAAA,IAAA,CAAA,EEmViB,cFnVjB,CAAA,GEoVtB,GFpVsB,CAAA,aAAA,CAAA,EAAA,QAAA,CAAA,EEqVf,wBFrVe,CEqVU,CFrVV,EEqVa,GFrVb,CAAA,IAAA,CAAA,EEqVwB,cFrVxB,CAAA,CAAA,EEsVzB,YFtVyB,CEuV1B,CFvV0B,EEwV1B,SFxV0B,EEyV1B,CFzV0B,EE0V1B,aF1V0B,GAAA,QE2VlB,KF3VD,GAAA;IACP,EAAA,EE2VQ,GF3VR,CAAA,IAAA,CAAA;IAE+B,WAAA,EE0Vd,GF1Vc,CAAA,aAAA,CAAA;IAAG,aAAA,EE2Vf,cF3Ve;EAAG,CAAA,IE8VrC,KF9VU,CAAA;;;;YAAqE,CAAA,CAAA,EE4bnE,YF5bmE,CE4btD,UF5bsD,CE4b3C,QF5b2C,CE4blC,CF5bkC,EE4b/B,SF5b+B,CAAA,CAAA,EE4blB,KF5bkB,CAAA;;;;;OAE1C,CAAA,CAAA,EEkc9B,UFlc8B,CEkcnB,CFlcmB,EEkchB,SFlcgB,EEkcL,QFlcK,CEkcI,CFlcJ,EEkcO,SFlcP,CAAA,EEkcmB,aFlcnB,EEkckC,KFlclC,EEkcyC,CFlczC,CAAA;;;;;;;;;;AAGpC,iBEidW,WAAA,CFjdC,KAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;;;AAGY,iBEudb,gBAAA,CFvda,IAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AAAjB,iBE4dI,MAAA,CF5dJ,GAAA,EAAA,MAAA,EAAA,IAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;;;;;;AAQkB,iBE0jBd,qBF1jBc,CAAA,eE0jBuB,YF1jBvB,EAAA,cAAA,OAAA,CAAA,CAAA,MAAA,EAAA,QAAA,GAAA,aAAA,GAAA,kBAAA,GAAA,QAAA,GAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EE6jBnB,YF7jBmB,CE6jBN,MF7jBM,EE6jBE,KF7jBF,CAAA,EAAA,MAAA,EE8jBpB,eF9jBoB,EAAA,OAAA,CAAA,EAAA,GAAA,EAAA,CAAA,EEgkB3B,SFhkB2B"}
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) throw new Error(`Relationship '${String(relatedField)}' not found for table '${this.tableName}'`);
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) throw new Error(`Relationship '${String(field)}' not found for table '${this.tableName}'`);
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
- for (const [key, value] of Object.entries(parsedWhere)) {
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
- if (_swap) conditions.push(`${rightSide} ${_op} ${key}`);
369
- else conditions.push(`${key} ${_op} ${rightSide}`);
370
- } else {
371
- vars[varName] = value;
372
- conditions.push(`${key} = $${varName}`);
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