@effect-dynamodb/language-service 1.36.1 → 1.37.0

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.
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZORDER_KEY_PLACEHOLDER = void 0;
3
4
  exports.buildParams = buildParams;
5
+ const EntityResolver_1 = require("./EntityResolver");
4
6
  function buildParams(op) {
5
7
  const { entity, type } = op;
6
8
  switch (type) {
@@ -106,7 +108,16 @@ function buildQueryParams(entity, indexName, args) {
106
108
  names["#pk"] = index.pk.field;
107
109
  values[":pk"] = pkValue;
108
110
  let keyCondition = "#pk = :pk";
109
- if (skPrefix) {
111
+ // Mirrors `KeyComposer.composeSortKeyCondition`: a complete key is an exact
112
+ // `=` — `begins_with` on it would also match longer values (`seq: 3`
113
+ // matching 3.14) — and a partial prefix a terminated `begins_with`.
114
+ const pinned = (0, EntityResolver_1.isZOrderHalf)(index.sk) ? 0 : availableSkSlots(index, args).length;
115
+ if (skPrefix && pinned > 0 && pinned === index.sk.composite.length) {
116
+ names["#sk"] = index.sk.field;
117
+ values[":sk"] = skPrefix;
118
+ keyCondition += " AND #sk = :sk";
119
+ }
120
+ else if (skPrefix) {
110
121
  names["#sk"] = index.sk.field;
111
122
  values[":skPrefix"] = skPrefix;
112
123
  keyCondition += " AND begins_with(#sk, :skPrefix)";
@@ -236,13 +247,61 @@ function serializeValue(value) {
236
247
  if (typeof value === "string")
237
248
  return value;
238
249
  if (typeof value === "number")
239
- return String(value).padStart(16, "0");
250
+ return encodeNumber(value);
240
251
  if (typeof value === "bigint")
241
- return String(value).padStart(38, "0");
252
+ return encodeBigInt(value);
242
253
  if (typeof value === "boolean")
243
254
  return value ? "true" : "false";
244
255
  return String(value);
245
256
  }
257
+ // Mirrors `@effect-dynamodb/schema/internal/NumericKey.ts`, which documents the
258
+ // format: numeric key text that sorts in numeric order, keeping the zero-padded
259
+ // text of a non-negative integer below the pad width. A hover never throws, so
260
+ // what the library refuses (`NaN`, a bigint past 1,000 digits) is shown as is.
261
+ /** `x = 0.<digits> × 10^point` for the shortest round-trip decimal of positive `x`. */
262
+ function decimalOf(x) {
263
+ const [mantissa = "", exponent = "0"] = String(x).split("e");
264
+ const [int = "", frac = ""] = mantissa.split(".");
265
+ const all = `${int}${frac}`;
266
+ const significant = all.replace(/^0+/, "");
267
+ return {
268
+ digits: significant.replace(/0+$/, ""),
269
+ point: int.length + Number(exponent) - (all.length - significant.length),
270
+ };
271
+ }
272
+ function magnitude(digits, point, width) {
273
+ if (point > width)
274
+ return `:${String(point - 1).padStart(3, "0")}${digits}`;
275
+ const int = point <= 0 ? "" : digits.slice(0, point).padEnd(point, "0");
276
+ const frac = `${"0".repeat(Math.max(0, -point))}${digits.slice(Math.max(0, point))}`;
277
+ return `${int.padStart(width, "0")}${frac === "" ? "" : `.${frac}`}`;
278
+ }
279
+ function negate(text) {
280
+ const complement = (t) => t.replace(/[0-9]/g, (digit) => String(9 - Number(digit)));
281
+ return text.startsWith(":") ? `-*${complement(text.slice(1))}:` : `-${complement(text)}:`;
282
+ }
283
+ function encodeNumber(n) {
284
+ if (Number.isNaN(n))
285
+ return String(n);
286
+ if (n === Number.POSITIVE_INFINITY)
287
+ return ";";
288
+ if (n === Number.NEGATIVE_INFINITY)
289
+ return "-)";
290
+ if (n === 0)
291
+ return "0".repeat(16);
292
+ const { digits, point } = decimalOf(Math.abs(n));
293
+ const text = magnitude(digits, point, 16);
294
+ return n < 0 ? negate(text) : text;
295
+ }
296
+ function encodeBigInt(n) {
297
+ if (n === 0n)
298
+ return "0".repeat(38);
299
+ const abs = (n < 0n ? -n : n).toString();
300
+ if (abs.length > 1000)
301
+ return String(n);
302
+ const text = magnitude(abs.replace(/0+$/, ""), abs.length, 38);
303
+ return n < 0n ? negate(text) : text;
304
+ }
246
305
  function formatComposites(slots, casing) {
247
306
  return slots.map((slot) => `${applyCasing(slot.name, casing)}_${slot.placeholder ? slot.value : applyCasing(slot.value, casing)}`);
248
307
  }
@@ -274,8 +333,28 @@ function composeIsolatedSortKey(schema, entityType, entityVersion, slots, casing
274
333
  ...formatComposites(slots, effectiveCasing),
275
334
  ].join("#");
276
335
  }
277
- function composeSkFromSlots(schema, entityType, index, slots) {
336
+ /**
337
+ * Mirrors `KeyComposer.sortKeyText`: a sort key composite's text cased, then
338
+ * each code point U+0000–U+0025 escaped as `%` and two hex digits (lower case
339
+ * under `"lowercase"` casing).
340
+ */
341
+ function sortKeyText(text, casing) {
342
+ let escaped = "";
343
+ for (const char of applyCasing(text, casing)) {
344
+ const code = char.charCodeAt(0);
345
+ if (code > 0x25) {
346
+ escaped += char;
347
+ continue;
348
+ }
349
+ const hex = code.toString(16).padStart(2, "0");
350
+ escaped += `%${casing === "lowercase" ? hex : hex.toUpperCase()}`;
351
+ }
352
+ return escaped;
353
+ }
354
+ function composeSkFromSlots(schema, entityType, index, given) {
278
355
  const entityVersion = 1;
356
+ const casing = index.casing ?? schema.casing;
357
+ const slots = given.map((slot) => slot.placeholder ? slot : { ...slot, value: sortKeyText(slot.value, casing) });
279
358
  if (index.collection !== undefined) {
280
359
  if ((index.type ?? "isolated") === "clustered") {
281
360
  return composeClusteredSortKey(schema, index.collection, entityType, entityVersion, slots, index.casing);
@@ -293,7 +372,11 @@ function composePkValue(schema, entityType, index, record) {
293
372
  }
294
373
  return composeKey(schema, entityType, slots, index.casing);
295
374
  }
375
+ /** What a Z-order sort key (#171) shows: its value is bytes, not text. */
376
+ exports.ZORDER_KEY_PLACEHOLDER = "<binary Z-order key>";
296
377
  function composeSkValue(schema, entityType, index, record) {
378
+ if ((0, EntityResolver_1.isZOrderHalf)(index.sk))
379
+ return exports.ZORDER_KEY_PLACEHOLDER;
297
380
  return composeSkFromSlots(schema, entityType, index, extractCompositeSlots(index.sk.composite, record));
298
381
  }
299
382
  /** Leading SK composites present in `record`, stopping at the first missing one. */
@@ -309,6 +392,9 @@ function availableSkSlots(index, record) {
309
392
  }
310
393
  /** Mirrors `KeyComposer.composeSortKeyPrefix` — the raw value, no trailing delimiter. */
311
394
  function composeSkPrefixValue(schema, entityType, index, record) {
395
+ // A Z-order sort key has no text prefix.
396
+ if ((0, EntityResolver_1.isZOrderHalf)(index.sk))
397
+ return "";
312
398
  return composeSkFromSlots(schema, entityType, index, availableSkSlots(index, record));
313
399
  }
314
400
  /**
@@ -317,10 +403,36 @@ function composeSkPrefixValue(schema, entityType, index, record) {
317
403
  * `status_done_archived`.
318
404
  */
319
405
  function composeSkBeginsWithValue(schema, entityType, index, record) {
406
+ // A Z-order sort key has no text prefix.
407
+ if ((0, EntityResolver_1.isZOrderHalf)(index.sk))
408
+ return "";
320
409
  const slots = availableSkSlots(index, record);
321
410
  const prefix = composeSkFromSlots(schema, entityType, index, slots);
322
411
  return slots.length === index.sk.composite.length ? prefix : `${prefix}#`;
323
412
  }
413
+ /**
414
+ * The sort key condition an accessor sends for the composites it is given —
415
+ * mirrors the library's accessor (`KeyComposer.composeSortKeyCondition`): none
416
+ * when no composite is given (or the key is Z-order), `=` on the complete key
417
+ * when every one is, and a terminated `begins_with` on a leading prefix.
418
+ */
419
+ function accessorSkCondition(schema, entityType, index, args) {
420
+ if ((0, EntityResolver_1.isZOrderHalf)(index.sk))
421
+ return undefined;
422
+ if (!index.sk.composite.some((attr) => args[attr] !== undefined))
423
+ return undefined;
424
+ return index.sk.composite.every((attr) => args[attr] !== undefined)
425
+ ? {
426
+ keyCondition: " AND #sk = :sk",
427
+ name: index.sk.field,
428
+ value: [":sk", composeSkValue(schema, entityType, index, args)],
429
+ }
430
+ : {
431
+ keyCondition: " AND begins_with(#sk, :skPrefix)",
432
+ name: index.sk.field,
433
+ value: [":skPrefix", composeSkBeginsWithValue(schema, entityType, index, args)],
434
+ };
435
+ }
324
436
  function composePrimaryKey(entity, index, args) {
325
437
  return {
326
438
  [index.pk.field]: composePkValue(entity.schema, entity.entityType, index, args),
@@ -355,14 +467,21 @@ function buildEntityAccessorParams(entity, collection, collectionName, args) {
355
467
  `Query accessor '${collectionName}'`,
356
468
  ` Index: ${collection.index} (collection: ${collection.collectionName}, ${collection.type})`,
357
469
  ` PK: ${pkComposites} (required)`,
358
- skComposites ? ` SK: ${skComposites} (optional begins_with)` : undefined,
470
+ skComposites ? ` SK: ${skComposites} (optional: begins_with, or = when all given)` : undefined,
359
471
  ` Returns: BoundQuery<${entity.entityType}>`,
360
472
  ]
361
473
  .filter(Boolean)
362
474
  .join("\n");
363
475
  // Build actual query params if we have arguments
364
476
  if (args && entity.schema) {
365
- const indexDef = {
477
+ // The entity's own index, when it declares the collection: it carries
478
+ // what the collection doesn't — every collection of a sub-collection
479
+ // path, which a clustered key spells out, and an index-level casing.
480
+ const own = Object.values(entity.indexes).find((index) => index.index === collection.index &&
481
+ (typeof index.collection === "string"
482
+ ? [index.collection]
483
+ : (index.collection ?? [])).includes(collection.collectionName));
484
+ const indexDef = own ?? {
366
485
  index: collection.index,
367
486
  collection: collection.collectionName,
368
487
  type: collection.type,
@@ -375,11 +494,18 @@ function buildEntityAccessorParams(entity, collection, collectionName, args) {
375
494
  const pkValue = composePkValue(entity.schema, entity.entityType, indexDef, args);
376
495
  const names = { "#pk": indexDef.pk.field };
377
496
  const values = { ":pk": pkValue };
497
+ let keyCondition = "#pk = :pk";
498
+ const sk = accessorSkCondition(entity.schema, entity.entityType, indexDef, args);
499
+ if (sk) {
500
+ names["#sk"] = sk.name;
501
+ values[sk.value[0]] = sk.value[1];
502
+ keyCondition += sk.keyCondition;
503
+ }
378
504
  return {
379
505
  command: "QueryCommand",
380
506
  TableName: "<table>",
381
507
  IndexName: collection.index,
382
- KeyConditionExpression: "#pk = :pk",
508
+ KeyConditionExpression: keyCondition,
383
509
  ExpressionAttributeNames: names,
384
510
  ExpressionAttributeValues: values,
385
511
  entityType: entity.entityType,
@@ -414,11 +540,16 @@ function buildEntityIndexAccessorParams(entity, indexName, args, whereCondition)
414
540
  }
415
541
  const pkComposites = indexDef.pk.composite.join(", ");
416
542
  const skComposites = indexDef.sk.composite.join(", ");
543
+ const zorder = (0, EntityResolver_1.isZOrderHalf)(indexDef.sk);
417
544
  const info = [
418
545
  `Query accessor '${indexName}'`,
419
546
  ` Index: ${indexDef.index ?? "primary"} (isolated)`,
420
547
  ` PK: ${pkComposites} (required)`,
421
- skComposites ? ` SK: ${skComposites} (optional begins_with)` : undefined,
548
+ zorder
549
+ ? ` SK: ${exports.ZORDER_KEY_PLACEHOLDER} over ${skComposites} (bound with .within())`
550
+ : skComposites
551
+ ? ` SK: ${skComposites} (optional: begins_with, or = when all given)`
552
+ : undefined,
422
553
  ` Returns: BoundQuery<${entity.entityType}>`,
423
554
  ]
424
555
  .filter(Boolean)
@@ -433,68 +564,62 @@ function buildEntityIndexAccessorParams(entity, indexName, args, whereCondition)
433
564
  const mergedArgs = whereCondition
434
565
  ? { ...args, [whereCondition.field]: whereCondition.value }
435
566
  : args;
436
- // Add SK condition only if SK composites are actually provided
437
- const hasSkComposites = indexDef.sk.composite.length > 0 &&
438
- indexDef.sk.composite.some((attr) => mergedArgs[attr] !== undefined);
439
- if (hasSkComposites) {
440
- const allSkProvided = indexDef.sk.composite.every((attr) => mergedArgs[attr] !== undefined);
441
- if (allSkProvided && !whereCondition) {
442
- // All SK composites provided in query input → exact match
443
- const skValue = composeSkValue(entity.schema, entity.entityType, indexDef, mergedArgs);
444
- names["#sk"] = indexDef.sk.field;
445
- values[":sk"] = skValue;
446
- keyCondition += " AND #sk = :sk";
447
- }
448
- else {
449
- // Partial or .where() with range condition → use appropriate SK condition
450
- const skPrefix = composeSkPrefixValue(entity.schema, entity.entityType, indexDef, mergedArgs);
451
- if (skPrefix) {
452
- names["#sk"] = indexDef.sk.field;
453
- if (whereCondition) {
454
- // Use the .where() operator on the composed prefix
455
- switch (whereCondition.op) {
456
- case "beginsWith":
457
- values[":skPrefix"] = composeSkBeginsWithValue(entity.schema, entity.entityType, indexDef, mergedArgs);
458
- keyCondition += " AND begins_with(#sk, :skPrefix)";
459
- break;
460
- case "eq":
461
- values[":sk"] = skPrefix;
462
- keyCondition += " AND #sk = :sk";
463
- break;
464
- case "gt":
465
- values[":sk"] = skPrefix;
466
- keyCondition += " AND #sk > :sk";
467
- break;
468
- case "gte":
469
- values[":sk"] = skPrefix;
470
- keyCondition += " AND #sk >= :sk";
471
- break;
472
- case "lt":
473
- values[":sk"] = skPrefix;
474
- keyCondition += " AND #sk < :sk";
475
- break;
476
- case "lte":
477
- values[":sk"] = skPrefix;
478
- keyCondition += " AND #sk <= :sk";
479
- break;
480
- case "between": {
481
- const skPrefix2 = whereCondition.value2
482
- ? composeSkPrefixValue(entity.schema, entity.entityType, indexDef, {
483
- ...args,
484
- [whereCondition.field]: whereCondition.value2,
485
- })
486
- : skPrefix;
487
- values[":skLow"] = skPrefix;
488
- values[":skHigh"] = skPrefix2 ?? skPrefix;
489
- keyCondition += " AND #sk BETWEEN :skLow AND :skHigh";
490
- break;
491
- }
492
- }
493
- }
494
- else {
495
- values[":skPrefix"] = composeSkBeginsWithValue(entity.schema, entity.entityType, indexDef, mergedArgs);
496
- keyCondition += " AND begins_with(#sk, :skPrefix)";
497
- }
567
+ // Without `.where()`: the accessor's own condition — none, `=` on a
568
+ // complete key, or a terminated `begins_with`.
569
+ const sk = whereCondition
570
+ ? undefined
571
+ : accessorSkCondition(entity.schema, entity.entityType, indexDef, args);
572
+ if (sk) {
573
+ names["#sk"] = sk.name;
574
+ values[sk.value[0]] = sk.value[1];
575
+ keyCondition += sk.keyCondition;
576
+ }
577
+ // `.where()` bounds the composite after the pinned ones. An approximation:
578
+ // the library's `composeRangeUnder` also pushes an inclusive upper bound
579
+ // past a non-last composite's subtree and clamps under pinned composites.
580
+ const skPrefix = whereCondition &&
581
+ !zorder &&
582
+ indexDef.sk.composite.some((attr) => mergedArgs[attr] !== undefined)
583
+ ? composeSkPrefixValue(entity.schema, entity.entityType, indexDef, mergedArgs)
584
+ : "";
585
+ if (whereCondition && skPrefix) {
586
+ names["#sk"] = indexDef.sk.field;
587
+ switch (whereCondition.op) {
588
+ case "beginsWith":
589
+ values[":skPrefix"] = composeSkBeginsWithValue(entity.schema, entity.entityType, indexDef, mergedArgs);
590
+ keyCondition += " AND begins_with(#sk, :skPrefix)";
591
+ break;
592
+ case "eq":
593
+ values[":sk"] = skPrefix;
594
+ keyCondition += " AND #sk = :sk";
595
+ break;
596
+ case "gt":
597
+ values[":sk"] = skPrefix;
598
+ keyCondition += " AND #sk > :sk";
599
+ break;
600
+ case "gte":
601
+ values[":sk"] = skPrefix;
602
+ keyCondition += " AND #sk >= :sk";
603
+ break;
604
+ case "lt":
605
+ values[":sk"] = skPrefix;
606
+ keyCondition += " AND #sk < :sk";
607
+ break;
608
+ case "lte":
609
+ values[":sk"] = skPrefix;
610
+ keyCondition += " AND #sk <= :sk";
611
+ break;
612
+ case "between": {
613
+ const skPrefix2 = whereCondition.value2
614
+ ? composeSkPrefixValue(entity.schema, entity.entityType, indexDef, {
615
+ ...args,
616
+ [whereCondition.field]: whereCondition.value2,
617
+ })
618
+ : skPrefix;
619
+ values[":skLow"] = skPrefix;
620
+ values[":skHigh"] = skPrefix2 ?? skPrefix;
621
+ keyCondition += " AND #sk BETWEEN :skLow AND :skHigh";
622
+ break;
498
623
  }
499
624
  }
500
625
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ParamsBuilder.js","sourceRoot":"","sources":["../../src/core/ParamsBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ParamsBuilder.js","sourceRoot":"","sources":["../../src/core/ParamsBuilder.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,8 @@ export declare const DiagnosticCode: {
14
14
  readonly UNKNOWN_QUERY_PROPERTY: 9006;
15
15
  /** DynamoModel.configure: field rename target collides with existing model field */
16
16
  readonly FIELD_RENAME_COLLISION: 9007;
17
+ /** Query accessor: a Z-order sort key field passed as an accessor composite (#171) */
18
+ readonly ZORDER_FIELD_IN_ACCESSOR: 9093;
17
19
  };
18
20
  export declare function getDiagnostics(typescript: typeof ts, info: ts.server.PluginCreateInfo, fileName: string, prior: ts.Diagnostic[]): ts.Diagnostic[];
19
21
  //# sourceMappingURL=diagnostics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/features/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAA;AAYhC,eAAO,MAAM,cAAc;IACzB,0EAA0E;;IAE1E,2EAA2E;;IAE3E,8GAA8G;;IAE9G,4DAA4D;;IAE5D,4EAA4E;;IAE5E,sDAAsD;;IAEtD,oFAAoF;;CAE5E,CAAA;AAMV,wBAAgB,cAAc,CAC5B,UAAU,EAAE,OAAO,EAAE,EACrB,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,EAAE,CAAC,UAAU,EAAE,GACrB,EAAE,CAAC,UAAU,EAAE,CAwBjB"}
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/features/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAA;AAgBhC,eAAO,MAAM,cAAc;IACzB,0EAA0E;;IAE1E,2EAA2E;;IAE3E,8GAA8G;;IAE9G,4DAA4D;;IAE5D,4EAA4E;;IAE5E,sDAAsD;;IAEtD,oFAAoF;;IAEpF,sFAAsF;;CAE9E,CAAA;AAMV,wBAAgB,cAAc,CAC5B,UAAU,EAAE,OAAO,EAAE,EACrB,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,EAAE,CAAC,UAAU,EAAE,GACrB,EAAE,CAAC,UAAU,EAAE,CAwBjB"}
@@ -21,6 +21,8 @@ exports.DiagnosticCode = {
21
21
  UNKNOWN_QUERY_PROPERTY: 9006,
22
22
  /** DynamoModel.configure: field rename target collides with existing model field */
23
23
  FIELD_RENAME_COLLISION: 9007,
24
+ /** Query accessor: a Z-order sort key field passed as an accessor composite (#171) */
25
+ ZORDER_FIELD_IN_ACCESSOR: 9093,
24
26
  };
25
27
  // ---------------------------------------------------------------------------
26
28
  // Main diagnostic entry point
@@ -115,11 +117,12 @@ function validateConfigureCalls(ts, sourceFile, program) {
115
117
  // ---------------------------------------------------------------------------
116
118
  function validateEntityMakeCalls(ts, sourceFile, program) {
117
119
  const diagnostics = [];
120
+ const lookup = (0, EntityResolver_1.makeLookup)(ts, sourceFile, program);
118
121
  ts.forEachChild(sourceFile, function visit(node) {
119
122
  if (ts.isVariableStatement(node)) {
120
123
  for (const decl of node.declarationList.declarations) {
121
124
  if (decl.initializer && ts.isIdentifier(decl.name)) {
122
- const diags = tryValidateEntityMake(ts, sourceFile, decl.initializer, program);
125
+ const diags = tryValidateEntityMake(ts, sourceFile, decl.initializer, program, lookup);
123
126
  diagnostics.push(...diags);
124
127
  }
125
128
  }
@@ -128,7 +131,7 @@ function validateEntityMakeCalls(ts, sourceFile, program) {
128
131
  });
129
132
  return diagnostics;
130
133
  }
131
- function tryValidateEntityMake(ts, sourceFile, expr, program) {
134
+ function tryValidateEntityMake(ts, sourceFile, expr, program, lookup) {
132
135
  if (!ts.isCallExpression(expr))
133
136
  return [];
134
137
  const callee = expr.expression;
@@ -177,7 +180,7 @@ function tryValidateEntityMake(ts, sourceFile, expr, program) {
177
180
  }
178
181
  // Validate GSI indexes
179
182
  if (indexesNode && ts.isObjectLiteralExpression(indexesNode)) {
180
- diagnostics.push(...validateGsiIndexes(ts, sourceFile, entityType, indexesNode, modelFields));
183
+ diagnostics.push(...validateGsiIndexes(ts, sourceFile, entityType, indexesNode, modelFields, lookup));
181
184
  }
182
185
  return diagnostics;
183
186
  }
@@ -230,7 +233,7 @@ function validatePrimaryKey(ts, sourceFile, entityType, pkNode, modelFields) {
230
233
  }
231
234
  return diagnostics;
232
235
  }
233
- function validateGsiIndexes(ts, sourceFile, entityType, indexesNode, modelFields) {
236
+ function validateGsiIndexes(ts, sourceFile, entityType, indexesNode, modelFields, lookup) {
234
237
  const diagnostics = [];
235
238
  for (const prop of indexesNode.properties) {
236
239
  if (!ts.isPropertyAssignment(prop) || !ts.isIdentifier(prop.name))
@@ -281,6 +284,11 @@ function validateGsiIndexes(ts, sourceFile, entityType, indexesNode, modelFields
281
284
  skCompositeNode = skProp.initializer;
282
285
  }
283
286
  }
287
+ // A Z-order sort key (#171): its prefix composites and dimensions
288
+ // are the fields it reads.
289
+ const zorder = (0, EntityResolver_1.resolveZOrderFields)(ts, idxProp.initializer, lookup);
290
+ if (zorder !== undefined)
291
+ skCompositeAttrs = [...zorder.prefix, ...zorder.dimensions];
284
292
  }
285
293
  break;
286
294
  }
@@ -341,7 +349,9 @@ function tryValidateQueryChain(ts, sourceFile, callExpr, entities) {
341
349
  const filterKey = filterProp.name.text;
342
350
  const skIdx = rootInfo.skComposites.indexOf(filterKey);
343
351
  if (skIdx !== -1) {
344
- diagnostics.push(makeDiagnostic(sourceFile, filterProp.name, exports.DiagnosticCode.SK_IN_FILTER, `\`${filterKey}\` is a sort key composite for index \`${rootInfo.indexName}\` — include it in the query input for efficient key-based filtering instead of post-read \`.filter()\`.`, ts.DiagnosticCategory.Warning));
352
+ diagnostics.push(makeDiagnostic(sourceFile, filterProp.name, exports.DiagnosticCode.SK_IN_FILTER, rootInfo.zorder
353
+ ? `\`${filterKey}\` feeds the Z-order sort key of index \`${rootInfo.indexName}\` — bound it with \`.within()\` to read only the matching key ranges instead of post-read \`.filter()\`.`
354
+ : `\`${filterKey}\` is a sort key composite for index \`${rootInfo.indexName}\` — include it in the query input, or bound it with \`.within()\`, for efficient key-based filtering instead of post-read \`.filter()\`.`, ts.DiagnosticCategory.Warning));
345
355
  }
346
356
  }
347
357
  }
@@ -394,6 +404,7 @@ function findQueryAccessorRoot(ts, expr, entities) {
394
404
  entity,
395
405
  indexName,
396
406
  skComposites: indexDef.sk.composite,
407
+ zorder: (0, EntityResolver_1.isZOrderHalf)(indexDef.sk),
397
408
  providedArgs,
398
409
  };
399
410
  }
@@ -409,7 +420,12 @@ function findQueryAccessorRoot(ts, expr, entities) {
409
420
  combinator === "where" ||
410
421
  combinator === "maxPages" ||
411
422
  combinator === "startFrom" ||
412
- combinator === "consistentRead") {
423
+ combinator === "consistentRead" ||
424
+ combinator === "ignoreOwnership" ||
425
+ combinator === "filter" ||
426
+ combinator === "filterBy" ||
427
+ combinator === "onRequest" ||
428
+ combinator === "within") {
413
429
  return findQueryAccessorRoot(ts, callee.expression, entities);
414
430
  }
415
431
  }
@@ -422,13 +438,27 @@ function findQueryAccessorRoot(ts, expr, entities) {
422
438
  }
423
439
  function validateQueryInput(ts, sourceFile, indexName, indexDef, queryArg) {
424
440
  const diagnostics = [];
425
- const validKeys = new Set([...indexDef.pk.composite, ...indexDef.sk.composite]);
426
441
  const providedKeys = new Map();
427
442
  for (const prop of queryArg.properties) {
428
443
  if (ts.isPropertyAssignment(prop) && ts.isIdentifier(prop.name)) {
429
444
  providedKeys.set(prop.name.text, prop.name);
430
445
  }
431
446
  }
447
+ // EDD-9093: a Z-order accessor takes the partition key composites only; its
448
+ // sort key's fields are bounded with `.within()` (#171).
449
+ if ((0, EntityResolver_1.isZOrderHalf)(indexDef.sk)) {
450
+ const zorderFields = new Set(indexDef.sk.composite);
451
+ for (const [key, node] of providedKeys) {
452
+ if (zorderFields.has(key)) {
453
+ diagnostics.push(makeDiagnostic(sourceFile, node, exports.DiagnosticCode.ZORDER_FIELD_IN_ACCESSOR, `\`${key}\` feeds the Z-order sort key of index \`${indexName}\`, so it can't be passed to the accessor. Pass the partition key composites (${indexDef.pk.composite.map((k) => `\`${k}\``).join(", ")}) and bound \`${key}\` with \`.within()\`.`, ts.DiagnosticCategory.Error));
454
+ }
455
+ else if (!indexDef.pk.composite.includes(key)) {
456
+ diagnostics.push(makeDiagnostic(sourceFile, node, exports.DiagnosticCode.UNKNOWN_QUERY_PROPERTY, `Unknown composite attribute \`${key}\` for index \`${indexName}\`. Valid attributes: ${indexDef.pk.composite.map((k) => `\`${k}\``).join(", ")}`, ts.DiagnosticCategory.Error));
457
+ }
458
+ }
459
+ return diagnostics;
460
+ }
461
+ const validKeys = new Set([...indexDef.pk.composite, ...indexDef.sk.composite]);
432
462
  // EDD-9006: Unknown properties
433
463
  for (const [key, node] of providedKeys) {
434
464
  if (!validKeys.has(key)) {