@spooky-sync/query-builder 0.0.0-canary.1 → 0.0.1-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +63 -0
- package/dist/index.d.mts +162 -8
- package/dist/index.d.mts.map +1 -1
- package/dist/index.d.ts +162 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +208 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +207 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -5
- package/skills/sp00ky-query-builder/SKILL.md +201 -0
- package/skills/sp00ky-query-builder/references/type-helpers.md +80 -0
- package/src/index.ts +14 -0
- package/src/query-builder.test.ts +213 -4
- package/src/query-builder.ts +343 -20
- package/src/repro_relationship.test.ts +1 -1
- package/src/table-schema.ts +62 -3
- package/src/types.ts +110 -5
package/dist/index.d.ts
CHANGED
|
@@ -4,15 +4,40 @@ import { RecordId } from "surrealdb";
|
|
|
4
4
|
/**
|
|
5
5
|
* Supported value types in the schema
|
|
6
6
|
*/
|
|
7
|
-
type ValueType = 'string' | 'number' | 'boolean' | 'null' | 'json';
|
|
7
|
+
type ValueType = 'string' | 'number' | 'boolean' | 'null' | 'json' | 'Uint8Array';
|
|
8
8
|
/**
|
|
9
9
|
* Column metadata defining the type and optionality of a field
|
|
10
10
|
*/
|
|
11
|
+
/**
|
|
12
|
+
* CRDT types supported by Sp00ky's Loro integration
|
|
13
|
+
*/
|
|
14
|
+
type CrdtType = 'text' | 'map' | 'list' | 'counter';
|
|
11
15
|
interface ColumnSchema {
|
|
12
16
|
readonly type: ValueType;
|
|
13
17
|
readonly optional: boolean;
|
|
14
18
|
readonly dateTime?: boolean;
|
|
15
19
|
readonly recordId?: boolean;
|
|
20
|
+
readonly crdt?: CrdtType;
|
|
21
|
+
readonly cursor?: boolean;
|
|
22
|
+
/** True for `TYPE bytes` columns. Runtime values are `Uint8Array`. */
|
|
23
|
+
readonly bytes?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* True for `TYPE array<...>` columns. `type` then names the ELEMENT type, so
|
|
26
|
+
* the runtime value is `ElementType[]` (e.g. `array<string>` → `string[]`).
|
|
27
|
+
*/
|
|
28
|
+
readonly array?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* True for `-- @opaque` columns: the value IS synced to the client and can be
|
|
31
|
+
* read from a query result, but the sync engine never stores it server-side.
|
|
32
|
+
*
|
|
33
|
+
* That makes it unusable for anything the server has to evaluate — `where`,
|
|
34
|
+
* `orderBy`, joins, aggregates, table permissions — because the SSP has no
|
|
35
|
+
* value to evaluate against. A predicate on such a column would appear to work
|
|
36
|
+
* locally (the local cache does hold the value) while matching nothing
|
|
37
|
+
* server-side, so the query builder rejects it outright instead of letting the
|
|
38
|
+
* two diverge silently.
|
|
39
|
+
*/
|
|
40
|
+
readonly opaque?: boolean;
|
|
16
41
|
}
|
|
17
42
|
/**
|
|
18
43
|
* Table metadata containing columns and primary key information
|
|
@@ -59,13 +84,21 @@ type TypeNameToTypeMap = {
|
|
|
59
84
|
boolean: boolean;
|
|
60
85
|
null: null;
|
|
61
86
|
json: unknown;
|
|
87
|
+
Uint8Array: Uint8Array;
|
|
62
88
|
};
|
|
89
|
+
/**
|
|
90
|
+
* The element/base TS type of a column, wrapping in an array for `array: true`
|
|
91
|
+
* columns (where `type` names the element type).
|
|
92
|
+
*/
|
|
93
|
+
type ColumnBaseTSType<T extends ColumnSchema> = T extends {
|
|
94
|
+
array: true;
|
|
95
|
+
} ? TypeNameToTypeMap[T['type']][] : TypeNameToTypeMap[T['type']];
|
|
63
96
|
/**
|
|
64
97
|
* Convert a column type to its TypeScript type
|
|
65
98
|
*/
|
|
66
99
|
type ColumnToTSType<T extends ColumnSchema> = T extends {
|
|
67
100
|
optional: true;
|
|
68
|
-
} ?
|
|
101
|
+
} ? ColumnBaseTSType<T> | null : ColumnBaseTSType<T>;
|
|
69
102
|
/**
|
|
70
103
|
* Helper to extract relationship field names for a table
|
|
71
104
|
*/
|
|
@@ -78,6 +111,12 @@ interface AccessDefinition {
|
|
|
78
111
|
readonly params: Record<string, ColumnSchema>;
|
|
79
112
|
};
|
|
80
113
|
}
|
|
114
|
+
interface BucketDefinitionSchema {
|
|
115
|
+
readonly name: string;
|
|
116
|
+
readonly maxSize?: number;
|
|
117
|
+
readonly allowedExtensions?: readonly string[];
|
|
118
|
+
readonly pathPrefixAuth?: boolean;
|
|
119
|
+
}
|
|
81
120
|
/**
|
|
82
121
|
* Base schema structure for array-based schemas
|
|
83
122
|
*/
|
|
@@ -95,6 +134,7 @@ interface SchemaStructure {
|
|
|
95
134
|
}[];
|
|
96
135
|
readonly backends: Record<string, HTTPOutboxBackendDefinition>;
|
|
97
136
|
readonly access?: Record<string, AccessDefinition>;
|
|
137
|
+
readonly buckets?: readonly BucketDefinitionSchema[];
|
|
98
138
|
}
|
|
99
139
|
interface HTTPOutboxBackendDefinition {
|
|
100
140
|
readonly outboxTable: string;
|
|
@@ -107,6 +147,12 @@ interface HTTPBackendRouteArgsDefinition {
|
|
|
107
147
|
readonly type: ValueType;
|
|
108
148
|
readonly optional: boolean;
|
|
109
149
|
}
|
|
150
|
+
/** Extract all bucket names from the schema */
|
|
151
|
+
type BucketNames<S extends SchemaStructure> = S['buckets'] extends readonly BucketDefinitionSchema[] ? S['buckets'][number]['name'] : never;
|
|
152
|
+
/** Look up a bucket's config by name */
|
|
153
|
+
type BucketConfig<S extends SchemaStructure, B extends BucketNames<S>> = S['buckets'] extends readonly BucketDefinitionSchema[] ? Extract<S['buckets'][number], {
|
|
154
|
+
name: B;
|
|
155
|
+
}> : never;
|
|
110
156
|
/** Extract all backend names from the schema */
|
|
111
157
|
type BackendNames<S extends SchemaStructure> = keyof S['backends'] & string;
|
|
112
158
|
/** Extract all route paths for a specific backend */
|
|
@@ -184,6 +230,74 @@ interface QueryInfo {
|
|
|
184
230
|
query: string;
|
|
185
231
|
hash: number;
|
|
186
232
|
vars?: Record<string, unknown>;
|
|
233
|
+
/**
|
|
234
|
+
* Engine-neutral description of the same SELECT, used by non-SurrealQL local
|
|
235
|
+
* cache backends (e.g. SQLite) that cannot parse the `query` string. Only
|
|
236
|
+
* populated for `SELECT` (undefined for LIVE/UPDATE/DELETE). See `QueryPlan`.
|
|
237
|
+
*/
|
|
238
|
+
plan?: QueryPlan;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* A single WHERE comparison. `value` is the resolved value (string IDs already
|
|
242
|
+
* converted to `RecordId`); when `paramRef` is set the condition references an
|
|
243
|
+
* existing query param verbatim (`$name`) instead of an inline value. `swap`
|
|
244
|
+
* flips the operands (`value op field`), mirroring `ComparisonOp._swap`.
|
|
245
|
+
*/
|
|
246
|
+
interface WhereComparison {
|
|
247
|
+
field: string;
|
|
248
|
+
op: ComparisonOp['_op'];
|
|
249
|
+
value: unknown;
|
|
250
|
+
paramRef?: string;
|
|
251
|
+
swap?: boolean;
|
|
252
|
+
}
|
|
253
|
+
/** A parenthesised `(c1 OR c2 …)` group, from a `_or` fragment. */
|
|
254
|
+
interface WhereOr {
|
|
255
|
+
or: WhereComparison[];
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Engine-neutral WHERE: a top-level conjunction (AND) of comparisons and/or
|
|
259
|
+
* OR-groups. Mirrors `buildQueryFromOptions`'s condition assembly exactly.
|
|
260
|
+
*/
|
|
261
|
+
type WhereNode = WhereComparison | WhereOr;
|
|
262
|
+
/**
|
|
263
|
+
* Engine-neutral description of a SELECT query. Backends render it to their own
|
|
264
|
+
* dialect (SurrealQL, SQLite, …). Relations are resolved by the caller via
|
|
265
|
+
* level-ordered decomposition rather than nested projection, so `relations`
|
|
266
|
+
* carries the tree rather than a flattened subquery string.
|
|
267
|
+
*/
|
|
268
|
+
interface QueryPlan {
|
|
269
|
+
table: string;
|
|
270
|
+
/** Projection field names; undefined means all (`*`). */
|
|
271
|
+
select?: string[];
|
|
272
|
+
where?: WhereNode[];
|
|
273
|
+
orderBy?: [field: string, direction: 'asc' | 'desc'][];
|
|
274
|
+
limit?: number;
|
|
275
|
+
offset?: number;
|
|
276
|
+
relations?: RelationPlan[];
|
|
277
|
+
/**
|
|
278
|
+
* Window materialization: when set, the base rows are EXACTLY these record
|
|
279
|
+
* ids (the window the SSP already computed), ignoring `where`/`limit`/
|
|
280
|
+
* `offset`. `orderBy`, `select` and `relations` still apply. Set by
|
|
281
|
+
* {@link buildWindowMaterializationPlan}; see `window-query.ts`.
|
|
282
|
+
*/
|
|
283
|
+
ids?: unknown[];
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* One `.related()` edge in a {@link QueryPlan}. Correlation:
|
|
287
|
+
* - `one` → parent[`foreignKeyField`] = child.id (attach `bucket[0] ?? null`)
|
|
288
|
+
* - `many` → child[`foreignKeyField`] = parent.id (attach `bucket`)
|
|
289
|
+
* `limit`/`orderBy` are applied PER PARENT during decomposition.
|
|
290
|
+
*/
|
|
291
|
+
interface RelationPlan {
|
|
292
|
+
alias: string;
|
|
293
|
+
table: string;
|
|
294
|
+
cardinality: 'one' | 'many';
|
|
295
|
+
foreignKeyField: string;
|
|
296
|
+
select?: string[];
|
|
297
|
+
where?: WhereNode[];
|
|
298
|
+
orderBy?: [field: string, direction: 'asc' | 'desc'][];
|
|
299
|
+
limit?: number;
|
|
300
|
+
relations?: RelationPlan[];
|
|
187
301
|
}
|
|
188
302
|
interface RelatedQuery {
|
|
189
303
|
/** The name of the related table to query */
|
|
@@ -195,9 +309,34 @@ interface RelatedQuery {
|
|
|
195
309
|
/** The cardinality of the relationship */
|
|
196
310
|
cardinality: 'one' | 'many';
|
|
197
311
|
}
|
|
312
|
+
/**
|
|
313
|
+
* Comparison-operator descriptor for a single WHERE field, e.g.
|
|
314
|
+
* `{ _op: '<=', _val: 5 }` → `field <= $field`. A `$`-prefixed string `_val`
|
|
315
|
+
* references an existing query param verbatim; `_swap: true` flips the operands
|
|
316
|
+
* (`$val _op field`). Plain values still mean equality (`field = $field`).
|
|
317
|
+
*/
|
|
318
|
+
interface ComparisonOp {
|
|
319
|
+
_op: '=' | '!=' | '>' | '>=' | '<' | '<=' | (string & {});
|
|
320
|
+
_val: unknown;
|
|
321
|
+
_swap?: boolean;
|
|
322
|
+
}
|
|
323
|
+
/** A single WHERE field value: an equality value or a comparison descriptor. */
|
|
324
|
+
type WhereFieldValue<V> = V | ComparisonOp;
|
|
325
|
+
/** A flat conjunction of field conditions (equality or comparison). */
|
|
326
|
+
type WhereConditions<TModel extends GenericModel> = { [K in keyof TModel]?: WhereFieldValue<TModel[K]> };
|
|
327
|
+
/**
|
|
328
|
+
* WHERE input for `.where()`. Supports equality (`{ field: value }`), comparison
|
|
329
|
+
* operators (`{ field: { _op, _val } }`), and a single top-level `_or` group of
|
|
330
|
+
* condition fragments that compile to a parenthesised `(... OR ...)` conjunct —
|
|
331
|
+
* e.g. `{ _or: [{ white: x }, { black: x }] }` → `(white = $white__or0 OR black = $black__or1)`.
|
|
332
|
+
* Backward-compatible with plain `Partial<TModel>` equality objects.
|
|
333
|
+
*/
|
|
334
|
+
type WhereInput<TModel extends GenericModel> = WhereConditions<TModel> & {
|
|
335
|
+
_or?: WhereConditions<TModel>[];
|
|
336
|
+
};
|
|
198
337
|
interface QueryOptions<TModel extends GenericModel, IsOne extends boolean> {
|
|
199
338
|
select?: ((keyof TModel & string) | '*')[];
|
|
200
|
-
where?:
|
|
339
|
+
where?: WhereInput<TModel>;
|
|
201
340
|
limit?: number;
|
|
202
341
|
offset?: number;
|
|
203
342
|
orderBy?: Partial<Record<keyof TModel, 'asc' | 'desc'>>;
|
|
@@ -205,11 +344,11 @@ interface QueryOptions<TModel extends GenericModel, IsOne extends boolean> {
|
|
|
205
344
|
related?: RelatedQuery[];
|
|
206
345
|
isOne?: IsOne;
|
|
207
346
|
}
|
|
208
|
-
|
|
347
|
+
type LiveQueryOptions<TModel extends GenericModel> = Omit<QueryOptions<TModel, boolean>, 'orderBy'>;
|
|
209
348
|
type QueryModifier<TModel extends GenericModel> = (builder: QueryModifierBuilder<TModel>) => QueryModifierBuilder<TModel>;
|
|
210
349
|
type SchemaAwareQueryModifier<S extends SchemaStructure, TableName extends TableNames<S>, RelatedFields extends Record<string, any> = {}> = (builder: SchemaAwareQueryModifierBuilder<S, TableName, {}>) => SchemaAwareQueryModifierBuilder<S, TableName, RelatedFields>;
|
|
211
350
|
interface QueryModifierBuilder<TModel extends GenericModel> {
|
|
212
|
-
where(conditions:
|
|
351
|
+
where(conditions: WhereInput<TModel>): this;
|
|
213
352
|
select(...fields: ((keyof TModel & string) | '*')[]): this;
|
|
214
353
|
limit(count: number): this;
|
|
215
354
|
offset(count: number): this;
|
|
@@ -218,7 +357,7 @@ interface QueryModifierBuilder<TModel extends GenericModel> {
|
|
|
218
357
|
_getOptions(): QueryOptions<TModel, boolean>;
|
|
219
358
|
}
|
|
220
359
|
interface SchemaAwareQueryModifierBuilder<S extends SchemaStructure, TableName extends TableNames<S>, RelatedFields extends Record<string, any> = {}> {
|
|
221
|
-
where(conditions:
|
|
360
|
+
where(conditions: WhereInput<TableModel<GetTable<S, TableName>>>): this;
|
|
222
361
|
select(...fields: ((keyof TableModel<GetTable<S, TableName>> & string) | '*')[]): this;
|
|
223
362
|
limit(count: number): this;
|
|
224
363
|
offset(count: number): this;
|
|
@@ -358,7 +497,7 @@ declare class QueryBuilder<const S extends SchemaStructure, const TableName exte
|
|
|
358
497
|
/**
|
|
359
498
|
* Add additional where conditions
|
|
360
499
|
*/
|
|
361
|
-
where(conditions:
|
|
500
|
+
where(conditions: WhereInput<TableModel<GetTable<S, TableName>>>): QueryBuilder<S, TableName, R, RelatedFields, IsOne>;
|
|
362
501
|
/**
|
|
363
502
|
* Specify fields to select
|
|
364
503
|
*/
|
|
@@ -396,6 +535,21 @@ declare class QueryBuilder<const S extends SchemaStructure, const TableName exte
|
|
|
396
535
|
*/
|
|
397
536
|
build(): FinalQuery<S, TableName, GetTable<S, TableName>, RelatedFields, IsOne, R>;
|
|
398
537
|
}
|
|
538
|
+
/**
|
|
539
|
+
* The surql param name an `_or` branch condition binds under: the branch FIELD,
|
|
540
|
+
* a `__or` marker and the branch's position. The position alone makes it unique
|
|
541
|
+
* within the query; the field prefix is what lets a consumer type the value by
|
|
542
|
+
* looking the column up (see {@link baseFieldOfParam}). Non-identifier
|
|
543
|
+
* characters (a nested path like `database.owner`) are folded to `_` so the
|
|
544
|
+
* result is a legal param name.
|
|
545
|
+
*/
|
|
546
|
+
declare function orParamName(field: string, index: number): string;
|
|
547
|
+
/**
|
|
548
|
+
* Inverse of {@link orParamName}: the field a param name was built from, or the
|
|
549
|
+
* name itself when it is a plain top-level param (`field = $field`). Lets a
|
|
550
|
+
* consumer resolve `white__or0` back to the `white` column.
|
|
551
|
+
*/
|
|
552
|
+
declare function baseFieldOfParam(name: string): string;
|
|
399
553
|
declare function cyrb53(str: string, seed?: number): number;
|
|
400
554
|
/**
|
|
401
555
|
* Build a query string from query options
|
|
@@ -409,5 +563,5 @@ declare function buildQueryFromOptions<TModel extends GenericModel, IsOne extend
|
|
|
409
563
|
//# sourceMappingURL=query-builder.d.ts.map
|
|
410
564
|
|
|
411
565
|
//#endregion
|
|
412
|
-
export { type AccessDefinition, type BackendNames, type BackendRoutes, type BuildRelatedFields, type BuildResultModelMany, type BuildResultModelOne, type Cardinality, type ColumnSchema, type Executor, type ExtractFieldNames, FinalQuery, type GenericModel, type GenericSchema, type GetCardinality, type GetRelationship, type GetRelationshipFields, type GetTable, type InferRelatedModelFromMetadata, InnerQuery, type LiveQueryOptions, QueryBuilder, type QueryInfo, type QueryModifier, type QueryModifierBuilder, type QueryOptions, type QueryResult, RecordId, type RelatedField, type RelatedFieldMapEntry, type RelatedFieldsMap, type RelatedQuery, type RelationshipDefinition, type RelationshipFields, type RelationshipFields$1 as RelationshipFieldsFromSchema, type RelationshipMetadata, type RelationshipsMetadata, type RoutePayload, type SchemaAwareQueryModifier, type SchemaAwareQueryModifierBuilder, type SchemaMetadataStructure, type SchemaStructure, type SchemaToIndexed, type TableModel, type TableNames, type TableRelationships, type TableSchemaMetadata, type TypeNameToTypeMap, type ValueType, type WithRelated, buildQueryFromOptions, cyrb53 };
|
|
566
|
+
export { type AccessDefinition, type BackendNames, type BackendRoutes, type BucketConfig, type BucketDefinitionSchema, type BucketNames, type BuildRelatedFields, type BuildResultModelMany, type BuildResultModelOne, type Cardinality, type ColumnSchema, type ComparisonOp, type Executor, type ExtractFieldNames, FinalQuery, type GenericModel, type GenericSchema, type GetCardinality, type GetRelationship, type GetRelationshipFields, type GetTable, type InferRelatedModelFromMetadata, InnerQuery, type LiveQueryOptions, QueryBuilder, type QueryInfo, type QueryModifier, type QueryModifierBuilder, type QueryOptions, type QueryPlan, type QueryResult, RecordId, type RelatedField, type RelatedFieldMapEntry, type RelatedFieldsMap, type RelatedQuery, type RelationPlan, type RelationshipDefinition, type RelationshipFields, type RelationshipFields$1 as RelationshipFieldsFromSchema, type RelationshipMetadata, type RelationshipsMetadata, type RoutePayload, type SchemaAwareQueryModifier, type SchemaAwareQueryModifierBuilder, type SchemaMetadataStructure, type SchemaStructure, type SchemaToIndexed, type TableModel, type TableNames, type TableRelationships, type TableSchemaMetadata, type TypeNameToTypeMap, type ValueType, type WhereComparison, type WhereConditions, type WhereFieldValue, type WhereInput, type WhereNode, type WhereOr, type WithRelated, baseFieldOfParam, buildQueryFromOptions, cyrb53, orParamName };
|
|
413
567
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/table-schema.ts","../src/types.ts","../src/query-builder.ts"],"sourcesContent":[],"mappings":"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CEkER,UFlEQ,CEkEG,QFlEH,CEkEY,CFlEZ,EEkEe,SFlEf,CAAA,CAAA,EEkE4B,iBFlE5B,CEkE8C,aFlE9C,CAAA,CAAA,GEmEf,kBFnEe,CEmEI,CFnEJ,EEmEO,aFnEP,CAAA;AAAM,KEqEX,oBFrEW,CAAA,UEsEX,eFtEW,EAAA,kBEuEH,UFvEG,CEuEQ,CFvER,CAAA,EAAA,sBEwEC,gBFxED,CAAA,GAAA,CEyElB,IFzEkB,CEyEb,UFzEa,CEyEF,QFzEE,CEyEO,CFzEP,EEyEU,SFzEV,CAAA,CAAA,EEyEuB,iBFzEvB,CEyEyC,aFzEzC,CAAA,CAAA,GE0ErB,kBF1EqB,CE0EF,CF1EE,EE0EC,aF1ED,CAAA,CAAA,EAAA;AAGvB;AAUA;;;AAA4D,KEmEhD,WFnEgD,CAAA,UEoEhD,eFpEgD,EAAA,kBEqExC,UFrEwC,CEqE7B,CFrE6B,CAAA,EAAA,sBEsEpC,gBFtEoC,EAAA,cAAA,OAAA,CAAA,GEwExD,KFxEwD,SAAA,IAAA,GEyExD,mBFzEwD,CEyEpC,CFzEoC,EEyEjC,SFzEiC,EEyEtB,aFzEsB,CAAA,GE0ExD,oBF1EwD,CE0EnC,CF1EmC,EE0EhC,SF1EgC,EE0ErB,aF1EqB,CAAA;AAAC,cE4EhD,UF5EgD,CAAA,UE6EjD,eF7EiD,EAAA,kBE8EzC,UF9EyC,CE8E9B,CF9E8B,CAAA,EAAA,UAAA;EAGjD,OAAA,EE4EW,MF5EX,CAAa,MAAA,EE4Ea,YF5Eb,CAAA;CAAA,EAAA,sBE6ED,gBF7EC,EAAA,cAAA,OAAA,EAAA,IAAA,IAAA,CAAA,CAAA;mBACb,SAAA;mBACa,OAAA;mBAAb,MAAA;mBACF,QAAA;UAAc,WAAA;EAAC,WAAA,CAAA,SAAA,EEiFO,SFjFP,EAAA,OAAA,EEkFK,YFlFL,CEkFkB,UFlFlB,CEkF6B,CFlF7B,CAAA,EEkFiC,KFlFjC,CAAA,EAAA,MAAA,EEmFI,CFnFJ,EAAA,QAAA,EEoFM,QFpFN,CEoFe,CFpFf,EEoFkB,CFpFlB,CAAA;EAGb,GAAA,CAAA,CAAA,EE2FH,CF3FG;EAAY,gBAAA,CAAA,OAAA,EAAA,GAAA,EAAA,CAAA,EE+FY,SF/FZ;kBACZ,CAAA,CAAA,EEkGU,SFlGV;YACa,CAAA,CAAA,EEqGT,SFrGS;MAAb,UAAA,CAAA,CAAA,EEyGQ,UFzGR,CEyGmB,CFzGnB,EEyGsB,KFzGtB,EEyG6B,CFzG7B,CAAA;MACc,KAAA,CAAA,CAAA,EAAA,OAAA;MAAG,IAAA,CAAA,CAAA,EAAA,MAAA;;;;;;AAEzB,cEkOS,YFlOT,CAAA,gBEmOc,eFnOd,EAAA,wBEoOsB,UFpOtB,CEoOiC,CFpOjC,CAAA,EAAA,UAAA,IAAA,EAAA,4BEsO0B,gBFtO1B,GAAA,CAAA,CAAA,EAAA,oBAAA,OAAA,GAAA,KAAA,CAAA,CAAA;mBAE+B,MAAA;mBAAG,SAAA;mBAAG,QAAA;UAA3B,OAAA;aAAgC,CAAA,MAAA,EEwOjB,CFxOiB,EAAA,SAAA,EEyOd,SFzOc,EAAA,QAAA,CAAA,EE0Of,QF1Oe,CE0ON,QF1OM,CE0OG,CF1OH,EE0OM,SF1ON,CAAA,EE0OkB,CF1OlB,CAAA,EAAA,OAAA,CAAA,EE2OzB,YF3OyB,CE2OZ,UF3OY,CE2OD,QF3OC,CE2OQ,CF3OR,EE2OW,SF3OX,CAAA,CAAA,EE2OwB,KF3OxB,CAAA;;;;OAAkB,CAAA,UAAA,EEkPhD,OFlPgD,CEkPxC,UFlPwC,CEkP7B,QFlP6B,CEkPpB,CFlPoB,EEkPjB,SFlPiB,CAAA,CAAA,CAAA,CAAA,EEmP3D,YFnP2D,CEmP9C,CFnP8C,EEmP3C,SFnP2C,EEmPhC,CFnPgC,EEmP7B,aFnP6B,EEmPd,KFnPc,CAAA;;;;QAEvB,CAAA,GAAA,MAAA,EAAA,CAAA,CAAA,ME0PlB,UF1PkB,CE0PP,QF1PO,CE0PE,CF1PF,EE0PK,SF1PL,CAAA,CAAA,GAAA,MAAA,CAAA,GAAA,GAAA,CAAA,EAAA,CAAA,EE2PpC,YF3PoC,CE2PvB,CF3PuB,EE2PpB,SF3PoB,EE2PT,CF3PS,EE2PN,aF3PM,EE2PS,KF3PT,CAAA;;;;SAAwC,CAAA,KAAA,EEuQtE,eFvQsE,CEuQtD,QFvQsD,CEuQ7C,CFvQ6C,EEuQ1C,SFvQ0C,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,KAAA,GAAA,MAAA,CAAA,EEyQ5E,YFzQ4E,CEyQ/D,CFzQ+D,EEyQ5D,SFzQ4D,EEyQjD,CFzQiD,EEyQ9C,aFzQ8C,EEyQ/B,KFzQ+B,CAAA;;;;OAH7E,CAAA,KAAA,EAAA,MAAA,CAAA,EEuRoB,YFvRpB,CEuRiC,CFvRjC,EEuRoC,SFvRpC,EEuR+C,CFvR/C,EEuRkD,aFvRlD,EEuRiE,KFvRjE,CAAA;EAAQ;AAIN;;QAGM,CAAA,KAAA,EAAA,MAAA,CAAA,EEwRa,YFxRb,CEwR0B,CFxR1B,EEwR6B,SFxR7B,EEwRwC,CFxRxC,EEwR2C,aFxR3C,EEwR0D,KFxR1D,CAAA;KACa,CAAA,CAAA,EE4RhB,YF5RgB,CE4RH,CF5RG,EE4RA,SF5RA,EE4RW,CF5RX,EE4Rc,aF5Rd,EAAA,IAAA,CAAA;;;;;;SAEP,CAAA,cEySA,kBFzSA,CEySmB,CFzSnB,EEySsB,SFzStB,CAAA,CAAA,OAAA,CAAA,EAAA,YE0SF,eF1SE,CE0Sc,CF1Sd,EE0SiB,SF1SjB,EE0S4B,KF1S5B,CAAA,EAAA,uBE2SS,gBF3ST,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EE6SP,KF7SO,EAAA,qBAAA,CAAA,EE+SV,wBF/SU,CE+Se,CF/Sf,EE+SkB,GF/SlB,CAAA,IAAA,CAAA,EE+S6B,cF/S7B,CAAA,GEgTV,GFhTU,CAAA,aAAA,CAAA,EAAA,QAAA,CAAA,EEiTH,wBFjTG,CEiTsB,CFjTtB,EEiTyB,GFjTzB,CAAA,IAAA,CAAA,EEiToC,cFjTpC,CAAA,CAAA,EEkTb,YFlTa,CEmTd,CFnTc,EEoTd,SFpTc,EEqTd,CFrTc,EEsTd,aFtTc,GAAA,QEuTN,KFvTmB,GAAA;IAAC,EAAA,EEwTpB,GFxToB,CAAA,IAAA,CAAA;IAE3B,WAAA,EEuTgB,GFvTI,CAAA,aAAA,CAAA;IAAA,aAAA,EEwTF,cFxTE;EACb,CAAA,IE0TR,KFzTqB,CAAA;;;;YACb,CAAA,CAAA,EE8YI,YF9YJ,CE8YiB,UF9YjB,CE8Y4B,QF9Y5B,CE8YqC,CF9YrC,EE8YwC,SF9YxC,CAAA,CAAA,EE8YqD,KF9YrD,CAAA;;;;;OAEuC,CAAA,CAAA,EEoZxC,UFpZwC,CEoZ7B,CFpZ6B,EEoZ1B,SFpZ0B,EEoZf,QFpZe,CEoZN,CFpZM,EEoZH,SFpZG,CAAA,EEoZS,aFpZT,EEoZwB,KFpZxB,EEoZ+B,CFpZ/B,CAAA;;AAAM,iBE8ZzC,MAAA,CF9ZyC,GAAA,EAAA,MAAA,EAAA,IAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;AACrC;;;;;AAKM,iBE6fV,qBF7fU,CAAA,eE6f2B,YF7f3B,EAAA,cAAA,OAAA,CAAA,CAAA,MAAA,EAAA,QAAA,GAAA,aAAA,GAAA,kBAAA,GAAA,QAAA,GAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EEggBf,YFhgBe,CEggBF,MFhgBE,EEggBM,KFhgBN,CAAA,EAAA,MAAA,EEigBhB,eFjgBgB,EAAA,OAAA,CAAA,EAAA,GAAA,EAAA,CAAA,EEmgBvB,SFngBuB"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/table-schema.ts","../src/types.ts","../src/query-builder.ts"],"sourcesContent":[],"mappings":"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CEkGyC,aFlGzC,CAAA,CAAA,GEmGpB,kBFnGoB,CEmGD,CFnGC,EEmGE,aFnGF,CAAA;AAOI,KE8Fd,oBF9Fc,CAAA,UE+Fd,eF/Fc,EAAA,kBEgGN,UFhGM,CEgGK,CFhGL,CAAA,EAAA,sBEiGF,gBFjGE,CAAA,GAAA,CEkGrB,IFlGqB,CEkGhB,UFlGgB,CEkGL,QFlGK,CEkGI,CFlGJ,EEkGO,SFlGP,CAAA,CAAA,EEkGoB,iBFlGpB,CEkGsC,aFlGtC,CAAA,CAAA,GEmGxB,kBFnGwB,CEmGL,CFnGK,EEmGF,aFnGE,CAAA,CAAA,EAAA;;;;;AAII,KEqGlB,WFrGkB,CAAA,UEsGlB,eFtGkB,EAAA,kBEuGV,UFvGU,CEuGC,CFvGD,CAAA,EAAA,sBEwGN,gBFxGM,EAAA,cAAA,OAAA,CAAA,GE0G1B,KF1G0B,SAAA,IAAA,GE2G1B,mBF3G0B,CE2GN,CF3GM,EE2GH,SF3GG,EE2GQ,aF3GR,CAAA,GE4G1B,oBF5G0B,CE4GL,CF5GK,EE4GF,SF5GE,EE4GS,aF5GT,CAAA;AAAsB,cE8GvC,UF9GuC,CAAA,UE+GxC,eF/GwC,EAAA,kBEgHhC,UFhHgC,CEgHrB,CFhHqB,CAAA,EAAA,UAAA;EAGnC,OAAA,EE8GM,MF9GN,CAAA,MAAA,EE8GqB,YF9GM,CAAA;CAAA,EAAA,sBEgHpB,gBFhHoB,EAAA,cAAA,OAAA,EAAA,IAAA,IAAA,CAAA,CAAA;mBAEV,SAAA;mBAAf,OAAA;EAAM,iBAAA,MAAA;EAGR,iBAAA,QAAA;EAA0B,QAAA,WAAA;aACX,CAAA,SAAA,EEiHA,SFjHA,EAAA,OAAA,EEkHF,YFlHE,CEkHW,UFlHX,CEkHsB,CFlHtB,CAAA,EEkH0B,KFlH1B,CAAA,EAAA,MAAA,EEmHH,CFnHG,EAAA,QAAA,EEoHD,QFpHC,CEoHQ,CFpHR,EEoHW,CFpHX,CAAA;KAAf,CAAA,CAAA,EE8HR,CF9HQ;EAAM,gBAAA,CAAA,OAAA,EAAA,GAAA,EAAA,CAAA,EEkIa,SFlIb;EAGN,gBAAA,CAAA,CAAA,EEmIK,SFnIL;EAUL,UAAA,CAAA,CAAA,EE6HI,SF7HO;EAAA,IAAA,UAAA,CAAA,CAAA,EEiIH,UFjIG,CEiIQ,CFjIR,EEiIW,KFjIX,EEiIkB,CFjIlB,CAAA;MAAW,KAAA,CAAA,CAAA,EAAA,OAAA;MAChC,IAAA,CAAA,CAAA,EAAA,MAAA;;;;AAKF;;AAAmC,cEuQtB,YFvQsB,CAAA,gBEwQjB,eFxQiB,EAAA,wBEyQT,UFzQS,CEyQE,CFzQF,CAAA,EAAA,UAAA,IAAA,EAAA,4BE2QL,gBF3QK,GAAA,CAAA,CAAA,EAAA,oBAAA,OAAA,GAAA,KAAA,CAAA,CAAA;mBAAuC,MAAA;mBAAZ,SAAA;mBAC5D,QAAA;UAA8B,OAAA;aAClB,CAAA,MAAA,EE6Qe,CF7Qf,EAAA,SAAA,EE8QkB,SF9QlB,EAAA,QAAA,CAAA,EE+QiB,QF/QjB,CE+Q0B,QF/Q1B,CE+QmC,CF/QnC,EE+QsC,SF/QtC,CAAA,EE+QkD,CF/QlD,CAAA,EAAA,OAAA,CAAA,EEgRO,YFhRP,CEgRoB,UFhRpB,CEgR+B,QFhR/B,CEgRwC,CFhRxC,EEgR2C,SFhR3C,CAAA,CAAA,EEgRwD,KFhRxD,CAAA;;;;EAIF,KAAA,CAAA,UAAY,EEmRR,UFnRQ,CEmRG,UFnRH,CEmRc,QFnRd,CEmRuB,CFnRvB,EEmR0B,SFnR1B,CAAA,CAAA,CAAA,CAAA,EEoRnB,YFpRmB,CEoRN,CFpRM,EEoRH,SFpRG,EEoRQ,CFpRR,EEoRW,aFpRX,EEoR0B,KFpR1B,CAAA;EAAA;;;EAAqC,MAAA,CAAA,GAAA,MAAA,EAAA,CAAA,CAAA,MEmStC,UFnSsC,CEmS3B,QFnS2B,CEmSlB,CFnSkB,EEmSf,SFnSe,CAAA,CAAA,GAAA,MAAA,CAAA,GAAA,GAAA,CAAA,EAAA,CAAA,EEoSxD,YFpSwD,CEoS3C,CFpS2C,EEoSxC,SFpSwC,EEoS7B,CFpS6B,EEoS1B,aFpS0B,EEoSX,KFpSW,CAAA;EAGjD;;;SAEa,CAAA,KAAA,EE2Sd,eF3Sc,CE2SE,QF3SF,CE2SW,CF3SX,EE2Sc,SF3Sd,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,KAAA,GAAA,MAAA,CAAA,EE6SpB,YF7SoB,CE6SP,CF7SO,EE6SJ,SF7SI,EE6SO,CF7SP,EE6SU,aF7SV,EE6SyB,KF7SzB,CAAA;;;;EACA,KAAA,CAAA,KAAA,EAAA,MAAA,CAAA,EEwTD,YFxTC,CEwTY,CFxTZ,EEwTe,SFxTf,EEwT0B,CFxT1B,EEwT6B,aFxT7B,EEwT4C,KFxT5C,CAAA;EAGb;;;QAEa,CAAA,KAAA,EAAA,MAAA,CAAA,EE2TA,YF3TA,CE2Ta,CF3Tb,EE2TgB,SF3ThB,EE2T2B,CF3T3B,EE2T8B,aF3T9B,EE2T6C,KF3T7C,CAAA;KAAb,CAAA,CAAA,EEgUH,YFhUG,CEgUU,CFhUV,EEgUa,SFhUb,EEgUwB,CFhUxB,EEgU2B,aFhU3B,EAAA,IAAA,CAAA;;;;;;SAEkB,CAAA,cE6UZ,kBF7UY,CE6UO,CF7UP,EE6UU,SF7UV,CAAA,CAAA,OAAA,CAAA,EAAA,YE8Ud,eF9Uc,CE8UE,CF9UF,EE8UK,SF9UL,EE8UgB,KF9UhB,CAAA,EAAA,uBE+UH,gBF/UG,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EEiVnB,KFjVmB,EAAA,qBAAA,CAAA,EEmVtB,wBFnVsB,CEmVG,CFnVH,EEmVM,GFnVN,CAAA,IAAA,CAAA,EEmViB,cFnVjB,CAAA,GEoVtB,GFpVsB,CAAA,aAAA,CAAA,EAAA,QAAA,CAAA,EEqVf,wBFrVe,CEqVU,CFrVV,EEqVa,GFrVb,CAAA,IAAA,CAAA,EEqVwB,cFrVxB,CAAA,CAAA,EEsVzB,YFtVyB,CEuV1B,CFvV0B,EEwV1B,SFxV0B,EEyV1B,CFzV0B,EE0V1B,aF1V0B,GAAA,QE2VlB,KF3VD,GAAA;IACP,EAAA,EE2VQ,GF3VR,CAAA,IAAA,CAAA;IAE+B,WAAA,EE0Vd,GF1Vc,CAAA,aAAA,CAAA;IAAG,aAAA,EE2Vf,cF3Ve;EAAG,CAAA,IE8VrC,KF9VU,CAAA;;;;YAAqE,CAAA,CAAA,EE4bnE,YF5bmE,CE4btD,UF5bsD,CE4b3C,QF5b2C,CE4blC,CF5bkC,EE4b/B,SF5b+B,CAAA,CAAA,EE4blB,KF5bkB,CAAA;;;;;OAE1C,CAAA,CAAA,EEkc9B,UFlc8B,CEkcnB,CFlcmB,EEkchB,SFlcgB,EEkcL,QFlcK,CEkcI,CFlcJ,EEkcO,SFlcP,CAAA,EEkcmB,aFlcnB,EEkckC,KFlclC,EEkcyC,CFlczC,CAAA;;;;;;;;;;AAGpC,iBEidW,WAAA,CFjdC,KAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;;;AAGY,iBEudb,gBAAA,CFvda,IAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AAAjB,iBE4dI,MAAA,CF5dJ,GAAA,EAAA,MAAA,EAAA,IAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;;;;;;AAQkB,iBE0jBd,qBF1jBc,CAAA,eE0jBuB,YF1jBvB,EAAA,cAAA,OAAA,CAAA,CAAA,MAAA,EAAA,QAAA,GAAA,aAAA,GAAA,kBAAA,GAAA,QAAA,GAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EE6jBnB,YF7jBmB,CE6jBN,MF7jBM,EE6jBE,KF7jBF,CAAA,EAAA,MAAA,EE8jBpB,eF9jBoB,EAAA,OAAA,CAAA,EAAA,GAAA,EAAA,CAAA,EEgkB3B,SFhkB2B"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,36 @@ let surrealdb = require("surrealdb");
|
|
|
3
3
|
|
|
4
4
|
//#region src/query-builder.ts
|
|
5
5
|
/**
|
|
6
|
+
* Reject a query clause that references an `-- @opaque` column.
|
|
7
|
+
*
|
|
8
|
+
* An `@opaque` value is synced down to the client but never held server-side, so
|
|
9
|
+
* the SSP has nothing to evaluate a predicate against. Left unchecked, the
|
|
10
|
+
* failure is silent and asymmetric: the local cache DOES hold the value, so the
|
|
11
|
+
* clause filters correctly on screen while the server-side membership set it is
|
|
12
|
+
* compared against was computed without it. The result reads as rows randomly
|
|
13
|
+
* appearing and vanishing rather than as an error, so fail loudly at the call
|
|
14
|
+
* site instead.
|
|
15
|
+
*
|
|
16
|
+
* `clause` names the offending API ('where', 'orderBy', …) for the message.
|
|
17
|
+
*/
|
|
18
|
+
function assertNotOpaque(schema, tableName, clause, fields) {
|
|
19
|
+
const table = schema.tables.find((t) => t.name === tableName);
|
|
20
|
+
if (!table) return;
|
|
21
|
+
for (const field of fields) if ((table.columns[field] ?? table.columns[field.split(".")[0]])?.opaque) throw new Error(`Cannot use '${field}' in ${clause}(): it is marked '-- @opaque' on ${tableName}, so the sync engine never stores its value and cannot evaluate it. Read the field from query results instead, or remove '-- @opaque' from the schema if you need to query on it.`);
|
|
22
|
+
}
|
|
23
|
+
/** Every column name a `where` clause touches, including `_or` branches. */
|
|
24
|
+
function whereFieldNames(conditions) {
|
|
25
|
+
const out = [];
|
|
26
|
+
for (const [key, value] of Object.entries(conditions)) {
|
|
27
|
+
if (key === "_or") {
|
|
28
|
+
for (const branch of value ?? []) out.push(...whereFieldNames(branch ?? {}));
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
out.push(key);
|
|
32
|
+
}
|
|
33
|
+
return out;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
6
36
|
* Parse a string ID to RecordId
|
|
7
37
|
* - If it's in the format "table:id", use it as-is
|
|
8
38
|
* - If it's just an ID without ":", prepend the table name
|
|
@@ -125,6 +155,7 @@ var SchemaAwareQueryModifierBuilderImpl = class {
|
|
|
125
155
|
this.options = {};
|
|
126
156
|
}
|
|
127
157
|
where(conditions) {
|
|
158
|
+
assertNotOpaque(this.schema, this.tableName, "where", whereFieldNames(conditions));
|
|
128
159
|
this.options.where = {
|
|
129
160
|
...this.options.where,
|
|
130
161
|
...conditions
|
|
@@ -145,6 +176,7 @@ var SchemaAwareQueryModifierBuilderImpl = class {
|
|
|
145
176
|
return this;
|
|
146
177
|
}
|
|
147
178
|
orderBy(field, direction = "asc") {
|
|
179
|
+
assertNotOpaque(this.schema, this.tableName, "orderBy", [field]);
|
|
148
180
|
this.options.orderBy = {
|
|
149
181
|
...this.options.orderBy,
|
|
150
182
|
[field]: direction
|
|
@@ -155,7 +187,10 @@ var SchemaAwareQueryModifierBuilderImpl = class {
|
|
|
155
187
|
if (!this.options.related) this.options.related = [];
|
|
156
188
|
if (!this.options.related.some((r) => (r.alias || r.relatedTable) === relatedField)) {
|
|
157
189
|
const relationship = this.schema.relationships.find((r) => r.from === this.tableName && r.field === relatedField);
|
|
158
|
-
if (!relationship)
|
|
190
|
+
if (!relationship) {
|
|
191
|
+
if (typeof console !== "undefined") console.warn(`[sp00ky] .related('${String(relatedField)}') skipped — no such relationship on '${this.tableName}' in the client schema`);
|
|
192
|
+
return this;
|
|
193
|
+
}
|
|
159
194
|
const relatedTable = relationship.to;
|
|
160
195
|
const cardinality = relationship.cardinality;
|
|
161
196
|
const foreignKeyField = cardinality === "many" ? this.tableName : relatedField;
|
|
@@ -188,6 +223,7 @@ var QueryBuilder = class QueryBuilder {
|
|
|
188
223
|
* Add additional where conditions
|
|
189
224
|
*/
|
|
190
225
|
where(conditions) {
|
|
226
|
+
assertNotOpaque(this.schema, this.tableName, "where", whereFieldNames(conditions));
|
|
191
227
|
this.options.where = {
|
|
192
228
|
...this.options.where,
|
|
193
229
|
...conditions
|
|
@@ -206,6 +242,7 @@ var QueryBuilder = class QueryBuilder {
|
|
|
206
242
|
* Add ordering to the query (only for non-live queries)
|
|
207
243
|
*/
|
|
208
244
|
orderBy(field, direction = "asc") {
|
|
245
|
+
assertNotOpaque(this.schema, this.tableName, "orderBy", [field]);
|
|
209
246
|
this.options.orderBy = {
|
|
210
247
|
...this.options.orderBy,
|
|
211
248
|
[field]: direction
|
|
@@ -241,7 +278,10 @@ var QueryBuilder = class QueryBuilder {
|
|
|
241
278
|
if (!this.options.related) this.options.related = [];
|
|
242
279
|
if (this.options.related.some((r) => (r.alias || r.relatedTable) === field)) return this;
|
|
243
280
|
const relationship = this.schema.relationships.find((r) => r.from === this.tableName && r.field === field);
|
|
244
|
-
if (!relationship)
|
|
281
|
+
if (!relationship) {
|
|
282
|
+
if (typeof console !== "undefined") console.warn(`[sp00ky] .related('${String(field)}') skipped — no such relationship on '${this.tableName}' in the client schema`);
|
|
283
|
+
return this;
|
|
284
|
+
}
|
|
245
285
|
let actualCardinality;
|
|
246
286
|
let actualModifier;
|
|
247
287
|
if (typeof modifierOrCardinality === "function") {
|
|
@@ -287,6 +327,26 @@ var QueryBuilder = class QueryBuilder {
|
|
|
287
327
|
return new FinalQuery(this.tableName, this.options, this.schema, this.executer);
|
|
288
328
|
}
|
|
289
329
|
};
|
|
330
|
+
/**
|
|
331
|
+
* The surql param name an `_or` branch condition binds under: the branch FIELD,
|
|
332
|
+
* a `__or` marker and the branch's position. The position alone makes it unique
|
|
333
|
+
* within the query; the field prefix is what lets a consumer type the value by
|
|
334
|
+
* looking the column up (see {@link baseFieldOfParam}). Non-identifier
|
|
335
|
+
* characters (a nested path like `database.owner`) are folded to `_` so the
|
|
336
|
+
* result is a legal param name.
|
|
337
|
+
*/
|
|
338
|
+
function orParamName(field, index) {
|
|
339
|
+
return `${field.replace(/[^A-Za-z0-9_]/g, "_")}__or${index}`;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Inverse of {@link orParamName}: the field a param name was built from, or the
|
|
343
|
+
* name itself when it is a plain top-level param (`field = $field`). Lets a
|
|
344
|
+
* consumer resolve `white__or0` back to the `white` column.
|
|
345
|
+
*/
|
|
346
|
+
function baseFieldOfParam(name) {
|
|
347
|
+
const m = /^(.+)__or\d+$/.exec(name);
|
|
348
|
+
return m ? m[1] : name;
|
|
349
|
+
}
|
|
290
350
|
function cyrb53(str, seed = 0) {
|
|
291
351
|
let h1 = 3735928559 ^ seed, h2 = 1103547991 ^ seed;
|
|
292
352
|
for (let i = 0, ch; i < str.length; i++) {
|
|
@@ -355,24 +415,31 @@ function buildQueryFromOptions(method, tableName, options, schema, patches) {
|
|
|
355
415
|
const vars = {};
|
|
356
416
|
if (parsedWhere && Object.keys(parsedWhere).length > 0) {
|
|
357
417
|
const conditions = [];
|
|
358
|
-
|
|
359
|
-
const varName = key;
|
|
418
|
+
const buildCondition = (field, value, varName) => {
|
|
360
419
|
if (value && typeof value === "object" && "_op" in value && "_val" in value) {
|
|
361
420
|
const { _op, _val, _swap } = value;
|
|
362
|
-
let rightSide
|
|
421
|
+
let rightSide;
|
|
363
422
|
if (typeof _val === "string" && _val.startsWith("$")) rightSide = _val;
|
|
364
423
|
else {
|
|
365
424
|
vars[varName] = _val;
|
|
366
425
|
rightSide = `$${varName}`;
|
|
367
426
|
}
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
427
|
+
return _swap ? `${rightSide} ${_op} ${field}` : `${field} ${_op} ${rightSide}`;
|
|
428
|
+
}
|
|
429
|
+
vars[varName] = value;
|
|
430
|
+
return `${field} = $${varName}`;
|
|
431
|
+
};
|
|
432
|
+
for (const [key, value] of Object.entries(parsedWhere)) {
|
|
433
|
+
if (key === "_or" && Array.isArray(value)) {
|
|
434
|
+
const orParts = [];
|
|
435
|
+
let i = 0;
|
|
436
|
+
for (const branch of value) if (branch && typeof branch === "object") for (const [bField, bVal] of Object.entries(branch)) orParts.push(buildCondition(bField, bVal, orParamName(bField, i++)));
|
|
437
|
+
if (orParts.length > 0) conditions.push(`(${orParts.join(" OR ")})`);
|
|
438
|
+
continue;
|
|
373
439
|
}
|
|
440
|
+
conditions.push(buildCondition(key, value, key));
|
|
374
441
|
}
|
|
375
|
-
query += ` WHERE ${conditions.join(" AND ")}`;
|
|
442
|
+
if (conditions.length > 0) query += ` WHERE ${conditions.join(" AND ")}`;
|
|
376
443
|
}
|
|
377
444
|
if (method === "UPDATE" && patches) query += ` PATCH ${JSON.stringify(patches)}`;
|
|
378
445
|
if (!isLiveQuery) {
|
|
@@ -387,8 +454,135 @@ function buildQueryFromOptions(method, tableName, options, schema, patches) {
|
|
|
387
454
|
return {
|
|
388
455
|
query,
|
|
389
456
|
hash: cyrb53(`${query}::${Object.entries(vars).map(([key, value]) => `${key}=${value}`).join("&")}`, 0),
|
|
390
|
-
vars: Object.keys(vars).length > 0 ? vars : void 0
|
|
457
|
+
vars: Object.keys(vars).length > 0 ? vars : void 0,
|
|
458
|
+
plan: method === "SELECT" ? buildQueryPlan(tableName, options, schema) : void 0
|
|
459
|
+
};
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Build the engine-neutral {@link QueryPlan} for a SELECT. Mirrors the string
|
|
463
|
+
* assembly in {@link buildQueryFromOptions} / {@link buildSubquery} exactly so a
|
|
464
|
+
* non-SurrealQL backend produces results identical to the SurrealQL path.
|
|
465
|
+
*/
|
|
466
|
+
function buildQueryPlan(tableName, options, schema) {
|
|
467
|
+
const plan = { table: tableName };
|
|
468
|
+
if (options.select && options.select.length > 0 && !options.select.includes("*")) plan.select = options.select.filter((f) => f !== "*");
|
|
469
|
+
const parsedWhere = options.where ? parseObjectIdsToRecordId(options.where, tableName) : void 0;
|
|
470
|
+
if (parsedWhere && Object.keys(parsedWhere).length > 0) {
|
|
471
|
+
const nodes = buildWhereNodes(parsedWhere, true);
|
|
472
|
+
if (nodes.length > 0) plan.where = nodes;
|
|
473
|
+
}
|
|
474
|
+
if (options.orderBy && Object.keys(options.orderBy).length > 0) plan.orderBy = Object.entries(options.orderBy).map(([field, direction]) => [field, direction]);
|
|
475
|
+
if (options.limit !== void 0) plan.limit = options.limit;
|
|
476
|
+
if (options.offset !== void 0) plan.offset = options.offset;
|
|
477
|
+
if (options.related && options.related.length > 0) plan.relations = options.related.map((rel) => buildRelationPlan(rel, schema));
|
|
478
|
+
return plan;
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Engine-neutral counterpart of {@link buildSubquery}. Resolves the same
|
|
482
|
+
* cardinality / foreign-key / nested-relation metadata but returns a structured
|
|
483
|
+
* {@link RelationPlan} instead of a SurrealQL subquery string.
|
|
484
|
+
*/
|
|
485
|
+
function buildRelationPlan(rel, schema) {
|
|
486
|
+
const { relatedTable, alias, modifier, cardinality } = rel;
|
|
487
|
+
const foreignKeyField = rel.foreignKeyField || alias || relatedTable;
|
|
488
|
+
const plan = {
|
|
489
|
+
alias: alias || relatedTable,
|
|
490
|
+
table: relatedTable,
|
|
491
|
+
cardinality,
|
|
492
|
+
foreignKeyField
|
|
493
|
+
};
|
|
494
|
+
if (modifier) {
|
|
495
|
+
const modifierBuilder = new SchemaAwareQueryModifierBuilderImpl(relatedTable, schema);
|
|
496
|
+
modifier(modifierBuilder);
|
|
497
|
+
const subOptions = modifierBuilder._getOptions();
|
|
498
|
+
if (subOptions.select && subOptions.select.length > 0 && !subOptions.select.includes("*")) plan.select = subOptions.select.filter((f) => f !== "*");
|
|
499
|
+
if (subOptions.where && Object.keys(subOptions.where).length > 0) {
|
|
500
|
+
const nodes = buildWhereNodes(parseObjectIdsToRecordId(subOptions.where, relatedTable));
|
|
501
|
+
if (nodes.length > 0) plan.where = nodes;
|
|
502
|
+
}
|
|
503
|
+
if (subOptions.orderBy && Object.keys(subOptions.orderBy).length > 0) plan.orderBy = Object.entries(subOptions.orderBy).map(([field, direction]) => [field, direction]);
|
|
504
|
+
if (subOptions.limit !== void 0) plan.limit = subOptions.limit;
|
|
505
|
+
if (subOptions.related && subOptions.related.length > 0) plan.relations = subOptions.related.map((nestedRel) => {
|
|
506
|
+
const relationship = schema.relationships.find((r) => r.from === relatedTable && r.field === nestedRel.alias);
|
|
507
|
+
if (relationship) {
|
|
508
|
+
const nestedForeignKeyField = relationship.cardinality === "many" ? relatedTable : nestedRel.alias;
|
|
509
|
+
return {
|
|
510
|
+
...nestedRel,
|
|
511
|
+
relatedTable: relationship.to,
|
|
512
|
+
cardinality: relationship.cardinality,
|
|
513
|
+
foreignKeyField: nestedForeignKeyField
|
|
514
|
+
};
|
|
515
|
+
}
|
|
516
|
+
return nestedRel;
|
|
517
|
+
}).map((nestedRel) => buildRelationPlan(nestedRel, schema));
|
|
518
|
+
}
|
|
519
|
+
if (cardinality === "one" && plan.limit === void 0) plan.limit = 1;
|
|
520
|
+
return plan;
|
|
521
|
+
}
|
|
522
|
+
/**
|
|
523
|
+
* Convert a parsed WHERE object (string IDs already → RecordId) into the
|
|
524
|
+
* engine-neutral {@link WhereNode}[] conjunction. Mirrors the `_or` / comparison
|
|
525
|
+
* / equality handling in {@link buildQueryFromOptions}. A `$`-prefixed `_val`
|
|
526
|
+
* becomes a `paramRef` (with the leading `$` stripped).
|
|
527
|
+
*/
|
|
528
|
+
/**
|
|
529
|
+
* @param slaveToParams When true, top-level plain/operator-literal comparisons
|
|
530
|
+
* ALSO carry a `paramRef` equal to the field name — the same var name
|
|
531
|
+
* `buildQueryFromOptions` binds the value under (`field = $field`). The
|
|
532
|
+
* engines then materialize by reading `params[field]` (falling back to the
|
|
533
|
+
* baked `value` when the param is absent), so a query's rows are slaved to
|
|
534
|
+
* its `params` (its identity) and can never come from a different query's
|
|
535
|
+
* baked plan. Only safe at the TOP LEVEL, where the field is a schema column
|
|
536
|
+
* that survives `parseQueryParams` and the caller passes `params`. NOT used
|
|
537
|
+
* for relation sub-wheres (rendered with a params-less ctx) or `_or` branches
|
|
538
|
+
* (bound under synthetic `white__or0` names) - those stay baked.
|
|
539
|
+
*/
|
|
540
|
+
function buildWhereNodes(parsedWhere, slaveToParams = false) {
|
|
541
|
+
const toComparison = (field, value, slave) => {
|
|
542
|
+
if (value && typeof value === "object" && "_op" in value && "_val" in value) {
|
|
543
|
+
const { _op, _val, _swap } = value;
|
|
544
|
+
if (typeof _val === "string" && _val.startsWith("$")) return {
|
|
545
|
+
field,
|
|
546
|
+
op: _op,
|
|
547
|
+
value: void 0,
|
|
548
|
+
paramRef: _val.slice(1),
|
|
549
|
+
swap: _swap
|
|
550
|
+
};
|
|
551
|
+
return slave ? {
|
|
552
|
+
field,
|
|
553
|
+
op: _op,
|
|
554
|
+
value: _val,
|
|
555
|
+
paramRef: field,
|
|
556
|
+
swap: _swap
|
|
557
|
+
} : {
|
|
558
|
+
field,
|
|
559
|
+
op: _op,
|
|
560
|
+
value: _val,
|
|
561
|
+
swap: _swap
|
|
562
|
+
};
|
|
563
|
+
}
|
|
564
|
+
return slave ? {
|
|
565
|
+
field,
|
|
566
|
+
op: "=",
|
|
567
|
+
value,
|
|
568
|
+
paramRef: field
|
|
569
|
+
} : {
|
|
570
|
+
field,
|
|
571
|
+
op: "=",
|
|
572
|
+
value
|
|
573
|
+
};
|
|
391
574
|
};
|
|
575
|
+
const nodes = [];
|
|
576
|
+
for (const [key, value] of Object.entries(parsedWhere)) {
|
|
577
|
+
if (key === "_or" && Array.isArray(value)) {
|
|
578
|
+
const or = [];
|
|
579
|
+
for (const branch of value) if (branch && typeof branch === "object") for (const [bField, bVal] of Object.entries(branch)) or.push(toComparison(bField, bVal, false));
|
|
580
|
+
if (or.length > 0) nodes.push({ or });
|
|
581
|
+
continue;
|
|
582
|
+
}
|
|
583
|
+
nodes.push(toComparison(key, value, slaveToParams));
|
|
584
|
+
}
|
|
585
|
+
return nodes;
|
|
392
586
|
}
|
|
393
587
|
/**
|
|
394
588
|
* Build a subquery for a related field
|
|
@@ -454,6 +648,8 @@ Object.defineProperty(exports, 'RecordId', {
|
|
|
454
648
|
return surrealdb.RecordId;
|
|
455
649
|
}
|
|
456
650
|
});
|
|
651
|
+
exports.baseFieldOfParam = baseFieldOfParam;
|
|
457
652
|
exports.buildQueryFromOptions = buildQueryFromOptions;
|
|
458
653
|
exports.cyrb53 = cyrb53;
|
|
654
|
+
exports.orParamName = orParamName;
|
|
459
655
|
//# sourceMappingURL=index.js.map
|