@spooky-sync/query-builder 0.0.1-canary.26 → 0.0.1-canary.260

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.remoteQuery(sql, vars)` (one-shot, through the client's remote path) or `db.queryRaw(sql, params, ttl)` 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
  */
@@ -102,6 +135,16 @@ 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.
144
+ */
145
+ readonly policy?: {
146
+ readonly queryAllowlist?: 'off' | 'warn' | 'enforce';
147
+ };
105
148
  }
106
149
  interface HTTPOutboxBackendDefinition {
107
150
  readonly outboxTable: string;
@@ -197,6 +240,74 @@ interface QueryInfo {
197
240
  query: string;
198
241
  hash: number;
199
242
  vars?: Record<string, unknown>;
243
+ /**
244
+ * Engine-neutral description of the same SELECT, used by non-SurrealQL local
245
+ * cache backends (e.g. SQLite) that cannot parse the `query` string. Only
246
+ * populated for `SELECT` (undefined for LIVE/UPDATE/DELETE). See `QueryPlan`.
247
+ */
248
+ plan?: QueryPlan;
249
+ }
250
+ /**
251
+ * A single WHERE comparison. `value` is the resolved value (string IDs already
252
+ * converted to `RecordId`); when `paramRef` is set the condition references an
253
+ * existing query param verbatim (`$name`) instead of an inline value. `swap`
254
+ * flips the operands (`value op field`), mirroring `ComparisonOp._swap`.
255
+ */
256
+ interface WhereComparison {
257
+ field: string;
258
+ op: ComparisonOp['_op'];
259
+ value: unknown;
260
+ paramRef?: string;
261
+ swap?: boolean;
262
+ }
263
+ /** A parenthesised `(c1 OR c2 …)` group, from a `_or` fragment. */
264
+ interface WhereOr {
265
+ or: WhereComparison[];
266
+ }
267
+ /**
268
+ * Engine-neutral WHERE: a top-level conjunction (AND) of comparisons and/or
269
+ * OR-groups. Mirrors `buildQueryFromOptions`'s condition assembly exactly.
270
+ */
271
+ type WhereNode = WhereComparison | WhereOr;
272
+ /**
273
+ * Engine-neutral description of a SELECT query. Backends render it to their own
274
+ * dialect (SurrealQL, SQLite, …). Relations are resolved by the caller via
275
+ * level-ordered decomposition rather than nested projection, so `relations`
276
+ * carries the tree rather than a flattened subquery string.
277
+ */
278
+ interface QueryPlan {
279
+ table: string;
280
+ /** Projection field names; undefined means all (`*`). */
281
+ select?: string[];
282
+ where?: WhereNode[];
283
+ orderBy?: [field: string, direction: 'asc' | 'desc'][];
284
+ limit?: number;
285
+ offset?: number;
286
+ relations?: RelationPlan[];
287
+ /**
288
+ * Window materialization: when set, the base rows are EXACTLY these record
289
+ * ids (the window the SSP already computed), ignoring `where`/`limit`/
290
+ * `offset`. `orderBy`, `select` and `relations` still apply. Set by
291
+ * {@link buildWindowMaterializationPlan}; see `window-query.ts`.
292
+ */
293
+ ids?: unknown[];
294
+ }
295
+ /**
296
+ * One `.related()` edge in a {@link QueryPlan}. Correlation:
297
+ * - `one` → parent[`foreignKeyField`] = child.id (attach `bucket[0] ?? null`)
298
+ * - `many` → child[`foreignKeyField`] = parent.id (attach `bucket`)
299
+ * `limit`/`orderBy` are applied PER PARENT during decomposition.
300
+ */
301
+ interface RelationPlan {
302
+ alias: string;
303
+ table: string;
304
+ cardinality: 'one' | 'many';
305
+ foreignKeyField: string;
306
+ select?: string[];
307
+ where?: WhereNode[];
308
+ orderBy?: [field: string, direction: 'asc' | 'desc'][];
309
+ limit?: number;
310
+ relations?: RelationPlan[];
200
311
  }
201
312
  interface RelatedQuery {
202
313
  /** The name of the related table to query */
@@ -208,9 +319,34 @@ interface RelatedQuery {
208
319
  /** The cardinality of the relationship */
209
320
  cardinality: 'one' | 'many';
210
321
  }
322
+ /**
323
+ * Comparison-operator descriptor for a single WHERE field, e.g.
324
+ * `{ _op: '<=', _val: 5 }` → `field <= $field`. A `$`-prefixed string `_val`
325
+ * references an existing query param verbatim; `_swap: true` flips the operands
326
+ * (`$val _op field`). Plain values still mean equality (`field = $field`).
327
+ */
328
+ interface ComparisonOp {
329
+ _op: '=' | '!=' | '>' | '>=' | '<' | '<=' | (string & {});
330
+ _val: unknown;
331
+ _swap?: boolean;
332
+ }
333
+ /** A single WHERE field value: an equality value or a comparison descriptor. */
334
+ type WhereFieldValue<V> = V | ComparisonOp;
335
+ /** A flat conjunction of field conditions (equality or comparison). */
336
+ type WhereConditions<TModel extends GenericModel> = { [K in keyof TModel]?: WhereFieldValue<TModel[K]> };
337
+ /**
338
+ * WHERE input for `.where()`. Supports equality (`{ field: value }`), comparison
339
+ * operators (`{ field: { _op, _val } }`), and a single top-level `_or` group of
340
+ * condition fragments that compile to a parenthesised `(... OR ...)` conjunct —
341
+ * e.g. `{ _or: [{ white: x }, { black: x }] }` → `(white = $white__or0 OR black = $black__or1)`.
342
+ * Backward-compatible with plain `Partial<TModel>` equality objects.
343
+ */
344
+ type WhereInput<TModel extends GenericModel> = WhereConditions<TModel> & {
345
+ _or?: WhereConditions<TModel>[];
346
+ };
211
347
  interface QueryOptions<TModel extends GenericModel, IsOne extends boolean> {
212
348
  select?: ((keyof TModel & string) | '*')[];
213
- where?: Partial<TModel>;
349
+ where?: WhereInput<TModel>;
214
350
  limit?: number;
215
351
  offset?: number;
216
352
  orderBy?: Partial<Record<keyof TModel, 'asc' | 'desc'>>;
@@ -218,11 +354,11 @@ interface QueryOptions<TModel extends GenericModel, IsOne extends boolean> {
218
354
  related?: RelatedQuery[];
219
355
  isOne?: IsOne;
220
356
  }
221
- interface LiveQueryOptions<TModel extends GenericModel> extends Omit<QueryOptions<TModel, boolean>, 'orderBy'> {}
357
+ type LiveQueryOptions<TModel extends GenericModel> = Omit<QueryOptions<TModel, boolean>, 'orderBy'>;
222
358
  type QueryModifier<TModel extends GenericModel> = (builder: QueryModifierBuilder<TModel>) => QueryModifierBuilder<TModel>;
223
359
  type SchemaAwareQueryModifier<S extends SchemaStructure, TableName extends TableNames<S>, RelatedFields extends Record<string, any> = {}> = (builder: SchemaAwareQueryModifierBuilder<S, TableName, {}>) => SchemaAwareQueryModifierBuilder<S, TableName, RelatedFields>;
224
360
  interface QueryModifierBuilder<TModel extends GenericModel> {
225
- where(conditions: Partial<TModel>): this;
361
+ where(conditions: WhereInput<TModel>): this;
226
362
  select(...fields: ((keyof TModel & string) | '*')[]): this;
227
363
  limit(count: number): this;
228
364
  offset(count: number): this;
@@ -231,7 +367,7 @@ interface QueryModifierBuilder<TModel extends GenericModel> {
231
367
  _getOptions(): QueryOptions<TModel, boolean>;
232
368
  }
233
369
  interface SchemaAwareQueryModifierBuilder<S extends SchemaStructure, TableName extends TableNames<S>, RelatedFields extends Record<string, any> = {}> {
234
- where(conditions: Partial<TableModel<GetTable<S, TableName>>>): this;
370
+ where(conditions: WhereInput<TableModel<GetTable<S, TableName>>>): this;
235
371
  select(...fields: ((keyof TableModel<GetTable<S, TableName>> & string) | '*')[]): this;
236
372
  limit(count: number): this;
237
373
  offset(count: number): this;
@@ -371,7 +507,7 @@ declare class QueryBuilder<const S extends SchemaStructure, const TableName exte
371
507
  /**
372
508
  * Add additional where conditions
373
509
  */
374
- where(conditions: Partial<TableModel<GetTable<S, TableName>>>): QueryBuilder<S, TableName, R, RelatedFields, IsOne>;
510
+ where(conditions: WhereInput<TableModel<GetTable<S, TableName>>>): QueryBuilder<S, TableName, R, RelatedFields, IsOne>;
375
511
  /**
376
512
  * Specify fields to select
377
513
  */
@@ -409,6 +545,21 @@ declare class QueryBuilder<const S extends SchemaStructure, const TableName exte
409
545
  */
410
546
  build(): FinalQuery<S, TableName, GetTable<S, TableName>, RelatedFields, IsOne, R>;
411
547
  }
548
+ /**
549
+ * The surql param name an `_or` branch condition binds under: the branch FIELD,
550
+ * a `__or` marker and the branch's position. The position alone makes it unique
551
+ * within the query; the field prefix is what lets a consumer type the value by
552
+ * looking the column up (see {@link baseFieldOfParam}). Non-identifier
553
+ * characters (a nested path like `database.owner`) are folded to `_` so the
554
+ * result is a legal param name.
555
+ */
556
+ declare function orParamName(field: string, index: number): string;
557
+ /**
558
+ * Inverse of {@link orParamName}: the field a param name was built from, or the
559
+ * name itself when it is a plain top-level param (`field = $field`). Lets a
560
+ * consumer resolve `white__or0` back to the `white` column.
561
+ */
562
+ declare function baseFieldOfParam(name: string): string;
412
563
  declare function cyrb53(str: string, seed?: number): number;
413
564
  /**
414
565
  * Build a query string from query options
@@ -422,5 +573,5 @@ declare function buildQueryFromOptions<TModel extends GenericModel, IsOne extend
422
573
  //# sourceMappingURL=query-builder.d.ts.map
423
574
 
424
575
  //#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 };
576
+ 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
577
  //# 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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,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;EAanC,OAAA,EEoGM,MFpGN,CAAA,MAAA,EEoGqB,YFpGM,CAAA;CAAA,EAAA,sBEsGpB,gBFtGoB,EAAA,cAAA,OAAA,EAAA,IAAA,IAAA,CAAA,CAAA;mBAEV,SAAA;mBAAf,OAAA;EAAM,iBAAA,MAAA;EAGR,iBAAA,QAAA;EAA0B,QAAA,WAAA;aACX,CAAA,SAAA,EEuGA,SFvGA,EAAA,OAAA,EEwGF,YFxGE,CEwGW,UFxGX,CEwGsB,CFxGtB,CAAA,EEwG0B,KFxG1B,CAAA,EAAA,MAAA,EEyGH,CFzGG,EAAA,QAAA,EE0GD,QF1GC,CE0GQ,CF1GR,EE0GW,CF1GX,CAAA;KAAf,CAAA,CAAA,EEoHR,CFpHQ;EAAM,gBAAA,CAAA,OAAA,EAAA,GAAA,EAAA,CAAA,EEwHa,SFxHb;EAGN,gBAAA,CAAA,CAAA,EEyHK,SFzHL;EAUL,UAAA,CAAA,CAAA,EEmHI,SFnHO;EAAA,IAAA,UAAA,CAAA,CAAA,EEuHH,UFvHG,CEuHQ,CFvHR,EEuHW,KFvHX,EEuHkB,CFvHlB,CAAA;MAAW,KAAA,CAAA,CAAA,EAAA,OAAA;MAChC,IAAA,CAAA,CAAA,EAAA,MAAA;;;;AAKF;;AAAmC,cE6PtB,YF7PsB,CAAA,gBE8PjB,eF9PiB,EAAA,wBE+PT,UF/PS,CE+PE,CF/PF,CAAA,EAAA,UAAA,IAAA,EAAA,4BEiQL,gBFjQK,GAAA,CAAA,CAAA,EAAA,oBAAA,OAAA,GAAA,KAAA,CAAA,CAAA;mBAAuC,MAAA;mBAAZ,SAAA;mBAC5D,QAAA;UAA8B,OAAA;aAClB,CAAA,MAAA,EEmQe,CFnQf,EAAA,SAAA,EEoQkB,SFpQlB,EAAA,QAAA,CAAA,EEqQiB,QFrQjB,CEqQ0B,QFrQ1B,CEqQmC,CFrQnC,EEqQsC,SFrQtC,CAAA,EEqQkD,CFrQlD,CAAA,EAAA,OAAA,CAAA,EEsQO,YFtQP,CEsQoB,UFtQpB,CEsQ+B,QFtQ/B,CEsQwC,CFtQxC,EEsQ2C,SFtQ3C,CAAA,CAAA,EEsQwD,KFtQxD,CAAA;;;;EAIF,KAAA,CAAA,UAAY,EEyQR,UFzQQ,CEyQG,UFzQH,CEyQc,QFzQd,CEyQuB,CFzQvB,EEyQ0B,SFzQ1B,CAAA,CAAA,CAAA,CAAA,EE0QnB,YF1QmB,CE0QN,CF1QM,EE0QH,SF1QG,EE0QQ,CF1QR,EE0QW,aF1QX,EE0Q0B,KF1Q1B,CAAA;EAAA;;;EAAqC,MAAA,CAAA,GAAA,MAAA,EAAA,CAAA,CAAA,MEyRtC,UFzRsC,CEyR3B,QFzR2B,CEyRlB,CFzRkB,EEyRf,SFzRe,CAAA,CAAA,GAAA,MAAA,CAAA,GAAA,GAAA,CAAA,EAAA,CAAA,EE0RxD,YF1RwD,CE0R3C,CF1R2C,EE0RxC,SF1RwC,EE0R7B,CF1R6B,EE0R1B,aF1R0B,EE0RX,KF1RW,CAAA;EAGjD;;;SAEa,CAAA,KAAA,EEiSd,eFjSc,CEiSE,QFjSF,CEiSW,CFjSX,EEiSc,SFjSd,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,KAAA,GAAA,MAAA,CAAA,EEmSpB,YFnSoB,CEmSP,CFnSO,EEmSJ,SFnSI,EEmSO,CFnSP,EEmSU,aFnSV,EEmSyB,KFnSzB,CAAA;;;;EACA,KAAA,CAAA,KAAA,EAAA,MAAA,CAAA,EE8SD,YF9SC,CE8SY,CF9SZ,EE8Se,SF9Sf,EE8S0B,CF9S1B,EE8S6B,aF9S7B,EE8S4C,KF9S5C,CAAA;EAGb;;;QAEa,CAAA,KAAA,EAAA,MAAA,CAAA,EEiTA,YFjTA,CEiTa,CFjTb,EEiTgB,SFjThB,EEiT2B,CFjT3B,EEiT8B,aFjT9B,EEiT6C,KFjT7C,CAAA;KAAb,CAAA,CAAA,EEsTH,YFtTG,CEsTU,CFtTV,EEsTa,SFtTb,EEsTwB,CFtTxB,EEsT2B,aFtT3B,EAAA,IAAA,CAAA;;;;;;SAEkB,CAAA,cEmUZ,kBFnUY,CEmUO,CFnUP,EEmUU,SFnUV,CAAA,CAAA,OAAA,CAAA,EAAA,YEoUd,eFpUc,CEoUE,CFpUF,EEoUK,SFpUL,EEoUgB,KFpUhB,CAAA,EAAA,uBEqUH,gBFrUG,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EEuUnB,KFvUmB,EAAA,qBAAA,CAAA,EEyUtB,wBFzUsB,CEyUG,CFzUH,EEyUM,GFzUN,CAAA,IAAA,CAAA,EEyUiB,cFzUjB,CAAA,GE0UtB,GF1UsB,CAAA,aAAA,CAAA,EAAA,QAAA,CAAA,EE2Uf,wBF3Ue,CE2UU,CF3UV,EE2Ua,GF3Ub,CAAA,IAAA,CAAA,EE2UwB,cF3UxB,CAAA,CAAA,EE4UzB,YF5UyB,CE6U1B,CF7U0B,EE8U1B,SF9U0B,EE+U1B,CF/U0B,EEgV1B,aFhV0B,GAAA,QEiVlB,KFjVD,GAAA;IACP,EAAA,EEiVQ,GFjVR,CAAA,IAAA,CAAA;IAE+B,WAAA,EEgVd,GFhVc,CAAA,aAAA,CAAA;IAAG,aAAA,EEiVf,cFjVe;EAAG,CAAA,IEoVrC,KFpVU,CAAA;;;;YAAqE,CAAA,CAAA,EEkbnE,YFlbmE,CEkbtD,UFlbsD,CEkb3C,QFlb2C,CEkblC,CFlbkC,EEkb/B,SFlb+B,CAAA,CAAA,EEkblB,KFlbkB,CAAA;;;;;OAE1C,CAAA,CAAA,EEwb9B,UFxb8B,CEwbnB,CFxbmB,EEwbhB,SFxbgB,EEwbL,QFxbK,CEwbI,CFxbJ,EEwbO,SFxbP,CAAA,EEwbmB,aFxbnB,EEwbkC,KFxblC,EEwbyC,CFxbzC,CAAA;;;;;;;;;;AAGpC,iBEucW,WAAA,CFvcC,KAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;;;AAGY,iBE6cb,gBAAA,CF7ca,IAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AAAjB,iBEkdI,MAAA,CFldJ,GAAA,EAAA,MAAA,EAAA,IAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;;;;;;AAQkB,iBEgjBd,qBFhjBc,CAAA,eEgjBuB,YFhjBvB,EAAA,cAAA,OAAA,CAAA,CAAA,MAAA,EAAA,QAAA,GAAA,aAAA,GAAA,kBAAA,GAAA,QAAA,GAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EEmjBnB,YFnjBmB,CEmjBN,MFnjBM,EEmjBE,KFnjBF,CAAA,EAAA,MAAA,EEojBpB,eFpjBoB,EAAA,OAAA,CAAA,EAAA,GAAA,EAAA,CAAA,EEsjB3B,SFtjB2B"}
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,16 @@ 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.
144
+ */
145
+ readonly policy?: {
146
+ readonly queryAllowlist?: 'off' | 'warn' | 'enforce';
147
+ };
105
148
  }
106
149
  interface HTTPOutboxBackendDefinition {
107
150
  readonly outboxTable: string;
@@ -197,6 +240,74 @@ interface QueryInfo {
197
240
  query: string;
198
241
  hash: number;
199
242
  vars?: Record<string, unknown>;
243
+ /**
244
+ * Engine-neutral description of the same SELECT, used by non-SurrealQL local
245
+ * cache backends (e.g. SQLite) that cannot parse the `query` string. Only
246
+ * populated for `SELECT` (undefined for LIVE/UPDATE/DELETE). See `QueryPlan`.
247
+ */
248
+ plan?: QueryPlan;
249
+ }
250
+ /**
251
+ * A single WHERE comparison. `value` is the resolved value (string IDs already
252
+ * converted to `RecordId`); when `paramRef` is set the condition references an
253
+ * existing query param verbatim (`$name`) instead of an inline value. `swap`
254
+ * flips the operands (`value op field`), mirroring `ComparisonOp._swap`.
255
+ */
256
+ interface WhereComparison {
257
+ field: string;
258
+ op: ComparisonOp['_op'];
259
+ value: unknown;
260
+ paramRef?: string;
261
+ swap?: boolean;
262
+ }
263
+ /** A parenthesised `(c1 OR c2 …)` group, from a `_or` fragment. */
264
+ interface WhereOr {
265
+ or: WhereComparison[];
266
+ }
267
+ /**
268
+ * Engine-neutral WHERE: a top-level conjunction (AND) of comparisons and/or
269
+ * OR-groups. Mirrors `buildQueryFromOptions`'s condition assembly exactly.
270
+ */
271
+ type WhereNode = WhereComparison | WhereOr;
272
+ /**
273
+ * Engine-neutral description of a SELECT query. Backends render it to their own
274
+ * dialect (SurrealQL, SQLite, …). Relations are resolved by the caller via
275
+ * level-ordered decomposition rather than nested projection, so `relations`
276
+ * carries the tree rather than a flattened subquery string.
277
+ */
278
+ interface QueryPlan {
279
+ table: string;
280
+ /** Projection field names; undefined means all (`*`). */
281
+ select?: string[];
282
+ where?: WhereNode[];
283
+ orderBy?: [field: string, direction: 'asc' | 'desc'][];
284
+ limit?: number;
285
+ offset?: number;
286
+ relations?: RelationPlan[];
287
+ /**
288
+ * Window materialization: when set, the base rows are EXACTLY these record
289
+ * ids (the window the SSP already computed), ignoring `where`/`limit`/
290
+ * `offset`. `orderBy`, `select` and `relations` still apply. Set by
291
+ * {@link buildWindowMaterializationPlan}; see `window-query.ts`.
292
+ */
293
+ ids?: unknown[];
294
+ }
295
+ /**
296
+ * One `.related()` edge in a {@link QueryPlan}. Correlation:
297
+ * - `one` → parent[`foreignKeyField`] = child.id (attach `bucket[0] ?? null`)
298
+ * - `many` → child[`foreignKeyField`] = parent.id (attach `bucket`)
299
+ * `limit`/`orderBy` are applied PER PARENT during decomposition.
300
+ */
301
+ interface RelationPlan {
302
+ alias: string;
303
+ table: string;
304
+ cardinality: 'one' | 'many';
305
+ foreignKeyField: string;
306
+ select?: string[];
307
+ where?: WhereNode[];
308
+ orderBy?: [field: string, direction: 'asc' | 'desc'][];
309
+ limit?: number;
310
+ relations?: RelationPlan[];
200
311
  }
201
312
  interface RelatedQuery {
202
313
  /** The name of the related table to query */
@@ -208,9 +319,34 @@ interface RelatedQuery {
208
319
  /** The cardinality of the relationship */
209
320
  cardinality: 'one' | 'many';
210
321
  }
322
+ /**
323
+ * Comparison-operator descriptor for a single WHERE field, e.g.
324
+ * `{ _op: '<=', _val: 5 }` → `field <= $field`. A `$`-prefixed string `_val`
325
+ * references an existing query param verbatim; `_swap: true` flips the operands
326
+ * (`$val _op field`). Plain values still mean equality (`field = $field`).
327
+ */
328
+ interface ComparisonOp {
329
+ _op: '=' | '!=' | '>' | '>=' | '<' | '<=' | (string & {});
330
+ _val: unknown;
331
+ _swap?: boolean;
332
+ }
333
+ /** A single WHERE field value: an equality value or a comparison descriptor. */
334
+ type WhereFieldValue<V> = V | ComparisonOp;
335
+ /** A flat conjunction of field conditions (equality or comparison). */
336
+ type WhereConditions<TModel extends GenericModel> = { [K in keyof TModel]?: WhereFieldValue<TModel[K]> };
337
+ /**
338
+ * WHERE input for `.where()`. Supports equality (`{ field: value }`), comparison
339
+ * operators (`{ field: { _op, _val } }`), and a single top-level `_or` group of
340
+ * condition fragments that compile to a parenthesised `(... OR ...)` conjunct —
341
+ * e.g. `{ _or: [{ white: x }, { black: x }] }` → `(white = $white__or0 OR black = $black__or1)`.
342
+ * Backward-compatible with plain `Partial<TModel>` equality objects.
343
+ */
344
+ type WhereInput<TModel extends GenericModel> = WhereConditions<TModel> & {
345
+ _or?: WhereConditions<TModel>[];
346
+ };
211
347
  interface QueryOptions<TModel extends GenericModel, IsOne extends boolean> {
212
348
  select?: ((keyof TModel & string) | '*')[];
213
- where?: Partial<TModel>;
349
+ where?: WhereInput<TModel>;
214
350
  limit?: number;
215
351
  offset?: number;
216
352
  orderBy?: Partial<Record<keyof TModel, 'asc' | 'desc'>>;
@@ -218,11 +354,11 @@ interface QueryOptions<TModel extends GenericModel, IsOne extends boolean> {
218
354
  related?: RelatedQuery[];
219
355
  isOne?: IsOne;
220
356
  }
221
- interface LiveQueryOptions<TModel extends GenericModel> extends Omit<QueryOptions<TModel, boolean>, 'orderBy'> {}
357
+ type LiveQueryOptions<TModel extends GenericModel> = Omit<QueryOptions<TModel, boolean>, 'orderBy'>;
222
358
  type QueryModifier<TModel extends GenericModel> = (builder: QueryModifierBuilder<TModel>) => QueryModifierBuilder<TModel>;
223
359
  type SchemaAwareQueryModifier<S extends SchemaStructure, TableName extends TableNames<S>, RelatedFields extends Record<string, any> = {}> = (builder: SchemaAwareQueryModifierBuilder<S, TableName, {}>) => SchemaAwareQueryModifierBuilder<S, TableName, RelatedFields>;
224
360
  interface QueryModifierBuilder<TModel extends GenericModel> {
225
- where(conditions: Partial<TModel>): this;
361
+ where(conditions: WhereInput<TModel>): this;
226
362
  select(...fields: ((keyof TModel & string) | '*')[]): this;
227
363
  limit(count: number): this;
228
364
  offset(count: number): this;
@@ -231,7 +367,7 @@ interface QueryModifierBuilder<TModel extends GenericModel> {
231
367
  _getOptions(): QueryOptions<TModel, boolean>;
232
368
  }
233
369
  interface SchemaAwareQueryModifierBuilder<S extends SchemaStructure, TableName extends TableNames<S>, RelatedFields extends Record<string, any> = {}> {
234
- where(conditions: Partial<TableModel<GetTable<S, TableName>>>): this;
370
+ where(conditions: WhereInput<TableModel<GetTable<S, TableName>>>): this;
235
371
  select(...fields: ((keyof TableModel<GetTable<S, TableName>> & string) | '*')[]): this;
236
372
  limit(count: number): this;
237
373
  offset(count: number): this;
@@ -371,7 +507,7 @@ declare class QueryBuilder<const S extends SchemaStructure, const TableName exte
371
507
  /**
372
508
  * Add additional where conditions
373
509
  */
374
- where(conditions: Partial<TableModel<GetTable<S, TableName>>>): QueryBuilder<S, TableName, R, RelatedFields, IsOne>;
510
+ where(conditions: WhereInput<TableModel<GetTable<S, TableName>>>): QueryBuilder<S, TableName, R, RelatedFields, IsOne>;
375
511
  /**
376
512
  * Specify fields to select
377
513
  */
@@ -409,6 +545,21 @@ declare class QueryBuilder<const S extends SchemaStructure, const TableName exte
409
545
  */
410
546
  build(): FinalQuery<S, TableName, GetTable<S, TableName>, RelatedFields, IsOne, R>;
411
547
  }
548
+ /**
549
+ * The surql param name an `_or` branch condition binds under: the branch FIELD,
550
+ * a `__or` marker and the branch's position. The position alone makes it unique
551
+ * within the query; the field prefix is what lets a consumer type the value by
552
+ * looking the column up (see {@link baseFieldOfParam}). Non-identifier
553
+ * characters (a nested path like `database.owner`) are folded to `_` so the
554
+ * result is a legal param name.
555
+ */
556
+ declare function orParamName(field: string, index: number): string;
557
+ /**
558
+ * Inverse of {@link orParamName}: the field a param name was built from, or the
559
+ * name itself when it is a plain top-level param (`field = $field`). Lets a
560
+ * consumer resolve `white__or0` back to the `white` column.
561
+ */
562
+ declare function baseFieldOfParam(name: string): string;
412
563
  declare function cyrb53(str: string, seed?: number): number;
413
564
  /**
414
565
  * Build a query string from query options
@@ -422,5 +573,5 @@ declare function buildQueryFromOptions<TModel extends GenericModel, IsOne extend
422
573
  //# sourceMappingURL=query-builder.d.ts.map
423
574
 
424
575
  //#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 };
576
+ 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
577
  //# sourceMappingURL=index.d.ts.map