@farukada/aws-langgraph-dynamodb-ts 0.1.1 → 0.2.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/README.md +131 -5
- package/dist/checkpointer/actions/delete-thread.d.ts.map +1 -1
- package/dist/checkpointer/actions/delete-thread.js +17 -9
- package/dist/checkpointer/actions/delete-thread.js.map +1 -1
- package/dist/checkpointer/actions/get-tuple.d.ts.map +1 -1
- package/dist/checkpointer/actions/get-tuple.js +70 -32
- package/dist/checkpointer/actions/get-tuple.js.map +1 -1
- package/dist/checkpointer/actions/put-writes.d.ts.map +1 -1
- package/dist/checkpointer/actions/put-writes.js +36 -19
- package/dist/checkpointer/actions/put-writes.js.map +1 -1
- package/dist/checkpointer/actions/put.d.ts.map +1 -1
- package/dist/checkpointer/actions/put.js +75 -18
- package/dist/checkpointer/actions/put.js.map +1 -1
- package/dist/checkpointer/actions/writer.d.ts +6 -4
- package/dist/checkpointer/actions/writer.d.ts.map +1 -1
- package/dist/checkpointer/actions/writer.js +12 -12
- package/dist/checkpointer/actions/writer.js.map +1 -1
- package/dist/checkpointer/index.d.ts +11 -4
- package/dist/checkpointer/index.d.ts.map +1 -1
- package/dist/checkpointer/index.js +97 -72
- package/dist/checkpointer/index.js.map +1 -1
- package/dist/checkpointer/types/index.d.ts +8 -0
- package/dist/checkpointer/types/index.d.ts.map +1 -1
- package/dist/checkpointer/utils/deserialization.d.ts.map +1 -1
- package/dist/checkpointer/utils/deserialization.js +28 -4
- package/dist/checkpointer/utils/deserialization.js.map +1 -1
- package/dist/checkpointer/utils/validation.d.ts +8 -8
- package/dist/checkpointer/utils/validation.d.ts.map +1 -1
- package/dist/checkpointer/utils/validation.js +45 -1
- package/dist/checkpointer/utils/validation.js.map +1 -1
- package/dist/factory.d.ts +14 -0
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +39 -20
- package/dist/factory.js.map +1 -1
- package/dist/history/actions/add-message.d.ts +5 -9
- package/dist/history/actions/add-message.d.ts.map +1 -1
- package/dist/history/actions/add-message.js +14 -42
- package/dist/history/actions/add-message.js.map +1 -1
- package/dist/history/actions/add-messages.d.ts +6 -10
- package/dist/history/actions/add-messages.d.ts.map +1 -1
- package/dist/history/actions/add-messages.js +33 -38
- package/dist/history/actions/add-messages.js.map +1 -1
- package/dist/history/actions/clear.d.ts.map +1 -1
- package/dist/history/actions/clear.js +3 -3
- package/dist/history/actions/clear.js.map +1 -1
- package/dist/history/actions/get-messages.d.ts.map +1 -1
- package/dist/history/actions/get-messages.js +2 -2
- package/dist/history/actions/get-messages.js.map +1 -1
- package/dist/history/actions/list-sessions.d.ts.map +1 -1
- package/dist/history/actions/list-sessions.js +6 -3
- package/dist/history/actions/list-sessions.js.map +1 -1
- package/dist/history/index.d.ts +41 -5
- package/dist/history/index.d.ts.map +1 -1
- package/dist/history/index.js +52 -18
- package/dist/history/index.js.map +1 -1
- package/dist/history/session-adapter.d.ts +39 -0
- package/dist/history/session-adapter.d.ts.map +1 -0
- package/dist/history/session-adapter.js +74 -0
- package/dist/history/session-adapter.js.map +1 -0
- package/dist/history/types/index.d.ts +32 -1
- package/dist/history/types/index.d.ts.map +1 -1
- package/dist/history/utils/index.d.ts +1 -0
- package/dist/history/utils/index.d.ts.map +1 -1
- package/dist/history/utils/index.js +1 -0
- package/dist/history/utils/index.js.map +1 -1
- package/dist/history/utils/optimistic-retry.d.ts +31 -0
- package/dist/history/utils/optimistic-retry.d.ts.map +1 -0
- package/dist/history/utils/optimistic-retry.js +74 -0
- package/dist/history/utils/optimistic-retry.js.map +1 -0
- package/dist/history/utils/title-generator.d.ts.map +1 -1
- package/dist/history/utils/title-generator.js +8 -3
- package/dist/history/utils/title-generator.js.map +1 -1
- package/dist/history/utils/update-expression-builder.d.ts +18 -21
- package/dist/history/utils/update-expression-builder.d.ts.map +1 -1
- package/dist/history/utils/update-expression-builder.js +31 -46
- package/dist/history/utils/update-expression-builder.js.map +1 -1
- package/dist/history/utils/validation.d.ts.map +1 -1
- package/dist/history/utils/validation.js +23 -3
- package/dist/history/utils/validation.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/shared/utils/batch-write.d.ts +44 -6
- package/dist/shared/utils/batch-write.d.ts.map +1 -1
- package/dist/shared/utils/batch-write.js +76 -28
- package/dist/shared/utils/batch-write.js.map +1 -1
- package/dist/shared/utils/client-factory.d.ts +25 -0
- package/dist/shared/utils/client-factory.d.ts.map +1 -0
- package/dist/shared/utils/client-factory.js +23 -0
- package/dist/shared/utils/client-factory.js.map +1 -0
- package/dist/shared/utils/compressor.d.ts +21 -3
- package/dist/shared/utils/compressor.d.ts.map +1 -1
- package/dist/shared/utils/compressor.js +75 -10
- package/dist/shared/utils/compressor.js.map +1 -1
- package/dist/shared/utils/constants.d.ts +1 -1
- package/dist/shared/utils/constants.d.ts.map +1 -1
- package/dist/shared/utils/constants.js +5 -1
- package/dist/shared/utils/constants.js.map +1 -1
- package/dist/shared/utils/index.d.ts +3 -0
- package/dist/shared/utils/index.d.ts.map +1 -1
- package/dist/shared/utils/index.js +3 -0
- package/dist/shared/utils/index.js.map +1 -1
- package/dist/shared/utils/logger.d.ts +27 -0
- package/dist/shared/utils/logger.d.ts.map +1 -1
- package/dist/shared/utils/logger.js +86 -0
- package/dist/shared/utils/logger.js.map +1 -1
- package/dist/shared/utils/retry.d.ts +7 -0
- package/dist/shared/utils/retry.d.ts.map +1 -1
- package/dist/shared/utils/retry.js +75 -17
- package/dist/shared/utils/retry.js.map +1 -1
- package/dist/shared/utils/s3-offloader.d.ts +10 -3
- package/dist/shared/utils/s3-offloader.d.ts.map +1 -1
- package/dist/shared/utils/s3-offloader.js +19 -9
- package/dist/shared/utils/s3-offloader.js.map +1 -1
- package/dist/shared/utils/s3-orphans.d.ts +16 -0
- package/dist/shared/utils/s3-orphans.d.ts.map +1 -0
- package/dist/shared/utils/s3-orphans.js +79 -0
- package/dist/shared/utils/s3-orphans.js.map +1 -0
- package/dist/shared/utils/sleep.d.ts +48 -0
- package/dist/shared/utils/sleep.d.ts.map +1 -0
- package/dist/shared/utils/sleep.js +82 -0
- package/dist/shared/utils/sleep.js.map +1 -0
- package/dist/shared/utils/ttl.d.ts +6 -2
- package/dist/shared/utils/ttl.d.ts.map +1 -1
- package/dist/shared/utils/ttl.js +17 -2
- package/dist/shared/utils/ttl.js.map +1 -1
- package/dist/store/actions/get-operation.d.ts.map +1 -1
- package/dist/store/actions/get-operation.js +2 -2
- package/dist/store/actions/get-operation.js.map +1 -1
- package/dist/store/actions/list-namespaces-operation.d.ts.map +1 -1
- package/dist/store/actions/list-namespaces-operation.js +44 -29
- package/dist/store/actions/list-namespaces-operation.js.map +1 -1
- package/dist/store/actions/put-operation.d.ts.map +1 -1
- package/dist/store/actions/put-operation.js +19 -5
- package/dist/store/actions/put-operation.js.map +1 -1
- package/dist/store/actions/search-operation.d.ts.map +1 -1
- package/dist/store/actions/search-operation.js +54 -21
- package/dist/store/actions/search-operation.js.map +1 -1
- package/dist/store/index.d.ts +1 -0
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +24 -20
- package/dist/store/index.js.map +1 -1
- package/dist/store/types/index.d.ts +33 -1
- package/dist/store/types/index.d.ts.map +1 -1
- package/dist/store/utils/filter.d.ts.map +1 -1
- package/dist/store/utils/filter.js +63 -1
- package/dist/store/utils/filter.js.map +1 -1
- package/dist/store/utils/validation.d.ts +6 -2
- package/dist/store/utils/validation.d.ts.map +1 -1
- package/dist/store/utils/validation.js +21 -5
- package/dist/store/utils/validation.js.map +1 -1
- package/package.json +33 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checkpointer/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checkpointer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -148,6 +148,8 @@ export interface DeleteThreadActionParams {
|
|
|
148
148
|
threadId: string;
|
|
149
149
|
/** Optional S3 offloader for cleaning up offloaded payloads */
|
|
150
150
|
s3Offloader?: S3Offloader;
|
|
151
|
+
/** Optional AbortSignal for cancelling in-flight retries */
|
|
152
|
+
signal?: AbortSignal;
|
|
151
153
|
}
|
|
152
154
|
/**
|
|
153
155
|
* Parameters for getTuple action
|
|
@@ -168,6 +170,8 @@ export interface GetTupleActionParams {
|
|
|
168
170
|
compressor?: Compressor;
|
|
169
171
|
/** Optional S3 offloader for downloading offloaded payloads */
|
|
170
172
|
s3Offloader?: S3Offloader;
|
|
173
|
+
/** Optional AbortSignal for cancelling in-flight retries */
|
|
174
|
+
signal?: AbortSignal;
|
|
171
175
|
}
|
|
172
176
|
/**
|
|
173
177
|
* Parameters for put action
|
|
@@ -194,6 +198,8 @@ export interface PutActionParams {
|
|
|
194
198
|
compressor?: Compressor;
|
|
195
199
|
/** Optional S3 offloader for large payloads */
|
|
196
200
|
s3Offloader?: S3Offloader;
|
|
201
|
+
/** Optional AbortSignal for cancelling in-flight retries */
|
|
202
|
+
signal?: AbortSignal;
|
|
197
203
|
}
|
|
198
204
|
/**
|
|
199
205
|
* Parameters for putWrites action
|
|
@@ -220,5 +226,7 @@ export interface PutWritesActionParams {
|
|
|
220
226
|
compressor?: Compressor;
|
|
221
227
|
/** Optional S3 offloader for large write payloads */
|
|
222
228
|
s3Offloader?: S3Offloader;
|
|
229
|
+
/** Optional AbortSignal for cancelling in-flight retries */
|
|
230
|
+
signal?: AbortSignal;
|
|
223
231
|
}
|
|
224
232
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/types/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserialization.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/utils/deserialization.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAGV,eAAe,EACf,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,cAAc,EACpB,cAAc,EAAE,UAAU,EAC1B,KAAK,EAAE,kBAAkB,EACzB,UAAU,CAAC,EAAE,UAAU,EACvB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"deserialization.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/utils/deserialization.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAGV,eAAe,EACf,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,cAAc,EACpB,cAAc,EAAE,UAAU,EAC1B,KAAK,EAAE,kBAAkB,EACzB,UAAU,CAAC,EAAE,UAAU,EACvB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,eAAe,CAAC,CAqE1B"}
|
|
@@ -19,20 +19,32 @@ exports.deserializeCheckpointTuple = deserializeCheckpointTuple;
|
|
|
19
19
|
async function deserializeCheckpointTuple(item, checkpointData, serde, compressor, s3Offloader) {
|
|
20
20
|
// Download checkpoint from S3 if offloaded (checked first to maintain original S3 call order)
|
|
21
21
|
let rawCheckpoint = checkpointData;
|
|
22
|
-
if (item.s3_checkpoint_key
|
|
22
|
+
if (item.s3_checkpoint_key) {
|
|
23
|
+
if (!s3Offloader) {
|
|
24
|
+
throw new Error(`Checkpoint references S3 key '${item.s3_checkpoint_key}' but no S3 offloader is configured. ` +
|
|
25
|
+
`Pass s3OffloadConfig when constructing DynamoDBSaver to read offloaded checkpoints.`);
|
|
26
|
+
}
|
|
23
27
|
rawCheckpoint = await s3Offloader.download(item.s3_checkpoint_key);
|
|
24
28
|
}
|
|
25
29
|
// Download metadata from S3 if offloaded, otherwise use DynamoDB data
|
|
26
30
|
let rawMetadata = item.metadata;
|
|
27
|
-
if (item.s3_metadata_key
|
|
31
|
+
if (item.s3_metadata_key) {
|
|
32
|
+
if (!s3Offloader) {
|
|
33
|
+
throw new Error(`Checkpoint metadata references S3 key '${item.s3_metadata_key}' but no S3 offloader is configured. ` +
|
|
34
|
+
`Pass s3OffloadConfig when constructing DynamoDBSaver to read offloaded metadata.`);
|
|
35
|
+
}
|
|
28
36
|
rawMetadata = await s3Offloader.download(item.s3_metadata_key);
|
|
29
37
|
}
|
|
30
38
|
const decompressedCheckpoint = compressor
|
|
31
39
|
? await compressor.decompress(rawCheckpoint)
|
|
32
40
|
: rawCheckpoint;
|
|
33
41
|
const decompressedMetadata = compressor ? await compressor.decompress(rawMetadata) : rawMetadata;
|
|
34
|
-
|
|
35
|
-
|
|
42
|
+
// Deserialization failures are the canonical signal of data corruption, a broken
|
|
43
|
+
// serializer, or a mismatched library version. Bare serde errors are opaque
|
|
44
|
+
// ("unexpected token") — re-throw with thread/checkpoint context so production
|
|
45
|
+
// incidents are diagnosable from a single log line.
|
|
46
|
+
const checkpoint = await loadWithContext(serde, item.type, decompressedCheckpoint, 'checkpoint', item);
|
|
47
|
+
const metadata = await loadWithContext(serde, item.type, decompressedMetadata, 'metadata', item);
|
|
36
48
|
return {
|
|
37
49
|
config: {
|
|
38
50
|
configurable: {
|
|
@@ -54,4 +66,16 @@ async function deserializeCheckpointTuple(item, checkpointData, serde, compresso
|
|
|
54
66
|
: undefined,
|
|
55
67
|
};
|
|
56
68
|
}
|
|
69
|
+
async function loadWithContext(serde, type, data, field, item) {
|
|
70
|
+
try {
|
|
71
|
+
return (await serde.loadsTyped(type, data));
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
const message = err && typeof err === 'object' && 'message' in err
|
|
75
|
+
? String(err.message)
|
|
76
|
+
: String(err);
|
|
77
|
+
throw new Error(`Failed to deserialize ${field} for thread_id=${item.thread_id}, ` +
|
|
78
|
+
`checkpoint_id=${item.checkpoint_id}, type=${type}: ${message}`, { cause: err });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
57
81
|
//# sourceMappingURL=deserialization.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserialization.js","sourceRoot":"","sources":["../../../src/checkpointer/utils/deserialization.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAuBH,
|
|
1
|
+
{"version":3,"file":"deserialization.js","sourceRoot":"","sources":["../../../src/checkpointer/utils/deserialization.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,31 +7,31 @@ export declare class CheckpointerValidationError extends Error {
|
|
|
7
7
|
/**
|
|
8
8
|
* Validate thread ID
|
|
9
9
|
*/
|
|
10
|
-
export declare function validateThreadId(threadId:
|
|
10
|
+
export declare function validateThreadId(threadId: unknown): asserts threadId is string;
|
|
11
11
|
/**
|
|
12
12
|
* Validate checkpoint ID
|
|
13
13
|
*/
|
|
14
|
-
export declare function validateCheckpointId(checkpointId:
|
|
14
|
+
export declare function validateCheckpointId(checkpointId: unknown, required?: boolean): void;
|
|
15
15
|
/**
|
|
16
16
|
* Validate checkpoint namespace
|
|
17
17
|
*/
|
|
18
|
-
export declare function validateCheckpointNs(checkpointNs:
|
|
18
|
+
export declare function validateCheckpointNs(checkpointNs: unknown): void;
|
|
19
19
|
/**
|
|
20
20
|
* Validate task ID
|
|
21
21
|
*/
|
|
22
|
-
export declare function validateTaskId(taskId:
|
|
22
|
+
export declare function validateTaskId(taskId: unknown): asserts taskId is string;
|
|
23
23
|
/**
|
|
24
24
|
* Validate channel name
|
|
25
25
|
*/
|
|
26
|
-
export declare function validateChannel(channel:
|
|
26
|
+
export declare function validateChannel(channel: unknown): asserts channel is string;
|
|
27
27
|
/**
|
|
28
28
|
* Validate writes array length
|
|
29
29
|
*/
|
|
30
|
-
export declare function validateWritesCount(writesCount:
|
|
30
|
+
export declare function validateWritesCount(writesCount: unknown): void;
|
|
31
31
|
/**
|
|
32
32
|
* Validate list limit parameter
|
|
33
33
|
*/
|
|
34
|
-
export declare function validateListLimit(limit:
|
|
34
|
+
export declare function validateListLimit(limit: unknown): void;
|
|
35
35
|
/**
|
|
36
36
|
* Validate TTL days (wraps shared validation with a checkpointer-specific error type)
|
|
37
37
|
*/
|
|
@@ -40,7 +40,7 @@ export declare function validateTTLDays(ttlDays: number | undefined): void;
|
|
|
40
40
|
* Export constants for use in other modules
|
|
41
41
|
*/
|
|
42
42
|
export declare const CheckpointerValidationConstants: {
|
|
43
|
-
readonly MAX_DELETE_BATCH_SIZE:
|
|
43
|
+
readonly MAX_DELETE_BATCH_SIZE: 100000;
|
|
44
44
|
readonly MAX_WRITES_PER_BATCH: 1000;
|
|
45
45
|
readonly MAX_LIST_LIMIT: 1000;
|
|
46
46
|
readonly SEPARATOR: ":::";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/utils/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/utils/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqBH,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAyB9E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,GAAE,OAAe,GAAG,IAAI,CA+D3F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI,CAyBhE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAyBxE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAoB3E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAc9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAgBtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAOjE;AAED;;GAEG;AACH,eAAO,MAAM,+BAA+B;;;;;CAKlC,CAAC"}
|
|
@@ -20,8 +20,15 @@ const MAX_TASK_ID_LENGTH = 256;
|
|
|
20
20
|
const MAX_CHANNEL_LENGTH = 256;
|
|
21
21
|
const MAX_WRITES_PER_BATCH = 1000;
|
|
22
22
|
const MAX_LIST_LIMIT = 1000;
|
|
23
|
-
|
|
23
|
+
// `BaseCheckpointSaver.deleteThread` must actually delete the thread; a tight cap
|
|
24
|
+
// makes older / larger threads un-deletable. The ceiling is only a memory guard
|
|
25
|
+
// against runaway pagination — the batch-write machinery handles the volume.
|
|
26
|
+
const MAX_DELETE_BATCH_SIZE = 100_000;
|
|
24
27
|
const SEPARATOR = ':::';
|
|
28
|
+
// Must match `PAYLOAD_SK_PREFIX` in types/index.ts. Duplicated here (rather than
|
|
29
|
+
// imported) to keep this file free of circular dependencies between utils and
|
|
30
|
+
// types/actions.
|
|
31
|
+
const PAYLOAD_PREFIX_BOUND = 'PAYLOAD#';
|
|
25
32
|
class CheckpointerValidationError extends Error {
|
|
26
33
|
constructor(message) {
|
|
27
34
|
super(message);
|
|
@@ -80,6 +87,33 @@ function validateCheckpointId(checkpointId, required = false) {
|
|
|
80
87
|
if (/[\x00-\x1F\x7F]/.test(checkpointId)) {
|
|
81
88
|
throw new CheckpointerValidationError('checkpoint_id cannot contain control characters');
|
|
82
89
|
}
|
|
90
|
+
// Reserved prefix collision — `PAYLOAD#` is used internally as a sort-key
|
|
91
|
+
// prefix on payload items. A user-supplied ID starting with this exact prefix
|
|
92
|
+
// would be mis-classified by `list()` / `getTuple()`.
|
|
93
|
+
if (checkpointId.startsWith(PAYLOAD_PREFIX_BOUND)) {
|
|
94
|
+
throw new CheckpointerValidationError(`checkpoint_id cannot begin with "${PAYLOAD_PREFIX_BOUND}" (internal SK reserved prefix)`);
|
|
95
|
+
}
|
|
96
|
+
// NOTE ON LEXICAL ORDERING
|
|
97
|
+
//
|
|
98
|
+
// `list()` and the "latest" branch of `getTuple()` use the KeyCondition
|
|
99
|
+
// checkpoint_id < 'PAYLOAD#'
|
|
100
|
+
// to bound the query to metadata items only (fast path). This relies on the
|
|
101
|
+
// checkpoint_id sorting lexically below the ASCII string 'PAYLOAD#'.
|
|
102
|
+
//
|
|
103
|
+
// - LangGraph's own `uuid6` IDs always start with '1' (0x31) < 'P' (0x50), so
|
|
104
|
+
// library-generated IDs are safe.
|
|
105
|
+
// - User-supplied IDs whose first character sorts >= 'P' (uppercase 'P'-'Z',
|
|
106
|
+
// all lowercase letters, `{`, `|`, `}`, `~`) would be silently excluded
|
|
107
|
+
// from list/latest queries.
|
|
108
|
+
//
|
|
109
|
+
// We do NOT throw here because that would break common naming schemes like
|
|
110
|
+
// `checkpoint-1` or `step-2` in user code and existing test fixtures. The
|
|
111
|
+
// FilterExpression in those query paths is a defensive backstop that prevents
|
|
112
|
+
// payload-as-metadata corruption; the worst case for a non-compliant ID is
|
|
113
|
+
// "not visible via list()", not data corruption.
|
|
114
|
+
//
|
|
115
|
+
// Downstream: README documents this constraint; users needing arbitrary IDs
|
|
116
|
+
// should stick to leading characters < 'P'.
|
|
83
117
|
}
|
|
84
118
|
/**
|
|
85
119
|
* Validate checkpoint namespace
|
|
@@ -121,6 +155,11 @@ function validateTaskId(taskId) {
|
|
|
121
155
|
if (taskId.includes(SEPARATOR)) {
|
|
122
156
|
throw new CheckpointerValidationError(`task_id cannot contain separator "${SEPARATOR}"`);
|
|
123
157
|
}
|
|
158
|
+
// Prevent control characters and null bytes — consistency with thread/checkpoint validation.
|
|
159
|
+
// eslint-disable-next-line no-control-regex
|
|
160
|
+
if (/[\x00-\x1F\x7F]/.test(taskId)) {
|
|
161
|
+
throw new CheckpointerValidationError('task_id cannot contain control characters');
|
|
162
|
+
}
|
|
124
163
|
}
|
|
125
164
|
/**
|
|
126
165
|
* Validate channel name
|
|
@@ -135,6 +174,11 @@ function validateChannel(channel) {
|
|
|
135
174
|
if (channel.length > MAX_CHANNEL_LENGTH) {
|
|
136
175
|
throw new CheckpointerValidationError(`channel exceeds maximum length of ${MAX_CHANNEL_LENGTH} characters`);
|
|
137
176
|
}
|
|
177
|
+
// Defense in depth: channel isn't used in composite keys today, but block the
|
|
178
|
+
// separator anyway so future refactors can rely on the invariant.
|
|
179
|
+
if (channel.includes(SEPARATOR)) {
|
|
180
|
+
throw new CheckpointerValidationError(`channel cannot contain separator "${SEPARATOR}"`);
|
|
181
|
+
}
|
|
138
182
|
}
|
|
139
183
|
/**
|
|
140
184
|
* Validate writes array length
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/checkpointer/utils/validation.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/checkpointer/utils/validation.ts"],"names":[],"mappings":"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"}
|
package/dist/factory.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import { DynamoDBSaver } from './checkpointer';
|
|
|
9
9
|
import type { DynamoDBSaverOptions } from './checkpointer/types';
|
|
10
10
|
import { DynamoDBChatMessageHistory } from './history';
|
|
11
11
|
import type { DynamoDBChatMessageHistoryOptions } from './history/types';
|
|
12
|
+
import type { CompressionConfig, S3OffloadConfig } from './shared';
|
|
12
13
|
import { DynamoDBStore } from './store';
|
|
13
14
|
import type { DynamoDBStoreOptions } from './store/types';
|
|
14
15
|
/**
|
|
@@ -125,9 +126,22 @@ export declare class DynamoDBFactory {
|
|
|
125
126
|
static createAll(options?: {
|
|
126
127
|
tablePrefix?: string;
|
|
127
128
|
ttlDays?: number;
|
|
129
|
+
/** TTL in seconds for the saver (overrides ttlDays if both set). */
|
|
130
|
+
ttlSeconds?: number;
|
|
128
131
|
clientConfig?: DynamoDBClientConfig;
|
|
129
132
|
embedding?: EmbeddingsInterface;
|
|
130
133
|
serde?: SerializerProtocol;
|
|
134
|
+
/** Compression configuration forwarded to the saver. */
|
|
135
|
+
compression?: CompressionConfig;
|
|
136
|
+
/** S3 offloading configuration forwarded to the saver. */
|
|
137
|
+
s3OffloadConfig?: S3OffloadConfig;
|
|
138
|
+
/**
|
|
139
|
+
* Forwarded to the store — if true, semantic-search calls that hit an
|
|
140
|
+
* embedding failure log a warning and return unranked results instead of
|
|
141
|
+
* throwing. Defaults to false (fail-closed). See
|
|
142
|
+
* {@link DynamoDBStoreOptions.fallbackToLexicalOnEmbeddingFailure}.
|
|
143
|
+
*/
|
|
144
|
+
fallbackToLexicalOnEmbeddingFailure?: boolean;
|
|
131
145
|
}): {
|
|
132
146
|
checkpointer: DynamoDBSaver;
|
|
133
147
|
store: DynamoDBStore;
|
package/dist/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAkB,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAO1D;;GAEG;AACH,qBAAa,eAAe;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAAG,aAAa;IAgB9E;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAAG,aAAa;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAkB,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAO1D;;GAEG;AACH,qBAAa,eAAe;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAAG,aAAa;IAgB9E;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAAG,aAAa;IAa9E;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,wBAAwB,CAC7B,OAAO,GAAE,OAAO,CAAC,iCAAiC,CAAM,GACvD,0BAA0B;IAW7B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,MAAM,CAAC,SAAS,CACd,OAAO,GAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,oEAAoE;QACpE,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,oBAAoB,CAAC;QACpC,SAAS,CAAC,EAAE,mBAAmB,CAAC;QAChC,KAAK,CAAC,EAAE,kBAAkB,CAAC;QAC3B,wDAAwD;QACxD,WAAW,CAAC,EAAE,iBAAiB,CAAC;QAChC,0DAA0D;QAC1D,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC;;;;;WAKG;QACH,mCAAmC,CAAC,EAAE,OAAO,CAAC;KAC1C,GACL;QACD,YAAY,EAAE,aAAa,CAAC;QAC5B,KAAK,EAAE,aAAa,CAAC;QACrB,WAAW,EAAE,0BAA0B,CAAC;QACxC,6FAA6F;QAC7F,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB;CAgDF"}
|
package/dist/factory.js
CHANGED
|
@@ -93,6 +93,7 @@ class DynamoDBFactory {
|
|
|
93
93
|
ttlDays: options.ttlDays,
|
|
94
94
|
clientConfig: options.clientConfig,
|
|
95
95
|
client: options.client,
|
|
96
|
+
fallbackToLexicalOnEmbeddingFailure: options.fallbackToLexicalOnEmbeddingFailure,
|
|
96
97
|
};
|
|
97
98
|
return new store_1.DynamoDBStore(config);
|
|
98
99
|
}
|
|
@@ -160,27 +161,45 @@ class DynamoDBFactory {
|
|
|
160
161
|
// Create a single shared DynamoDB client for all modules
|
|
161
162
|
const ddbClient = new client_dynamodb_1.DynamoDBClient(options.clientConfig || {});
|
|
162
163
|
const sharedClient = lib_dynamodb_1.DynamoDBDocument.from(ddbClient);
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
}
|
|
182
|
-
|
|
164
|
+
const checkpointer = this.createSaver({
|
|
165
|
+
checkpointsTableName: `${prefix}-checkpoints`,
|
|
166
|
+
writesTableName: `${prefix}-writes`,
|
|
167
|
+
ttlDays: options.ttlDays,
|
|
168
|
+
ttlSeconds: options.ttlSeconds,
|
|
169
|
+
compression: options.compression,
|
|
170
|
+
s3OffloadConfig: options.s3OffloadConfig,
|
|
171
|
+
serde: options.serde,
|
|
172
|
+
client: sharedClient,
|
|
173
|
+
});
|
|
174
|
+
const store = this.createStore({
|
|
175
|
+
memoryTableName: `${prefix}-memory`,
|
|
176
|
+
embedding: options.embedding,
|
|
177
|
+
ttlDays: options.ttlDays,
|
|
178
|
+
client: sharedClient,
|
|
179
|
+
fallbackToLexicalOnEmbeddingFailure: options.fallbackToLexicalOnEmbeddingFailure,
|
|
180
|
+
});
|
|
181
|
+
const chatHistory = this.createChatMessageHistory({
|
|
182
|
+
tableName: `${prefix}-chat-history`,
|
|
183
|
+
ttlDays: options.ttlDays,
|
|
184
|
+
client: sharedClient,
|
|
185
|
+
});
|
|
186
|
+
let destroyed = false;
|
|
187
|
+
const destroy = () => {
|
|
188
|
+
// Idempotency: SDK v3 tolerates double-destroy today, but the contract is
|
|
189
|
+
// not part of the public v3 API — guard so a double-call (e.g. finally +
|
|
190
|
+
// on-exit hook) can never error or re-enter the shutdown path.
|
|
191
|
+
if (destroyed)
|
|
192
|
+
return;
|
|
193
|
+
destroyed = true;
|
|
194
|
+
// Dispose module-local resources first (S3Offloader inside the saver) before
|
|
195
|
+
// tearing down the shared DDB client. Each sub-instance skips DDB teardown
|
|
196
|
+
// because it didn't own the shared client (ownsClient=false when injected).
|
|
197
|
+
checkpointer.destroy();
|
|
198
|
+
store.destroy();
|
|
199
|
+
chatHistory.destroy();
|
|
200
|
+
ddbClient.destroy();
|
|
183
201
|
};
|
|
202
|
+
return { checkpointer, store, chatHistory, destroy };
|
|
184
203
|
}
|
|
185
204
|
}
|
|
186
205
|
exports.DynamoDBFactory = DynamoDBFactory;
|
package/dist/factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,8DAAqF;AACrF,wDAAyD;AAIzD,iDAA+C;AAE/C,uCAAuD;
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Add a single message to a session
|
|
3
|
-
* Uses an atomic counter to claim a unique message index, preventing race conditions
|
|
4
|
-
*/
|
|
5
|
-
import type { AddMessageActionParams } from '../types';
|
|
6
|
-
/**
|
|
7
|
-
* Add a single message to a session
|
|
8
|
-
* Atomically claims a message index via DynamoDB's ADD operation, then writes the message item
|
|
2
|
+
* Add a single message to a session.
|
|
9
3
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
4
|
+
* Thin wrapper around {@link addMessagesAction} with a 1-element array. Single-
|
|
5
|
+
* and multi-message writes share the exact same optimistic-concurrency path;
|
|
6
|
+
* keeping one implementation avoids behavioural drift (and removes duplication).
|
|
12
7
|
*/
|
|
8
|
+
import type { AddMessageActionParams } from '../types';
|
|
13
9
|
export declare const addMessageAction: (params: AddMessageActionParams) => Promise<void>;
|
|
14
10
|
//# sourceMappingURL=add-message.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-message.d.ts","sourceRoot":"","sources":["../../../src/history/actions/add-message.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"add-message.d.ts","sourceRoot":"","sources":["../../../src/history/actions/add-message.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGvD,eAAO,MAAM,gBAAgB,GAAU,QAAQ,sBAAsB,KAAG,OAAO,CAAC,IAAI,CAUnF,CAAC"}
|
|
@@ -1,51 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Add a single message to a session
|
|
4
|
-
*
|
|
3
|
+
* Add a single message to a session.
|
|
4
|
+
*
|
|
5
|
+
* Thin wrapper around {@link addMessagesAction} with a 1-element array. Single-
|
|
6
|
+
* and multi-message writes share the exact same optimistic-concurrency path;
|
|
7
|
+
* keeping one implementation avoids behavioural drift (and removes duplication).
|
|
5
8
|
*/
|
|
6
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
10
|
exports.addMessageAction = void 0;
|
|
8
|
-
const
|
|
9
|
-
/**
|
|
10
|
-
* Add a single message to a session
|
|
11
|
-
* Atomically claims a message index via DynamoDB's ADD operation, then writes the message item
|
|
12
|
-
*
|
|
13
|
-
* @param params - Parameters for the add message operation
|
|
14
|
-
* @throws Error if the operation fails or validation fails
|
|
15
|
-
*/
|
|
11
|
+
const add_messages_1 = require("./add-messages");
|
|
16
12
|
const addMessageAction = async (params) => {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const sessionTitle = title ?? (0, utils_1.generateTitle)(message);
|
|
26
|
-
// Atomically claim a message index via ADD messageCount
|
|
27
|
-
const { updateExpression, expressionAttributeValues } = (0, utils_1.buildAtomicMetadataUpdate)(sessionTitle, 1, // Claiming 1 index
|
|
28
|
-
ttlDays);
|
|
29
|
-
const updateResult = await (0, utils_1.withDynamoDBRetry)(async () => {
|
|
30
|
-
return await client.update({
|
|
31
|
-
TableName: tableName,
|
|
32
|
-
Key: { userId, sessionId },
|
|
33
|
-
UpdateExpression: updateExpression,
|
|
34
|
-
ExpressionAttributeValues: expressionAttributeValues,
|
|
35
|
-
ReturnValues: 'ALL_NEW',
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
// The new messageCount is the count AFTER incrementing by 1
|
|
39
|
-
// So our claimed index is newCount - 1
|
|
40
|
-
const newCount = updateResult.Attributes?.messageCount ?? 1;
|
|
41
|
-
const startIndex = newCount - 1;
|
|
42
|
-
// Build and write the message item
|
|
43
|
-
const [messageItem] = (0, utils_1.buildMessageItems)(userId, sessionId, [message], startIndex, ttlDays);
|
|
44
|
-
await (0, utils_1.withDynamoDBRetry)(async () => {
|
|
45
|
-
await client.put({
|
|
46
|
-
TableName: tableName,
|
|
47
|
-
Item: messageItem,
|
|
48
|
-
});
|
|
13
|
+
await (0, add_messages_1.addMessagesAction)({
|
|
14
|
+
client: params.client,
|
|
15
|
+
tableName: params.tableName,
|
|
16
|
+
userId: params.userId,
|
|
17
|
+
sessionId: params.sessionId,
|
|
18
|
+
messages: [params.message],
|
|
19
|
+
title: params.title,
|
|
20
|
+
ttlDays: params.ttlDays,
|
|
49
21
|
});
|
|
50
22
|
};
|
|
51
23
|
exports.addMessageAction = addMessageAction;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-message.js","sourceRoot":"","sources":["../../../src/history/actions/add-message.ts"],"names":[],"mappings":";AAAA;;;
|
|
1
|
+
{"version":3,"file":"add-message.js","sourceRoot":"","sources":["../../../src/history/actions/add-message.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAGH,iDAAmD;AAE5C,MAAM,gBAAgB,GAAG,KAAK,EAAE,MAA8B,EAAiB,EAAE;IACtF,MAAM,IAAA,gCAAiB,EAAC;QACtB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;AACL,CAAC,CAAC;AAVW,QAAA,gBAAgB,oBAU3B"}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Add multiple messages to a session
|
|
3
|
-
* Uses an atomic counter to claim a unique message index range, preventing race conditions
|
|
4
|
-
* Uses transactWrite for message items (≤100, enforced by validation)
|
|
5
|
-
*/
|
|
6
|
-
import type { AddMessagesActionParams } from '../types';
|
|
7
|
-
/**
|
|
8
|
-
* Add multiple messages to a session
|
|
9
|
-
* Atomically claims message indices via DynamoDB's ADD operation, then writes message items
|
|
2
|
+
* Add multiple messages to a session using optimistic concurrency control.
|
|
10
3
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
4
|
+
* Reads the current messageCount, writes N message items and the updated counter
|
|
5
|
+
* in a single TransactWrite (N ≤ 99, leaving room for the metadata item in the
|
|
6
|
+
* 100-item transaction limit). The metadata update has a conditional check on the
|
|
7
|
+
* observed count; on concurrent modification we re-read and retry.
|
|
13
8
|
*/
|
|
9
|
+
import type { AddMessagesActionParams } from '../types';
|
|
14
10
|
export declare const addMessagesAction: (params: AddMessagesActionParams) => Promise<void>;
|
|
15
11
|
//# sourceMappingURL=add-messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-messages.d.ts","sourceRoot":"","sources":["../../../src/history/actions/add-messages.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"add-messages.d.ts","sourceRoot":"","sources":["../../../src/history/actions/add-messages.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAexD,eAAO,MAAM,iBAAiB,GAAU,QAAQ,uBAAuB,KAAG,OAAO,CAAC,IAAI,CAiDrF,CAAC"}
|