effect-dynamodb 1.36.0 → 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.
Files changed (94) hide show
  1. package/dist/Aggregate.d.ts +29 -17
  2. package/dist/Aggregate.d.ts.map +1 -1
  3. package/dist/Aggregate.js +795 -173
  4. package/dist/Aggregate.js.map +1 -1
  5. package/dist/Batch.d.ts.map +1 -1
  6. package/dist/Batch.js +196 -77
  7. package/dist/Batch.js.map +1 -1
  8. package/dist/Collection.d.ts.map +1 -1
  9. package/dist/Collection.js +11 -2
  10. package/dist/Collection.js.map +1 -1
  11. package/dist/Collections.d.ts +15 -6
  12. package/dist/Collections.d.ts.map +1 -1
  13. package/dist/Collections.js +2 -1
  14. package/dist/Collections.js.map +1 -1
  15. package/dist/DynamoClient.d.ts +119 -10
  16. package/dist/DynamoClient.d.ts.map +1 -1
  17. package/dist/DynamoClient.js +1148 -142
  18. package/dist/DynamoClient.js.map +1 -1
  19. package/dist/Entity.d.ts +126 -51
  20. package/dist/Entity.d.ts.map +1 -1
  21. package/dist/Entity.js +3477 -539
  22. package/dist/Entity.js.map +1 -1
  23. package/dist/EventStore.d.ts +4 -3
  24. package/dist/EventStore.d.ts.map +1 -1
  25. package/dist/EventStore.js +616 -53
  26. package/dist/EventStore.js.map +1 -1
  27. package/dist/Query.d.ts +311 -25
  28. package/dist/Query.d.ts.map +1 -1
  29. package/dist/Query.js +1159 -103
  30. package/dist/Query.js.map +1 -1
  31. package/dist/Table.d.ts +172 -3
  32. package/dist/Table.d.ts.map +1 -1
  33. package/dist/Table.js +85 -4
  34. package/dist/Table.js.map +1 -1
  35. package/dist/Transaction.d.ts +18 -2
  36. package/dist/Transaction.d.ts.map +1 -1
  37. package/dist/Transaction.js +62 -8
  38. package/dist/Transaction.js.map +1 -1
  39. package/dist/change-feed/DynamoStreamsClient.d.ts +1 -1
  40. package/dist/change-feed/DynamoStreamsClient.d.ts.map +1 -1
  41. package/dist/change-feed/DynamoStreamsClient.js +3 -1
  42. package/dist/change-feed/DynamoStreamsClient.js.map +1 -1
  43. package/dist/index.d.ts +6 -3
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +1 -1
  46. package/dist/index.js.map +1 -1
  47. package/dist/internal/BoundQuery.d.ts +226 -32
  48. package/dist/internal/BoundQuery.d.ts.map +1 -1
  49. package/dist/internal/BoundQuery.js +96 -18
  50. package/dist/internal/BoundQuery.js.map +1 -1
  51. package/dist/internal/Capacity.d.ts +8 -0
  52. package/dist/internal/Capacity.d.ts.map +1 -1
  53. package/dist/internal/Capacity.js +24 -4
  54. package/dist/internal/Capacity.js.map +1 -1
  55. package/dist/internal/CredentialRefusal.d.ts +32 -0
  56. package/dist/internal/CredentialRefusal.d.ts.map +1 -0
  57. package/dist/internal/CredentialRefusal.js +80 -0
  58. package/dist/internal/CredentialRefusal.js.map +1 -0
  59. package/dist/internal/Cursor.d.ts +90 -0
  60. package/dist/internal/Cursor.d.ts.map +1 -0
  61. package/dist/internal/Cursor.js +179 -0
  62. package/dist/internal/Cursor.js.map +1 -0
  63. package/dist/internal/ExpressionLimits.d.ts +18 -2
  64. package/dist/internal/ExpressionLimits.d.ts.map +1 -1
  65. package/dist/internal/ExpressionLimits.js +35 -2
  66. package/dist/internal/ExpressionLimits.js.map +1 -1
  67. package/dist/internal/ProjectionEngine.d.ts +16 -0
  68. package/dist/internal/ProjectionEngine.d.ts.map +1 -1
  69. package/dist/internal/ProjectionEngine.js +242 -46
  70. package/dist/internal/ProjectionEngine.js.map +1 -1
  71. package/dist/internal/RangePlanner.d.ts +394 -0
  72. package/dist/internal/RangePlanner.d.ts.map +1 -0
  73. package/dist/internal/RangePlanner.js +1296 -0
  74. package/dist/internal/RangePlanner.js.map +1 -0
  75. package/dist/internal/Rekey.d.ts +78 -0
  76. package/dist/internal/Rekey.d.ts.map +1 -0
  77. package/dist/internal/Rekey.js +323 -0
  78. package/dist/internal/Rekey.js.map +1 -0
  79. package/dist/internal/TransactPlan.d.ts +8 -1
  80. package/dist/internal/TransactPlan.d.ts.map +1 -1
  81. package/dist/internal/TransactPlan.js +9 -2
  82. package/dist/internal/TransactPlan.js.map +1 -1
  83. package/dist/internal/TransactWriteOps.d.ts +10 -7
  84. package/dist/internal/TransactWriteOps.d.ts.map +1 -1
  85. package/dist/internal/TransactWriteOps.js +82 -6
  86. package/dist/internal/TransactWriteOps.js.map +1 -1
  87. package/dist/internal/TransactableOps.d.ts +31 -0
  88. package/dist/internal/TransactableOps.d.ts.map +1 -1
  89. package/dist/internal/TransactableOps.js +50 -1
  90. package/dist/internal/TransactableOps.js.map +1 -1
  91. package/dist/internal/WriteDiagnosis.d.ts.map +1 -1
  92. package/dist/internal/WriteDiagnosis.js +10 -7
  93. package/dist/internal/WriteDiagnosis.js.map +1 -1
  94. package/package.json +2 -2
