effect-dynamodb 1.24.0 → 1.26.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.
- package/dist/Aggregate.d.ts +12 -2
- package/dist/Aggregate.d.ts.map +1 -1
- package/dist/Aggregate.js +284 -55
- package/dist/Aggregate.js.map +1 -1
- package/dist/Batch.d.ts +14 -5
- package/dist/Batch.d.ts.map +1 -1
- package/dist/Batch.js +184 -119
- package/dist/Batch.js.map +1 -1
- package/dist/Collection.d.ts +9 -1
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +5 -4
- package/dist/Collection.js.map +1 -1
- package/dist/DynamoClient.d.ts +80 -28
- package/dist/DynamoClient.d.ts.map +1 -1
- package/dist/DynamoClient.js +125 -25
- package/dist/DynamoClient.js.map +1 -1
- package/dist/Entity.d.ts +99 -40
- package/dist/Entity.d.ts.map +1 -1
- package/dist/Entity.js +693 -302
- package/dist/Entity.js.map +1 -1
- package/dist/EventStore.d.ts +598 -75
- package/dist/EventStore.d.ts.map +1 -1
- package/dist/EventStore.js +852 -221
- package/dist/EventStore.js.map +1 -1
- package/dist/Query.d.ts +100 -14
- package/dist/Query.d.ts.map +1 -1
- package/dist/Query.js +275 -71
- package/dist/Query.js.map +1 -1
- package/dist/StorageEncoding.d.ts +160 -0
- package/dist/StorageEncoding.d.ts.map +1 -0
- package/dist/StorageEncoding.js +258 -0
- package/dist/StorageEncoding.js.map +1 -0
- package/dist/Table.d.ts +56 -6
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js +142 -60
- package/dist/Table.js.map +1 -1
- package/dist/Transaction.d.ts +8 -0
- package/dist/Transaction.d.ts.map +1 -1
- package/dist/Transaction.js +72 -22
- package/dist/Transaction.js.map +1 -1
- package/dist/VectorSearchEmulation.d.ts +3 -2
- package/dist/VectorSearchEmulation.d.ts.map +1 -1
- package/dist/VectorSearchEmulation.js +14 -2
- package/dist/VectorSearchEmulation.js.map +1 -1
- package/dist/compression/zlib.d.ts +75 -0
- package/dist/compression/zlib.d.ts.map +1 -0
- package/dist/compression/zlib.js +109 -0
- package/dist/compression/zlib.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/BoundCrud.d.ts +39 -35
- package/dist/internal/BoundCrud.d.ts.map +1 -1
- package/dist/internal/BoundCrud.js.map +1 -1
- package/dist/internal/BoundQuery.d.ts +6 -5
- package/dist/internal/BoundQuery.d.ts.map +1 -1
- package/dist/internal/BoundQuery.js.map +1 -1
- package/dist/internal/BoundVectorQuery.d.ts +17 -1
- package/dist/internal/BoundVectorQuery.d.ts.map +1 -1
- package/dist/internal/BoundVectorQuery.js +31 -6
- package/dist/internal/BoundVectorQuery.js.map +1 -1
- package/dist/internal/EntityCombinators.d.ts +8 -5
- package/dist/internal/EntityCombinators.d.ts.map +1 -1
- package/dist/internal/EntityCombinators.js +24 -6
- package/dist/internal/EntityCombinators.js.map +1 -1
- package/dist/internal/EntityOps.d.ts +1 -1
- package/dist/internal/Expr.d.ts +9 -3
- package/dist/internal/Expr.d.ts.map +1 -1
- package/dist/internal/Expr.js +7 -5
- package/dist/internal/Expr.js.map +1 -1
- package/dist/internal/ExpressionLimits.d.ts +45 -0
- package/dist/internal/ExpressionLimits.d.ts.map +1 -0
- package/dist/internal/ExpressionLimits.js +89 -0
- package/dist/internal/ExpressionLimits.js.map +1 -0
- package/dist/internal/Hydrate.d.ts +62 -0
- package/dist/internal/Hydrate.d.ts.map +1 -0
- package/dist/internal/Hydrate.js +191 -0
- package/dist/internal/Hydrate.js.map +1 -0
- package/dist/internal/ItemSize.d.ts +60 -24
- package/dist/internal/ItemSize.d.ts.map +1 -1
- package/dist/internal/ItemSize.js +122 -39
- package/dist/internal/ItemSize.js.map +1 -1
- package/dist/internal/Packed.d.ts +289 -0
- package/dist/internal/Packed.d.ts.map +1 -0
- package/dist/internal/Packed.js +654 -0
- package/dist/internal/Packed.js.map +1 -0
- package/dist/internal/PathBuilder.d.ts +45 -2
- package/dist/internal/PathBuilder.d.ts.map +1 -1
- package/dist/internal/PathBuilder.js +4 -0
- package/dist/internal/PathBuilder.js.map +1 -1
- package/dist/internal/TransactWriteOps.d.ts +22 -46
- package/dist/internal/TransactWriteOps.d.ts.map +1 -1
- package/dist/internal/TransactWriteOps.js +26 -95
- package/dist/internal/TransactWriteOps.js.map +1 -1
- package/dist/internal/TransactableOps.d.ts +1 -1
- package/dist/internal/TransactableOps.d.ts.map +1 -1
- package/dist/internal/TransactableOps.js +2 -0
- package/dist/internal/TransactableOps.js.map +1 -1
- package/dist/internal/WriteDiagnosis.d.ts +353 -0
- package/dist/internal/WriteDiagnosis.d.ts.map +1 -0
- package/dist/internal/WriteDiagnosis.js +1028 -0
- package/dist/internal/WriteDiagnosis.js.map +1 -0
- package/dist/internal/sparse_check.js +43 -79
- package/dist/internal/sparse_check.js.map +1 -1
- package/package.json +6 -2
package/dist/Batch.js
CHANGED
|
@@ -7,20 +7,16 @@
|
|
|
7
7
|
* Accepts Entity operation intermediates directly (EntityGet, EntityPut, EntityDelete).
|
|
8
8
|
* Batch.get returns a typed tuple inferred per-position.
|
|
9
9
|
*/
|
|
10
|
-
import { DynamoError, isAwsTransactionCancelled, ValidationError, } from "@effect-dynamodb/schema/Errors.js";
|
|
10
|
+
import { DynamoError, isAwsTransactionCancelled, TRANSACT_WRITE_ITEMS_LIMIT, ValidationError, } from "@effect-dynamodb/schema/Errors.js";
|
|
11
11
|
import { Effect } from "effect";
|
|
12
12
|
import { DynamoClient } from "./DynamoClient.js";
|
|
13
13
|
import { extractTransactable } from "./Entity.js";
|
|
14
|
-
import {
|
|
14
|
+
import { BASE_DELAY_MS, batchGetRaw, MAX_RETRIES } from "./internal/Hydrate.js";
|
|
15
|
+
import { TRANSACT_WRITE_MAX_BYTES, transactItemBytes } from "./internal/ItemSize.js";
|
|
15
16
|
import { batchRejectReason, composePrimaryKey, getRejectReason, rejectUnsupportedOp, resolveTableNames, validateAndBuildPutItem, } from "./internal/TransactableOps.js";
|
|
17
|
+
import { batchEntries, diagnosedValidationError, diagnoseFailure, keyAttributesOf, mergeKeyAttributes, transactItemTarget, } from "./internal/WriteDiagnosis.js";
|
|
16
18
|
import { fromAttributeMap, toAttributeMap } from "./Marshaller.js";
|
|
17
|
-
const MAX_BATCH_GET = 100;
|
|
18
19
|
const MAX_BATCH_WRITE = 25;
|
|
19
|
-
const MAX_TRANSACT_WRITE = 100;
|
|
20
|
-
/** DynamoDB caps a transaction's payload at 4 MB of item data; leave headroom. */
|
|
21
|
-
const MAX_TRANSACT_BYTES = 3_500_000;
|
|
22
|
-
const MAX_RETRIES = 5;
|
|
23
|
-
const BASE_DELAY_MS = 100;
|
|
24
20
|
/**
|
|
25
21
|
* Batch-get up to any number of items across entities/tables.
|
|
26
22
|
* Auto-chunks at 100 items per request. Retries unprocessed keys
|
|
@@ -68,79 +64,27 @@ export const get = (items, config) => Effect.gen(function* () {
|
|
|
68
64
|
infos.push(info);
|
|
69
65
|
}
|
|
70
66
|
const tableNames = yield* resolveTableNames(infos);
|
|
71
|
-
//
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
67
|
+
// Compose each position's primary key. `BatchGetItem` does not preserve
|
|
68
|
+
// order, so `batchGetRaw` matches responses back to positions by key.
|
|
69
|
+
const requests = infos.map((info) => ({
|
|
70
|
+
tableName: tableNames.get(info.entity),
|
|
71
|
+
key: toAttributeMap(composePrimaryKey(info.entity, info.key)),
|
|
72
|
+
}));
|
|
73
|
+
const fetched = yield* batchGetRaw(client, requests, {
|
|
74
|
+
maxRetries,
|
|
75
|
+
baseDelayMs,
|
|
76
|
+
// A key repeated in one request is DynamoDB's to reject (#144): named by position.
|
|
77
|
+
describe: (position) => {
|
|
78
|
+
const entityType = infos[position].entity.entityType;
|
|
79
|
+
return { entityType, source: `get ${position} (${entityType})` };
|
|
80
|
+
},
|
|
81
|
+
});
|
|
86
82
|
const results = new Array(items.length).fill(undefined);
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
for (const item of chunk) {
|
|
93
|
-
if (!requestItems[item.tableName]) {
|
|
94
|
-
requestItems[item.tableName] = { Keys: [] };
|
|
95
|
-
}
|
|
96
|
-
requestItems[item.tableName].Keys.push(item.marshalledKey);
|
|
97
|
-
}
|
|
98
|
-
// Retry loop for unprocessed keys
|
|
99
|
-
let retries = 0;
|
|
100
|
-
while (Object.keys(requestItems).length > 0) {
|
|
101
|
-
const response = yield* client.batchGetItem({ RequestItems: requestItems });
|
|
102
|
-
// Process responses
|
|
103
|
-
if (response.Responses) {
|
|
104
|
-
for (const [tableName, tableItems] of Object.entries(response.Responses)) {
|
|
105
|
-
for (const responseItem of tableItems) {
|
|
106
|
-
const raw = fromAttributeMap(responseItem);
|
|
107
|
-
// Match to original position by primary key
|
|
108
|
-
const matched = chunk.find((item) => {
|
|
109
|
-
if (item.tableName !== tableName)
|
|
110
|
-
return false;
|
|
111
|
-
const primary = item.entity.indexes.primary;
|
|
112
|
-
return (raw[primary.pk.field] === item.composedKey[primary.pk.field] &&
|
|
113
|
-
raw[primary.sk.field] === item.composedKey[primary.sk.field]);
|
|
114
|
-
});
|
|
115
|
-
if (matched) {
|
|
116
|
-
const decoded = yield* matched.entity._decodeRecord(raw);
|
|
117
|
-
results[matched.index] = decoded;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
// Check for unprocessed keys
|
|
123
|
-
const unprocessed = {};
|
|
124
|
-
if (response.UnprocessedKeys) {
|
|
125
|
-
for (const [tableName, tableKeys] of Object.entries(response.UnprocessedKeys)) {
|
|
126
|
-
if (tableKeys.Keys && tableKeys.Keys.length > 0) {
|
|
127
|
-
unprocessed[tableName] = { Keys: tableKeys.Keys };
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
if (Object.keys(unprocessed).length === 0)
|
|
132
|
-
break;
|
|
133
|
-
retries++;
|
|
134
|
-
if (retries > maxRetries) {
|
|
135
|
-
return yield* new DynamoError({
|
|
136
|
-
operation: "BatchGetItem",
|
|
137
|
-
cause: new Error(`Unprocessed keys remain after ${maxRetries} retries`),
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
// Exponential backoff
|
|
141
|
-
yield* Effect.sleep(`${baseDelayMs * 2 ** (retries - 1)} millis`);
|
|
142
|
-
requestItems = unprocessed;
|
|
143
|
-
}
|
|
83
|
+
for (let i = 0; i < fetched.length; i++) {
|
|
84
|
+
const item = fetched[i];
|
|
85
|
+
if (item === undefined)
|
|
86
|
+
continue;
|
|
87
|
+
results[i] = yield* infos[i].entity._decodeRecord(fromAttributeMap(item));
|
|
144
88
|
}
|
|
145
89
|
// Cast rationale: results is built as Array<A | undefined> by matching DynamoDB
|
|
146
90
|
// responses back to input positions via primary key comparison. The mapped tuple
|
|
@@ -148,17 +92,86 @@ export const get = (items, config) => Effect.gen(function* () {
|
|
|
148
92
|
// array construction can't express this statically.
|
|
149
93
|
return results;
|
|
150
94
|
});
|
|
95
|
+
/**
|
|
96
|
+
* Versioned puts in caller order, chunked greedily into transactions of at
|
|
97
|
+
* most {@link TRANSACT_WRITE_ITEMS_LIMIT} actions and
|
|
98
|
+
* {@link TRANSACT_WRITE_MAX_BYTES} bytes — DynamoDB's own limits, exactly, by
|
|
99
|
+
* the exact size model. Chunking picks request boundaries; it refuses nothing.
|
|
100
|
+
* One put always fits alone: its item is at most 409,600 bytes, or DynamoDB
|
|
101
|
+
* rejects it as too large.
|
|
102
|
+
*/
|
|
103
|
+
const chunkVersionedPuts = (puts) => {
|
|
104
|
+
const chunks = [];
|
|
105
|
+
let bytes = 0;
|
|
106
|
+
for (const put of puts) {
|
|
107
|
+
const last = chunks[chunks.length - 1];
|
|
108
|
+
if (last === undefined ||
|
|
109
|
+
last.length >= TRANSACT_WRITE_ITEMS_LIMIT ||
|
|
110
|
+
bytes + put.bytes > TRANSACT_WRITE_MAX_BYTES) {
|
|
111
|
+
chunks.push([put]);
|
|
112
|
+
bytes = put.bytes;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
last.push(put);
|
|
116
|
+
bytes += put.bytes;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return chunks;
|
|
120
|
+
};
|
|
121
|
+
/** What a batch had written when its versioned-put chunk `index` failed, as a clause. */
|
|
122
|
+
const committedBefore = (chunks, index) => {
|
|
123
|
+
const unsent = "none of the batch's non-versioned requests was sent";
|
|
124
|
+
if (index === 0)
|
|
125
|
+
return `no earlier transaction of the batch was written, and ${unsent}`;
|
|
126
|
+
const items = chunks.slice(0, index).reduce((sum, chunk) => sum + chunk.length, 0);
|
|
127
|
+
return (`the batch's ${index} earlier transaction${index === 1 ? "" : "s"} of versioned puts ` +
|
|
128
|
+
`(${items} item${items === 1 ? "" : "s"}) ${index === 1 ? "was" : "were"} already ` +
|
|
129
|
+
`written, and ${unsent}`);
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* What a batch had written when one of its `BatchWriteItem` requests (the
|
|
133
|
+
* non-versioned requests, after every versioned-put chunk) was rejected, as a
|
|
134
|
+
* clause: its versioned-put transactions, the `written` non-versioned requests
|
|
135
|
+
* of earlier calls (earlier chunks, and this chunk's requests written before
|
|
136
|
+
* an unprocessed-items retry), and the `unsent` requests after this chunk.
|
|
137
|
+
*/
|
|
138
|
+
const committedBeforeRequest = (versionedChunks, written, unsent) => {
|
|
139
|
+
const plural = (count, noun) => `${count} ${noun}${count === 1 ? "" : "s"}`;
|
|
140
|
+
const parts = [];
|
|
141
|
+
if (versionedChunks.length > 0) {
|
|
142
|
+
const items = versionedChunks.reduce((sum, chunk) => sum + chunk.length, 0);
|
|
143
|
+
parts.push(`its ${plural(versionedChunks.length, "transaction")} of versioned puts ` +
|
|
144
|
+
`(${plural(items, "item")})`);
|
|
145
|
+
}
|
|
146
|
+
if (written > 0)
|
|
147
|
+
parts.push(plural(written, "non-versioned request"));
|
|
148
|
+
const wrote = parts.length === 0
|
|
149
|
+
? "the batch had written nothing before it"
|
|
150
|
+
: `the batch had already written ${parts.join(" and ")}`;
|
|
151
|
+
return unsent === 0
|
|
152
|
+
? wrote
|
|
153
|
+
: `${wrote}, and its ${plural(unsent, "later request")} ${unsent === 1 ? "was" : "were"} not sent`;
|
|
154
|
+
};
|
|
151
155
|
/**
|
|
152
156
|
* Batch-write any number of items across entities/tables.
|
|
153
157
|
* Auto-chunks at 25 items per request. Retries unprocessed items
|
|
154
158
|
* with exponential backoff.
|
|
155
159
|
*
|
|
156
160
|
* Puts of a `versioned` entity are sent first, as create-only
|
|
157
|
-
* `TransactWriteItems`
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
161
|
+
* `TransactWriteItems` (`attribute_not_exists`), chunked at exactly DynamoDB's
|
|
162
|
+
* limits: 100 actions and 4,194,304 bytes by DynamoDB's size accounting. A
|
|
163
|
+
* batch put cannot continue an existing item's version, so one that would
|
|
164
|
+
* replace an item fails with a `ValidationError` and its chunk writes nothing
|
|
165
|
+
* (the entity's `put` and `Transaction.transactWrite` replace it). Each chunk
|
|
166
|
+
* costs twice the write capacity of a batch write. Should DynamoDB reject a
|
|
167
|
+
* chunk's size all the same, the batch fails with a `ValidationError` giving
|
|
168
|
+
* both the library's measure and DynamoDB's, and what was already written; the
|
|
169
|
+
* chunk is not re-split.
|
|
170
|
+
*
|
|
171
|
+
* An item over DynamoDB's 400 KB, or a sort key over 1024 bytes, is not
|
|
172
|
+
* pre-checked (#144): DynamoDB rejects its request, and the batch fails with a
|
|
173
|
+
* `ValidationError` naming the item, with DynamoDB's error as the cause. The
|
|
174
|
+
* batch is not atomic: the message says exactly what it had already written.
|
|
162
175
|
*
|
|
163
176
|
* ```typescript
|
|
164
177
|
* yield* Batch.write([
|
|
@@ -199,6 +212,9 @@ export const write = (operations, config) => Effect.gen(function* () {
|
|
|
199
212
|
}
|
|
200
213
|
const entity = info.entity;
|
|
201
214
|
const { name: tableName } = yield* entity._tableTag;
|
|
215
|
+
const primary = entity.indexes.primary;
|
|
216
|
+
const keyFields = [primary.pk.field, primary.sk.field];
|
|
217
|
+
const keys = () => keyAttributesOf(entity.indexes);
|
|
202
218
|
// BatchWriteItem has no ConditionExpression. Silently dropping a
|
|
203
219
|
// condition would turn `create()` into a blind overwrite, so reject
|
|
204
220
|
// instead — the caller wants `Transaction.transactWrite`.
|
|
@@ -236,18 +252,32 @@ export const write = (operations, config) => Effect.gen(function* () {
|
|
|
236
252
|
touched.set(key, (touched.get(key) ?? 0) + 1);
|
|
237
253
|
if (entity._incarnationToken) {
|
|
238
254
|
versionedKeys.set(key, entity.entityType);
|
|
255
|
+
const transactItem = {
|
|
256
|
+
Put: {
|
|
257
|
+
TableName: tableName,
|
|
258
|
+
Item: built.marshalled,
|
|
259
|
+
ConditionExpression: "attribute_not_exists(#pk)",
|
|
260
|
+
ExpressionAttributeNames: { "#pk": entity.indexes.primary.pk.field },
|
|
261
|
+
},
|
|
262
|
+
};
|
|
239
263
|
versionedPuts.push({
|
|
240
264
|
tableName,
|
|
241
265
|
entityType: entity.entityType,
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
266
|
+
transactItem,
|
|
267
|
+
keyFields,
|
|
268
|
+
keys,
|
|
269
|
+
// Exact, condition and its name included: what DynamoDB counts
|
|
270
|
+
// toward the transaction's 4 MB (#144).
|
|
271
|
+
bytes: transactItemBytes(transactItem),
|
|
245
272
|
});
|
|
246
273
|
}
|
|
247
274
|
else {
|
|
248
275
|
writeRequests.push({
|
|
249
276
|
tableName,
|
|
250
277
|
request: { PutRequest: { Item: built.marshalled } },
|
|
278
|
+
entityType: entity.entityType,
|
|
279
|
+
keyFields,
|
|
280
|
+
keys,
|
|
251
281
|
});
|
|
252
282
|
}
|
|
253
283
|
}
|
|
@@ -259,6 +289,9 @@ export const write = (operations, config) => Effect.gen(function* () {
|
|
|
259
289
|
writeRequests.push({
|
|
260
290
|
tableName,
|
|
261
291
|
request: { DeleteRequest: { Key: composed } },
|
|
292
|
+
entityType: entity.entityType,
|
|
293
|
+
keyFields,
|
|
294
|
+
keys,
|
|
262
295
|
});
|
|
263
296
|
}
|
|
264
297
|
else {
|
|
@@ -281,35 +314,35 @@ export const write = (operations, config) => Effect.gen(function* () {
|
|
|
281
314
|
});
|
|
282
315
|
}
|
|
283
316
|
}
|
|
284
|
-
// Versioned puts first, as create-only transactions
|
|
285
|
-
//
|
|
286
|
-
//
|
|
287
|
-
|
|
288
|
-
const versionedChunks
|
|
289
|
-
|
|
290
|
-
const
|
|
291
|
-
const lastBytes = last?.reduce((sum, p) => sum + p.bytes, 0) ?? 0;
|
|
292
|
-
if (last === undefined ||
|
|
293
|
-
last.length >= MAX_TRANSACT_WRITE ||
|
|
294
|
-
lastBytes + put.bytes > MAX_TRANSACT_BYTES) {
|
|
295
|
-
versionedChunks.push([put]);
|
|
296
|
-
}
|
|
297
|
-
else {
|
|
298
|
-
last.push(put);
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
for (const chunk of versionedChunks) {
|
|
302
|
-
const transactItems = chunk.map((put) => ({
|
|
303
|
-
Put: {
|
|
304
|
-
TableName: put.tableName,
|
|
305
|
-
Item: put.item,
|
|
306
|
-
ConditionExpression: "attribute_not_exists(#pk)",
|
|
307
|
-
ExpressionAttributeNames: { "#pk": put.pkField },
|
|
308
|
-
},
|
|
309
|
-
}));
|
|
317
|
+
// Versioned puts first, as create-only transactions. Each chunk is atomic;
|
|
318
|
+
// a chunk that would replace an existing item writes nothing and stops the
|
|
319
|
+
// batch before any later chunk or the plain requests below.
|
|
320
|
+
const versionedChunks = chunkVersionedPuts(versionedPuts);
|
|
321
|
+
for (const [chunkIndex, chunk] of versionedChunks.entries()) {
|
|
322
|
+
const transactItems = chunk.map((put) => put.transactItem);
|
|
323
|
+
const committed = committedBefore(versionedChunks, chunkIndex);
|
|
310
324
|
let retries = 0;
|
|
311
325
|
while (true) {
|
|
312
|
-
const cancelled = yield* client.transactWriteItems({ TransactItems: transactItems }).pipe(Effect.as(undefined),
|
|
326
|
+
const cancelled = yield* client.transactWriteItems({ TransactItems: transactItems }).pipe(Effect.as(undefined),
|
|
327
|
+
// A limit DynamoDB enforced (#144) — an oversized item, the 4 MB
|
|
328
|
+
// payload, an over-long sort key — named. Such a rejection carries no
|
|
329
|
+
// conditional failure, so it is never read as a replacing put.
|
|
330
|
+
diagnoseFailure({
|
|
331
|
+
sent: () => ({
|
|
332
|
+
_tag: "Transaction",
|
|
333
|
+
items: transactItems,
|
|
334
|
+
targets: () => chunk.map((put, index) => transactItemTarget(transactItems[index], put.tableName, put.keyFields, put.entityType, `the versioned put of ${put.entityType}`)),
|
|
335
|
+
}),
|
|
336
|
+
keys: () => mergeKeyAttributes(...chunk.map((put) => put.keys())),
|
|
337
|
+
// Chunked to fit by the exact size model: should DynamoDB still
|
|
338
|
+
// reject the payload, the error gives both sizes — never re-split
|
|
339
|
+
// nor retried — and says exactly what the batch already wrote.
|
|
340
|
+
rewrite: (diagnosis, original) => diagnosedValidationError(diagnosis, original, {
|
|
341
|
+
operation: "batchWrite",
|
|
342
|
+
entityType: chunk[0].entityType,
|
|
343
|
+
committed,
|
|
344
|
+
}),
|
|
345
|
+
}), Effect.catchTag("DynamoError", (error) => isAwsTransactionCancelled(error.cause)
|
|
313
346
|
? Effect.succeed({
|
|
314
347
|
reasons: error.cause.CancellationReasons ?? [],
|
|
315
348
|
cause: error.cause,
|
|
@@ -327,9 +360,8 @@ export const write = (operations, config) => Effect.gen(function* () {
|
|
|
327
360
|
cause: `Batch.write would replace an existing ${replaced.entityType} item. A versioned ` +
|
|
328
361
|
"entity's replacing put continues the item's version (and snapshots / rotates it), " +
|
|
329
362
|
"which needs the stored item — a batch write could only reset it to version 1. " +
|
|
330
|
-
"Use the entity's put() or Transaction.transactWrite for it. Nothing in its
|
|
331
|
-
|
|
332
|
-
"non-versioned request, was written; earlier chunks of versioned puts may have been.",
|
|
363
|
+
"Use the entity's put() or Transaction.transactWrite for it. Nothing in its " +
|
|
364
|
+
`transaction of versioned puts was written; ${committed}.`,
|
|
333
365
|
});
|
|
334
366
|
}
|
|
335
367
|
// Only contention is retried; any other cancellation is a real failure.
|
|
@@ -367,7 +399,40 @@ export const write = (operations, config) => Effect.gen(function* () {
|
|
|
367
399
|
// Retry loop for unprocessed items
|
|
368
400
|
let retries = 0;
|
|
369
401
|
while (Object.keys(requestItems).length > 0) {
|
|
370
|
-
const
|
|
402
|
+
const sentItems = requestItems;
|
|
403
|
+
// What the batch had written before this request: every versioned
|
|
404
|
+
// chunk, the earlier chunks, and this chunk's requests processed on
|
|
405
|
+
// earlier attempts (all but the unprocessed ones being retried).
|
|
406
|
+
const sentCount = Object.values(sentItems).reduce((sum, requests) => sum + requests.length, 0);
|
|
407
|
+
const committed = committedBeforeRequest(versionedChunks, chunkStart + chunk.length - sentCount, writeRequests.length - chunkStart - chunk.length);
|
|
408
|
+
const response = yield* client.batchWriteItem({ RequestItems: sentItems }).pipe(
|
|
409
|
+
// An oversized item or over-long sort key (#144), named, with what
|
|
410
|
+
// the batch had already written: Batch.write was never atomic.
|
|
411
|
+
diagnoseFailure({
|
|
412
|
+
sent: () => {
|
|
413
|
+
// The request's entries, in request order, matched back to the
|
|
414
|
+
// batch's own records (by request object) to name them.
|
|
415
|
+
const sources = new Map(chunk.map((item) => [item.request, item]));
|
|
416
|
+
const ordered = Object.values(sentItems).flatMap((requests) => requests.map((request) => sources.get(request)));
|
|
417
|
+
const items = batchEntries(sentItems);
|
|
418
|
+
return {
|
|
419
|
+
_tag: "Batch",
|
|
420
|
+
items,
|
|
421
|
+
targets: () => items.map((item, index) => {
|
|
422
|
+
const source = ordered[index];
|
|
423
|
+
return transactItemTarget(item, source?.tableName ?? "", source?.keyFields ?? [], source?.entityType ?? "unknown", source === undefined
|
|
424
|
+
? `request ${index} of the batch`
|
|
425
|
+
: `the ${item.Put !== undefined ? "put" : "delete"} of ${source.entityType}`);
|
|
426
|
+
}),
|
|
427
|
+
};
|
|
428
|
+
},
|
|
429
|
+
keys: () => mergeKeyAttributes(...chunk.map((item) => item.keys())),
|
|
430
|
+
rewrite: (diagnosis, original) => diagnosedValidationError(diagnosis, original, {
|
|
431
|
+
operation: "batchWrite",
|
|
432
|
+
entityType: chunk[0]?.entityType ?? "unknown",
|
|
433
|
+
committed,
|
|
434
|
+
}),
|
|
435
|
+
}));
|
|
371
436
|
// Check for unprocessed items
|
|
372
437
|
const unprocessed = {};
|
|
373
438
|
if (response.UnprocessedItems) {
|
package/dist/Batch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Batch.js","sourceRoot":"","sources":["../src/Batch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Batch.js","sourceRoot":"","sources":["../src/Batch.ts"],"names":[],"mappings":"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"}
|
package/dist/Collection.d.ts
CHANGED
|
@@ -8,8 +8,10 @@
|
|
|
8
8
|
* Collections are built from Entity index definitions that share a `collection` name.
|
|
9
9
|
*/
|
|
10
10
|
import * as DynamoSchema from "@effect-dynamodb/schema/DynamoSchema.js";
|
|
11
|
+
import { ValidationError } from "@effect-dynamodb/schema/Errors.js";
|
|
11
12
|
import type { IndexDefinition } from "@effect-dynamodb/schema/KeyComposer.js";
|
|
12
|
-
import { type Schema } from "effect";
|
|
13
|
+
import { Effect, type Schema } from "effect";
|
|
14
|
+
import { type PackedAttributeGuard } from "./internal/Packed.js";
|
|
13
15
|
import * as Query from "./Query.js";
|
|
14
16
|
import type { TableConfig } from "./Table.js";
|
|
15
17
|
/** Minimal structural type for entities used in Collections. */
|
|
@@ -23,6 +25,12 @@ interface CollectionEntity {
|
|
|
23
25
|
readonly recordSchema: Schema.Codec<any>;
|
|
24
26
|
};
|
|
25
27
|
readonly _decodeRecord: (raw: globalThis.Record<string, unknown>) => import("effect").Effect.Effect<any, import("@effect-dynamodb/schema/Errors.js").ValidationError>;
|
|
28
|
+
/** Packed attributes an expression may not look inside (EDD-9076, #147). */
|
|
29
|
+
readonly _packedGuards?: ReadonlyArray<PackedAttributeGuard> | undefined;
|
|
30
|
+
/** Read packed attributes of a raw row by their stored form (#147). */
|
|
31
|
+
readonly _unpackFields?: ((raw: Record<string, unknown>, operation?: string) => Effect.Effect<void, ValidationError>) | undefined;
|
|
32
|
+
/** The stored attributes `_unpackFields` reads (a projection naming none runs no hook). */
|
|
33
|
+
readonly _dispatchAttributes?: ReadonlyArray<string> | undefined;
|
|
26
34
|
}
|
|
27
35
|
type EntityRecord<E extends CollectionEntity> = Schema.Schema.Type<E["schemas"]["recordSchema"]>;
|
|
28
36
|
type CollectionResult<TEntities extends Record<string, CollectionEntity>> = {
|
package/dist/Collection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../src/Collection.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,YAAY,MAAM,yCAAyC,CAAA;
|
|
1
|
+
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../src/Collection.ts"],"names":[],"mappings":"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"}
|
package/dist/Collection.js
CHANGED
|
@@ -12,6 +12,7 @@ import { ValidationError } from "@effect-dynamodb/schema/Errors.js";
|
|
|
12
12
|
import { compositeKeyFormKind, makeCompositeKeyForm, toCompositeKeyRecord, } from "@effect-dynamodb/schema/internal/CompositeCodec.js";
|
|
13
13
|
import * as KeyComposer from "@effect-dynamodb/schema/KeyComposer.js";
|
|
14
14
|
import { Effect } from "effect";
|
|
15
|
+
import { collectionPackedQueryOptions, entityPackedQueryOptions, } from "./internal/Packed.js";
|
|
15
16
|
import * as Query from "./Query.js";
|
|
16
17
|
// ---------------------------------------------------------------------------
|
|
17
18
|
// Collection.make()
|
|
@@ -191,8 +192,6 @@ export const make = (name, entities) => {
|
|
|
191
192
|
let q = Query.make({
|
|
192
193
|
tableName: "",
|
|
193
194
|
indexName: sharedDynamoIndexName,
|
|
194
|
-
// A collection is over its members' secondary indexes — GSIs.
|
|
195
|
-
globalIndex: true,
|
|
196
195
|
pkField: sharedPkField,
|
|
197
196
|
pkValue: collectionPk(pkComposites),
|
|
198
197
|
skField: sharedSkField,
|
|
@@ -209,6 +208,8 @@ export const make = (name, entities) => {
|
|
|
209
208
|
// We need to tag each item with its entity key so the caller can group
|
|
210
209
|
return collectionDecoder(raw);
|
|
211
210
|
},
|
|
211
|
+
...collectionPackedQueryOptions(entityEntries.map(([, entity]) => entity)),
|
|
212
|
+
keyConditionDiagnosis: { operation: "query", label: `collection "${name}"` },
|
|
212
213
|
});
|
|
213
214
|
// Clustered collections add begins_with SK condition on collection prefix
|
|
214
215
|
if (collectionType === "clustered" && collectionSkPrefix) {
|
|
@@ -225,13 +226,12 @@ export const make = (name, entities) => {
|
|
|
225
226
|
let q = Query.make({
|
|
226
227
|
tableName: "",
|
|
227
228
|
indexName: sharedDynamoIndexName,
|
|
228
|
-
// A collection is over its members' secondary indexes — GSIs.
|
|
229
|
-
globalIndex: true,
|
|
230
229
|
pkField: sharedPkField,
|
|
231
230
|
pkValue,
|
|
232
231
|
skField: sharedSkField,
|
|
233
232
|
entityTypes: [entity.entityType],
|
|
234
233
|
decoder: (raw) => entity._decodeRecord(raw),
|
|
234
|
+
...entityPackedQueryOptions(entity),
|
|
235
235
|
resolveTableName: entity._tableTag.useSync((tc) => tc.name),
|
|
236
236
|
keyFields: [
|
|
237
237
|
sharedPkField,
|
|
@@ -239,6 +239,7 @@ export const make = (name, entities) => {
|
|
|
239
239
|
entity.indexes.primary?.pk.field,
|
|
240
240
|
entity.indexes.primary?.sk.field,
|
|
241
241
|
],
|
|
242
|
+
keyConditionDiagnosis: { operation: "query", label: `collection "${name}" (${key})` },
|
|
242
243
|
});
|
|
243
244
|
// Clustered entity selectors add begins_with on the entity SK prefix.
|
|
244
245
|
// For sub-collections, the prefix uses the FULL hierarchy from root to
|
package/dist/Collection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collection.js","sourceRoot":"","sources":["../src/Collection.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,YAAY,MAAM,yCAAyC,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,oDAAoD,CAAA;AAE3D,OAAO,KAAK,WAAW,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,MAAM,EAAe,MAAM,QAAQ,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"Collection.js","sourceRoot":"","sources":["../src/Collection.ts"],"names":[],"mappings":"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"}
|