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.
Files changed (77) hide show
  1. package/dist/Aggregate.d.ts +5 -2
  2. package/dist/Aggregate.d.ts.map +1 -1
  3. package/dist/Aggregate.js +136 -53
  4. package/dist/Aggregate.js.map +1 -1
  5. package/dist/Batch.d.ts +14 -5
  6. package/dist/Batch.d.ts.map +1 -1
  7. package/dist/Batch.js +184 -119
  8. package/dist/Batch.js.map +1 -1
  9. package/dist/Collection.d.ts.map +1 -1
  10. package/dist/Collection.js +2 -4
  11. package/dist/Collection.js.map +1 -1
  12. package/dist/DynamoClient.d.ts.map +1 -1
  13. package/dist/DynamoClient.js +42 -14
  14. package/dist/DynamoClient.js.map +1 -1
  15. package/dist/Entity.d.ts +19 -13
  16. package/dist/Entity.d.ts.map +1 -1
  17. package/dist/Entity.js +287 -226
  18. package/dist/Entity.js.map +1 -1
  19. package/dist/EventStore.d.ts +1060 -50
  20. package/dist/EventStore.d.ts.map +1 -1
  21. package/dist/EventStore.js +1607 -299
  22. package/dist/EventStore.js.map +1 -1
  23. package/dist/Query.d.ts +47 -14
  24. package/dist/Query.d.ts.map +1 -1
  25. package/dist/Query.js +190 -68
  26. package/dist/Query.js.map +1 -1
  27. package/dist/Table.d.ts +56 -6
  28. package/dist/Table.d.ts.map +1 -1
  29. package/dist/Table.js +134 -54
  30. package/dist/Table.js.map +1 -1
  31. package/dist/Transaction.d.ts +8 -0
  32. package/dist/Transaction.d.ts.map +1 -1
  33. package/dist/Transaction.js +67 -22
  34. package/dist/Transaction.js.map +1 -1
  35. package/dist/VectorSearchEmulation.d.ts +3 -2
  36. package/dist/VectorSearchEmulation.d.ts.map +1 -1
  37. package/dist/VectorSearchEmulation.js +14 -2
  38. package/dist/VectorSearchEmulation.js.map +1 -1
  39. package/dist/internal/BoundQuery.d.ts +3 -2
  40. package/dist/internal/BoundQuery.d.ts.map +1 -1
  41. package/dist/internal/BoundQuery.js.map +1 -1
  42. package/dist/internal/BoundVectorQuery.d.ts +5 -1
  43. package/dist/internal/BoundVectorQuery.d.ts.map +1 -1
  44. package/dist/internal/BoundVectorQuery.js +17 -5
  45. package/dist/internal/BoundVectorQuery.js.map +1 -1
  46. package/dist/internal/EntityCombinators.d.ts +8 -5
  47. package/dist/internal/EntityCombinators.d.ts.map +1 -1
  48. package/dist/internal/EntityCombinators.js +8 -5
  49. package/dist/internal/EntityCombinators.js.map +1 -1
  50. package/dist/internal/EntityOps.d.ts +1 -1
  51. package/dist/internal/Expr.d.ts +4 -0
  52. package/dist/internal/Expr.d.ts.map +1 -1
  53. package/dist/internal/Expr.js +6 -4
  54. package/dist/internal/Expr.js.map +1 -1
  55. package/dist/internal/ExpressionLimits.d.ts +45 -0
  56. package/dist/internal/ExpressionLimits.d.ts.map +1 -0
  57. package/dist/internal/ExpressionLimits.js +89 -0
  58. package/dist/internal/ExpressionLimits.js.map +1 -0
  59. package/dist/internal/Hydrate.d.ts +62 -0
  60. package/dist/internal/Hydrate.d.ts.map +1 -0
  61. package/dist/internal/Hydrate.js +191 -0
  62. package/dist/internal/Hydrate.js.map +1 -0
  63. package/dist/internal/ItemSize.d.ts +60 -24
  64. package/dist/internal/ItemSize.d.ts.map +1 -1
  65. package/dist/internal/ItemSize.js +122 -39
  66. package/dist/internal/ItemSize.js.map +1 -1
  67. package/dist/internal/TransactWriteOps.d.ts +22 -46
  68. package/dist/internal/TransactWriteOps.d.ts.map +1 -1
  69. package/dist/internal/TransactWriteOps.js +26 -95
  70. package/dist/internal/TransactWriteOps.js.map +1 -1
  71. package/dist/internal/WriteDiagnosis.d.ts +353 -0
  72. package/dist/internal/WriteDiagnosis.d.ts.map +1 -0
  73. package/dist/internal/WriteDiagnosis.js +1028 -0
  74. package/dist/internal/WriteDiagnosis.js.map +1 -0
  75. package/dist/internal/sparse_check.js +43 -79
  76. package/dist/internal/sparse_check.js.map +1 -1
  77. 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 Item sizes by DynamoDB's item-size rules, shared by `Batch.write`'s
3
- * versioned transactions (chunked by size) and the client-side size check of
4
- * `Transaction.transactWrite` and `EventStore.append` (#133).
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 aggregate size of the items in one
9
- * `TransactWriteItems` request: 4 MB, in the binary megabytes DynamoDB uses
10
- * for every size limit (an item's 400 KB is 409,600 bytes).
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
- * Which way a size errs. DynamoDB documents its sizes as approximate, so:
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
- * - `"lower"` never counts more than DynamoDB does — a refusal on it never
18
- * refuses what DynamoDB would accept (the transaction check). Numbers count
19
- * as DynamoDB stores them: a byte per two significant digits (leading and
20
- * trailing zeros trimmed), plus one; list and map overheads aren't counted.
21
- * - `"upper"` never counts less — a budget on it never overfills (`Batch.write`
22
- * chunking). Numbers count by their characters plus one, and lists and maps
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 type SizeBound = "lower" | "upper";
26
- /** An attribute value's size toward its item's, erring the way `bound` says. */
27
- export declare const attributeBytes: (value: AttributeValue, bound?: SizeBound) => number;
28
- /** An item's size: its attribute names plus their values. */
29
- export declare const itemBytes: (item: Record<string, AttributeValue>, bound?: SizeBound) => number;
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
- * A lower bound on what one transact entry contributes to its transaction's
32
- * size, as far as the request shows it: a Put's whole item; a Delete's,
33
- * ConditionCheck's or Update's key. (An Update's values aren't counted: some
34
- * may be its condition's, and the item it writes is the stored one updated,
35
- * which the request does not carry.)
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;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAEjF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,QAAkB,CAAA;AAEvD,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAA+C,CAAA;AAExF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,CAAA;AAgBzC,gFAAgF;AAChF,eAAO,MAAM,cAAc,GAAI,OAAO,cAAc,EAAE,QAAO,SAAmB,KAAG,MAgBlF,CAAA;AAED,6DAA6D;AAC7D,eAAO,MAAM,SAAS,GACpB,MAAM,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACpC,QAAO,SAAmB,KACzB,MAIA,CAAA;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,iBAAiB,KAAG,MAG3D,CAAA"}
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"}