package/dist/Query.d.ts CHANGED
@@ -9,11 +9,13 @@
9
9
  */
10
10
  import type { AttributeValue } from "@aws-sdk/client-dynamodb";
11
11
  import { ValidationError } from "@effect-dynamodb/schema/Errors.js";
12
- import { Effect, Pipeable, Stream } from "effect";
12
+ import { Effect, Option, Pipeable, Stream } from "effect";
13
13
  import { DynamoClient, type DynamoClientError } from "./DynamoClient.js";
14
14
  import * as Capacity from "./internal/Capacity.js";
15
15
  import { type Expr } from "./internal/Expr.js";
16
16
  import { type PackedAttributeGuard } from "./internal/Packed.js";
17
+ import { type KeyPass, type PlannerFactory, type RangePlanner, type RowCheck, type Step } from "./internal/RangePlanner.js";
18
+ export type { KeyPass, KeyPassRows } from "./internal/RangePlanner.js";
17
19
  /**
18
20
  * Sort key condition for narrowing query results within a partition.
19
21
  * Exactly one operator should be provided.
@@ -33,6 +35,106 @@ export type SortKeyCondition = {
33
35
  } | {
34
36
  readonly beginsWith: string;
35
37
  };
38
+ /**
39
+ * @internal A sort key operand: `S` text, or the bytes of a binary (`B`) key
40
+ * (#171). Planned ranges carry it; the public {@link SortKeyCondition} stays
41
+ * string-typed.
42
+ */
43
+ export type KeyValue = string | Uint8Array;
44
+ /**
45
+ * @internal A sort key condition as a request sends it: {@link SortKeyCondition}
46
+ * with {@link KeyValue} operands, marshalled to `S` or `B` (#171).
47
+ */
48
+ export type KeyCondition = {
49
+ readonly eq: KeyValue;
50
+ } | {
51
+ readonly lt: KeyValue;
52
+ } | {
53
+ readonly lte: KeyValue;
54
+ } | {
55
+ readonly gt: KeyValue;
56
+ } | {
57
+ readonly gte: KeyValue;
58
+ } | {
59
+ readonly between: readonly [KeyValue, KeyValue];
60
+ } | {
61
+ readonly beginsWith: KeyValue;
62
+ };
63
+ /**
64
+ * How a query reads its index (#171) — one vocabulary for {@link explain} and
65
+ * the cursor:
66
+ *
67
+ * - `key` — one key condition.
68
+ * - `skip-scan` — a probe for each distinct value of the sort key composites
69
+ * left of a `.within()` bound, then that value's range.
70
+ * - `filter` — one range, every bound checked per row.
71
+ * - `empty` — no value satisfies the bounds: nothing is sent.
72
+ * - `naive` / `jump` / `precise` — Z-order plans (`empty` too).
73
+ */
74
+ export type PlanMode = "key" | "skip-scan" | "filter" | "naive" | "jump" | "precise" | "empty";
75
+ /** What a query will send, described without sending anything (see {@link explain}). */
76
+ export interface QueryExplain {
77
+ /** The physical index queried, or `"primary"`. */
78
+ readonly index: string;
79
+ readonly plan: PlanMode;
80
+ /**
81
+ * Why this plan: e.g. "leading composites bounded", "skip tuple: status",
82
+ * "history rows on the primary index", "maxSkips: 0".
83
+ */
84
+ readonly reason: string;
85
+ /** The key ranges known before anything is read (`exact: false`: rows are also checked). */
86
+ readonly keyConditions: ReadonlyArray<{
87
+ readonly lower: string | undefined;
88
+ readonly upper: string | undefined;
89
+ readonly exact: boolean;
90
+ }>;
91
+ /** The `FilterExpression` the plan adds, if any. */
92
+ readonly filter: string | undefined;
93
+ /** The fields the library checks on each row, for bounds no key condition expresses. */
94
+ readonly rowChecks: ReadonlyArray<string>;
95
+ /** How each request's `Limit` is sized (see {@link limit} and {@link pageSize}). */
96
+ readonly sizing: "fixed" | "natural" | "budget" | "adaptive";
97
+ /** A Z-order plan's address space and box (#171). */
98
+ readonly zorder?: {
99
+ /** The address width in bits. */
100
+ readonly bits: number;
101
+ /** Per dimension, the levels the box selects, as inclusive `[lo, hi]` runs. */
102
+ readonly box: ReadonlyArray<{
103
+ readonly field: string;
104
+ readonly bits: number;
105
+ readonly levels: ReadonlyArray<readonly [string, string]>;
106
+ }>;
107
+ /** The box's volume over the addresses between its corners: how much of the hull is in it. */
108
+ readonly fill: number;
109
+ /** How many ranges the exact plan takes, or `"over-cap"` when it exceeds `maxRanges`. */
110
+ readonly exactRanges: number | "over-cap";
111
+ };
112
+ /** The skip-scan probe budget, for a plan that probes. */
113
+ readonly maxSkips?: number;
114
+ }
115
+ /**
116
+ * How a Z-order query reads its box (#171) — `.zorder()` on a Z-order
117
+ * accessor. Later calls merge over earlier ones.
118
+ */
119
+ export interface ZOrderOptions {
120
+ /**
121
+ * `"precise"` reads a capped plan of address ranges; `"jump"` follows each
122
+ * page's last examined key to the next address in the box; `"naive"` reads
123
+ * the box's whole hull. `"auto"` (the default) is `precise` when the exact
124
+ * plan fits `maxRanges`, else `jump`.
125
+ */
126
+ readonly strategy?: "auto" | "naive" | "jump" | "precise" | undefined;
127
+ /** A fixed `Limit` for `jump` requests. Unset: sized from the in-box run, starting at 16. */
128
+ readonly pageSize?: number | undefined;
129
+ /** Range cap for `precise` and for `auto`'s choice. Default 16. */
130
+ readonly maxRanges?: number | undefined;
131
+ /**
132
+ * Planned ranges in flight at once. Unset: 4 for reads with a `limit`, 1
133
+ * for drains without one (natural 1 MB pages against one partition). Set:
134
+ * applies to both.
135
+ */
136
+ readonly concurrency?: number | undefined;
137
+ }
36
138
  interface QueryState {
37
139
  readonly tableName: string;
38
140
  readonly indexName: string | undefined;
@@ -41,7 +143,7 @@ interface QueryState {
41
143
  readonly skField: string | undefined;
42
144
  readonly skConditions: ReadonlyArray<{
43
145
  readonly field: string;
44
- readonly condition: SortKeyCondition;
146
+ readonly condition: KeyCondition;
45
147
  }>;
46
148
  readonly exprFilters: ReadonlyArray<Expr>;
47
149
  /**
@@ -52,13 +154,50 @@ interface QueryState {
52
154
  readonly entityTypes: ReadonlyArray<string>;
53
155
  /** Maximum number of items to RETURN (a contract on results). */
54
156
  readonly limitValue: number | undefined;
55
- /** DynamoDB `Limit` — rows examined per request (a contract on round trips). */
56
- readonly pageSizeValue: number | undefined;
157
+ /**
158
+ * DynamoDB `Limit` — rows examined per request (a contract on round trips).
159
+ * `"natural"` sizes requests exactly as 1.36 did (see {@link pageSize}).
160
+ */
161
+ readonly pageSizeValue: number | "natural" | undefined;
57
162
  readonly maxPagesValue: number | undefined;
163
+ /** Called after every request a terminal sends, in order (see {@link onRequest}). */
164
+ readonly observers: ReadonlyArray<(event: QueryRequestEvent) => Effect.Effect<void>>;
58
165
  readonly scanForward: boolean;
59
166
  readonly consistentRead: boolean;
60
167
  readonly ignoreOwnershipFlag: boolean;
168
+ /**
169
+ * Where an unplanned query resumes: set by internal callers, or by
170
+ * {@link prepared} from a {@link startFrom} cursor.
171
+ */
61
172
  readonly exclusiveStartKey: Record<string, AttributeValue> | undefined;
173
+ /**
174
+ * The cursor {@link startFrom} was given, decoded by {@link prepared} when a
175
+ * terminal runs — once the plan it must belong to is known (#171).
176
+ */
177
+ readonly cursorText: string | undefined;
178
+ /**
179
+ * @internal The plan a `.within()` installed (#171), as a factory: `reverse`
180
+ * and the other combinators may follow `.within()`, so it is resolved from
181
+ * the final state when a terminal runs.
182
+ */
183
+ readonly planner: PlannerFactory | undefined;
184
+ /** @internal The skip-scan probe budget `.within()` was given (default 32). */
185
+ readonly maxSkips: number | undefined;
186
+ /**
187
+ * @internal The key 1.36 composed for the query's pins, when its text
188
+ * differs from the query's own (#171, see {@link alsoRead136}): a terminal
189
+ * reads it as a second key pass.
190
+ */
191
+ readonly key136: KeyPass | undefined;
192
+ /** @internal `.zorder()` options, merged over each other (#171). */
193
+ readonly zorderOptions: ZOrderOptions | undefined;
194
+ /** @internal Set by {@link prepared}: the resolved planner and the step the terminal starts at. */
195
+ readonly plan: PreparedPlan | undefined;
196
+ /**
197
+ * @internal Set per request of a planned read (#171): the bounds its key
198
+ * condition can't express, checked on each raw row like {@link liveRows}.
199
+ */
200
+ readonly rowCheck: RowCheck | undefined;
62
201
  readonly isScan: boolean;
63
202
  readonly projection: ReadonlyArray<string> | undefined;
64
203
  readonly projectionPaths: ReadonlyArray<ReadonlyArray<string | number>> | undefined;
@@ -96,9 +235,10 @@ interface QueryState {
96
235
  /**
97
236
  * Run once at the start of each terminal, against the resolved table: may
98
237
  * swap the sort key `begins_with` operand and add a row filter (`keep`)
99
- * applied, like {@link liveRows}, to rows before they are decoded.
100
- * An entity's `versions` uses it to read history written by an earlier
101
- * release alongside its own (#133).
238
+ * applied, like {@link liveRows}, to rows before they are decoded, or swap
239
+ * the partition key. An entity's `versions` uses it to read history written
240
+ * by an earlier release alongside its own (#133); an event stream, to read
241
+ * a stream still under its 1.36 key there (#171).
102
242
  */
103
243
  readonly prepare: QueryPrepare | undefined;
104
244
  /** @internal Set by {@link prepare}: rows outside it are dropped before decode. */
@@ -118,6 +258,11 @@ interface QueryState {
118
258
  */
119
259
  readonly operationTarget: string | undefined;
120
260
  }
261
+ /** @internal A planner resolved for one terminal call, and where it starts (see {@link prepared}). */
262
+ interface PreparedPlan {
263
+ readonly planner: RangePlanner;
264
+ readonly start: Step;
265
+ }
121
266
  /**
122
267
  * @internal Turns a raw row into the plain row {@link select} returns: each
123
268
  * packed attribute it carries read by its stored form (`S` → JSON, `B` →
@@ -177,6 +322,11 @@ export type QueryPrepare = (tableName: string) => Effect.Effect<{
177
322
  readonly to: string;
178
323
  } | undefined;
179
324
  readonly keep?: ((row: Record<string, AttributeValue>) => boolean) | undefined;
325
+ /**
326
+ * Read this partition instead: an event stream still under its 1.36 key
327
+ * is read there (#171).
328
+ */
329
+ readonly pkValue?: string | undefined;
180
330
  }, DynamoClientError, DynamoClient>;
181
331
  /** @internal See {@link QueryState.liveRows}. */
182
332
  export interface LiveRows {
@@ -259,14 +409,37 @@ export declare const where: {
259
409
  (condition: SortKeyCondition): <A>(self: Query<A>) => Query<A>;
260
410
  <A>(self: Query<A>, condition: SortKeyCondition): Query<A>;
261
411
  };
412
+ /**
413
+ * @internal Also read the key 1.36 composed for this query's pins (#171,
414
+ * DESIGN.md §7 "Rows written by 1.36"): its partition key and its `eq` /
415
+ * `beginsWith` sort key condition (or none). A row 1.36 wrote whose key text
416
+ * changed in 1.37 sits there until it is written again or `rekey` moves it.
417
+ * A terminal reads both keys as two passes of one plan
418
+ * (`RangePlanner.keyPassesPlanner`): the 1.36 key first, or last under
419
+ * {@link reverse}. A key equal to the query's own adds nothing — unless its
420
+ * rows are split by form (`KeyPass.rows.split`) — so a query whose key text
421
+ * did not change sends exactly what it always sent. Installed after the
422
+ * pins' {@link where}, which clears it.
423
+ */
424
+ export declare const alsoRead136: <A>(self: Query<A>, key: KeyPass | undefined) => Query<A>;
425
+ /**
426
+ * @internal {@link alsoRead136} for a query whose 1.36 key differs in its
427
+ * partition key alone (a collection, a partition's tombstones): the 1.36
428
+ * partition under the query's own sort key condition.
429
+ */
430
+ export declare const alsoReadPartition136: <A>(self: Query<A>, pkValue: string | undefined) => Query<A>;
262
431
  /**
263
432
  * Return **at most `n` items** — a contract on results, not on round trips.
264
433
  *
265
434
  * The query accumulates across as many DynamoDB requests as it takes to reach
266
435
  * `n` accepted items (or to exhaust the key range). Under a `FilterExpression`
267
436
  * DynamoDB's own `Limit` bounds rows *examined* before the filter runs, so it
268
- * cannot express this — {@link pageSize} is the knob that sets `Limit`, and
269
- * {@link maxPages} stays the hard stop on the number of requests.
437
+ * cannot carry `n` itself. Instead each request's `Limit` is sized from the
438
+ * pass rate the earlier requests observed (rows accepted / rows examined), so
439
+ * a selective filter reads about what it needs rather than a 1 MB page.
440
+ * {@link pageSize} fixes `Limit` instead (`"natural"` restores 1.36's sizing),
441
+ * and {@link maxPages} stays the hard stop on the number of requests — a query
442
+ * with one keeps 1.36's sizing, so one call returns what it did.
270
443
  *
271
444
  * ```ts
272
445
  * query.pipe(Query.limit(3), Query.collect) // 3 items
@@ -282,10 +455,75 @@ export declare const limit: {
282
455
  * A contract on round trips, not on what comes back: a request under a
283
456
  * `FilterExpression` may return fewer than `n` items, and pagination continues
284
457
  * until the key range is exhausted (or {@link limit} / {@link maxPages} stops it).
458
+ * A number is used as given (DynamoDB rejects one it does not accept).
459
+ *
460
+ * `"natural"` opts out of the request sizing {@link limit} does under a filter,
461
+ * and sizes every request exactly as 1.36 did: a natural 1 MB page under a
462
+ * filter or predicate, `limit` doubling per request over history rows, and the
463
+ * outstanding `limit` otherwise. Any other string throws `[EDD-9095]`.
285
464
  */
286
465
  export declare const pageSize: {
287
- (n: number): <A>(self: Query<A>) => Query<A>;
288
- <A>(self: Query<A>, n: number): Query<A>;
466
+ (size: number | "natural"): <A>(self: Query<A>) => Query<A>;
467
+ <A>(self: Query<A>, size: number | "natural"): Query<A>;
468
+ };
469
+ /**
470
+ * What a terminal reports after each request it sends (see {@link onRequest}).
471
+ *
472
+ * `lower` / `upper` show the sort key condition sent: `eq` as `[v, v]`,
473
+ * `between` as `[a, b]`, `gt` / `gte` as `[v, undefined]`, `lt` / `lte` as
474
+ * `[undefined, v]`, `begins_with` as `[prefix, undefined]`, and no condition
475
+ * (or a scan) as `[undefined, undefined]`.
476
+ */
477
+ export interface QueryRequestEvent {
478
+ /**
479
+ * `read` for a request whose rows become items (a `count` under
480
+ * {@link filterBy} reads its items too); `count` for a request `count` sends
481
+ * to count rows; `probe` for one that only locates where to read next.
482
+ */
483
+ readonly kind: "read" | "probe" | "count";
484
+ /** 1-based within the terminal call. */
485
+ readonly request: number;
486
+ /** Display form of the key condition's lower bound. */
487
+ readonly lower: string | undefined;
488
+ /** Display form of the key condition's upper bound. */
489
+ readonly upper: string | undefined;
490
+ /** The `Limit` sent, if any. */
491
+ readonly limit: number | undefined;
492
+ /** Rows DynamoDB examined (`ScannedCount`; the rows returned when it is absent). */
493
+ readonly scannedCount: number;
494
+ /** Rows after the FilterExpression (`Count`; the rows returned when it is absent). */
495
+ readonly count: number;
496
+ /** Rows that became items: what history rows, predicates and missing items left. */
497
+ readonly accepted: number;
498
+ /**
499
+ * A read sent alongside others (#171) and then not used: a window member
500
+ * after the one that filled the `limit` or returned a `LastEvaluatedKey`
501
+ * (`fetch`), or a page still buffered when a stream ends. Its rows were read
502
+ * and are counted, none became items (`accepted` is 0), and a later call
503
+ * reads them again.
504
+ */
505
+ readonly discarded: boolean;
506
+ }
507
+ /**
508
+ * Observe every request a terminal sends: `observer` runs after each one, in
509
+ * the terminal's fiber, with what it examined and kept. Several observers run
510
+ * in the order they were added. A failure of one is a defect. DynamoDB calls
511
+ * an observer makes are not counted in the query's consumed-capacity report.
512
+ *
513
+ * Σ `scannedCount` against Σ `accepted` is what a query read against what it
514
+ * returned:
515
+ *
516
+ * ```ts
517
+ * query.pipe(
518
+ * Query.onRequest((event) => Console.log(event.request, event.limit, event.scannedCount)),
519
+ * Query.limit(10),
520
+ * Query.collect,
521
+ * )
522
+ * ```
523
+ */
524
+ export declare const onRequest: {
525
+ (observer: (event: QueryRequestEvent) => Effect.Effect<void>): <A>(self: Query<A>) => Query<A>;
526
+ <A>(self: Query<A>, observer: (event: QueryRequestEvent) => Effect.Effect<void>): Query<A>;
289
527
  };
290
528
  /**
291
529
  * Reverse the sort order (sets ScanIndexForward = false).
@@ -317,13 +555,43 @@ export declare const maxPages: {
317
555
  export declare const ignoreOwnership: <A>(self: Query<A>) => Query<A>;
318
556
  /**
319
557
  * Set the starting cursor for pagination. The cursor is an opaque string
320
- * returned by {@link execute} that encodes the DynamoDB `ExclusiveStartKey`.
321
- * Pass an empty string to start from the beginning.
558
+ * returned by {@link execute} that encodes where the query resumes. Pass an
559
+ * empty string to start from the beginning.
560
+ *
561
+ * The cursor is read when a terminal runs, not here: a malformed one fails
562
+ * the terminal with a `ValidationError` (`[EDD-9094]`,
563
+ * `operation: "query.startFrom"`), as does a `.within()` cursor on a query
564
+ * without `.within()`. A `.within()` query also refuses one from another
565
+ * plan (other bounds, partition, direction or index declaration) or
566
+ * positioned outside its own. A query without `.within()` can't recognise
567
+ * another query's well-formed cursor: DynamoDB may reject it
568
+ * (`DynamoValidationError`) or the query resumes from it.
322
569
  */
323
570
  export declare const startFrom: {
324
571
  (cursor: string): <A>(self: Query<A>) => Query<A>;
325
572
  <A>(self: Query<A>, cursor: string): Query<A>;
326
573
  };
574
+ /**
575
+ * @internal Install a bound query's #171 planning state: the planner its
576
+ * `.within()` built, with the skip-scan probe budget, or the options of its
577
+ * `.zorder()`, merged over earlier ones (validated there). The planner is a
578
+ * factory, resolved from the final state when a terminal runs, so the
579
+ * combinators that follow (`reverse`, `startFrom`, …) still apply. Not a
580
+ * combinator: Z-order and skip-scan are reached through `BoundQuery`.
581
+ */
582
+ export declare const plan: <A>(self: Query<A>, install: {
583
+ readonly planner: PlannerFactory;
584
+ readonly maxSkips: number | undefined;
585
+ } | {
586
+ readonly zorder: ZOrderOptions;
587
+ }) => Query<A>;
588
+ /**
589
+ * @internal A query no stored row satisfies (#171) — a `.history()` bound with
590
+ * no key text below it (`lt("")` on a string orderBy) — planned `empty`, as a
591
+ * `.within()` whose bounds admit no value is: nothing is sent, the terminals
592
+ * return no items, and `explain()` reports the `empty` plan.
593
+ */
594
+ export declare const planEmpty: <A>(self: Query<A>) => Query<A>;
327
595
  /**
328
596
  * Select specific attributes to return (ProjectionExpression).
329
597
  * Reduces read capacity and network transfer. When projection is active,
@@ -427,8 +695,11 @@ export declare const operationOptions: (self: Query<unknown>) => Capacity.Operat
427
695
  */
428
696
  export interface Page<A> {
429
697
  readonly items: Array<A>;
430
- /** Opaque cursor for the next page, or `null` if there are no more results. */
431
- readonly cursor: string | null;
698
+ /**
699
+ * Opaque cursor for the next page — pass it to `.startFrom()` — or `None`
700
+ * when there are no more results.
701
+ */
702
+ readonly cursor: Option.Option<string>;
432
703
  }
433
704
  /**
434
705
  * Execute the query and collect the results into a single array.
@@ -444,22 +715,29 @@ export declare const collect: <A>(self: Query<A>) => Effect.Effect<Array<A>, Dyn
444
715
  * accumulates until `n` items are accepted, the key range is exhausted, or
445
716
  * {@link maxPages} requests have been made.
446
717
  *
447
- * The cursor resumes after the last item actually returned — a `null` cursor
448
- * means genuinely exhausted. Combine with {@link startFrom} to iterate:
718
+ * The cursor resumes after the last item actually returned — `None` means
719
+ * genuinely exhausted. A `Some` can still lead to an empty page:
720
+ * a request that stops at its `Limit` cannot tell whether another match
721
+ * follows, which is likelier when {@link limit} sizes requests under a
722
+ * filter. Combine with {@link startFrom} to iterate:
449
723
  *
450
724
  * ```ts
451
725
  * const first = yield* query.pipe(Query.limit(25), Query.execute)
452
- * if (first.cursor) {
453
- * const second = yield* query.pipe(Query.limit(25), Query.startFrom(first.cursor), Query.execute)
454
- * }
726
+ * // Some(page) when there is a next page, None when `first` was the last
727
+ * const second = yield* Effect.transposeOption(
728
+ * Option.map(first.cursor, (cursor) =>
729
+ * query.pipe(Query.limit(25), Query.startFrom(cursor), Query.execute),
730
+ * ),
731
+ * )
455
732
  * ```
456
733
  */
457
734
  export declare const execute: <A>(self: Query<A>) => Effect.Effect<Page<A>, DynamoClientError | ValidationError, DynamoClient>;
458
735
  /**
459
736
  * Execute the query and return a Stream of page arrays.
460
- * A page is one DynamoDB request (of {@link pageSize} rows, when set); the
461
- * stream ends once {@link limit} items have been emitted in total, the key
462
- * range is exhausted, or {@link maxPages} requests have been made.
737
+ * A page is one DynamoDB request (of {@link pageSize} rows, when set, or as
738
+ * {@link limit} sizes it under a filter); the stream ends once {@link limit}
739
+ * items have been emitted in total, the key range is exhausted, or
740
+ * {@link maxPages} requests have been made.
463
741
  */
464
742
  export declare const paginate: <A>(self: Query<A>) => Effect.Effect<Stream.Stream<Array<A>, DynamoClientError | ValidationError>, never, DynamoClient>;
465
743
  /**
@@ -469,9 +747,18 @@ export declare const paginate: <A>(self: Query<A>) => Effect.Effect<Stream.Strea
469
747
  * {@link limit} caps the count, keeping `count()` equal to `collect().length`
470
748
  * for the same query: `.limit(n).count()` returns `min(matching, n)` and stops
471
749
  * counting once `n` is reached — which makes `.limit(1).count()` a cheap
472
- * existence check. {@link pageSize} sets the rows examined per request.
750
+ * existence check. Under a filter, each request of a limited count is sized
751
+ * from the pass rate the earlier ones showed, as {@link limit} describes.
752
+ * {@link pageSize} sets the rows examined per request instead.
473
753
  */
474
754
  export declare const count: <A>(self: Query<A>) => Effect.Effect<number, DynamoClientError | ValidationError, DynamoClient>;
755
+ /**
756
+ * Describe what a terminal would send — the plan, why it was chosen, the key
757
+ * ranges known up front, the bounds checked per row and how requests are
758
+ * sized — without sending anything (#171). Cursors are not read: the plan is
759
+ * described from its start.
760
+ */
761
+ export declare const explain: <A>(self: Query<A>) => Effect.Effect<QueryExplain, never, never>;
475
762
  /**
476
763
  * Return the built DynamoDB command input without executing.
477
764
  * Useful for debugging, logging, or passing to DynamoClient directly.
@@ -480,5 +767,4 @@ export declare const count: <A>(self: Query<A>) => Effect.Effect<number, DynamoC
480
767
  */
481
768
  export declare const asParams: <A>(self: Query<A>) => Effect.Effect<Record<string, unknown>, ValidationError, any>;
482
769
  export declare const isQuery: (u: unknown) => u is Query<unknown>;
483
- export {};
484
770
  //# sourceMappingURL=Query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../src/Query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../src/Query.ts"],"names":[],"mappings":"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"}