@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/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
  */
@@ -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?: Partial<TModel>;
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
- interface LiveQueryOptions<TModel extends GenericModel> extends Omit<QueryOptions<TModel, boolean>, 'orderBy'> {}
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: Partial<TModel>): this;
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: Partial<TableModel<GetTable<S, TableName>>>): this;
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: Partial<TableModel<GetTable<S, TableName>>>): QueryBuilder<S, TableName, R, RelatedFields, IsOne>;
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
@@ -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) 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