@farukada/aws-langgraph-dynamodb-ts 0.8.0 → 1.0.0-rc.1
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 +282 -49
- package/dist/checkpointer/actions/delete-thread.d.ts +3 -2
- package/dist/checkpointer/actions/delete-thread.js +5 -2
- package/dist/checkpointer/actions/get-tuple.d.ts +3 -2
- package/dist/checkpointer/actions/get-tuple.js +10 -4
- package/dist/checkpointer/actions/list.d.ts +14 -4
- package/dist/checkpointer/actions/list.js +94 -61
- package/dist/checkpointer/actions/put-writes.d.ts +5 -5
- package/dist/checkpointer/actions/put-writes.js +12 -40
- package/dist/checkpointer/actions/put.d.ts +10 -3
- package/dist/checkpointer/actions/put.js +42 -12
- package/dist/checkpointer/internal/assemble.d.ts +10 -3
- package/dist/checkpointer/internal/assemble.js +7 -6
- package/dist/checkpointer/internal/checkpoint-write-verify.d.ts +24 -0
- package/dist/checkpointer/internal/checkpoint-write-verify.js +67 -0
- package/dist/checkpointer/internal/configurable.d.ts +0 -1
- package/dist/checkpointer/internal/configurable.js +10 -9
- package/dist/checkpointer/internal/fetch.d.ts +14 -5
- package/dist/checkpointer/internal/fetch.js +56 -14
- package/dist/checkpointer/internal/filter-match.d.ts +3 -2
- package/dist/checkpointer/internal/filter-match.js +4 -3
- package/dist/checkpointer/internal/item-reader.d.ts +31 -6
- package/dist/checkpointer/internal/item-reader.js +54 -15
- package/dist/checkpointer/internal/item-writer.d.ts +12 -3
- package/dist/checkpointer/internal/item-writer.js +26 -10
- package/dist/checkpointer/internal/keys.d.ts +11 -1
- package/dist/checkpointer/internal/keys.js +33 -3
- package/dist/checkpointer/internal/list-scope.d.ts +61 -0
- package/dist/checkpointer/internal/list-scope.js +108 -0
- package/dist/checkpointer/internal/pending-sends.d.ts +13 -0
- package/dist/checkpointer/internal/pending-sends.js +29 -0
- package/dist/checkpointer/internal/query.d.ts +2 -1
- package/dist/checkpointer/internal/query.js +9 -3
- package/dist/checkpointer/internal/regular-write.d.ts +28 -0
- package/dist/checkpointer/internal/regular-write.js +66 -0
- package/dist/checkpointer/internal/setup.d.ts +3 -1
- package/dist/checkpointer/internal/setup.js +10 -8
- package/dist/checkpointer/internal/special-write-cas.d.ts +29 -0
- package/dist/checkpointer/internal/special-write-cas.js +104 -0
- package/dist/checkpointer/internal/special-write-cleanup.d.ts +19 -14
- package/dist/checkpointer/internal/special-write-cleanup.js +35 -87
- package/dist/checkpointer/internal/special-write-verify.d.ts +53 -0
- package/dist/checkpointer/internal/special-write-verify.js +80 -0
- package/dist/checkpointer/internal/stored-channels.d.ts +31 -0
- package/dist/checkpointer/internal/stored-channels.js +70 -0
- package/dist/checkpointer/internal/validation.d.ts +11 -6
- package/dist/checkpointer/internal/validation.js +19 -9
- package/dist/checkpointer/internal/write-guard.d.ts +8 -9
- package/dist/checkpointer/internal/write-guard.js +16 -16
- package/dist/checkpointer/internal/write-index.d.ts +8 -1
- package/dist/checkpointer/internal/write-index.js +6 -3
- package/dist/checkpointer/saver.d.ts +50 -10
- package/dist/checkpointer/saver.js +59 -17
- package/dist/checkpointer/types.d.ts +14 -1
- package/dist/checkpointer/types.js +0 -1
- package/dist/factory/factory.d.ts +22 -25
- package/dist/factory/factory.js +58 -18
- package/dist/factory/types.d.ts +57 -0
- package/dist/factory/types.js +2 -0
- package/dist/history/actions/add-messages.d.ts +1 -2
- package/dist/history/actions/add-messages.js +4 -4
- package/dist/history/actions/clear.d.ts +3 -2
- package/dist/history/actions/clear.js +5 -2
- package/dist/history/actions/get-messages.d.ts +13 -6
- package/dist/history/actions/get-messages.js +63 -42
- package/dist/history/actions/list-sessions.d.ts +1 -1
- package/dist/history/actions/list-sessions.js +8 -12
- package/dist/history/actions/reconcile-count.d.ts +1 -2
- package/dist/history/actions/reconcile-count.js +20 -7
- package/dist/history/chat-message-history.d.ts +51 -26
- package/dist/history/chat-message-history.js +60 -30
- package/dist/history/internal/append-saga.d.ts +7 -2
- package/dist/history/internal/append-saga.js +58 -14
- package/dist/history/internal/compensation.d.ts +6 -2
- package/dist/history/internal/compensation.js +14 -6
- package/dist/history/internal/item-mapper.d.ts +0 -3
- package/dist/history/internal/item-mapper.js +2 -8
- package/dist/history/internal/keys.d.ts +0 -1
- package/dist/history/internal/keys.js +0 -1
- package/dist/history/internal/message-chunker.d.ts +0 -1
- package/dist/history/internal/message-chunker.js +0 -1
- package/dist/history/internal/message-transaction.d.ts +0 -1
- package/dist/history/internal/message-transaction.js +3 -2
- package/dist/history/internal/message-window.d.ts +17 -0
- package/dist/history/internal/message-window.js +49 -0
- package/dist/history/internal/query.d.ts +16 -3
- package/dist/history/internal/query.js +13 -5
- package/dist/history/internal/session-count.d.ts +8 -2
- package/dist/history/internal/session-count.js +14 -8
- package/dist/history/internal/session-title.d.ts +0 -1
- package/dist/history/internal/session-title.js +1 -2
- package/dist/history/internal/session-update.d.ts +0 -1
- package/dist/history/internal/session-update.js +0 -1
- package/dist/history/internal/setup.d.ts +3 -1
- package/dist/history/internal/setup.js +16 -8
- package/dist/history/internal/title-generator.d.ts +0 -1
- package/dist/history/internal/title-generator.js +19 -3
- package/dist/history/internal/ttl-anchor.d.ts +1 -2
- package/dist/history/internal/ttl-anchor.js +5 -5
- package/dist/history/internal/validation.d.ts +19 -3
- package/dist/history/internal/validation.js +41 -4
- package/dist/history/session-adapter.d.ts +9 -3
- package/dist/history/session-adapter.js +6 -3
- package/dist/history/types.d.ts +23 -2
- package/dist/history/types.js +0 -1
- package/dist/index.d.ts +12 -5
- package/dist/index.js +5 -3
- package/dist/shared/clock.d.ts +6 -1
- package/dist/shared/clock.js +9 -1
- package/dist/shared/codec/codec.d.ts +26 -17
- package/dist/shared/codec/codec.js +46 -24
- package/dist/shared/codec/compression.d.ts +1 -2
- package/dist/shared/codec/compression.js +2 -3
- package/dist/shared/codec/descriptor-keys.d.ts +11 -3
- package/dist/shared/codec/descriptor-keys.js +2 -2
- package/dist/shared/codec/encode.d.ts +13 -0
- package/dist/shared/codec/encode.js +43 -0
- package/dist/shared/codec/json-serde.d.ts +0 -1
- package/dist/shared/codec/json-serde.js +0 -1
- package/dist/shared/codec/payload-loss.d.ts +12 -0
- package/dist/shared/codec/payload-loss.js +38 -0
- package/dist/shared/codec/s3/adapter-config.d.ts +13 -0
- package/dist/shared/codec/s3/adapter-config.js +22 -0
- package/dist/shared/codec/s3/bounded-body.d.ts +14 -0
- package/dist/shared/codec/s3/bounded-body.js +47 -0
- package/dist/shared/codec/s3/client-types.d.ts +34 -0
- package/dist/shared/codec/s3/client-types.js +7 -0
- package/dist/shared/codec/s3/client.d.ts +11 -5
- package/dist/shared/codec/s3/client.js +25 -3
- package/dist/shared/codec/s3/config.d.ts +32 -5
- package/dist/shared/codec/s3/config.js +37 -5
- package/dist/shared/codec/s3/delete.d.ts +0 -1
- package/dist/shared/codec/s3/delete.js +0 -1
- package/dist/shared/codec/s3/key-scope.d.ts +23 -0
- package/dist/shared/codec/s3/key-scope.js +44 -0
- package/dist/shared/codec/s3/lifecycle.d.ts +11 -5
- package/dist/shared/codec/s3/lifecycle.js +32 -16
- package/dist/shared/codec/s3/offloader.d.ts +6 -2
- package/dist/shared/codec/s3/offloader.js +21 -3
- package/dist/shared/codec/s3/orphans.d.ts +6 -1
- package/dist/shared/codec/s3/orphans.js +15 -2
- package/dist/shared/codec/s3/read-write.d.ts +7 -3
- package/dist/shared/codec/s3/read-write.js +16 -8
- package/dist/shared/codec/s3/retry.d.ts +4 -4
- package/dist/shared/codec/s3/retry.js +13 -16
- package/dist/shared/concurrency.d.ts +6 -0
- package/dist/shared/concurrency.js +30 -0
- package/dist/shared/constants.d.ts +68 -5
- package/dist/shared/constants.js +70 -7
- package/dist/shared/dynamodb/abort.d.ts +9 -0
- package/dist/shared/dynamodb/abort.js +27 -0
- package/dist/shared/dynamodb/backoff.d.ts +4 -4
- package/dist/shared/dynamodb/backoff.js +7 -7
- package/dist/shared/dynamodb/batch-write.d.ts +0 -1
- package/dist/shared/dynamodb/batch-write.js +0 -1
- package/dist/shared/dynamodb/cancellation.d.ts +0 -1
- package/dist/shared/dynamodb/cancellation.js +0 -1
- package/dist/shared/dynamodb/client.d.ts +9 -2
- package/dist/shared/dynamodb/client.js +24 -1
- package/dist/shared/dynamodb/conditional-put.d.ts +67 -0
- package/dist/shared/dynamodb/conditional-put.js +76 -0
- package/dist/shared/dynamodb/drain-unprocessed.d.ts +3 -1
- package/dist/shared/dynamodb/drain-unprocessed.js +1 -2
- package/dist/shared/dynamodb/expiry.d.ts +16 -0
- package/dist/shared/dynamodb/expiry.js +29 -0
- package/dist/shared/dynamodb/paginate-core.d.ts +5 -3
- package/dist/shared/dynamodb/paginate-core.js +47 -17
- package/dist/shared/dynamodb/paginate.d.ts +0 -1
- package/dist/shared/dynamodb/paginate.js +1 -2
- package/dist/shared/dynamodb/partition-delete.d.ts +7 -1
- package/dist/shared/dynamodb/partition-delete.js +4 -3
- package/dist/shared/dynamodb/retry-classifier.d.ts +10 -2
- package/dist/shared/dynamodb/retry-classifier.js +42 -11
- package/dist/shared/dynamodb/retry-policy.d.ts +26 -0
- package/dist/shared/dynamodb/retry-policy.js +22 -0
- package/dist/shared/dynamodb/retry.d.ts +14 -1
- package/dist/shared/dynamodb/retry.js +11 -7
- package/dist/shared/dynamodb/scan.d.ts +0 -1
- package/dist/shared/dynamodb/scan.js +1 -2
- package/dist/shared/dynamodb/types.d.ts +1 -2
- package/dist/shared/dynamodb/types.js +0 -1
- package/dist/shared/errors/base-error.d.ts +14 -6
- package/dist/shared/errors/base-error.js +8 -9
- package/dist/shared/errors/boundary.d.ts +18 -0
- package/dist/shared/errors/boundary.js +46 -0
- package/dist/shared/errors/error-code.d.ts +2 -2
- package/dist/shared/errors/error-code.js +1 -1
- package/dist/shared/errors/errors.d.ts +13 -13
- package/dist/shared/errors/errors.js +18 -16
- package/dist/shared/errors/upstream-error.d.ts +16 -0
- package/dist/shared/errors/upstream-error.js +27 -0
- package/dist/shared/errors/wrap-error.d.ts +0 -9
- package/dist/shared/errors/wrap-error.js +0 -15
- package/dist/shared/logging/logger.d.ts +6 -2
- package/dist/shared/logging/logger.js +0 -1
- package/dist/shared/logging/redaction-walk.d.ts +2 -2
- package/dist/shared/logging/redaction-walk.js +38 -18
- package/dist/shared/logging/redaction.d.ts +14 -6
- package/dist/shared/logging/redaction.js +19 -4
- package/dist/shared/logging/secret-patterns.d.ts +54 -3
- package/dist/shared/logging/secret-patterns.js +67 -8
- package/dist/shared/options.d.ts +9 -4
- package/dist/shared/options.js +0 -1
- package/dist/shared/ulid.d.ts +15 -2
- package/dist/shared/ulid.js +35 -3
- package/dist/shared/validation/options.d.ts +8 -0
- package/dist/shared/validation/options.js +90 -0
- package/dist/shared/validation/primitives.d.ts +14 -10
- package/dist/shared/validation/primitives.js +23 -25
- package/dist/shared/validation/ttl.d.ts +14 -7
- package/dist/shared/validation/ttl.js +29 -11
- package/dist/store/actions/get.d.ts +11 -3
- package/dist/store/actions/get.js +52 -14
- package/dist/store/actions/list-namespaces.d.ts +0 -1
- package/dist/store/actions/list-namespaces.js +10 -6
- package/dist/store/actions/put.d.ts +0 -1
- package/dist/store/actions/put.js +27 -28
- package/dist/store/actions/reconcile-vector-index.d.ts +3 -2
- package/dist/store/actions/reconcile-vector-index.js +2 -3
- package/dist/store/actions/search.d.ts +1 -2
- package/dist/store/actions/search.js +11 -38
- package/dist/store/internal/backend-search.d.ts +1 -2
- package/dist/store/internal/backend-search.js +14 -7
- package/dist/store/internal/batch-plan.d.ts +11 -0
- package/dist/store/internal/batch-plan.js +52 -0
- package/dist/store/internal/candidates.d.ts +23 -0
- package/dist/store/internal/candidates.js +94 -0
- package/dist/store/internal/filter.d.ts +0 -1
- package/dist/store/internal/filter.js +25 -6
- package/dist/store/internal/index-reconcile.d.ts +5 -6
- package/dist/store/internal/index-reconcile.js +32 -13
- package/dist/store/internal/index-sync.d.ts +0 -1
- package/dist/store/internal/index-sync.js +0 -1
- package/dist/store/internal/item-mapper.d.ts +6 -3
- package/dist/store/internal/item-mapper.js +16 -6
- package/dist/store/internal/keys.d.ts +0 -1
- package/dist/store/internal/keys.js +0 -1
- package/dist/store/internal/namespace-match.d.ts +0 -1
- package/dist/store/internal/namespace-match.js +0 -1
- package/dist/store/internal/option-validation.d.ts +13 -0
- package/dist/store/internal/option-validation.js +77 -0
- package/dist/store/internal/overwrite-swap.d.ts +32 -0
- package/dist/store/internal/overwrite-swap.js +68 -0
- package/dist/store/internal/persist.d.ts +24 -7
- package/dist/store/internal/persist.js +49 -19
- package/dist/store/internal/query.d.ts +6 -1
- package/dist/store/internal/query.js +17 -1
- package/dist/store/internal/ranker.d.ts +7 -2
- package/dist/store/internal/ranker.js +10 -2
- package/dist/store/internal/read-existing.d.ts +23 -0
- package/dist/store/internal/read-existing.js +41 -0
- package/dist/store/internal/score-direction.d.ts +31 -0
- package/dist/store/internal/score-direction.js +38 -0
- package/dist/store/internal/search-filter.d.ts +0 -1
- package/dist/store/internal/search-filter.js +0 -1
- package/dist/store/internal/semantic-search.d.ts +26 -5
- package/dist/store/internal/semantic-search.js +59 -19
- package/dist/store/internal/setup.d.ts +6 -12
- package/dist/store/internal/setup.js +12 -24
- package/dist/store/internal/text-path.d.ts +17 -0
- package/dist/store/internal/text-path.js +147 -0
- package/dist/store/internal/validation.d.ts +8 -3
- package/dist/store/internal/validation.js +21 -5
- package/dist/store/internal/write-verify.d.ts +27 -9
- package/dist/store/internal/write-verify.js +35 -19
- package/dist/store/store.d.ts +37 -9
- package/dist/store/store.js +52 -17
- package/dist/store/types.d.ts +22 -2
- package/dist/store/types.js +0 -1
- package/dist/store/vector-backend.d.ts +6 -7
- package/dist/store/vector-backend.js +0 -1
- package/package.json +21 -15
- package/dist/checkpointer/actions/delete-thread.d.ts.map +0 -1
- package/dist/checkpointer/actions/delete-thread.js.map +0 -1
- package/dist/checkpointer/actions/get-tuple.d.ts.map +0 -1
- package/dist/checkpointer/actions/get-tuple.js.map +0 -1
- package/dist/checkpointer/actions/list.d.ts.map +0 -1
- package/dist/checkpointer/actions/list.js.map +0 -1
- package/dist/checkpointer/actions/put-writes.d.ts.map +0 -1
- package/dist/checkpointer/actions/put-writes.js.map +0 -1
- package/dist/checkpointer/actions/put.d.ts.map +0 -1
- package/dist/checkpointer/actions/put.js.map +0 -1
- package/dist/checkpointer/internal/assemble.d.ts.map +0 -1
- package/dist/checkpointer/internal/assemble.js.map +0 -1
- package/dist/checkpointer/internal/configurable.d.ts.map +0 -1
- package/dist/checkpointer/internal/configurable.js.map +0 -1
- package/dist/checkpointer/internal/fetch.d.ts.map +0 -1
- package/dist/checkpointer/internal/fetch.js.map +0 -1
- package/dist/checkpointer/internal/filter-match.d.ts.map +0 -1
- package/dist/checkpointer/internal/filter-match.js.map +0 -1
- package/dist/checkpointer/internal/item-reader.d.ts.map +0 -1
- package/dist/checkpointer/internal/item-reader.js.map +0 -1
- package/dist/checkpointer/internal/item-writer.d.ts.map +0 -1
- package/dist/checkpointer/internal/item-writer.js.map +0 -1
- package/dist/checkpointer/internal/keys.d.ts.map +0 -1
- package/dist/checkpointer/internal/keys.js.map +0 -1
- package/dist/checkpointer/internal/query.d.ts.map +0 -1
- package/dist/checkpointer/internal/query.js.map +0 -1
- package/dist/checkpointer/internal/setup.d.ts.map +0 -1
- package/dist/checkpointer/internal/setup.js.map +0 -1
- package/dist/checkpointer/internal/special-write-cleanup.d.ts.map +0 -1
- package/dist/checkpointer/internal/special-write-cleanup.js.map +0 -1
- package/dist/checkpointer/internal/validation.d.ts.map +0 -1
- package/dist/checkpointer/internal/validation.js.map +0 -1
- package/dist/checkpointer/internal/write-guard.d.ts.map +0 -1
- package/dist/checkpointer/internal/write-guard.js.map +0 -1
- package/dist/checkpointer/internal/write-index.d.ts.map +0 -1
- package/dist/checkpointer/internal/write-index.js.map +0 -1
- package/dist/checkpointer/saver.d.ts.map +0 -1
- package/dist/checkpointer/saver.js.map +0 -1
- package/dist/checkpointer/types.d.ts.map +0 -1
- package/dist/checkpointer/types.js.map +0 -1
- package/dist/factory/factory.d.ts.map +0 -1
- package/dist/factory/factory.js.map +0 -1
- package/dist/history/actions/add-messages.d.ts.map +0 -1
- package/dist/history/actions/add-messages.js.map +0 -1
- package/dist/history/actions/clear.d.ts.map +0 -1
- package/dist/history/actions/clear.js.map +0 -1
- package/dist/history/actions/get-messages.d.ts.map +0 -1
- package/dist/history/actions/get-messages.js.map +0 -1
- package/dist/history/actions/list-sessions.d.ts.map +0 -1
- package/dist/history/actions/list-sessions.js.map +0 -1
- package/dist/history/actions/reconcile-count.d.ts.map +0 -1
- package/dist/history/actions/reconcile-count.js.map +0 -1
- package/dist/history/chat-message-history.d.ts.map +0 -1
- package/dist/history/chat-message-history.js.map +0 -1
- package/dist/history/internal/append-saga.d.ts.map +0 -1
- package/dist/history/internal/append-saga.js.map +0 -1
- package/dist/history/internal/compensation.d.ts.map +0 -1
- package/dist/history/internal/compensation.js.map +0 -1
- package/dist/history/internal/item-mapper.d.ts.map +0 -1
- package/dist/history/internal/item-mapper.js.map +0 -1
- package/dist/history/internal/keys.d.ts.map +0 -1
- package/dist/history/internal/keys.js.map +0 -1
- package/dist/history/internal/message-chunker.d.ts.map +0 -1
- package/dist/history/internal/message-chunker.js.map +0 -1
- package/dist/history/internal/message-transaction.d.ts.map +0 -1
- package/dist/history/internal/message-transaction.js.map +0 -1
- package/dist/history/internal/query.d.ts.map +0 -1
- package/dist/history/internal/query.js.map +0 -1
- package/dist/history/internal/session-count.d.ts.map +0 -1
- package/dist/history/internal/session-count.js.map +0 -1
- package/dist/history/internal/session-title.d.ts.map +0 -1
- package/dist/history/internal/session-title.js.map +0 -1
- package/dist/history/internal/session-update.d.ts.map +0 -1
- package/dist/history/internal/session-update.js.map +0 -1
- package/dist/history/internal/setup.d.ts.map +0 -1
- package/dist/history/internal/setup.js.map +0 -1
- package/dist/history/internal/title-generator.d.ts.map +0 -1
- package/dist/history/internal/title-generator.js.map +0 -1
- package/dist/history/internal/ttl-anchor.d.ts.map +0 -1
- package/dist/history/internal/ttl-anchor.js.map +0 -1
- package/dist/history/internal/validation.d.ts.map +0 -1
- package/dist/history/internal/validation.js.map +0 -1
- package/dist/history/session-adapter.d.ts.map +0 -1
- package/dist/history/session-adapter.js.map +0 -1
- package/dist/history/types.d.ts.map +0 -1
- package/dist/history/types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/shared/clock.d.ts.map +0 -1
- package/dist/shared/clock.js.map +0 -1
- package/dist/shared/codec/codec.d.ts.map +0 -1
- package/dist/shared/codec/codec.js.map +0 -1
- package/dist/shared/codec/compression.d.ts.map +0 -1
- package/dist/shared/codec/compression.js.map +0 -1
- package/dist/shared/codec/descriptor-keys.d.ts.map +0 -1
- package/dist/shared/codec/descriptor-keys.js.map +0 -1
- package/dist/shared/codec/json-serde.d.ts.map +0 -1
- package/dist/shared/codec/json-serde.js.map +0 -1
- package/dist/shared/codec/s3/client.d.ts.map +0 -1
- package/dist/shared/codec/s3/client.js.map +0 -1
- package/dist/shared/codec/s3/config.d.ts.map +0 -1
- package/dist/shared/codec/s3/config.js.map +0 -1
- package/dist/shared/codec/s3/delete.d.ts.map +0 -1
- package/dist/shared/codec/s3/delete.js.map +0 -1
- package/dist/shared/codec/s3/lifecycle.d.ts.map +0 -1
- package/dist/shared/codec/s3/lifecycle.js.map +0 -1
- package/dist/shared/codec/s3/offloader.d.ts.map +0 -1
- package/dist/shared/codec/s3/offloader.js.map +0 -1
- package/dist/shared/codec/s3/orphans.d.ts.map +0 -1
- package/dist/shared/codec/s3/orphans.js.map +0 -1
- package/dist/shared/codec/s3/read-write.d.ts.map +0 -1
- package/dist/shared/codec/s3/read-write.js.map +0 -1
- package/dist/shared/codec/s3/retry.d.ts.map +0 -1
- package/dist/shared/codec/s3/retry.js.map +0 -1
- package/dist/shared/constants.d.ts.map +0 -1
- package/dist/shared/constants.js.map +0 -1
- package/dist/shared/dynamodb/backoff.d.ts.map +0 -1
- package/dist/shared/dynamodb/backoff.js.map +0 -1
- package/dist/shared/dynamodb/batch-write.d.ts.map +0 -1
- package/dist/shared/dynamodb/batch-write.js.map +0 -1
- package/dist/shared/dynamodb/cancellation.d.ts.map +0 -1
- package/dist/shared/dynamodb/cancellation.js.map +0 -1
- package/dist/shared/dynamodb/client.d.ts.map +0 -1
- package/dist/shared/dynamodb/client.js.map +0 -1
- package/dist/shared/dynamodb/drain-unprocessed.d.ts.map +0 -1
- package/dist/shared/dynamodb/drain-unprocessed.js.map +0 -1
- package/dist/shared/dynamodb/paginate-core.d.ts.map +0 -1
- package/dist/shared/dynamodb/paginate-core.js.map +0 -1
- package/dist/shared/dynamodb/paginate.d.ts.map +0 -1
- package/dist/shared/dynamodb/paginate.js.map +0 -1
- package/dist/shared/dynamodb/partition-delete.d.ts.map +0 -1
- package/dist/shared/dynamodb/partition-delete.js.map +0 -1
- package/dist/shared/dynamodb/retry-classifier.d.ts.map +0 -1
- package/dist/shared/dynamodb/retry-classifier.js.map +0 -1
- package/dist/shared/dynamodb/retry.d.ts.map +0 -1
- package/dist/shared/dynamodb/retry.js.map +0 -1
- package/dist/shared/dynamodb/scan.d.ts.map +0 -1
- package/dist/shared/dynamodb/scan.js.map +0 -1
- package/dist/shared/dynamodb/types.d.ts.map +0 -1
- package/dist/shared/dynamodb/types.js.map +0 -1
- package/dist/shared/errors/base-error.d.ts.map +0 -1
- package/dist/shared/errors/base-error.js.map +0 -1
- package/dist/shared/errors/error-code.d.ts.map +0 -1
- package/dist/shared/errors/error-code.js.map +0 -1
- package/dist/shared/errors/errors.d.ts.map +0 -1
- package/dist/shared/errors/errors.js.map +0 -1
- package/dist/shared/errors/wrap-error.d.ts.map +0 -1
- package/dist/shared/errors/wrap-error.js.map +0 -1
- package/dist/shared/logging/logger.d.ts.map +0 -1
- package/dist/shared/logging/logger.js.map +0 -1
- package/dist/shared/logging/redaction-walk.d.ts.map +0 -1
- package/dist/shared/logging/redaction-walk.js.map +0 -1
- package/dist/shared/logging/redaction.d.ts.map +0 -1
- package/dist/shared/logging/redaction.js.map +0 -1
- package/dist/shared/logging/secret-patterns.d.ts.map +0 -1
- package/dist/shared/logging/secret-patterns.js.map +0 -1
- package/dist/shared/options.d.ts.map +0 -1
- package/dist/shared/options.js.map +0 -1
- package/dist/shared/ulid.d.ts.map +0 -1
- package/dist/shared/ulid.js.map +0 -1
- package/dist/shared/validation/primitives.d.ts.map +0 -1
- package/dist/shared/validation/primitives.js.map +0 -1
- package/dist/shared/validation/ttl.d.ts.map +0 -1
- package/dist/shared/validation/ttl.js.map +0 -1
- package/dist/store/actions/get.d.ts.map +0 -1
- package/dist/store/actions/get.js.map +0 -1
- package/dist/store/actions/list-namespaces.d.ts.map +0 -1
- package/dist/store/actions/list-namespaces.js.map +0 -1
- package/dist/store/actions/put.d.ts.map +0 -1
- package/dist/store/actions/put.js.map +0 -1
- package/dist/store/actions/reconcile-vector-index.d.ts.map +0 -1
- package/dist/store/actions/reconcile-vector-index.js.map +0 -1
- package/dist/store/actions/search.d.ts.map +0 -1
- package/dist/store/actions/search.js.map +0 -1
- package/dist/store/internal/backend-search.d.ts.map +0 -1
- package/dist/store/internal/backend-search.js.map +0 -1
- package/dist/store/internal/filter.d.ts.map +0 -1
- package/dist/store/internal/filter.js.map +0 -1
- package/dist/store/internal/index-reconcile.d.ts.map +0 -1
- package/dist/store/internal/index-reconcile.js.map +0 -1
- package/dist/store/internal/index-sync.d.ts.map +0 -1
- package/dist/store/internal/index-sync.js.map +0 -1
- package/dist/store/internal/item-mapper.d.ts.map +0 -1
- package/dist/store/internal/item-mapper.js.map +0 -1
- package/dist/store/internal/keys.d.ts.map +0 -1
- package/dist/store/internal/keys.js.map +0 -1
- package/dist/store/internal/namespace-match.d.ts.map +0 -1
- package/dist/store/internal/namespace-match.js.map +0 -1
- package/dist/store/internal/persist.d.ts.map +0 -1
- package/dist/store/internal/persist.js.map +0 -1
- package/dist/store/internal/query.d.ts.map +0 -1
- package/dist/store/internal/query.js.map +0 -1
- package/dist/store/internal/ranker.d.ts.map +0 -1
- package/dist/store/internal/ranker.js.map +0 -1
- package/dist/store/internal/search-filter.d.ts.map +0 -1
- package/dist/store/internal/search-filter.js.map +0 -1
- package/dist/store/internal/semantic-search.d.ts.map +0 -1
- package/dist/store/internal/semantic-search.js.map +0 -1
- package/dist/store/internal/setup.d.ts.map +0 -1
- package/dist/store/internal/setup.js.map +0 -1
- package/dist/store/internal/validation.d.ts.map +0 -1
- package/dist/store/internal/validation.js.map +0 -1
- package/dist/store/internal/write-verify.d.ts.map +0 -1
- package/dist/store/internal/write-verify.js.map +0 -1
- package/dist/store/store.d.ts.map +0 -1
- package/dist/store/store.js.map +0 -1
- package/dist/store/types.d.ts.map +0 -1
- package/dist/store/types.js.map +0 -1
- package/dist/store/vector-backend.d.ts.map +0 -1
- package/dist/store/vector-backend.js.map +0 -1
|
@@ -3,7 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.validatePaging = validatePaging;
|
|
4
4
|
exports.validateNamespace = validateNamespace;
|
|
5
5
|
exports.validateKey = validateKey;
|
|
6
|
+
exports.validateStoreKey = validateStoreKey;
|
|
6
7
|
exports.validateMaxDepth = validateMaxDepth;
|
|
8
|
+
const constants_1 = require("../../shared/constants");
|
|
9
|
+
const errors_1 = require("../../shared/errors/errors");
|
|
7
10
|
const primitives_1 = require("../../shared/validation/primitives");
|
|
8
11
|
const keys_1 = require("./keys");
|
|
9
12
|
/** Validate search/listNamespaces paging is non-negative integers. */
|
|
@@ -11,16 +14,30 @@ function validatePaging(offset, limit) {
|
|
|
11
14
|
(0, primitives_1.validateInteger)(offset, 'offset', { min: 0 });
|
|
12
15
|
(0, primitives_1.validateInteger)(limit, 'limit', { min: 0 });
|
|
13
16
|
}
|
|
14
|
-
/** Validate the namespace is non-empty and each element is a valid identifier. */
|
|
17
|
+
/** Validate the namespace is non-empty and each element is a valid, ≤256-byte identifier. */
|
|
15
18
|
function validateNamespace(namespace) {
|
|
16
19
|
(0, primitives_1.validateNonEmptyArray)(namespace, 'namespace');
|
|
17
20
|
for (const element of namespace) {
|
|
18
|
-
(0, primitives_1.validateIdentifier)(element, keys_1.NAMESPACE_SEPARATOR, 'namespace element');
|
|
21
|
+
(0, primitives_1.validateIdentifier)(element, keys_1.NAMESPACE_SEPARATOR, 'namespace element', constants_1.MAX_KEY_SEGMENT_BYTES);
|
|
19
22
|
}
|
|
20
23
|
}
|
|
21
|
-
/** Validate an item key is a non-
|
|
24
|
+
/** Validate an item key is a non-blank, separator- and control-char-free, ≤256-byte string. */
|
|
22
25
|
function validateKey(key) {
|
|
23
|
-
(0, primitives_1.validateIdentifier)(key, keys_1.NAMESPACE_SEPARATOR, 'key');
|
|
26
|
+
(0, primitives_1.validateIdentifier)(key, keys_1.NAMESPACE_SEPARATOR, 'key', constants_1.MAX_KEY_SEGMENT_BYTES);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Validate a namespace/key pair as the item address it becomes: each segment
|
|
30
|
+
* on its own, then the sort key they compose, which DynamoDB caps at 1024
|
|
31
|
+
* bytes regardless of how short the individual segments are.
|
|
32
|
+
*/
|
|
33
|
+
function validateStoreKey(namespace, key) {
|
|
34
|
+
validateNamespace(namespace);
|
|
35
|
+
validateKey(key);
|
|
36
|
+
const bytes = Buffer.byteLength((0, keys_1.sortKey)(namespace, key), 'utf8');
|
|
37
|
+
if (bytes > constants_1.MAX_SORT_KEY_BYTES) {
|
|
38
|
+
throw new errors_1.ValidationError(`namespace and key compose a ${bytes}-byte sort key; DynamoDB caps sort keys at ` +
|
|
39
|
+
`${constants_1.MAX_SORT_KEY_BYTES} bytes`, 'sortKey');
|
|
40
|
+
}
|
|
24
41
|
}
|
|
25
42
|
/**
|
|
26
43
|
* Validate an optional namespace depth cap. Left unchecked, a negative value
|
|
@@ -32,4 +49,3 @@ function validateMaxDepth(maxDepth) {
|
|
|
32
49
|
return;
|
|
33
50
|
(0, primitives_1.validateInteger)(maxDepth, 'maxDepth', { min: 1 });
|
|
34
51
|
}
|
|
35
|
-
//# sourceMappingURL=validation.js.map
|
|
@@ -4,21 +4,39 @@ export declare function isRetryExhausted(error: Error): boolean;
|
|
|
4
4
|
/**
|
|
5
5
|
* True when the row is confirmed absent — used to resolve an ambiguous
|
|
6
6
|
* retry-exhausted *delete*, where the delete may well have landed server-side
|
|
7
|
-
* and only its acknowledgement was lost.
|
|
8
|
-
*
|
|
7
|
+
* and only its acknowledgement was lost. Only the partition key is projected:
|
|
8
|
+
* existence is the whole question. A failure reading this is not treated as
|
|
9
|
+
* confirmation, which is fail-safe here: the caller only rethrows, and nothing
|
|
10
|
+
* is deleted on the strength of a `false`.
|
|
9
11
|
*/
|
|
10
12
|
export declare function rowIsAbsent(context: StoreContext, key: {
|
|
11
13
|
PK: string;
|
|
12
14
|
SK: string;
|
|
13
15
|
}): Promise<boolean>;
|
|
16
|
+
/** What a post-failure verification read could establish about a write. */
|
|
17
|
+
export type WriteVerdict = 'landed' | 'not-landed' | 'unverified';
|
|
14
18
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
+
* Read `record`'s row back to establish what an ambiguous write actually did,
|
|
20
|
+
* comparing the row's revision with the one this write carried. Every put
|
|
21
|
+
* stamps a fresh per-call `rev`, so the comparison works for inline and
|
|
22
|
+
* offloaded records alike.
|
|
23
|
+
*
|
|
24
|
+
* - `'landed'`: the row holds this write's `rev`, so it committed server-side
|
|
25
|
+
* and only its acknowledgement was lost.
|
|
26
|
+
* - `'not-landed'`: the row was read and holds something else, or nothing —
|
|
27
|
+
* or the record carries no `rev` to compare — so this call's own upload, if
|
|
28
|
+
* any, is dead and safe to delete.
|
|
29
|
+
* - `'unverified'`: the read itself failed, so nothing is established.
|
|
30
|
+
*
|
|
31
|
+
* The third answer used to be folded into the second as a plain `false`, which
|
|
32
|
+
* made a partition that blocked both the put and this read delete the object a
|
|
33
|
+
* possibly-live row points at — permanently breaking every later read of that
|
|
34
|
+
* item. Only a *confirmed* non-commit may delete the new upload: leaking one
|
|
35
|
+
* object (reclaimed by `ensureS3LifecycleRule`) is recoverable, stranding a
|
|
36
|
+
* live row is not.
|
|
19
37
|
*/
|
|
20
|
-
export declare function
|
|
38
|
+
export declare function verifyWriteLanded(context: StoreContext, record: {
|
|
21
39
|
PK: string;
|
|
22
40
|
SK: string;
|
|
23
|
-
|
|
24
|
-
|
|
41
|
+
rev?: string;
|
|
42
|
+
}): Promise<WriteVerdict>;
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isRetryExhausted = isRetryExhausted;
|
|
4
4
|
exports.rowIsAbsent = rowIsAbsent;
|
|
5
|
-
exports.
|
|
6
|
-
const
|
|
5
|
+
exports.verifyWriteLanded = verifyWriteLanded;
|
|
6
|
+
const conditional_put_1 = require("../../shared/dynamodb/conditional-put");
|
|
7
7
|
const retry_1 = require("../../shared/dynamodb/retry");
|
|
8
8
|
/** True when `error` is a {@link RetryExhaustedError} — by name, not `instanceof` (banned repo-wide). */
|
|
9
9
|
function isRetryExhausted(error) {
|
|
@@ -12,8 +12,10 @@ function isRetryExhausted(error) {
|
|
|
12
12
|
/**
|
|
13
13
|
* True when the row is confirmed absent — used to resolve an ambiguous
|
|
14
14
|
* retry-exhausted *delete*, where the delete may well have landed server-side
|
|
15
|
-
* and only its acknowledgement was lost.
|
|
16
|
-
*
|
|
15
|
+
* and only its acknowledgement was lost. Only the partition key is projected:
|
|
16
|
+
* existence is the whole question. A failure reading this is not treated as
|
|
17
|
+
* confirmation, which is fail-safe here: the caller only rethrows, and nothing
|
|
18
|
+
* is deleted on the strength of a `false`.
|
|
17
19
|
*/
|
|
18
20
|
async function rowIsAbsent(context, key) {
|
|
19
21
|
try {
|
|
@@ -21,9 +23,9 @@ async function rowIsAbsent(context, key) {
|
|
|
21
23
|
TableName: context.tableName,
|
|
22
24
|
Key: key,
|
|
23
25
|
ConsistentRead: true,
|
|
24
|
-
ProjectionExpression: '#
|
|
25
|
-
ExpressionAttributeNames: { '#
|
|
26
|
-
}));
|
|
26
|
+
ProjectionExpression: '#pk',
|
|
27
|
+
ExpressionAttributeNames: { '#pk': 'PK' },
|
|
28
|
+
}), context.retry);
|
|
27
29
|
return result.Item === undefined;
|
|
28
30
|
}
|
|
29
31
|
catch {
|
|
@@ -31,25 +33,39 @@ async function rowIsAbsent(context, key) {
|
|
|
31
33
|
}
|
|
32
34
|
}
|
|
33
35
|
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
36
|
+
* Read `record`'s row back to establish what an ambiguous write actually did,
|
|
37
|
+
* comparing the row's revision with the one this write carried. Every put
|
|
38
|
+
* stamps a fresh per-call `rev`, so the comparison works for inline and
|
|
39
|
+
* offloaded records alike.
|
|
40
|
+
*
|
|
41
|
+
* - `'landed'`: the row holds this write's `rev`, so it committed server-side
|
|
42
|
+
* and only its acknowledgement was lost.
|
|
43
|
+
* - `'not-landed'`: the row was read and holds something else, or nothing —
|
|
44
|
+
* or the record carries no `rev` to compare — so this call's own upload, if
|
|
45
|
+
* any, is dead and safe to delete.
|
|
46
|
+
* - `'unverified'`: the read itself failed, so nothing is established.
|
|
47
|
+
*
|
|
48
|
+
* The third answer used to be folded into the second as a plain `false`, which
|
|
49
|
+
* made a partition that blocked both the put and this read delete the object a
|
|
50
|
+
* possibly-live row points at — permanently breaking every later read of that
|
|
51
|
+
* item. Only a *confirmed* non-commit may delete the new upload: leaking one
|
|
52
|
+
* object (reclaimed by `ensureS3LifecycleRule`) is recoverable, stranding a
|
|
53
|
+
* live row is not.
|
|
38
54
|
*/
|
|
39
|
-
async function
|
|
55
|
+
async function verifyWriteLanded(context, record) {
|
|
56
|
+
if (record.rev === undefined)
|
|
57
|
+
return 'not-landed';
|
|
40
58
|
try {
|
|
41
59
|
const result = await (0, retry_1.withDynamoDBRetry)(() => context.client.get({
|
|
42
60
|
TableName: context.tableName,
|
|
43
61
|
Key: { PK: record.PK, SK: record.SK },
|
|
44
62
|
ConsistentRead: true,
|
|
45
|
-
ProjectionExpression: '#
|
|
46
|
-
ExpressionAttributeNames: { '#
|
|
47
|
-
}));
|
|
48
|
-
|
|
49
|
-
return value?.location === codec_1.PayloadLocation.S3 && value.s3Key === expectedS3Key;
|
|
63
|
+
ProjectionExpression: '#r',
|
|
64
|
+
ExpressionAttributeNames: { '#r': conditional_put_1.REVISION_ATTRIBUTE },
|
|
65
|
+
}), context.retry);
|
|
66
|
+
return result.Item?.[conditional_put_1.REVISION_ATTRIBUTE] === record.rev ? 'landed' : 'not-landed';
|
|
50
67
|
}
|
|
51
68
|
catch {
|
|
52
|
-
return
|
|
69
|
+
return 'unverified';
|
|
53
70
|
}
|
|
54
71
|
}
|
|
55
|
-
//# sourceMappingURL=write-verify.js.map
|
package/dist/store/store.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { BaseStore, type Operation, type OperationResults } from '@langchain/langgraph-checkpoint';
|
|
1
|
+
import { BaseStore, type Operation, type OperationResults, type SearchItem, type SearchOperation } from '@langchain/langgraph-checkpoint';
|
|
2
|
+
import type { CancelOptions } from '../shared/options';
|
|
2
3
|
import { type VectorReconcileResult } from './actions/reconcile-vector-index';
|
|
3
4
|
import type { DynamoDBStoreOptions } from './types';
|
|
4
5
|
/**
|
|
@@ -12,22 +13,49 @@ export declare class DynamoDBStore extends BaseStore {
|
|
|
12
13
|
private readonly ddbClient;
|
|
13
14
|
constructor(options: DynamoDBStoreOptions);
|
|
14
15
|
private dispatch;
|
|
16
|
+
/**
|
|
17
|
+
* Execute a batch of operations and return their results in operation
|
|
18
|
+
* order. Writes to one item stay ordered; writes to different items, and
|
|
19
|
+
* then all reads, run concurrently — so a get after a put to the same key
|
|
20
|
+
* in one batch observes the put, and a batch of ten gets costs about one
|
|
21
|
+
* round trip rather than ten (see `runBatch`). The library's error boundary
|
|
22
|
+
* for every `BaseStore` method (`get`/`put`/`delete`/`search`/
|
|
23
|
+
* `listNamespaces` all funnel through here): a raw AWS SDK error surfaces
|
|
24
|
+
* as an `UpstreamError`, and one failing operation rejects the whole batch.
|
|
25
|
+
* @throws ValidationError for a malformed namespace, key or value; UpstreamError; RetryExhaustedError; ResultTruncatedError from a listing over its cap.
|
|
26
|
+
*/
|
|
15
27
|
batch<Op extends Operation[]>(operations: Op): Promise<OperationResults<Op>>;
|
|
28
|
+
/**
|
|
29
|
+
* Search with optional cancellation. Overrides the base implementation, which
|
|
30
|
+
* routes through {@link batch} and therefore cannot carry a signal. A plain
|
|
31
|
+
* search stops reading once `offset + limit` matches are in hand; a `query`
|
|
32
|
+
* ranks in-process (up to `maxSearchCandidates`) or through the `vectorBackend`.
|
|
33
|
+
* @throws ValidationError when the candidate set exceeds `maxSearchCandidates`; AbortError; UpstreamError.
|
|
34
|
+
*/
|
|
35
|
+
search(namespacePrefix: string[], options?: Pick<SearchOperation, 'filter' | 'limit' | 'offset' | 'query'> & CancelOptions): Promise<SearchItem[]>;
|
|
16
36
|
/**
|
|
17
37
|
* Repair the configured vector backend against the canonical items under
|
|
18
38
|
* `namespacePrefix`. A maintenance tool; see {@link reconcileVectorIndex}.
|
|
39
|
+
* @throws ValidationError without an `index` and `vectorBackend` or for an empty prefix; ResultTruncatedError past `maxScanItems`.
|
|
40
|
+
*/
|
|
41
|
+
reconcileVectorIndex(namespacePrefix: string[], options?: CancelOptions): Promise<VectorReconcileResult>;
|
|
42
|
+
/**
|
|
43
|
+
* LangGraph's lifecycle hook. A host that manages stores through the
|
|
44
|
+
* upstream `BaseStore` interface calls `stop()`, so it releases the owned
|
|
45
|
+
* client exactly like {@link destroy}, which stays the explicit API. Both
|
|
46
|
+
* are idempotent.
|
|
19
47
|
*/
|
|
20
|
-
|
|
48
|
+
stop(): void;
|
|
21
49
|
/** Release owned resources (the underlying client and any S3 client). */
|
|
22
50
|
destroy(): void;
|
|
23
51
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* `s3:GetLifecycleConfiguration
|
|
28
|
-
* permissions (broader than the
|
|
29
|
-
* needs) — call this once during
|
|
52
|
+
* Provision an S3 lifecycle expiration rule matching the configured TTL, so
|
|
53
|
+
* offloaded objects don't outlive their DynamoDB item forever. No-ops when
|
|
54
|
+
* S3 offload or TTL isn't configured; throws when the bucket cannot be read
|
|
55
|
+
* or written. Requires the `s3:GetLifecycleConfiguration` /
|
|
56
|
+
* `s3:PutLifecycleConfiguration` bucket-level permissions (broader than the
|
|
57
|
+
* object-level CRUD the rest of S3 offload needs) — call this once during
|
|
58
|
+
* deployment/provisioning, not per-request.
|
|
30
59
|
*/
|
|
31
60
|
ensureS3LifecycleRule(): Promise<void>;
|
|
32
61
|
}
|
|
33
|
-
//# sourceMappingURL=store.d.ts.map
|
package/dist/store/store.js
CHANGED
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DynamoDBStore = void 0;
|
|
4
4
|
const langgraph_checkpoint_1 = require("@langchain/langgraph-checkpoint");
|
|
5
|
+
const boundary_1 = require("../shared/errors/boundary");
|
|
5
6
|
const ttl_1 = require("../shared/validation/ttl");
|
|
6
7
|
const get_1 = require("./actions/get");
|
|
7
8
|
const list_namespaces_1 = require("./actions/list-namespaces");
|
|
8
9
|
const put_1 = require("./actions/put");
|
|
9
10
|
const reconcile_vector_index_1 = require("./actions/reconcile-vector-index");
|
|
10
11
|
const search_1 = require("./actions/search");
|
|
12
|
+
const batch_plan_1 = require("./internal/batch-plan");
|
|
11
13
|
const setup_1 = require("./internal/setup");
|
|
12
14
|
/**
|
|
13
15
|
* DynamoDB-backed LangGraph store for long-term memory with optional semantic
|
|
@@ -34,19 +36,50 @@ class DynamoDBStore extends langgraph_checkpoint_1.BaseStore {
|
|
|
34
36
|
return (0, get_1.getItem)(this.context, operation.namespace, operation.key);
|
|
35
37
|
return (0, list_namespaces_1.listNamespaces)(this.context, operation);
|
|
36
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Execute a batch of operations and return their results in operation
|
|
41
|
+
* order. Writes to one item stay ordered; writes to different items, and
|
|
42
|
+
* then all reads, run concurrently — so a get after a put to the same key
|
|
43
|
+
* in one batch observes the put, and a batch of ten gets costs about one
|
|
44
|
+
* round trip rather than ten (see `runBatch`). The library's error boundary
|
|
45
|
+
* for every `BaseStore` method (`get`/`put`/`delete`/`search`/
|
|
46
|
+
* `listNamespaces` all funnel through here): a raw AWS SDK error surfaces
|
|
47
|
+
* as an `UpstreamError`, and one failing operation rejects the whole batch.
|
|
48
|
+
* @throws ValidationError for a malformed namespace, key or value; UpstreamError; RetryExhaustedError; ResultTruncatedError from a listing over its cap.
|
|
49
|
+
*/
|
|
37
50
|
async batch(operations) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
results
|
|
41
|
-
}
|
|
42
|
-
|
|
51
|
+
return (0, boundary_1.guardPublic)('store.batch', async () => {
|
|
52
|
+
const results = await (0, batch_plan_1.runBatch)(operations, (operation) => this.dispatch(operation));
|
|
53
|
+
return results;
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Search with optional cancellation. Overrides the base implementation, which
|
|
58
|
+
* routes through {@link batch} and therefore cannot carry a signal. A plain
|
|
59
|
+
* search stops reading once `offset + limit` matches are in hand; a `query`
|
|
60
|
+
* ranks in-process (up to `maxSearchCandidates`) or through the `vectorBackend`.
|
|
61
|
+
* @throws ValidationError when the candidate set exceeds `maxSearchCandidates`; AbortError; UpstreamError.
|
|
62
|
+
*/
|
|
63
|
+
async search(namespacePrefix, options = {}) {
|
|
64
|
+
const { signal, ...rest } = options;
|
|
65
|
+
return (0, boundary_1.guardPublic)('store.search', () => (0, search_1.searchItems)(this.context, { namespacePrefix, ...rest }, signal));
|
|
43
66
|
}
|
|
44
67
|
/**
|
|
45
68
|
* Repair the configured vector backend against the canonical items under
|
|
46
69
|
* `namespacePrefix`. A maintenance tool; see {@link reconcileVectorIndex}.
|
|
70
|
+
* @throws ValidationError without an `index` and `vectorBackend` or for an empty prefix; ResultTruncatedError past `maxScanItems`.
|
|
71
|
+
*/
|
|
72
|
+
reconcileVectorIndex(namespacePrefix, options) {
|
|
73
|
+
return (0, boundary_1.guardPublic)('store.reconcileVectorIndex', () => (0, reconcile_vector_index_1.reconcileVectorIndex)(this.context, namespacePrefix, options));
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* LangGraph's lifecycle hook. A host that manages stores through the
|
|
77
|
+
* upstream `BaseStore` interface calls `stop()`, so it releases the owned
|
|
78
|
+
* client exactly like {@link destroy}, which stays the explicit API. Both
|
|
79
|
+
* are idempotent.
|
|
47
80
|
*/
|
|
48
|
-
|
|
49
|
-
|
|
81
|
+
stop() {
|
|
82
|
+
this.destroy();
|
|
50
83
|
}
|
|
51
84
|
/** Release owned resources (the underlying client and any S3 client). */
|
|
52
85
|
destroy() {
|
|
@@ -55,18 +88,20 @@ class DynamoDBStore extends langgraph_checkpoint_1.BaseStore {
|
|
|
55
88
|
this.ddbClient?.destroy();
|
|
56
89
|
}
|
|
57
90
|
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* `s3:GetLifecycleConfiguration
|
|
62
|
-
* permissions (broader than the
|
|
63
|
-
* needs) — call this once during
|
|
91
|
+
* Provision an S3 lifecycle expiration rule matching the configured TTL, so
|
|
92
|
+
* offloaded objects don't outlive their DynamoDB item forever. No-ops when
|
|
93
|
+
* S3 offload or TTL isn't configured; throws when the bucket cannot be read
|
|
94
|
+
* or written. Requires the `s3:GetLifecycleConfiguration` /
|
|
95
|
+
* `s3:PutLifecycleConfiguration` bucket-level permissions (broader than the
|
|
96
|
+
* object-level CRUD the rest of S3 offload needs) — call this once during
|
|
97
|
+
* deployment/provisioning, not per-request.
|
|
64
98
|
*/
|
|
65
99
|
async ensureS3LifecycleRule() {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
100
|
+
return (0, boundary_1.guardPublic)('store.ensureS3LifecycleRule', async () => {
|
|
101
|
+
if (!this.context.offloader || !this.context.ttl)
|
|
102
|
+
return;
|
|
103
|
+
await this.context.offloader.ensureLifecycleRule((0, ttl_1.lifecycleExpirationDays)(this.context.ttl));
|
|
104
|
+
});
|
|
69
105
|
}
|
|
70
106
|
}
|
|
71
107
|
exports.DynamoDBStore = DynamoDBStore;
|
|
72
|
-
//# sourceMappingURL=store.js.map
|
package/dist/store/types.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import type { IndexConfig, SerializerProtocol } from '@langchain/langgraph-checkpoint';
|
|
2
2
|
import type { PayloadDescriptor } from '../shared/codec/codec';
|
|
3
3
|
import type { BaseAdapterOptions, CodecOptions } from '../shared/options';
|
|
4
|
+
import type { VectorScoreDirection } from './internal/score-direction';
|
|
4
5
|
import type { VectorBackend } from './vector-backend';
|
|
5
6
|
/** Options for {@link DynamoDBStore}. */
|
|
6
7
|
export type DynamoDBStoreOptions = BaseAdapterOptions & CodecOptions & {
|
|
7
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Optional semantic-search index configuration (embeddings + fields). The
|
|
10
|
+
* embedding is stored inline on the item (about 10 bytes per dimension) and
|
|
11
|
+
* is not counted toward `s3.thresholdBytes`; see that option's note on the
|
|
12
|
+
* 400 KB item limit.
|
|
13
|
+
*/
|
|
8
14
|
index?: IndexConfig;
|
|
9
15
|
/** Optional serializer override (defaults to the JSON serializer). */
|
|
10
16
|
serde?: SerializerProtocol;
|
|
@@ -14,6 +20,15 @@ export type DynamoDBStoreOptions = BaseAdapterOptions & CodecOptions & {
|
|
|
14
20
|
maxSearchCandidates?: number;
|
|
15
21
|
/** Cap on items scanned into memory during a plain (non-semantic) search before ResultTruncatedError. Defaults to MAX_TOTAL_ITEMS_IN_MEMORY. */
|
|
16
22
|
maxScanItems?: number;
|
|
23
|
+
/**
|
|
24
|
+
* Direction of the score a `vectorBackend` returns. `'relevance'` (the
|
|
25
|
+
* default) forwards it unchanged; `'distance'` negates and re-sorts, so a
|
|
26
|
+
* distance-native backend (S3 Vectors, FAISS L2, pgvector `<->`) satisfies
|
|
27
|
+
* the higher-is-better contract without the caller wrapping it. Any other
|
|
28
|
+
* value is rejected at construction with a `ValidationError` rather than
|
|
29
|
+
* silently ranking one direction as the other.
|
|
30
|
+
*/
|
|
31
|
+
vectorScoreDirection?: VectorScoreDirection;
|
|
17
32
|
};
|
|
18
33
|
/** The DynamoDB item backing a single stored value. */
|
|
19
34
|
export interface StoreItemRecord {
|
|
@@ -26,5 +41,10 @@ export interface StoreItemRecord {
|
|
|
26
41
|
updatedAt: string;
|
|
27
42
|
embedding?: number[];
|
|
28
43
|
ttl?: number;
|
|
44
|
+
/**
|
|
45
|
+
* Revision token, rewritten on every put. Pins the compare-and-swap that
|
|
46
|
+
* keeps two concurrent overwrites from both deleting the same superseded S3
|
|
47
|
+
* object. Optional: rows written before 0.9.0 carry none.
|
|
48
|
+
*/
|
|
49
|
+
rev?: string;
|
|
29
50
|
}
|
|
30
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/store/types.js
CHANGED
|
@@ -7,12 +7,12 @@ export interface VectorMatch {
|
|
|
7
7
|
* upstream `SearchItem.score`, which this value is forwarded to verbatim.
|
|
8
8
|
*
|
|
9
9
|
* A backend whose native output is a *distance* (S3 Vectors, FAISS L2,
|
|
10
|
-
* pgvector's `<->`)
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
10
|
+
* pgvector's `<->`) has two options: convert before returning, or declare
|
|
11
|
+
* `vectorScoreDirection: 'distance'` on the store, which negates and
|
|
12
|
+
* re-sorts for you. Forwarding an unconverted distance without declaring it
|
|
13
|
+
* yields results ordered correctly but scored backwards, which silently
|
|
14
|
+
* breaks any caller that thresholds or displays the number; that case is
|
|
15
|
+
* warned about but never reordered.
|
|
16
16
|
*/
|
|
17
17
|
score: number;
|
|
18
18
|
}
|
|
@@ -41,4 +41,3 @@ export interface VectorBackend {
|
|
|
41
41
|
*/
|
|
42
42
|
listKeys?(namespacePrefix: string[]): Promise<VectorRef[]>;
|
|
43
43
|
}
|
|
44
|
-
//# sourceMappingURL=vector-backend.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@farukada/aws-langgraph-dynamodb-ts",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-rc.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "AWS DynamoDB implementation for LangGraph Memory Store and Checkpoint Saver in TypeScript",
|
|
6
6
|
"keywords": [
|
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
"import": "./dist/index.js",
|
|
29
29
|
"require": "./dist/index.js",
|
|
30
30
|
"default": "./dist/index.js"
|
|
31
|
-
}
|
|
31
|
+
},
|
|
32
|
+
"./package.json": "./package.json"
|
|
32
33
|
},
|
|
33
34
|
"engines": {
|
|
34
35
|
"node": ">=22.0.0",
|
|
@@ -38,14 +39,14 @@
|
|
|
38
39
|
"build": "tsc -p tsconfig.build.json",
|
|
39
40
|
"typecheck": "tsc -p tsconfig.build.json --noEmit",
|
|
40
41
|
"typecheck:all": "tsc --noEmit",
|
|
41
|
-
"lint": "eslint \"src/**/*.ts\" \"test/**/*.ts\" \"*.config.ts\" --no-error-on-unmatched-pattern",
|
|
42
|
-
"lint:fix": "eslint \"src/**/*.ts\" \"test/**/*.ts\" \"*.config.ts\" --fix --no-error-on-unmatched-pattern",
|
|
43
|
-
"test": "jest",
|
|
44
|
-
"test:integration": "
|
|
42
|
+
"lint": "eslint \"src/**/*.ts\" \"test/**/*.ts\" \"*.config.ts\" \"**/*.mjs\" --no-error-on-unmatched-pattern",
|
|
43
|
+
"lint:fix": "eslint \"src/**/*.ts\" \"test/**/*.ts\" \"*.config.ts\" \"**/*.mjs\" --fix --no-error-on-unmatched-pattern",
|
|
44
|
+
"test": "jest --coverage",
|
|
45
|
+
"test:integration": "jest --config jest.integration.config.ts",
|
|
45
46
|
"test:integration:up": "docker compose up -d",
|
|
46
47
|
"test:integration:down": "docker compose down",
|
|
47
|
-
"test:conformance": "
|
|
48
|
-
"test:aws": "
|
|
48
|
+
"test:conformance": "jest --config jest.conformance.config.ts",
|
|
49
|
+
"test:aws": "jest --config jest.aws.config.ts",
|
|
49
50
|
"test:static": "jest test/static",
|
|
50
51
|
"test:package-smoke": "node --test test/package-smoke/smoke.test.mjs",
|
|
51
52
|
"prepublishOnly": "npm run typecheck && npm run typecheck:all && npm run lint && npm run build && npm test",
|
|
@@ -55,16 +56,17 @@
|
|
|
55
56
|
"depcheck": "depcheck .",
|
|
56
57
|
"cpd": "jscpd ./src --threshold 2 --min-lines 3 --reporters console --silent --format typescript,javascript",
|
|
57
58
|
"cpd:full": "jscpd ./src --threshold 2 --min-lines 3 --reporters console-full --format typescript,javascript",
|
|
58
|
-
"cpd:test": "jscpd ./test --threshold 2 --min-lines 3 --reporters console-full --format typescript,javascript"
|
|
59
|
+
"cpd:test": "jscpd ./test --threshold 2 --min-lines 3 --reporters console-full --format typescript,javascript",
|
|
60
|
+
"pack:check": "node scripts/pack-check.mjs && publint && attw --pack . --profile node16"
|
|
59
61
|
},
|
|
60
62
|
"dependencies": {
|
|
61
63
|
"@aws-sdk/client-dynamodb": "^3.1116.0",
|
|
62
|
-
"@aws-sdk/lib-dynamodb": "^3.1116.0"
|
|
64
|
+
"@aws-sdk/lib-dynamodb": "^3.1116.0",
|
|
65
|
+
"@aws-sdk/util-dynamodb": "^3.996.9"
|
|
63
66
|
},
|
|
64
67
|
"peerDependencies": {
|
|
65
|
-
"@aws-sdk/client-s3": "^3.
|
|
68
|
+
"@aws-sdk/client-s3": "^3.901.0",
|
|
66
69
|
"@langchain/core": "^1.2.9",
|
|
67
|
-
"@langchain/langgraph": "^1.3.2",
|
|
68
70
|
"@langchain/langgraph-checkpoint": "^1.1.5"
|
|
69
71
|
},
|
|
70
72
|
"overrides": {
|
|
@@ -76,11 +78,15 @@
|
|
|
76
78
|
}
|
|
77
79
|
},
|
|
78
80
|
"devDependencies": {
|
|
81
|
+
"@arethetypeswrong/cli": "^0.18.5",
|
|
79
82
|
"@aws-sdk/client-s3": "^3.1116.0",
|
|
80
83
|
"@eslint/js": "^10.0.1",
|
|
81
84
|
"@langchain/aws": "^1.4.4",
|
|
85
|
+
"@langchain/langgraph": "^1.3.2",
|
|
86
|
+
"@langchain/langgraph-checkpoint-validation": "^1.1.1",
|
|
82
87
|
"@types/jest": "^30.0.0",
|
|
83
88
|
"@types/node": "^26.2.0",
|
|
89
|
+
"@typescript/native": "npm:typescript@^7.0.2",
|
|
84
90
|
"aws-sdk-client-mock": "^4.1.0",
|
|
85
91
|
"depcheck": "^1.4.7",
|
|
86
92
|
"eslint": "^10.9.0",
|
|
@@ -92,17 +98,16 @@
|
|
|
92
98
|
"expect-type": "^1.4.0",
|
|
93
99
|
"fast-check": "^4.9.0",
|
|
94
100
|
"jest": "^30.4.2",
|
|
95
|
-
"jest-sonar": "^0.2.16",
|
|
96
101
|
"jiti": "^2.7.0",
|
|
97
102
|
"jscpd": "^5.0.16",
|
|
98
103
|
"knip": "^6.32.2",
|
|
99
104
|
"prettier": "^3.9.6",
|
|
105
|
+
"publint": "^0.3.24",
|
|
100
106
|
"ts-jest": "^29.4.12",
|
|
101
107
|
"ts-node": "^10.9.2",
|
|
102
108
|
"typedoc": "^0.28.20",
|
|
103
109
|
"typedoc-plugin-markdown": "^4.12.0",
|
|
104
110
|
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
105
|
-
"@typescript/native": "npm:typescript@^7.0.2",
|
|
106
111
|
"typescript-eslint": "^8.67.0",
|
|
107
112
|
"zod": "^4.4.3"
|
|
108
113
|
},
|
|
@@ -117,5 +122,6 @@
|
|
|
117
122
|
"dist",
|
|
118
123
|
"LICENSE",
|
|
119
124
|
"README.md"
|
|
120
|
-
]
|
|
125
|
+
],
|
|
126
|
+
"sideEffects": false
|
|
121
127
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delete-thread.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/actions/delete-thread.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAY7D;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delete-thread.js","sourceRoot":"","sources":["../../../src/checkpointer/actions/delete-thread.ts"],"names":[],"mappings":";;;AACA,6EAA6E;AAE7E,2CAAuE;AACvE,6CAAmD;AAEnD,uDAA0D;AAE1D,+DAA+D;AAC/D,SAAS,aAAa,CAAC,GAAY;IACjC,OAAO;QACL,GAAG,CAAC,QAAyC;QAC7C,GAAG,CAAC,UAA2C;QAC/C,GAAG,CAAC,KAAsC;KAC3C,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACI,KAAK,uBAAuB,OAA4B,EAAE,QAAgB;IAC/E,IAAA,6BAAgB,EAAC,QAAQ,CAAC,CAAC;IAC3B,MAAM,IAAA,sCAAmB,EAAC;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,IAAA,sBAAc,EAAC,OAAO,CAAC,SAAS,EAAE,IAAA,mBAAY,EAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACvF,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,4BAAqB;QAClC,aAAa;KACd,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-tuple.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/actions/get-tuple.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAKvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAKtC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-tuple.js","sourceRoot":"","sources":["../../../src/checkpointer/actions/get-tuple.ts"],"names":[],"mappings":";;;AAGA,mDAAqD;AACrD,2DAA4D;AAC5D,6CAAoD;AAGpD;;;;GAIG;AACI,KAAK,6BACV,OAA4B,EAC5B,MAAsB;IAEtB,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAA,+BAAgB,EAAC,MAAM,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAe,EAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IAClF,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,IAAA,wBAAa,EAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/actions/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAS9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAyC7D;;;;GAIG;AACH,wBAAuB,eAAe,CACpC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,cAAc,CAAC,eAAe,CAAC,CAuCjC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/checkpointer/actions/list.ts"],"names":[],"mappings":";;;AAGA,6DAA+D;AAC/D,mDAAqD;AACrD,2DAA4D;AAC5D,2DAA2E;AAC3E,yDAAuE;AACvE,2CAAmE;AACnE,6CAAoD;AAIpD,kDAAkD;AAClD,SAAS,eAAe,CAAC,OAA+B;IAKtD,OAAO;QACL,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,aAAmC;QAC1E,MAAM,EAAE,OAAO,EAAE,MAAiD;QAClE,KAAK,EAAE,OAAO,EAAE,KAAK;KACtB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CACvB,IAAwB,EACxB,YAAgC,EAChC,MAA0B;IAE1B,IAAI,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC;IACnF,OAAO,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;AAC5D,CAAC;AAED,uEAAuE;AACvE,KAAK,UAAU,oBAAoB,CACjC,OAA4B,EAC5B,IAAwB,EACxB,MAA+C;IAE/C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAA,0BAAY,EAAC,OAAO,EAAE,IAAI,CAAC,CAAgC,CAAC;IACpF,OAAO,IAAA,4BAAa,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACI,KAAK,SAAS,CAAC,iBACpB,OAA4B,EAC5B,MAAsB,EACtB,OAA+B;IAE/B,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAA,+BAAgB,EAAC,MAAM,CAAC,CAAC;IAC1E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAA,uBAAe,EAC5B,OAAO,CAAC,SAAS,EACjB,IAAA,mBAAY,EAAC,QAAQ,CAAC,EACtB,IAAA,wBAAiB,EAAC,YAAY,CAAC,CAChC,CAAC;IACF,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB;;;;;;;OAOG;IACH,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAA,wBAAa,EAAC;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,iBAAiB;QAClC,aAAa,EAAE,MAAM,CAAC,iBAAiB;KACxC,CAAC,EAAE,CAAC;QACH,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK;YAAE,OAAO;QACpD,MAAM,IAAI,GAAG,IAAA,4BAAc,EAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAwD,EAAE;gBAC5E,OAAO,EAAE,GAAG,CAAC,EAAY;aAC1B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC;YAAE,SAAS;QAC5D,IAAI,CAAC,CAAC,MAAM,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAAE,SAAS;QACnE,MAAM,KAAK,GAAG,MAAM,IAAA,wBAAa,EAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QACzE,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAC;YACZ,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"put-writes.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/actions/put-writes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAUpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AA2E7D;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,YAAY,EAAE,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"put-writes.js","sourceRoot":"","sources":["../../../src/checkpointer/actions/put-writes.ts"],"names":[],"mappings":";;;AAGA,wEAAmE;AACnE,2DAAiE;AACjE,uDAAgE;AAChE,uDAA6D;AAC7D,4CAAsD;AACtD,qDAAoE;AACpE,2DAA4D;AAC5D,yDAA0D;AAE1D,6EAAiF;AACjF,uDAAwD;AACxD,yDAAyF;AAGzF;;;;;;;;GAQG;AACH,MAAM,cAAc,GAAG,IAAA,wBAAiB,GAAE,CAAC;AAE3C,uFAAuF;AACvF,KAAK,UAAU,YAAY,CACzB,OAA4B,EAC5B,KAA4B;IAE5B,IAAI,CAAC,OAAO,CAAC,SAAS;QAAE,OAAO;IAC/B,MAAM,IAAA,0BAAgB,EACpB,OAAO,CAAC,SAAS,EACjB,IAAA,+BAAa,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAC9C,WAAW,EACX,OAAO,CAAC,MAAM,CACf,CAAC;AACJ,CAAC;AAWD;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAC9B,OAA4B,EAC5B,KAA4B;IAE5B,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,IAAI,KAAwB,CAAC;IAC7B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACjB,IAAA,yBAAiB,EAAC,GAAG,EAAE,CACrB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,IAAI,EAAE,IAAI;QACV,mBAAmB,EAAE,0BAA0B;QAC/C,mCAAmC,EAAE,SAAS;KAC/C,CAAC,CACH,CACF,CACF,CAAC;IACF,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChC,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAe,CAAC;QACtC,IAAI,IAAA,sCAAwB,EAAC,MAAM,CAAC,EAAE,CAAC;YACrC,IAAA,kCAAoB,EAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1B,KAAK,GAAG,KAAK,IAAI,MAAM,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC;AACD;;;;;;;;;GASG;AACI,KAAK,oBACV,OAA4B,EAC5B,MAAsB,EACtB,MAAsB,EACtB,MAAc;IAEd,IAAA,2BAAc,EAAC,MAAM,CAAC,CAAC;IACvB,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAA,+BAAgB,EAAC,MAAM,CAAC,CAAC;IAC1E,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,wBAAe,CAAC,2CAA2C,EAAE,eAAe,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAChC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,2BAAqB,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,MAAM,KAAK,GAAG,MAAM,IAAA,6BAAe,EACjC,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,MAAM,EACN,cAAc,EAAE,EAChB,YAAY,CACb,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvD,IAAA,oDAA4B,EAAC,OAAO,EAAE,OAAO,CAAC;QAC9C,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC;KACpC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,YAAY,IAAI,cAAc,CAAC,KAAK,CAAC;IACxD,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,MAAM,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,UAAU,CAAC;AACnB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"put.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/actions/put.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAQtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7D;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,cAAc,CAAC,CAwCzB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"put.js","sourceRoot":"","sources":["../../../src/checkpointer/actions/put.ts"],"names":[],"mappings":";;;AAGA,wEAAmE;AACnE,2DAAiE;AACjE,uDAAgE;AAChE,qDAAoE;AACpE,2DAA4D;AAC5D,yDAA+D;AAE/D,uDAA8D;AAE9D;;;;GAIG;AACI,KAAK,wBACV,OAA4B,EAC5B,MAAsB,EACtB,UAAsB,EACtB,QAA4B;IAE5B,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,GAAG,IAAA,+BAAgB,EAAC,MAAM,CAAC,CAAC;IAC9F,IAAA,iCAAoB,EAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,2BAAqB,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,kCAAoB,EAClD,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,kBAAkB,EAClB,YAAY,CACb,CAAC;IACF,IAAI,CAAC;QACH,MAAM,IAAA,yBAAiB,EAAC,GAAG,EAAE,CAC3B,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3B,aAAa,EAAE;gBACb,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;gBACrD,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;aACzD;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,IAAA,0BAAgB,EACpB,OAAO,CAAC,SAAS,EACjB,IAAA,+BAAa,EAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,EAClD,KAAK,EACL,OAAO,CAAC,MAAM,CACf,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO;QACL,YAAY,EAAE;YACZ,SAAS,EAAE,QAAQ;YACnB,aAAa,EAAE,YAAY;YAC3B,aAAa,EAAE,UAAU,CAAC,EAAE;SAC7B;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assemble.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/internal/assemble.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AASnD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAkBtC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assemble.js","sourceRoot":"","sources":["../../../src/checkpointer/internal/assemble.ts"],"names":[],"mappings":";;;AAIA,mCAA2D;AAC3D,+CAA6D;AAG7D,2DAA2D;AAC3D,SAAS,SAAS,CAAC,QAAgB,EAAE,YAAoB,EAAE,YAAoB;IAC7E,OAAO;QACL,YAAY,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE;KAChG,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACI,KAAK,wBACV,OAA4B,EAC5B,QAAgB,EAChB,YAAoB,EACpB,IAAwB;IAExB,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAY,EAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACvF,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9D,IAAA,4BAAc,EAAC,OAAO,EAAE,OAAO,CAAC;QAChC,IAAA,0BAAY,EAAC,OAAO,EAAE,IAAI,CAAC;QAC3B,IAAA,0BAAkB,EAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC;KACvE,CAAC,CAAC;IACH,MAAM,KAAK,GAAoB;QAC7B,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC;QAC5D,UAAU;QACV,QAAQ;QACR,aAAa;KACd,CAAC;IACF,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC1C,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configurable.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/internal/configurable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAKhE,2EAA2E;AAC3E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,oBAAoB,CAa7E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configurable.js","sourceRoot":"","sources":["../../../src/checkpointer/internal/configurable.ts"],"names":[],"mappings":";;;AAGA,6CAA4F;AAS5F;;;GAGG;AACH,0BAAiC,MAAsB;IACrD,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAA2B,CAAC;IAC3E,IAAA,6BAAgB,EAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,YAAY,CAAC,aAAa,IAAI,EAAE,CAAC;IACtD,IAAA,iCAAoB,EAAC,YAAY,CAAC,CAAC;IACnC,IAAI,YAAY,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAC7C,IAAA,iCAAoB,EAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,YAAY,CAAC,SAAS;QAChC,YAAY;QACZ,YAAY,EAAE,YAAY,CAAC,aAAa;KACzC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/internal/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAI9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAuB,MAAM,UAAU,CAAC;AAU/F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,sFAAsF;AACtF,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAsBzC;AAED,+CAA+C;AAC/C,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAS5C;AAED,6EAA6E;AAC7E,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAYnC"}
|