effect-dynamodb 1.23.0 → 1.25.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 +5 -2
- package/dist/Aggregate.d.ts.map +1 -1
- package/dist/Aggregate.js +136 -53
- 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.map +1 -1
- package/dist/Collection.js +2 -4
- package/dist/Collection.js.map +1 -1
- package/dist/DynamoClient.d.ts.map +1 -1
- package/dist/DynamoClient.js +42 -14
- package/dist/DynamoClient.js.map +1 -1
- package/dist/Entity.d.ts +19 -13
- package/dist/Entity.d.ts.map +1 -1
- package/dist/Entity.js +287 -226
- package/dist/Entity.js.map +1 -1
- package/dist/EventStore.d.ts +1060 -50
- package/dist/EventStore.d.ts.map +1 -1
- package/dist/EventStore.js +1607 -299
- package/dist/EventStore.js.map +1 -1
- package/dist/Query.d.ts +47 -14
- package/dist/Query.d.ts.map +1 -1
- package/dist/Query.js +190 -68
- package/dist/Query.js.map +1 -1
- package/dist/Table.d.ts +56 -6
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js +134 -54
- 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 +67 -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/internal/BoundQuery.d.ts +3 -2
- package/dist/internal/BoundQuery.d.ts.map +1 -1
- package/dist/internal/BoundQuery.js.map +1 -1
- package/dist/internal/BoundVectorQuery.d.ts +5 -1
- package/dist/internal/BoundVectorQuery.d.ts.map +1 -1
- package/dist/internal/BoundVectorQuery.js +17 -5
- 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 +8 -5
- package/dist/internal/EntityCombinators.js.map +1 -1
- package/dist/internal/EntityOps.d.ts +1 -1
- package/dist/internal/Expr.d.ts +4 -0
- package/dist/internal/Expr.d.ts.map +1 -1
- package/dist/internal/Expr.js +6 -4
- 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/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/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 +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expr.js","sourceRoot":"","sources":["../../src/internal/Expr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Expr.js","sourceRoot":"","sources":["../../src/internal/Expr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal DynamoDB's limits on one expression, and how DynamoDB measures an
|
|
3
|
+
* expression against them (#133, #144).
|
|
4
|
+
*
|
|
5
|
+
* Used two ways, neither of them a pre-check:
|
|
6
|
+
*
|
|
7
|
+
* - by strategies that pick a request that fits — `Entity`'s wide-update split
|
|
8
|
+
* and its strongest-guard fallback ({@link expressionFits}) — refusing
|
|
9
|
+
* nothing;
|
|
10
|
+
* - by `WriteDiagnosis.ts`, to confirm DynamoDB's rejection of an expression
|
|
11
|
+
* against the request that was sent and name it.
|
|
12
|
+
*
|
|
13
|
+
* Measured against DynamoDB Local (3.1.0, 2026-10-10): an expression of 4,096
|
|
14
|
+
* characters is accepted and 4,097 rejected; 300 operators accepted and 301
|
|
15
|
+
* rejected; an `IN` of 100 operands accepted and 101 rejected. The length is
|
|
16
|
+
* the expression string's own, placeholders unexpanded.
|
|
17
|
+
*/
|
|
18
|
+
/** DynamoDB's limit on one expression's length, in characters. */
|
|
19
|
+
export declare const EXPRESSION_MAX_LENGTH = 4096;
|
|
20
|
+
/** DynamoDB's limit on one expression's operators and functions. */
|
|
21
|
+
export declare const EXPRESSION_MAX_OPERATORS = 300;
|
|
22
|
+
/** DynamoDB's limit on the operands of one `IN`. */
|
|
23
|
+
export declare const IN_MAX_OPERANDS = 100;
|
|
24
|
+
/**
|
|
25
|
+
* The operators DynamoDB counts against an expression's 300 (#133), measured
|
|
26
|
+
* against DynamoDB: in a condition, each comparison (`=`, `<>`, `<`, `<=`,
|
|
27
|
+
* `>`, `>=`), `AND` / `OR` / `NOT`, `BETWEEN` (whose own `AND` is part of it,
|
|
28
|
+
* not another operator), `IN`, and each function; in an update, each `+` /
|
|
29
|
+
* `-` and each function (`if_not_exists`, `list_append`) — a `SET` clause's
|
|
30
|
+
* `=` is not an operator.
|
|
31
|
+
*/
|
|
32
|
+
export declare const countOperators: (expression: string, kind: "condition" | "update") => number;
|
|
33
|
+
/** The most operands any one `IN (…)` of `expression` holds (0 when it has none). */
|
|
34
|
+
export declare const largestInOperands: (expression: string) => number;
|
|
35
|
+
/** What DynamoDB counts against an expression's limits. */
|
|
36
|
+
export declare const expressionCost: (expression: string | undefined, kind?: "condition" | "update") => {
|
|
37
|
+
readonly length: number;
|
|
38
|
+
readonly operators: number;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Whether `expression` is within DynamoDB's limits on one expression — for a
|
|
42
|
+
* strategy choosing a request that fits, never to refuse one.
|
|
43
|
+
*/
|
|
44
|
+
export declare const expressionFits: (expression: string, kind?: "condition" | "update") => boolean;
|
|
45
|
+
//# sourceMappingURL=ExpressionLimits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpressionLimits.d.ts","sourceRoot":"","sources":["../../src/internal/ExpressionLimits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,kEAAkE;AAClE,eAAO,MAAM,qBAAqB,OAAO,CAAA;AACzC,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,MAAM,CAAA;AAC3C,oDAAoD;AACpD,eAAO,MAAM,eAAe,MAAM,CAAA;AAQlC;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,EAAE,MAAM,WAAW,GAAG,QAAQ,KAAG,MAoBjF,CAAA;AAED,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,GAAI,YAAY,MAAM,KAAG,MAQtD,CAAA;AAED,2DAA2D;AAC3D,eAAO,MAAM,cAAc,GACzB,YAAY,MAAM,GAAG,SAAS,EAC9B,OAAM,WAAW,GAAG,QAAsB,KACzC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAGwB,CAAA;AAEhF;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,YAAY,MAAM,EAClB,OAAM,WAAW,GAAG,QAAsB,KACzC,OAOF,CAAA"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal DynamoDB's limits on one expression, and how DynamoDB measures an
|
|
3
|
+
* expression against them (#133, #144).
|
|
4
|
+
*
|
|
5
|
+
* Used two ways, neither of them a pre-check:
|
|
6
|
+
*
|
|
7
|
+
* - by strategies that pick a request that fits — `Entity`'s wide-update split
|
|
8
|
+
* and its strongest-guard fallback ({@link expressionFits}) — refusing
|
|
9
|
+
* nothing;
|
|
10
|
+
* - by `WriteDiagnosis.ts`, to confirm DynamoDB's rejection of an expression
|
|
11
|
+
* against the request that was sent and name it.
|
|
12
|
+
*
|
|
13
|
+
* Measured against DynamoDB Local (3.1.0, 2026-10-10): an expression of 4,096
|
|
14
|
+
* characters is accepted and 4,097 rejected; 300 operators accepted and 301
|
|
15
|
+
* rejected; an `IN` of 100 operands accepted and 101 rejected. The length is
|
|
16
|
+
* the expression string's own, placeholders unexpanded.
|
|
17
|
+
*/
|
|
18
|
+
/** DynamoDB's limit on one expression's length, in characters. */
|
|
19
|
+
export const EXPRESSION_MAX_LENGTH = 4096;
|
|
20
|
+
/** DynamoDB's limit on one expression's operators and functions. */
|
|
21
|
+
export const EXPRESSION_MAX_OPERATORS = 300;
|
|
22
|
+
/** DynamoDB's limit on the operands of one `IN`. */
|
|
23
|
+
export const IN_MAX_OPERANDS = 100;
|
|
24
|
+
/**
|
|
25
|
+
* The tokens of a compiled expression. Names and values are placeholders
|
|
26
|
+
* (`#…`, `:…`), so no operator can hide inside one.
|
|
27
|
+
*/
|
|
28
|
+
const EXPRESSION_TOKEN = /#\w+|:\w+|<>|<=|>=|[=<>()+\-,.[\]]|[A-Za-z_]\w*|\d+/g;
|
|
29
|
+
/**
|
|
30
|
+
* The operators DynamoDB counts against an expression's 300 (#133), measured
|
|
31
|
+
* against DynamoDB: in a condition, each comparison (`=`, `<>`, `<`, `<=`,
|
|
32
|
+
* `>`, `>=`), `AND` / `OR` / `NOT`, `BETWEEN` (whose own `AND` is part of it,
|
|
33
|
+
* not another operator), `IN`, and each function; in an update, each `+` /
|
|
34
|
+
* `-` and each function (`if_not_exists`, `list_append`) — a `SET` clause's
|
|
35
|
+
* `=` is not an operator.
|
|
36
|
+
*/
|
|
37
|
+
export const countOperators = (expression, kind) => {
|
|
38
|
+
const tokens = expression.match(EXPRESSION_TOKEN) ?? [];
|
|
39
|
+
let count = 0;
|
|
40
|
+
let betweens = 0;
|
|
41
|
+
for (const [i, token] of tokens.entries()) {
|
|
42
|
+
const word = token.toUpperCase();
|
|
43
|
+
const isFunction = /^[A-Za-z_]\w*$/.test(token) && tokens[i + 1] === "(";
|
|
44
|
+
if (kind === "update") {
|
|
45
|
+
if (token === "+" || token === "-" || isFunction)
|
|
46
|
+
count++;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (isFunction)
|
|
50
|
+
count++;
|
|
51
|
+
else if (["=", "<>", "<", "<=", ">", ">="].includes(token))
|
|
52
|
+
count++;
|
|
53
|
+
else if (word === "BETWEEN") {
|
|
54
|
+
count++;
|
|
55
|
+
betweens++;
|
|
56
|
+
}
|
|
57
|
+
else if (word === "AND" && betweens > 0)
|
|
58
|
+
betweens--;
|
|
59
|
+
else if (word === "AND" || word === "OR" || word === "NOT" || word === "IN")
|
|
60
|
+
count++;
|
|
61
|
+
}
|
|
62
|
+
return count;
|
|
63
|
+
};
|
|
64
|
+
/** The most operands any one `IN (…)` of `expression` holds (0 when it has none). */
|
|
65
|
+
export const largestInOperands = (expression) => {
|
|
66
|
+
let largest = 0;
|
|
67
|
+
for (const match of expression.matchAll(/\bIN\s*\(([^()]*)\)/gi)) {
|
|
68
|
+
const list = match[1].trim();
|
|
69
|
+
const operands = list === "" ? 0 : list.split(",").length;
|
|
70
|
+
if (operands > largest)
|
|
71
|
+
largest = operands;
|
|
72
|
+
}
|
|
73
|
+
return largest;
|
|
74
|
+
};
|
|
75
|
+
/** What DynamoDB counts against an expression's limits. */
|
|
76
|
+
export const expressionCost = (expression, kind = "condition") => expression === undefined
|
|
77
|
+
? { length: 0, operators: 0 }
|
|
78
|
+
: { length: expression.length, operators: countOperators(expression, kind) };
|
|
79
|
+
/**
|
|
80
|
+
* Whether `expression` is within DynamoDB's limits on one expression — for a
|
|
81
|
+
* strategy choosing a request that fits, never to refuse one.
|
|
82
|
+
*/
|
|
83
|
+
export const expressionFits = (expression, kind = "condition") => {
|
|
84
|
+
const cost = expressionCost(expression, kind);
|
|
85
|
+
return (cost.length <= EXPRESSION_MAX_LENGTH &&
|
|
86
|
+
cost.operators <= EXPRESSION_MAX_OPERATORS &&
|
|
87
|
+
largestInOperands(expression) <= IN_MAX_OPERANDS);
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=ExpressionLimits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpressionLimits.js","sourceRoot":"","sources":["../../src/internal/ExpressionLimits.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal `BatchGetItem` by key, results in input order — shared by
|
|
3
|
+
* `Batch.get` and the hydration of a stream index that does not project the
|
|
4
|
+
* events it indexes (`EventStore.makeStream({ indexes: { …, projection: "keys" } })`
|
|
5
|
+
* on a GSI, read through `Query`'s `hydration` hook).
|
|
6
|
+
*
|
|
7
|
+
* - Chunks of 100 keys (DynamoDB's `BatchGetItem` limit).
|
|
8
|
+
* - `UnprocessedKeys` are retried with exponential backoff (`baseDelayMs`,
|
|
9
|
+
* doubling); when `maxRetries` run out the call fails with `DynamoError`
|
|
10
|
+
* (`operation: "BatchGetItem"`).
|
|
11
|
+
* - `BatchGetItem` does not preserve order, so responses are matched back to
|
|
12
|
+
* their keys through a `Map` on the key attribute values.
|
|
13
|
+
* - With `rereadMissing`, keys absent from every response are read once more
|
|
14
|
+
* with `ConsistentRead: true` — an eventually consistent table read can lag
|
|
15
|
+
* a GSI that already holds the entry.
|
|
16
|
+
*
|
|
17
|
+
* Keys are sent as given. Callers pass keys that are unique within one
|
|
18
|
+
* request — a page of one stream's index never repeats a key — and a repeated
|
|
19
|
+
* key is not de-duplicated: DynamoDB rejects the request ("Provided list of
|
|
20
|
+
* item keys contains duplicates"), and the rejection is diagnosed (#144) as a
|
|
21
|
+
* `DynamoError` naming both positions (`describe`), DynamoDB's error kept as
|
|
22
|
+
* the cause.
|
|
23
|
+
*/
|
|
24
|
+
import type { AttributeValue } from "@aws-sdk/client-dynamodb";
|
|
25
|
+
import { Effect } from "effect";
|
|
26
|
+
import type { DynamoClientError, DynamoClientService } from "../DynamoClient.js";
|
|
27
|
+
/** DynamoDB's limit on the keys of one `BatchGetItem` request. */
|
|
28
|
+
export declare const MAX_BATCH_GET = 100;
|
|
29
|
+
/** Default retries of `UnprocessedKeys`. */
|
|
30
|
+
export declare const MAX_RETRIES = 5;
|
|
31
|
+
/** Default first backoff delay, doubled on each retry. */
|
|
32
|
+
export declare const BASE_DELAY_MS = 100;
|
|
33
|
+
/** One key to fetch: the table and the item's full primary key. */
|
|
34
|
+
export interface HydrateRequest {
|
|
35
|
+
readonly tableName: string;
|
|
36
|
+
readonly key: Record<string, AttributeValue>;
|
|
37
|
+
}
|
|
38
|
+
export interface HydrateOptions {
|
|
39
|
+
/** A `ProjectionExpression` (and its names) sent for every table. */
|
|
40
|
+
readonly projection?: {
|
|
41
|
+
readonly expression: string;
|
|
42
|
+
readonly names: Record<string, string>;
|
|
43
|
+
} | undefined;
|
|
44
|
+
readonly maxRetries?: number | undefined;
|
|
45
|
+
readonly baseDelayMs?: number | undefined;
|
|
46
|
+
/** Re-read keys missing from the responses once, strongly consistently. */
|
|
47
|
+
readonly rereadMissing?: boolean | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* The entity a request reads and how to name it in an error (`get 2
|
|
50
|
+
* (User)`), for a rejection of a repeated key. Default: `request <i>`.
|
|
51
|
+
*/
|
|
52
|
+
readonly describe?: ((position: number) => {
|
|
53
|
+
readonly entityType: string;
|
|
54
|
+
readonly source: string;
|
|
55
|
+
}) | undefined;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Fetch `requests` and return the raw items in input order, `undefined` where
|
|
59
|
+
* an item does not exist.
|
|
60
|
+
*/
|
|
61
|
+
export declare const batchGetRaw: (client: DynamoClientService, requests: ReadonlyArray<HydrateRequest>, options?: HydrateOptions) => Effect.Effect<Array<Record<string, AttributeValue> | undefined>, DynamoClientError>;
|
|
62
|
+
//# sourceMappingURL=Hydrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Hydrate.d.ts","sourceRoot":"","sources":["../../src/internal/Hydrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,0BAA0B,CAAA;AAEjF,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAQhF,kEAAkE;AAClE,eAAO,MAAM,aAAa,MAAM,CAAA;AAChC,4CAA4C;AAC5C,eAAO,MAAM,WAAW,IAAI,CAAA;AAC5B,0DAA0D;AAC1D,eAAO,MAAM,aAAa,MAAM,CAAA;AAEhC,mEAAmE;AACnE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CAC7C;AAED,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,UAAU,CAAC,EAChB;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GACvE,SAAS,CAAA;IACb,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC,2EAA2E;IAC3E,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC5C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EACd,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAChF,SAAS,CAAA;CACd;AAkBD;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,mBAAmB,EAC3B,UAAU,aAAa,CAAC,cAAc,CAAC,EACvC,UAAS,cAAmB,KAC3B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,SAAS,CAAC,EAAE,iBAAiB,CAoKjF,CAAA"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal `BatchGetItem` by key, results in input order — shared by
|
|
3
|
+
* `Batch.get` and the hydration of a stream index that does not project the
|
|
4
|
+
* events it indexes (`EventStore.makeStream({ indexes: { …, projection: "keys" } })`
|
|
5
|
+
* on a GSI, read through `Query`'s `hydration` hook).
|
|
6
|
+
*
|
|
7
|
+
* - Chunks of 100 keys (DynamoDB's `BatchGetItem` limit).
|
|
8
|
+
* - `UnprocessedKeys` are retried with exponential backoff (`baseDelayMs`,
|
|
9
|
+
* doubling); when `maxRetries` run out the call fails with `DynamoError`
|
|
10
|
+
* (`operation: "BatchGetItem"`).
|
|
11
|
+
* - `BatchGetItem` does not preserve order, so responses are matched back to
|
|
12
|
+
* their keys through a `Map` on the key attribute values.
|
|
13
|
+
* - With `rereadMissing`, keys absent from every response are read once more
|
|
14
|
+
* with `ConsistentRead: true` — an eventually consistent table read can lag
|
|
15
|
+
* a GSI that already holds the entry.
|
|
16
|
+
*
|
|
17
|
+
* Keys are sent as given. Callers pass keys that are unique within one
|
|
18
|
+
* request — a page of one stream's index never repeats a key — and a repeated
|
|
19
|
+
* key is not de-duplicated: DynamoDB rejects the request ("Provided list of
|
|
20
|
+
* item keys contains duplicates"), and the rejection is diagnosed (#144) as a
|
|
21
|
+
* `DynamoError` naming both positions (`describe`), DynamoDB's error kept as
|
|
22
|
+
* the cause.
|
|
23
|
+
*/
|
|
24
|
+
import { DynamoError } from "@effect-dynamodb/schema/Errors.js";
|
|
25
|
+
import { Effect } from "effect";
|
|
26
|
+
import { diagnoseFailure, transactItemTarget, withCause, } from "./WriteDiagnosis.js";
|
|
27
|
+
/** DynamoDB's limit on the keys of one `BatchGetItem` request. */
|
|
28
|
+
export const MAX_BATCH_GET = 100;
|
|
29
|
+
/** Default retries of `UnprocessedKeys`. */
|
|
30
|
+
export const MAX_RETRIES = 5;
|
|
31
|
+
/** Default first backoff delay, doubled on each retry. */
|
|
32
|
+
export const BASE_DELAY_MS = 100;
|
|
33
|
+
/** A key attribute value, as a string that is equal iff the values are. */
|
|
34
|
+
const scalarIdentity = (value) => {
|
|
35
|
+
if (value === undefined)
|
|
36
|
+
return "-";
|
|
37
|
+
if (value.S !== undefined)
|
|
38
|
+
return `S${value.S}`;
|
|
39
|
+
if (value.N !== undefined)
|
|
40
|
+
return `N${value.N}`;
|
|
41
|
+
if (value.B !== undefined)
|
|
42
|
+
return `B${Array.from(value.B).join(",")}`;
|
|
43
|
+
return `J${JSON.stringify(value)}`;
|
|
44
|
+
};
|
|
45
|
+
const identity = (tableName, names, item) => [tableName, ...names.map((name) => `${name}=${scalarIdentity(item[name])}`)].join("\u0000");
|
|
46
|
+
/**
|
|
47
|
+
* Fetch `requests` and return the raw items in input order, `undefined` where
|
|
48
|
+
* an item does not exist.
|
|
49
|
+
*/
|
|
50
|
+
export const batchGetRaw = (client, requests, options = {}) => Effect.gen(function* () {
|
|
51
|
+
const results = new Array(requests.length).fill(undefined);
|
|
52
|
+
if (requests.length === 0)
|
|
53
|
+
return results;
|
|
54
|
+
const maxRetries = options.maxRetries ?? MAX_RETRIES;
|
|
55
|
+
const baseDelayMs = options.baseDelayMs ?? BASE_DELAY_MS;
|
|
56
|
+
/** The sorted key attribute names of each request, and its identity. */
|
|
57
|
+
const keyNames = requests.map((request) => Object.keys(request.key).sort());
|
|
58
|
+
const identities = requests.map((request, i) => identity(request.tableName, keyNames[i], request.key));
|
|
59
|
+
/**
|
|
60
|
+
* The item each key of a sent request reads, in request order, named by
|
|
61
|
+
* its position (a repeated key's occurrences by successive positions).
|
|
62
|
+
*/
|
|
63
|
+
const repeatTargets = (sentItems) => {
|
|
64
|
+
const seen = new Map();
|
|
65
|
+
return Object.entries(sentItems).flatMap(([tableName, entry]) => (entry.Keys ?? []).map((key) => {
|
|
66
|
+
const names = Object.keys(key).sort();
|
|
67
|
+
const id = identity(tableName, names, key);
|
|
68
|
+
const occurrence = seen.get(id) ?? 0;
|
|
69
|
+
seen.set(id, occurrence + 1);
|
|
70
|
+
const positions = identities.flatMap((candidate, i) => (candidate === id ? [i] : []));
|
|
71
|
+
const position = positions[Math.min(occurrence, positions.length - 1)];
|
|
72
|
+
const described = position === undefined
|
|
73
|
+
? { entityType: "unknown", source: "a request" }
|
|
74
|
+
: (options.describe?.(position) ?? {
|
|
75
|
+
entityType: "unknown",
|
|
76
|
+
source: `request ${position}`,
|
|
77
|
+
});
|
|
78
|
+
return transactItemTarget({ Get: { TableName: tableName, Key: key } }, tableName, names, described.entityType, described.source);
|
|
79
|
+
}));
|
|
80
|
+
};
|
|
81
|
+
/** Fetch the requests at `positions`, filling `results`. */
|
|
82
|
+
const fetch = (positions, consistentRead) => Effect.gen(function* () {
|
|
83
|
+
for (let start = 0; start < positions.length; start += MAX_BATCH_GET) {
|
|
84
|
+
const chunk = positions.slice(start, start + MAX_BATCH_GET);
|
|
85
|
+
const pending = new Map();
|
|
86
|
+
/** Per table: the distinct key-name lists its keys use. */
|
|
87
|
+
const tableKeyNames = new Map();
|
|
88
|
+
let requestItems = {};
|
|
89
|
+
for (const position of chunk) {
|
|
90
|
+
const request = requests[position];
|
|
91
|
+
const id = identities[position];
|
|
92
|
+
// A repeated key is still sent: DynamoDB rejects a request whose
|
|
93
|
+
// keys repeat ("Provided list of item keys contains duplicates"),
|
|
94
|
+
// and that rejection passes through — the helper does not quietly
|
|
95
|
+
// de-duplicate. The positions are grouped only for matching.
|
|
96
|
+
const waiting = pending.get(id);
|
|
97
|
+
if (waiting !== undefined)
|
|
98
|
+
waiting.push(position);
|
|
99
|
+
else
|
|
100
|
+
pending.set(id, [position]);
|
|
101
|
+
const names = keyNames[position];
|
|
102
|
+
let lists = tableKeyNames.get(request.tableName);
|
|
103
|
+
if (lists === undefined) {
|
|
104
|
+
lists = new Map();
|
|
105
|
+
tableKeyNames.set(request.tableName, lists);
|
|
106
|
+
}
|
|
107
|
+
lists.set(names.join("\u0000"), names);
|
|
108
|
+
let entry = requestItems[request.tableName];
|
|
109
|
+
if (entry === undefined) {
|
|
110
|
+
entry = {
|
|
111
|
+
Keys: [],
|
|
112
|
+
...(consistentRead ? { ConsistentRead: true } : {}),
|
|
113
|
+
...(options.projection === undefined
|
|
114
|
+
? {}
|
|
115
|
+
: {
|
|
116
|
+
ProjectionExpression: options.projection.expression,
|
|
117
|
+
ExpressionAttributeNames: options.projection.names,
|
|
118
|
+
}),
|
|
119
|
+
};
|
|
120
|
+
requestItems[request.tableName] = entry;
|
|
121
|
+
}
|
|
122
|
+
entry.Keys.push(request.key);
|
|
123
|
+
}
|
|
124
|
+
let retries = 0;
|
|
125
|
+
while (Object.keys(requestItems).length > 0) {
|
|
126
|
+
const sentItems = requestItems;
|
|
127
|
+
const response = yield* client.batchGetItem({ RequestItems: sentItems }).pipe(
|
|
128
|
+
// A key repeated in one request (#144): DynamoDB's rejection,
|
|
129
|
+
// confirmed and named by the positions that read it.
|
|
130
|
+
diagnoseFailure({
|
|
131
|
+
sent: () => ({ _tag: "BatchGet", targets: () => repeatTargets(sentItems) }),
|
|
132
|
+
only: ["RepeatedItem"],
|
|
133
|
+
rewrite: (diagnosis, original) => diagnosis._tag !== "RepeatedItem"
|
|
134
|
+
? original
|
|
135
|
+
: new DynamoError({
|
|
136
|
+
operation: "BatchGetItem",
|
|
137
|
+
cause: withCause(`BatchGetItem reads one item more than once — ` +
|
|
138
|
+
`${diagnosis.first.source} and ${diagnosis.second.source} both ` +
|
|
139
|
+
`read the item at ${diagnosis.second.key}. DynamoDB allows each key ` +
|
|
140
|
+
"once in a request, and rejected it. Read the item once.", original),
|
|
141
|
+
}),
|
|
142
|
+
}));
|
|
143
|
+
for (const [tableName, items] of Object.entries(response.Responses ?? {})) {
|
|
144
|
+
const lists = tableKeyNames.get(tableName);
|
|
145
|
+
if (lists === undefined)
|
|
146
|
+
continue;
|
|
147
|
+
for (const item of items) {
|
|
148
|
+
for (const names of lists.values()) {
|
|
149
|
+
const matched = pending.get(identity(tableName, names, item));
|
|
150
|
+
if (matched === undefined)
|
|
151
|
+
continue;
|
|
152
|
+
for (const position of matched)
|
|
153
|
+
results[position] = item;
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
const unprocessed = {};
|
|
159
|
+
for (const [tableName, entry] of Object.entries(response.UnprocessedKeys ?? {})) {
|
|
160
|
+
if (entry.Keys !== undefined && entry.Keys.length > 0) {
|
|
161
|
+
// Keep what the original request asked for (consistency,
|
|
162
|
+
// projection) — only the keys change.
|
|
163
|
+
unprocessed[tableName] = { ...requestItems[tableName], Keys: entry.Keys };
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (Object.keys(unprocessed).length === 0)
|
|
167
|
+
break;
|
|
168
|
+
retries++;
|
|
169
|
+
if (retries > maxRetries) {
|
|
170
|
+
return yield* new DynamoError({
|
|
171
|
+
operation: "BatchGetItem",
|
|
172
|
+
cause: new Error(`Unprocessed keys remain after ${maxRetries} retries`),
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
yield* Effect.sleep(`${baseDelayMs * 2 ** (retries - 1)} millis`);
|
|
176
|
+
requestItems = unprocessed;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
yield* fetch(requests.map((_, i) => i), false);
|
|
181
|
+
if (options.rereadMissing === true) {
|
|
182
|
+
const missing = [];
|
|
183
|
+
for (let i = 0; i < results.length; i++)
|
|
184
|
+
if (results[i] === undefined)
|
|
185
|
+
missing.push(i);
|
|
186
|
+
if (missing.length > 0)
|
|
187
|
+
yield* fetch(missing, true);
|
|
188
|
+
}
|
|
189
|
+
return results;
|
|
190
|
+
});
|
|
191
|
+
//# sourceMappingURL=Hydrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Hydrate.js","sourceRoot":"","sources":["../../src/internal/Hydrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +1,74 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @internal
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* @internal Exact sizes by DynamoDB's own accounting (#144), the one measure
|
|
3
|
+
* the library uses: `Batch.write` chunks its versioned-put transactions by
|
|
4
|
+
* it, and the failure-time diagnosis of DynamoDB's write limits
|
|
5
|
+
* (`internal/WriteDiagnosis.ts`) names the item at fault by it. Nothing here
|
|
6
|
+
* refuses a write: DynamoDB's own limits are never pre-checked.
|
|
7
|
+
*
|
|
8
|
+
* The rules were measured on DynamoDB Local from the `Payload Size` its 4 MB
|
|
9
|
+
* rejection reports, and confirmed at the exact boundaries: an item of
|
|
10
|
+
* 409,600 bytes is accepted and 409,601 rejected; a transaction of 4,194,304
|
|
11
|
+
* bytes is accepted and 4,194,305 rejected.
|
|
12
|
+
*
|
|
13
|
+
* - An item is the sum over its attributes of `utf8(name) + size(value)`, with
|
|
14
|
+
* no per-item or per-attribute overhead.
|
|
15
|
+
* - `S`: UTF-8 bytes. `B`: byte length. `BOOL`, `NULL`: 1.
|
|
16
|
+
* - `N`: see {@link numberBytes} (at most 21 bytes, a negative one included).
|
|
17
|
+
* - `SS` / `NS` / `BS`: the sum of the elements' sizes, no overhead.
|
|
18
|
+
* - `L`: `3 + Σ (size(element) + 1)`. `M`: `3 + Σ (utf8(name) + size(value) + 1)`.
|
|
19
|
+
* - A transaction action: its item (a Put) or its key (any other action), plus
|
|
20
|
+
* each of its expressions — see {@link transactItemBytes}.
|
|
5
21
|
*/
|
|
6
22
|
import type { AttributeValue, TransactWriteItem } from "@aws-sdk/client-dynamodb";
|
|
7
23
|
/**
|
|
8
|
-
* DynamoDB's limit on the
|
|
9
|
-
*
|
|
10
|
-
*
|
|
24
|
+
* DynamoDB's limit on the size of one `TransactWriteItems` request: 4 MB, in
|
|
25
|
+
* the binary megabytes DynamoDB uses for every size limit — 4,194,304 bytes,
|
|
26
|
+
* measured by {@link transactItemBytes}.
|
|
11
27
|
*/
|
|
12
28
|
export declare const TRANSACT_WRITE_MAX_BYTES: number;
|
|
29
|
+
/** DynamoDB's limit on the size of one item: 400 KB, which is 409,600 bytes. */
|
|
30
|
+
export declare const ITEM_MAX_BYTES: number;
|
|
13
31
|
export declare const utf8Bytes: (text: string) => number;
|
|
14
32
|
/**
|
|
15
|
-
*
|
|
33
|
+
* A number's size as DynamoDB stores it. Zero is 1 byte. Otherwise: 1, plus
|
|
34
|
+
* one byte per base-100 digit pair of the magnitude — pairs aligned to the
|
|
35
|
+
* decimal point, all-zero pairs trimmed at both ends — plus 1 if negative,
|
|
36
|
+
* except when the magnitude takes the maximum 20 pairs: a number is never
|
|
37
|
+
* more than 21 bytes.
|
|
16
38
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* carry three bytes plus one per element.
|
|
39
|
+
* Measured: `1`, `10`, `99`, `100`, `1200`, `1e10`, `0.5`, `0.05`, `0.0012`,
|
|
40
|
+
* `9.9E+125` → 2; `101`, `120`, `1234`, `1.5`, `12.34`, `10.01` → 3;
|
|
41
|
+
* `12345`, `1.234`, `-123` → 4; `-1` → 3; a 38-digit integer → 20;
|
|
42
|
+
* `-123456789012345678901234567890123456.78` (19 pairs) → 21;
|
|
43
|
+
* `-9.9999999999999999999999999999999999999` and
|
|
44
|
+
* `-1.2345678901234567890123456789012345678` (20 pairs) → 21.
|
|
24
45
|
*/
|
|
25
|
-
export
|
|
26
|
-
/** An attribute value's size
|
|
27
|
-
export declare const attributeBytes: (value: AttributeValue
|
|
28
|
-
/** An item's size: its attribute names plus their values. */
|
|
29
|
-
export declare const itemBytes: (item: Record<string, AttributeValue
|
|
46
|
+
export declare const numberBytes: (n: string) => number;
|
|
47
|
+
/** An attribute value's size, by the rules in this module's header. */
|
|
48
|
+
export declare const attributeBytes: (value: AttributeValue) => number;
|
|
49
|
+
/** An item's size: its attribute names plus their values. What the 400 KB limit measures. */
|
|
50
|
+
export declare const itemBytes: (item: Record<string, AttributeValue>) => number;
|
|
30
51
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
52
|
+
* An expression's contribution to a transaction's size: its UTF-8 length as
|
|
53
|
+
* written, plus, for every placeholder **occurrence**, the substituted name's
|
|
54
|
+
* UTF-8 bytes (`#name`) or value's size (`:value`). A placeholder the maps do
|
|
55
|
+
* not define adds nothing (DynamoDB rejects such a request anyway).
|
|
56
|
+
*
|
|
57
|
+
* Expressions count toward the 4 MB transaction limit, never toward an item's
|
|
58
|
+
* 400 KB.
|
|
59
|
+
*/
|
|
60
|
+
export declare const expressionBytes: (expression: string | undefined, names: Record<string, string> | undefined, values: Record<string, AttributeValue> | undefined) => number;
|
|
61
|
+
/**
|
|
62
|
+
* One action's contribution to its `TransactWriteItems` request's size:
|
|
63
|
+
*
|
|
64
|
+
* - a Put's item, or an Update's, Delete's or ConditionCheck's key — never the
|
|
65
|
+
* stored item, nor the item an Update produces;
|
|
66
|
+
* - plus each of its expressions (`ConditionExpression`, an Update's
|
|
67
|
+
* `UpdateExpression`) by {@link expressionBytes}.
|
|
68
|
+
*
|
|
69
|
+
* `TableName` and `ReturnValuesOnConditionCheckFailure` add nothing.
|
|
36
70
|
*/
|
|
37
71
|
export declare const transactItemBytes: (item: TransactWriteItem) => number;
|
|
72
|
+
/** A `TransactWriteItems` request's size: the sum of its actions' contributions. */
|
|
73
|
+
export declare const transactionBytes: (items: ReadonlyArray<TransactWriteItem>) => number;
|
|
38
74
|
//# sourceMappingURL=ItemSize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemSize.d.ts","sourceRoot":"","sources":["../../src/internal/ItemSize.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ItemSize.d.ts","sourceRoot":"","sources":["../../src/internal/ItemSize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAEjF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,QAAkB,CAAA;AAEvD,gFAAgF;AAChF,eAAO,MAAM,cAAc,QAAa,CAAA;AAIxC,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAAqC,CAAA;AAE9E;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,KAAG,MAkBvC,CAAA;AAED,uEAAuE;AACvE,eAAO,MAAM,cAAc,GAAI,OAAO,cAAc,KAAG,MAgBtD,CAAA;AAED,6FAA6F;AAC7F,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,KAAG,MAI9D,CAAA;AAIH;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAC1B,YAAY,MAAM,GAAG,SAAS,EAC9B,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACzC,QAAQ,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,SAAS,KACjD,MAaF,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,iBAAiB,KAAG,MAc3D,CAAA;AAED,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,GAAI,OAAO,aAAa,CAAC,iBAAiB,CAAC,KAAG,MACZ,CAAA"}
|