@spooky-sync/query-builder 0.0.1-canary.21 → 0.0.1-canary.211

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 ADDED
@@ -0,0 +1,63 @@
1
+ # `@spooky-sync/query-builder` — agent guide
2
+
3
+ ## What this package is
4
+
5
+ The type-safe SurrealQL query builder used by `@spooky-sync/core` and `@spooky-sync/client-solid`. It encodes the user's `.surql` schema as a TypeScript type and rejects invalid table names, fields, and relationship traversals at compile time. It also serializes builder chains into SurQL strings for execution.
6
+
7
+ You usually don't import this directly — `db.query('thread')` returns a `QueryBuilder` and the package's types are re-exported from `@spooky-sync/client-solid`. Reach for it when writing generic helpers, type utilities, or non-Solid bindings.
8
+
9
+ ## DSL overview
10
+
11
+ ```ts
12
+ db.query('thread') // QueryBuilder<Schema, 'thread', ...>
13
+ .where({ active: true }) // partial-equality filter
14
+ .select('id', 'title', 'created_at') // omit for SELECT *
15
+ .related('author') // follow a record-link relationship
16
+ .related('comments', { orderBy: { created_at: 'desc' } })
17
+ .orderBy('created_at', 'desc')
18
+ .limit(20)
19
+ .offset(0)
20
+ .build(); // → FinalQuery (call .run() or hand to useQuery)
21
+ ```
22
+
23
+ `build()` returns a `FinalQuery`. `useQuery(() => ...build())` calls `.run()` for you and tracks the factory reactively. Standalone consumers call `.run()` themselves; the executor returns whatever the binding configures (in client-solid: a `Sp00kyQueryResultPromise`).
24
+
25
+ ## Key exports (`src/index.ts`)
26
+
27
+ - **Builders**: `QueryBuilder`, `InnerQuery`, `FinalQuery`, `Executor`, `buildQueryFromOptions`, `cyrb53` (hash function used to dedupe queries).
28
+ - **Schema type helpers** (load-bearing — these power the type-safety in every consumer):
29
+ - `SchemaStructure` — the shape of the generated `schema` object.
30
+ - `TableNames<S>` — union of valid table name literals.
31
+ - `GetTable<S, T>` / `TableModel<T>` — row type for table `T`.
32
+ - `TableRelationships<S, T>` / `RelationshipFieldsFromSchema<S, T>` — the typed relationship surface.
33
+ - `BackendNames<S>` / `BackendRoutes<S, B>` / `RoutePayload<S, B, R>` — for `db.run(...)`.
34
+ - `BucketNames<S>` / `BucketConfig<S, B>` / `BucketDefinitionSchema`.
35
+ - `AccessDefinition`, `TypeNameToTypeMap`.
36
+ - **Query result types**: `QueryResult`, `RelatedFieldsMap`, `BuildResultModelOne`, `BuildResultModelMany`, `WithRelated`, `GetCardinality`.
37
+ - **Modifier helpers**: `QueryModifier`, `QueryModifierBuilder`, `SchemaAwareQueryModifier`, `SchemaAwareQueryModifierBuilder`.
38
+
39
+ ## Builder method surface
40
+
41
+ - `.where(partial)` — equality filters; `partial` is `Partial<TableModel<...>>`.
42
+ - `.select(...fields)` — narrow returned columns. Calling twice throws.
43
+ - `.orderBy(field, 'asc' | 'desc')`.
44
+ - `.limit(n)`, `.offset(n)`.
45
+ - `.related(field, modifier?)` — pull in a related record (or array) by field name. `modifier` is a builder callback for nested filters / selects on the related table. Three signatures: `(field)`, `(field, modifier)`, `(field, cardinality, modifier)`.
46
+ - `.build()` — produces a `FinalQuery`.
47
+ - `FinalQuery.run()` — executes via the configured executor.
48
+ - `FinalQuery.selectLive()` — returns the LIVE SELECT `QueryInfo` for subscriptions.
49
+ - `FinalQuery.buildUpdateQuery(patches)` / `buildDeleteQuery()` — used by `db.update` / `db.delete` internally.
50
+
51
+ ## Common gotchas
52
+
53
+ - **`select()` is exclusive.** Either select specific fields or omit the call for `*` — don't chain `.select(...)` more than once.
54
+ - **Relationships must exist in the schema.** `related('foo')` is a type error if `foo` isn't a relationship column. Run `spky generate` after editing the `.surql` to refresh the type.
55
+ - **`where` is equality-only.** For `>`, `<`, `IN`, free-form predicates, use `db.useRemote(s => s.query(...))` and write SurQL directly.
56
+ - **Record-ID strings are auto-parsed.** Passing `"thread:abc"` into a `where` matches a `RecordId('thread', 'abc')`. Don't double-wrap.
57
+ - **The serialized SurQL is hashable.** `cyrb53` over the query string drives cache keys — two builders that produce identical SurQL share a cache entry.
58
+
59
+ ## Pointers
60
+
61
+ - Sync engine (executor implementation): `node_modules/@spooky-sync/core/AGENTS.md`
62
+ - Reactive consumption: `node_modules/@spooky-sync/client-solid/AGENTS.md`
63
+ - Schema authoring: `node_modules/@spooky-sync/cli/AGENTS.md`
package/dist/index.d.mts 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
  */
