@spine-event-engine/core 2.0.0-snapshot.15 → 2.0.0-snapshot.18
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/README.md +22 -8
- package/REFERENCE.md +11 -0
- package/dist/codegen/index.d.ts +4 -0
- package/dist/codegen/index.d.ts.map +1 -1
- package/dist/codegen/index.js +2 -0
- package/dist/codegen/index.js.map +1 -1
- package/dist/index.d.ts +80 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +306 -3
- package/dist/index.js.map +1 -1
- package/dist/query/entity-query.d.ts +144 -17
- package/dist/query/entity-query.d.ts.map +1 -1
- package/dist/query/entity-query.js +368 -27
- package/dist/query/entity-query.js.map +1 -1
- package/dist/query/generated-entity-query.d.ts +197 -0
- package/dist/query/generated-entity-query.d.ts.map +1 -0
- package/dist/query/generated-entity-query.js +202 -0
- package/dist/query/generated-entity-query.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -11,16 +11,20 @@
|
|
|
11
11
|
* or implied. See the License for the specific language governing permissions and limitations under
|
|
12
12
|
* the License.
|
|
13
13
|
*/
|
|
14
|
-
import { clone, create, getOption, hasOption, ScalarType, toBinary, } from "@bufbuild/protobuf";
|
|
14
|
+
import { clone, create, fromBinary, getOption, hasOption, ScalarType, toBinary, } from "@bufbuild/protobuf";
|
|
15
15
|
import { BoolValueSchema, AnySchema, BytesValueSchema, DoubleValueSchema, FloatValueSchema, Int32ValueSchema, Int64ValueSchema, StringValueSchema, UInt32ValueSchema, UInt64ValueSchema, } from "@bufbuild/protobuf/wkt";
|
|
16
16
|
import { ActorContextSchema, VersionSchema, type_url_prefix, } from "@spine-event-engine/proto";
|
|
17
17
|
import { CompositeFilterSchema, CompositeFilter_CompositeOperator, FilterSchema, Filter_Operator, IdFilterSchema, OrderBySchema, OrderBy_Direction, QueryIdSchema, QuerySchema, ResponseFormatSchema, TargetFiltersSchema, TargetSchema, } from "@spine-event-engine/proto/client";
|
|
18
18
|
import { EntityColumn, } from "../entity/entity-column.js";
|
|
19
|
+
import { EntityFieldClassification } from "./entity-field-classification.js";
|
|
19
20
|
const maximumPredicateDepth = 64;
|
|
20
21
|
const maximumPredicateNodes = 10_000;
|
|
21
|
-
const
|
|
22
|
+
const queryHost = globalThis;
|
|
22
23
|
/**
|
|
23
24
|
* Builds a typed Entity query for the frozen Spine wire contract.
|
|
25
|
+
*
|
|
26
|
+
* @typeParam Schema Generated Entity state schema selected by the query.
|
|
27
|
+
* @typeParam Columns Registered columns for that state schema.
|
|
24
28
|
*/
|
|
25
29
|
export class EntityQueryBuilder {
|
|
26
30
|
#schema;
|
|
@@ -28,7 +32,6 @@ export class EntityQueryBuilder {
|
|
|
28
32
|
#columns;
|
|
29
33
|
#ids = [];
|
|
30
34
|
#predicates = [];
|
|
31
|
-
#mask = [];
|
|
32
35
|
#order = [];
|
|
33
36
|
#limit;
|
|
34
37
|
/**
|
|
@@ -51,15 +54,13 @@ export class EntityQueryBuilder {
|
|
|
51
54
|
if (ids.length === 0 || ids.some((id) => id === undefined)) {
|
|
52
55
|
throw new TypeError("Entity query ID filter must not be empty.");
|
|
53
56
|
}
|
|
54
|
-
if (this.#ids.length + ids.length > maximumEntityQueryIds) {
|
|
55
|
-
throw new TypeError(`Entity query ID filter may contain at most ${String(maximumEntityQueryIds)} identifiers.`);
|
|
56
|
-
}
|
|
57
57
|
this.#ids.push(...ids);
|
|
58
58
|
return this;
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
61
|
* Adds a typed predicate. Repeated calls are combined with `ALL`.
|
|
62
62
|
*
|
|
63
|
+
* @typeParam Predicate Predicate type checked against the registered columns.
|
|
63
64
|
* @param predicate Predicate owned by this builder's registered columns.
|
|
64
65
|
* @returns This builder.
|
|
65
66
|
*/
|
|
@@ -70,25 +71,10 @@ export class EntityQueryBuilder {
|
|
|
70
71
|
this.#predicates.push(predicate);
|
|
71
72
|
return this;
|
|
72
73
|
}
|
|
73
|
-
/**
|
|
74
|
-
* Adds top-level state fields returned by the server.
|
|
75
|
-
*
|
|
76
|
-
* @param paths Generated property names of state fields.
|
|
77
|
-
* @returns This builder.
|
|
78
|
-
*/
|
|
79
|
-
mask(...paths) {
|
|
80
|
-
for (const path of paths) {
|
|
81
|
-
const field = EntityQueryWire.findField(this.#schema, path);
|
|
82
|
-
if (field === undefined) {
|
|
83
|
-
throw new TypeError(`Entity query mask path "${path}" is not a state field.`);
|
|
84
|
-
}
|
|
85
|
-
this.#mask.push(field.name);
|
|
86
|
-
}
|
|
87
|
-
return this;
|
|
88
|
-
}
|
|
89
74
|
/**
|
|
90
75
|
* Adds one ordering clause in caller order.
|
|
91
76
|
*
|
|
77
|
+
* @typeParam Column Registered ordered column type.
|
|
92
78
|
* @param column Ordered column owned by this builder's Entity schema.
|
|
93
79
|
* @param direction Sort direction, ascending by default.
|
|
94
80
|
* @returns This builder.
|
|
@@ -157,9 +143,6 @@ export class EntityQueryBuilder {
|
|
|
157
143
|
: Object.freeze({ kind: "all", predicates: Object.freeze(all) });
|
|
158
144
|
return Object.freeze({
|
|
159
145
|
...(predicate === undefined ? {} : { predicate }),
|
|
160
|
-
...(this.#mask.length === 0
|
|
161
|
-
? {}
|
|
162
|
-
: { mask: Object.freeze({ paths: Object.freeze([...this.#mask]) }) }),
|
|
163
146
|
...(this.#order.length === 0
|
|
164
147
|
? {}
|
|
165
148
|
: {
|
|
@@ -187,12 +170,14 @@ export class EntityQueryBuilder {
|
|
|
187
170
|
filter: [...predicates],
|
|
188
171
|
});
|
|
189
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Builds wire ordering and limit settings when the query uses them.
|
|
175
|
+
*/
|
|
190
176
|
#format() {
|
|
191
|
-
if (this.#
|
|
177
|
+
if (this.#order.length === 0 && this.#limit === undefined) {
|
|
192
178
|
return undefined;
|
|
193
179
|
}
|
|
194
180
|
return create(ResponseFormatSchema, {
|
|
195
|
-
...(this.#mask.length === 0 ? {} : { fieldMask: { paths: [...this.#mask] } }),
|
|
196
181
|
orderBy: this.#order.map(({ column, direction }) => create(OrderBySchema, {
|
|
197
182
|
column: column.name,
|
|
198
183
|
direction: direction === "desc" ? OrderBy_Direction.DESCENDING : OrderBy_Direction.ASCENDING,
|
|
@@ -201,39 +186,257 @@ export class EntityQueryBuilder {
|
|
|
201
186
|
});
|
|
202
187
|
}
|
|
203
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Context-free Entity query that can be executed by different actor and tenant scopes.
|
|
191
|
+
*
|
|
192
|
+
* @typeParam Schema Generated state schema selected by this query.
|
|
193
|
+
* @typeParam Id Identifier type declared by the state's first field.
|
|
194
|
+
*/
|
|
195
|
+
export class EntityQueryDescription {
|
|
196
|
+
#wire;
|
|
197
|
+
#plan;
|
|
198
|
+
#schema;
|
|
199
|
+
/**
|
|
200
|
+
* Captures the compiled wire query and storage plan without execution context.
|
|
201
|
+
*
|
|
202
|
+
* @param schema Generated state schema selected by the query.
|
|
203
|
+
* @param wire Compiled wire query without actor context or request ID.
|
|
204
|
+
* @param plan Compiled storage-neutral query plan.
|
|
205
|
+
*/
|
|
206
|
+
constructor(schema, wire, plan) {
|
|
207
|
+
this.#schema = schema;
|
|
208
|
+
this.#wire = toBinary(QuerySchema, wire);
|
|
209
|
+
this.#plan = queryHost.structuredClone(plan);
|
|
210
|
+
Object.freeze(this);
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Returns the generated state schema selected by this query.
|
|
214
|
+
*
|
|
215
|
+
* @returns Generated state schema.
|
|
216
|
+
*/
|
|
217
|
+
get schema() {
|
|
218
|
+
return this.#schema;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Creates a fresh wire query without an actor or tenant context.
|
|
222
|
+
*
|
|
223
|
+
* @returns Wire query with a new request ID.
|
|
224
|
+
*/
|
|
225
|
+
build() {
|
|
226
|
+
const wire = fromBinary(QuerySchema, this.#wire);
|
|
227
|
+
wire.id = create(QueryIdSchema, { value: EntityQueryWire.nextId() });
|
|
228
|
+
return wire;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Returns a detached storage-neutral plan for local execution.
|
|
232
|
+
*
|
|
233
|
+
* @returns Independent copy of the compiled plan.
|
|
234
|
+
*/
|
|
235
|
+
buildPlan() {
|
|
236
|
+
return queryHost.structuredClone(this.#plan);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Builds an Entity query without selecting an actor or tenant.
|
|
241
|
+
*
|
|
242
|
+
* @typeParam Schema Generated Entity state schema.
|
|
243
|
+
* @typeParam Columns Registered columns for that schema.
|
|
244
|
+
* @typeParam Name Local name of the canonical first identifier field.
|
|
245
|
+
*/
|
|
246
|
+
export class EntityQueryDraft {
|
|
247
|
+
#schema;
|
|
248
|
+
#builder;
|
|
249
|
+
/**
|
|
250
|
+
* Creates a context-free draft for one registered Entity state.
|
|
251
|
+
*
|
|
252
|
+
* @param input State schema, columns, and canonical identifier field name.
|
|
253
|
+
*/
|
|
254
|
+
constructor(input) {
|
|
255
|
+
if (input.schema.fields[0]?.localName !== input.idField) {
|
|
256
|
+
throw new TypeError("Entity query ID field must be the state's first declared field.");
|
|
257
|
+
}
|
|
258
|
+
this.#schema = input.schema;
|
|
259
|
+
this.#builder = new EntityQueryBuilder({
|
|
260
|
+
schema: input.schema,
|
|
261
|
+
columns: input.columns,
|
|
262
|
+
context: create(ActorContextSchema),
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Adds typed identifiers to the query target.
|
|
267
|
+
*
|
|
268
|
+
* @param ids Identifier values declared by the first state field.
|
|
269
|
+
* @returns This draft.
|
|
270
|
+
*/
|
|
271
|
+
byId(...ids) {
|
|
272
|
+
this.#builder.byId(...ids);
|
|
273
|
+
return this;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Adds a typed comparison or group predicate.
|
|
277
|
+
*
|
|
278
|
+
* @typeParam Predicate Predicate checked against the registered columns.
|
|
279
|
+
* @param predicate Predicate to append with conjunction.
|
|
280
|
+
* @returns This draft.
|
|
281
|
+
*/
|
|
282
|
+
where(predicate) {
|
|
283
|
+
this.#builder.where(predicate);
|
|
284
|
+
return this;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Adds ordering by a registered ordered column.
|
|
288
|
+
*
|
|
289
|
+
* @typeParam Column Registered ordered column type.
|
|
290
|
+
* @param column Ordered column.
|
|
291
|
+
* @param direction Ascending or descending direction.
|
|
292
|
+
* @returns This draft.
|
|
293
|
+
*/
|
|
294
|
+
orderBy(column, direction = "asc") {
|
|
295
|
+
this.#builder.orderBy(column, direction);
|
|
296
|
+
return this;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Sets a positive result limit that requires ordering.
|
|
300
|
+
*
|
|
301
|
+
* @param value Maximum number of matching states.
|
|
302
|
+
* @returns This draft.
|
|
303
|
+
*/
|
|
304
|
+
limit(value) {
|
|
305
|
+
this.#builder.limit(value);
|
|
306
|
+
return this;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Builds an independent query description for later execution.
|
|
310
|
+
*
|
|
311
|
+
* @returns Context-free query value with detached wire and plan copies.
|
|
312
|
+
*/
|
|
313
|
+
build() {
|
|
314
|
+
const wire = this.#builder.build();
|
|
315
|
+
wire.context = undefined;
|
|
316
|
+
wire.id = undefined;
|
|
317
|
+
return new EntityQueryDescription(this.#schema, wire, this.#builder.buildPlan());
|
|
318
|
+
}
|
|
319
|
+
}
|
|
204
320
|
/**
|
|
205
321
|
* Creates typed predicates and builders for Entity queries.
|
|
206
322
|
*/
|
|
207
323
|
export const EntityQuery = Object.freeze({
|
|
324
|
+
/**
|
|
325
|
+
* Creates a validated equality comparison for a registered column.
|
|
326
|
+
*
|
|
327
|
+
* @typeParam Column Column type used by the comparison.
|
|
328
|
+
* @param column Column to compare.
|
|
329
|
+
* @param value Value to match.
|
|
330
|
+
* @returns Immutable equality predicate.
|
|
331
|
+
*/
|
|
208
332
|
eq(column, value) {
|
|
209
333
|
return EntityQueryCompiler.comparison(column, "equal", value);
|
|
210
334
|
},
|
|
335
|
+
/**
|
|
336
|
+
* Creates a validated exclusive lower-bound comparison.
|
|
337
|
+
*
|
|
338
|
+
* @typeParam Column Ordered column type used by the comparison.
|
|
339
|
+
* @param column Ordered column to compare.
|
|
340
|
+
* @param value Exclusive lower bound.
|
|
341
|
+
* @returns Immutable greater-than predicate.
|
|
342
|
+
*/
|
|
211
343
|
gt(column, value) {
|
|
212
344
|
return EntityQueryCompiler.comparison(column, "greaterThan", value);
|
|
213
345
|
},
|
|
346
|
+
/**
|
|
347
|
+
* Creates a validated exclusive upper-bound comparison.
|
|
348
|
+
*
|
|
349
|
+
* @typeParam Column Ordered column type used by the comparison.
|
|
350
|
+
* @param column Ordered column to compare.
|
|
351
|
+
* @param value Exclusive upper bound.
|
|
352
|
+
* @returns Immutable less-than predicate.
|
|
353
|
+
*/
|
|
214
354
|
lt(column, value) {
|
|
215
355
|
return EntityQueryCompiler.comparison(column, "lessThan", value);
|
|
216
356
|
},
|
|
357
|
+
/**
|
|
358
|
+
* Creates a validated inclusive lower-bound comparison.
|
|
359
|
+
*
|
|
360
|
+
* @typeParam Column Ordered column type used by the comparison.
|
|
361
|
+
* @param column Ordered column to compare.
|
|
362
|
+
* @param value Inclusive lower bound.
|
|
363
|
+
* @returns Immutable greater-or-equal predicate.
|
|
364
|
+
*/
|
|
217
365
|
ge(column, value) {
|
|
218
366
|
return EntityQueryCompiler.comparison(column, "greaterOrEqual", value);
|
|
219
367
|
},
|
|
368
|
+
/**
|
|
369
|
+
* Creates a validated inclusive upper-bound comparison.
|
|
370
|
+
*
|
|
371
|
+
* @typeParam Column Ordered column type used by the comparison.
|
|
372
|
+
* @param column Ordered column to compare.
|
|
373
|
+
* @param value Inclusive upper bound.
|
|
374
|
+
* @returns Immutable less-or-equal predicate.
|
|
375
|
+
*/
|
|
220
376
|
le(column, value) {
|
|
221
377
|
return EntityQueryCompiler.comparison(column, "lessOrEqual", value);
|
|
222
378
|
},
|
|
379
|
+
/**
|
|
380
|
+
* Combines a required predicate and the remaining predicates with conjunction.
|
|
381
|
+
*
|
|
382
|
+
* @typeParam First Type of the required first predicate.
|
|
383
|
+
* @typeParam Rest Tuple of additional predicate types.
|
|
384
|
+
* @param first Required first predicate.
|
|
385
|
+
* @param rest Additional predicates in caller order.
|
|
386
|
+
* @returns Immutable conjunction group.
|
|
387
|
+
*/
|
|
223
388
|
all(first, ...rest) {
|
|
224
389
|
return EntityQueryCompiler.group("all", first, rest);
|
|
225
390
|
},
|
|
391
|
+
/**
|
|
392
|
+
* Combines a required predicate and the remaining predicates with disjunction.
|
|
393
|
+
*
|
|
394
|
+
* @typeParam First Type of the required first predicate.
|
|
395
|
+
* @typeParam Rest Tuple of additional predicate types.
|
|
396
|
+
* @param first Required first predicate.
|
|
397
|
+
* @param rest Additional predicates in caller order.
|
|
398
|
+
* @returns Immutable disjunction group.
|
|
399
|
+
*/
|
|
226
400
|
either(first, ...rest) {
|
|
227
401
|
return EntityQueryCompiler.group("either", first, rest);
|
|
228
402
|
},
|
|
403
|
+
/**
|
|
404
|
+
* Creates a query builder bound to a state schema, its columns, and actor context.
|
|
405
|
+
*
|
|
406
|
+
* @typeParam Schema Generated Entity state schema.
|
|
407
|
+
* @typeParam Columns Registered columns for that schema.
|
|
408
|
+
* @param input Schema, columns, and actor context for the query.
|
|
409
|
+
* @returns A mutable typed query builder.
|
|
410
|
+
*/
|
|
229
411
|
select(input) {
|
|
230
412
|
return new EntityQueryBuilder(input);
|
|
231
413
|
},
|
|
414
|
+
/**
|
|
415
|
+
* Creates a context-free draft bound to the state's first identifier field.
|
|
416
|
+
*
|
|
417
|
+
* @typeParam Schema Generated Entity state schema.
|
|
418
|
+
* @typeParam Columns Registered columns for that schema.
|
|
419
|
+
* @typeParam Name Local name of the state's first identifier field.
|
|
420
|
+
* @param input State schema, columns, and canonical identifier field name.
|
|
421
|
+
* @returns New context-free query draft.
|
|
422
|
+
*/
|
|
423
|
+
describe(input) {
|
|
424
|
+
return new EntityQueryDraft(input);
|
|
425
|
+
},
|
|
232
426
|
});
|
|
233
427
|
/**
|
|
234
428
|
* Internal compiler for predicates, descriptors, and wire query messages.
|
|
235
429
|
*/
|
|
236
430
|
const EntityQueryCompiler = Object.freeze({
|
|
431
|
+
/**
|
|
432
|
+
* Validates predicate graphs and compiles them to storage-neutral plan nodes.
|
|
433
|
+
*
|
|
434
|
+
* @typeParam Schema Generated Entity state schema.
|
|
435
|
+
* @param roots Top-level predicates in query order.
|
|
436
|
+
* @param schema State schema selected by the query.
|
|
437
|
+
* @param columns Registered columns allowed in comparisons.
|
|
438
|
+
* @returns Validated immutable plan predicates.
|
|
439
|
+
*/
|
|
237
440
|
compilePlanGroups(roots, schema, columns) {
|
|
238
441
|
// Reuse the iterative wire traversal as the single validation boundary. The
|
|
239
442
|
// storage plan has the same predicate graph but must not recurse before
|
|
@@ -241,6 +444,15 @@ const EntityQueryCompiler = Object.freeze({
|
|
|
241
444
|
EntityQueryCompiler.compileGroups(roots, schema, columns);
|
|
242
445
|
return roots.map((predicate) => EntityQueryCompiler.compilePlanPredicate(predicate, schema, columns));
|
|
243
446
|
},
|
|
447
|
+
/**
|
|
448
|
+
* Converts a validated predicate tree to a storage-neutral plan node.
|
|
449
|
+
*
|
|
450
|
+
* @typeParam Schema Generated Entity state schema.
|
|
451
|
+
* @param value Predicate tree to convert.
|
|
452
|
+
* @param schema State schema selected by the query.
|
|
453
|
+
* @param columns Registered columns allowed in comparisons.
|
|
454
|
+
* @returns Immutable comparison or logical group plan.
|
|
455
|
+
*/
|
|
244
456
|
compilePlanPredicate(value, schema, columns) {
|
|
245
457
|
const predicate = EntityQueryWire.requirePredicate(value);
|
|
246
458
|
if (predicate.kind === "comparison") {
|
|
@@ -261,6 +473,15 @@ const EntityQueryCompiler = Object.freeze({
|
|
|
261
473
|
predicates: Object.freeze(predicate.predicates.map((child) => EntityQueryCompiler.compilePlanPredicate(child, schema, columns))),
|
|
262
474
|
});
|
|
263
475
|
},
|
|
476
|
+
/**
|
|
477
|
+
* Validates a comparison operator and value before freezing its predicate.
|
|
478
|
+
*
|
|
479
|
+
* @typeParam Column Column type used by the comparison.
|
|
480
|
+
* @param column Column that supports the selected operator.
|
|
481
|
+
* @param operator Comparison supported by the column.
|
|
482
|
+
* @param value Typed comparison value.
|
|
483
|
+
* @returns Immutable comparison predicate.
|
|
484
|
+
*/
|
|
264
485
|
comparison(column, operator, value) {
|
|
265
486
|
if (!column.operators.includes(operator)) {
|
|
266
487
|
throw new TypeError(`Entity column "${column.name}" does not support ${operator}.`);
|
|
@@ -268,12 +489,31 @@ const EntityQueryCompiler = Object.freeze({
|
|
|
268
489
|
EntityQueryWire.requireValue(column, value);
|
|
269
490
|
return Object.freeze({ kind: "comparison", column, operator, value });
|
|
270
491
|
},
|
|
492
|
+
/**
|
|
493
|
+
* Builds an immutable conjunction or disjunction in caller order.
|
|
494
|
+
*
|
|
495
|
+
* @typeParam First Type of the required first predicate.
|
|
496
|
+
* @typeParam Rest Tuple of additional predicate types.
|
|
497
|
+
* @param kind Logical operation for the group.
|
|
498
|
+
* @param first Required first predicate.
|
|
499
|
+
* @param rest Additional predicates.
|
|
500
|
+
* @returns Immutable typed predicate group.
|
|
501
|
+
*/
|
|
271
502
|
group(kind, first, rest) {
|
|
272
503
|
return Object.freeze({
|
|
273
504
|
kind,
|
|
274
505
|
predicates: Object.freeze([first, ...rest]),
|
|
275
506
|
});
|
|
276
507
|
},
|
|
508
|
+
/**
|
|
509
|
+
* Validates a predicate graph and encodes it as wire composite filters.
|
|
510
|
+
*
|
|
511
|
+
* @typeParam Schema Generated Entity state schema.
|
|
512
|
+
* @param roots Top-level predicates in query order.
|
|
513
|
+
* @param schema State schema selected by the query.
|
|
514
|
+
* @param columns Registered columns allowed in comparisons.
|
|
515
|
+
* @returns Composite filters for the wire query.
|
|
516
|
+
*/
|
|
277
517
|
compileGroups(roots, schema, columns) {
|
|
278
518
|
const compiled = new WeakMap();
|
|
279
519
|
const seen = new WeakSet();
|
|
@@ -365,6 +605,12 @@ const EntityQueryCompiler = Object.freeze({
|
|
|
365
605
|
* Validates and compiles Entity query details.
|
|
366
606
|
*/
|
|
367
607
|
const EntityQueryWire = Object.freeze({
|
|
608
|
+
/**
|
|
609
|
+
* Checks the shape and kind of a predicate supplied at runtime.
|
|
610
|
+
*
|
|
611
|
+
* @param value Value to validate as a predicate.
|
|
612
|
+
* @returns Validated comparison or group predicate.
|
|
613
|
+
*/
|
|
368
614
|
requirePredicate(value) {
|
|
369
615
|
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
370
616
|
throw new TypeError("Entity query predicate must be an object.");
|
|
@@ -384,6 +630,12 @@ const EntityQueryWire = Object.freeze({
|
|
|
384
630
|
}
|
|
385
631
|
return predicate;
|
|
386
632
|
},
|
|
633
|
+
/**
|
|
634
|
+
* Encodes a leaf comparison as a wire filter.
|
|
635
|
+
*
|
|
636
|
+
* @param predicate Validated column comparison.
|
|
637
|
+
* @returns Wire filter with packed value and operator.
|
|
638
|
+
*/
|
|
387
639
|
compileComparison(predicate) {
|
|
388
640
|
return create(FilterSchema, {
|
|
389
641
|
fieldPath: { fieldName: [predicate.column.name] },
|
|
@@ -391,6 +643,12 @@ const EntityQueryWire = Object.freeze({
|
|
|
391
643
|
operator: EntityQueryWire.wireOperator(predicate.operator),
|
|
392
644
|
});
|
|
393
645
|
},
|
|
646
|
+
/**
|
|
647
|
+
* Maps a supported column comparison to its wire enum value.
|
|
648
|
+
*
|
|
649
|
+
* @param operator Comparison operator to encode.
|
|
650
|
+
* @returns Matching wire filter operator.
|
|
651
|
+
*/
|
|
394
652
|
wireOperator(operator) {
|
|
395
653
|
switch (operator) {
|
|
396
654
|
case "equal":
|
|
@@ -407,6 +665,13 @@ const EntityQueryWire = Object.freeze({
|
|
|
407
665
|
throw new TypeError("Entity query comparison operator is not recognized.");
|
|
408
666
|
}
|
|
409
667
|
},
|
|
668
|
+
/**
|
|
669
|
+
* Packs a system or application column value into a wire Any message.
|
|
670
|
+
*
|
|
671
|
+
* @param column Column whose value is being encoded.
|
|
672
|
+
* @param value Typed comparison value.
|
|
673
|
+
* @returns Packed wire value for the column.
|
|
674
|
+
*/
|
|
410
675
|
packColumn(column, value) {
|
|
411
676
|
if (column.source === "system") {
|
|
412
677
|
if (column.name === "version")
|
|
@@ -418,9 +683,17 @@ const EntityQueryWire = Object.freeze({
|
|
|
418
683
|
}
|
|
419
684
|
return EntityQueryWire.packField(column.descriptor, value);
|
|
420
685
|
},
|
|
686
|
+
/**
|
|
687
|
+
* Packs a descriptor field value using its message, enum, or scalar wrapper.
|
|
688
|
+
*
|
|
689
|
+
* @param field Descriptor for the compared state field.
|
|
690
|
+
* @param value Field value to encode.
|
|
691
|
+
* @returns Packed wire value for the field.
|
|
692
|
+
*/
|
|
421
693
|
packField(field, value) {
|
|
422
694
|
if (field === undefined)
|
|
423
695
|
throw new TypeError("Entity query field descriptor is required.");
|
|
696
|
+
EntityQueryWire.requireFieldValue(field, value);
|
|
424
697
|
if (field.fieldKind === "message") {
|
|
425
698
|
return EntityQueryWire.packMessage(field.message, value);
|
|
426
699
|
}
|
|
@@ -432,6 +705,34 @@ const EntityQueryWire = Object.freeze({
|
|
|
432
705
|
const schema = EntityQueryWire.scalarSchema(field.scalar);
|
|
433
706
|
return EntityQueryWire.packMessage(schema, create(schema, { value }));
|
|
434
707
|
},
|
|
708
|
+
/**
|
|
709
|
+
* Checks an ID or column operand against its declared Protobuf field kind.
|
|
710
|
+
*
|
|
711
|
+
* @param field Declared state field used by the query.
|
|
712
|
+
* @param value Operand to validate before wire packing.
|
|
713
|
+
*/
|
|
714
|
+
requireFieldValue(field, value) {
|
|
715
|
+
const facts = EntityFieldClassification.classify(field);
|
|
716
|
+
if (!facts.supported)
|
|
717
|
+
throw new TypeError(`Entity query field "${field.name}" is unsupported.`);
|
|
718
|
+
const valid = facts.valueKind === "message"
|
|
719
|
+
? typeof value === "object" &&
|
|
720
|
+
value !== null &&
|
|
721
|
+
Reflect.get(value, "$typeName") === facts.messageType
|
|
722
|
+
: facts.valueKind === "bytes"
|
|
723
|
+
? value instanceof Uint8Array
|
|
724
|
+
: facts.valueKind === "enum" || facts.valueKind === "number"
|
|
725
|
+
? typeof value === "number" && Number.isFinite(value)
|
|
726
|
+
: typeof value === facts.valueKind;
|
|
727
|
+
if (!valid)
|
|
728
|
+
throw new TypeError(`Entity query value for "${field.name}" has the wrong type.`);
|
|
729
|
+
},
|
|
730
|
+
/**
|
|
731
|
+
* Returns the Protobuf wrapper schema for a scalar field type.
|
|
732
|
+
*
|
|
733
|
+
* @param scalar Protobuf scalar type of the field.
|
|
734
|
+
* @returns Wrapper schema used for its query value.
|
|
735
|
+
*/
|
|
435
736
|
scalarSchema(scalar) {
|
|
436
737
|
switch (scalar) {
|
|
437
738
|
case ScalarType.BOOL:
|
|
@@ -458,12 +759,26 @@ const EntityQueryWire = Object.freeze({
|
|
|
458
759
|
return Int32ValueSchema;
|
|
459
760
|
}
|
|
460
761
|
},
|
|
762
|
+
/**
|
|
763
|
+
* Verifies that a column is registered for the selected state schema.
|
|
764
|
+
*
|
|
765
|
+
* @typeParam Schema Generated Entity state schema.
|
|
766
|
+
* @param schema State schema selected by the query.
|
|
767
|
+
* @param columns Registered columns for that schema.
|
|
768
|
+
* @param column Column referenced by a predicate or order clause.
|
|
769
|
+
*/
|
|
461
770
|
requireOwnedColumn(schema, columns, column) {
|
|
462
771
|
if (column.schema !== schema ||
|
|
463
772
|
!Object.values(columns).some((candidate) => candidate === column)) {
|
|
464
773
|
throw new TypeError("Entity query column does not belong to the selected target.");
|
|
465
774
|
}
|
|
466
775
|
},
|
|
776
|
+
/**
|
|
777
|
+
* Validates a comparison value against its column's declared value kind.
|
|
778
|
+
*
|
|
779
|
+
* @param column Column that declares the required value kind.
|
|
780
|
+
* @param value Comparison value to validate.
|
|
781
|
+
*/
|
|
467
782
|
requireValue(column, value) {
|
|
468
783
|
const valid = value !== undefined &&
|
|
469
784
|
(column.valueKind === "message"
|
|
@@ -478,18 +793,44 @@ const EntityQueryWire = Object.freeze({
|
|
|
478
793
|
if (!valid)
|
|
479
794
|
throw new TypeError(`Entity query value for "${column.name}" has the wrong type.`);
|
|
480
795
|
},
|
|
796
|
+
/**
|
|
797
|
+
* Finds a generated field by wire or local name.
|
|
798
|
+
*
|
|
799
|
+
* @param schema Message schema to search.
|
|
800
|
+
* @param name Wire or local field name.
|
|
801
|
+
* @returns Matching field descriptor, if present.
|
|
802
|
+
*/
|
|
481
803
|
findField(schema, name) {
|
|
482
804
|
return schema.fields.find((field) => field.name === name || field.localName === name);
|
|
483
805
|
},
|
|
806
|
+
/**
|
|
807
|
+
* Creates a time-prefixed random identifier for a wire query.
|
|
808
|
+
*
|
|
809
|
+
* @returns New query ID string.
|
|
810
|
+
*/
|
|
484
811
|
nextId() {
|
|
485
812
|
return `query-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
|
|
486
813
|
},
|
|
814
|
+
/**
|
|
815
|
+
* Builds a type URL from a schema's configured prefix and type name.
|
|
816
|
+
*
|
|
817
|
+
* @param schema Message schema whose URL is required.
|
|
818
|
+
* @returns Fully qualified Protobuf type URL.
|
|
819
|
+
*/
|
|
487
820
|
typeUrl(schema) {
|
|
488
821
|
const prefix = hasOption(schema.file, type_url_prefix)
|
|
489
822
|
? getOption(schema.file, type_url_prefix)
|
|
490
823
|
: "type.googleapis.com";
|
|
491
824
|
return `${prefix.replace(/\/+$/u, "")}/${schema.typeName}`;
|
|
492
825
|
},
|
|
826
|
+
/**
|
|
827
|
+
* Serializes a message value into a wire Any without unknown fields.
|
|
828
|
+
*
|
|
829
|
+
* @typeParam Schema Generated schema of the message value.
|
|
830
|
+
* @param schema Schema used to serialize the value.
|
|
831
|
+
* @param value Message value matching the schema.
|
|
832
|
+
* @returns Any message containing the type URL and binary value.
|
|
833
|
+
*/
|
|
493
834
|
packMessage(schema, value) {
|
|
494
835
|
return create(AnySchema, {
|
|
495
836
|
typeUrl: EntityQueryWire.typeUrl(schema),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-query.js","sourceRoot":"","sources":["../../src/query/entity-query.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entity-query.js","sourceRoot":"","sources":["../../src/query/entity-query.ts"],"names":[],"mappings":"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"}
|