@@ -197,6 +230,74 @@ interface QueryInfo {
197
230
  query: string;
198
231
  hash: number;
199
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[];
200
301
  }
201
302
  interface RelatedQuery {
202
303
  /** The name of the related table to query */
@@ -208,9 +309,34 @@ interface RelatedQuery {
208
309
  /** The cardinality of the relationship */
209
310
  cardinality: 'one' | 'many';
210
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
+ };
211
337
  interface QueryOptions<TModel extends GenericModel, IsOne extends boolean> {
212
338
  select?: ((keyof TModel & string) | '*')[];
213
- where?: Partial<TModel>;
339
+ where?: WhereInput<TModel>;
214
340
  limit?: number;
215
341
  offset?: number;
216
342
  orderBy?: Partial<Record<keyof TModel, 'asc' | 'desc'>>;
@@ -218,11 +344,11 @@ interface QueryOptions<TModel extends GenericModel, IsOne extends boolean> {
218
344
  related?: RelatedQuery[];
219
345
  isOne?: IsOne;
220
346
  }
221
- interface LiveQueryOptions<TModel extends GenericModel> extends Omit<QueryOptions<TModel, boolean>, 'orderBy'> {}
347
+ type LiveQueryOptions<TModel extends GenericModel> = Omit<QueryOptions<TModel, boolean>, 'orderBy'>;
222
348
  type QueryModifier<TModel extends GenericModel> = (builder: QueryModifierBuilder<TModel>) => QueryModifierBuilder<TModel>;
223
349
  type SchemaAwareQueryModifier<S extends SchemaStructure, TableName extends TableNames<S>, RelatedFields extends Record<string, any> = {}> = (builder: SchemaAwareQueryModifierBuilder<S, TableName, {}>) => SchemaAwareQueryModifierBuilder<S, TableName, RelatedFields>;
224
350
  interface QueryModifierBuilder<TModel extends GenericModel> {
225
- where(conditions: Partial<TModel>): this;
351
+ where(conditions: WhereInput<TModel>): this;
226
352
  select(...fields: ((keyof TModel & string) | '*')[]): this;
227
353
  limit(count: number): this;
228
354
  offset(count: number): this;
@@ -231,7 +357,7 @@ interface QueryModifierBuilder<TModel extends GenericModel> {
231
357
  _getOptions(): QueryOptions<TModel, boolean>;
232
358
  }
233
359
  interface SchemaAwareQueryModifierBuilder<S extends SchemaStructure, TableName extends TableNames<S>, RelatedFields extends Record<string, any> = {}> {
234
- where(conditions: Partial<TableModel<GetTable<S, TableName>>>): this;
360
+ where(conditions: WhereInput<TableModel<GetTable<S, TableName>>>): this;
235
361
  select(...fields: ((keyof TableModel<GetTable<S, TableName>> & string) | '*')[]): this;
236
362
  limit(count: number): this;
237
363
  offset(count: number): this;
@@ -371,7 +497,7 @@ declare class QueryBuilder<const S extends SchemaStructure, const TableName exte
371
497
  /**
372
498
  * Add additional where conditions
373
499
  */
374
- 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>;
375
501
  /**
376
502
  * Specify fields to select
377
503
  */
@@ -409,6 +535,21 @@ declare class QueryBuilder<const S extends SchemaStructure, const TableName exte
409
535
  */
410
536
  build(): FinalQuery<S, TableName, GetTable<S, TableName>, RelatedFields, IsOne, R>;
411
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;
412
553
  declare function cyrb53(str: string, seed?: number): number;
413
554
  /**
414
555
  * Build a query string from query options
@@ -422,5 +563,5 @@ declare function buildQueryFromOptions<TModel extends GenericModel, IsOne extend
422
563
  //# sourceMappingURL=query-builder.d.ts.map
423
564
 
424
565
  //#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 };
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 };
426
567
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","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.mts","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.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
  */
@@ -197,6 +230,74 @@ interface QueryInfo {
197
230
  query: string;
198
231
  hash: number;
199
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[];
200
301
  }
201
302
  interface RelatedQuery {
202
303
  /** The name of the related table to query */
@@ -208,9 +309,34 @@ interface RelatedQuery {
208
309
  /** The cardinality of the relationship */
209
310
  cardinality: 'one' | 'many';
210
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
+ };
211
337
  interface QueryOptions<TModel extends GenericModel, IsOne extends boolean> {
212
338
  select?: ((keyof TModel & string) | '*')[];
213
- where?: Partial<TModel>;
339
+ where?: WhereInput<TModel>;
214
340
  limit?: number;
215
341
  offset?: number;
216
342
  orderBy?: Partial<Record<keyof TModel, 'asc' | 'desc'>>;
@@ -218,11 +344,11 @@ interface QueryOptions<TModel extends GenericModel, IsOne extends boolean> {
218
344
  related?: RelatedQuery[];
219
345
  isOne?: IsOne;
220
346
  }
221
- interface LiveQueryOptions<TModel extends GenericModel> extends Omit<QueryOptions<TModel, boolean>, 'orderBy'> {}
347
+ type LiveQueryOptions<TModel extends GenericModel> = Omit<QueryOptions<TModel, boolean>, 'orderBy'>;
222
348
  type QueryModifier<TModel extends GenericModel> = (builder: QueryModifierBuilder<TModel>) => QueryModifierBuilder<TModel>;
223
349
  type SchemaAwareQueryModifier<S extends SchemaStructure, TableName extends TableNames<S>, RelatedFields extends Record<string, any> = {}> = (builder: SchemaAwareQueryModifierBuilder<S, TableName, {}>) => SchemaAwareQueryModifierBuilder<S, TableName, RelatedFields>;
224
350
  interface QueryModifierBuilder<TModel extends GenericModel> {
225
- where(conditions: Partial<TModel>): this;
351
+ where(conditions: WhereInput<TModel>): this;
226
352
  select(...fields: ((keyof TModel & string) | '*')[]): this;
227
353
  limit(count: number): this;
228
354
  offset(count: number): this;
@@ -231,7 +357,7 @@ interface QueryModifierBuilder<TModel extends GenericModel> {
231
357
  _getOptions(): QueryOptions<TModel, boolean>;
232
358
  }
233
359
  interface SchemaAwareQueryModifierBuilder<S extends SchemaStructure, TableName extends TableNames<S>, RelatedFields extends Record<string, any> = {}> {
234
- where(conditions: Partial<TableModel<GetTable<S, TableName>>>): this;
360
+ where(conditions: WhereInput<TableModel<GetTable<S, TableName>>>): this;
235
361
  select(...fields: ((keyof TableModel<GetTable<S, TableName>> & string) | '*')[]): this;
236
362
  limit(count: number): this;
237
363
  offset(count: number): this;
@@ -371,7 +497,7 @@ declare class QueryBuilder<const S extends SchemaStructure, const TableName exte
371
497
  /**
372
498
  * Add additional where conditions
373
499
  */
374
- 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>;
375
501
  /**
376
502
  * Specify fields to select
377
503
  */
@@ -409,6 +535,21 @@ declare class QueryBuilder<const S extends SchemaStructure, const TableName exte
409
535
  */
410
536
  build(): FinalQuery<S, TableName, GetTable<S, TableName>, RelatedFields, IsOne, R>;
411
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;
412
553
  declare function cyrb53(str: string, seed?: number): number;
413
554
  /**
414
555
  * Build a query string from query options
@@ -422,5 +563,5 @@ declare function buildQueryFromOptions<TModel extends GenericModel, IsOne extend
422
563
  //# sourceMappingURL=query-builder.d.ts.map
423
564
 
424
565
  //#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 };
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 };
426
567
  //# sourceMappingURL=index.d.ts.map